aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml26
-rw-r--r--CHANGELOG76
-rw-r--r--Zotlabs/Access/PermissionLimits.php6
-rw-r--r--Zotlabs/Access/PermissionRoles.php19
-rw-r--r--Zotlabs/Daemon/Expire.php7
-rw-r--r--Zotlabs/Lib/Chatroom.php2
-rw-r--r--Zotlabs/Lib/Enotify.php63
-rw-r--r--Zotlabs/Lib/NativeWiki.php11
-rw-r--r--Zotlabs/Lib/Share.php12
-rw-r--r--Zotlabs/Lib/ThreadItem.php11
-rw-r--r--Zotlabs/Module/Acl.php10
-rw-r--r--Zotlabs/Module/Admin/Accounts.php7
-rw-r--r--Zotlabs/Module/Admin/Site.php12
-rw-r--r--Zotlabs/Module/Articles.php2
-rw-r--r--Zotlabs/Module/Authorize.php99
-rw-r--r--Zotlabs/Module/Cards.php2
-rw-r--r--Zotlabs/Module/Channel.php2
-rw-r--r--Zotlabs/Module/Chanview.php2
-rw-r--r--Zotlabs/Module/Chatsvc.php4
-rw-r--r--Zotlabs/Module/Cloud.php6
-rw-r--r--Zotlabs/Module/Connections.php34
-rw-r--r--Zotlabs/Module/Connedit.php6
-rw-r--r--Zotlabs/Module/Cover_photo.php2
-rw-r--r--Zotlabs/Module/Directory.php6
-rw-r--r--Zotlabs/Module/Display.php17
-rw-r--r--Zotlabs/Module/Editpost.php2
-rw-r--r--Zotlabs/Module/Follow.php22
-rw-r--r--Zotlabs/Module/Hashtags.php27
-rw-r--r--Zotlabs/Module/Import.php62
-rw-r--r--Zotlabs/Module/Item.php3
-rw-r--r--Zotlabs/Module/Like.php4
-rw-r--r--Zotlabs/Module/Logout.php7
-rw-r--r--Zotlabs/Module/Magic.php2
-rw-r--r--Zotlabs/Module/Mail.php4
-rw-r--r--Zotlabs/Module/Message.php2
-rw-r--r--Zotlabs/Module/Moderate.php17
-rw-r--r--Zotlabs/Module/Network.php17
-rw-r--r--Zotlabs/Module/New_channel.php26
-rw-r--r--Zotlabs/Module/Oauth2testvehicle.php151
-rw-r--r--Zotlabs/Module/Oep.php6
-rw-r--r--Zotlabs/Module/Owa.php9
-rw-r--r--Zotlabs/Module/Photo.php70
-rw-r--r--Zotlabs/Module/Photos.php16
-rw-r--r--Zotlabs/Module/Ping.php20
-rw-r--r--Zotlabs/Module/Profile_photo.php1
-rw-r--r--Zotlabs/Module/Profiles.php45
-rw-r--r--Zotlabs/Module/Pubstream.php12
-rw-r--r--Zotlabs/Module/React.php1
-rw-r--r--Zotlabs/Module/Regmod.php2
-rw-r--r--Zotlabs/Module/Rpost.php38
-rw-r--r--Zotlabs/Module/Search.php4
-rw-r--r--Zotlabs/Module/Settings/Channel.php22
-rw-r--r--Zotlabs/Module/Settings/Featured.php19
-rw-r--r--Zotlabs/Module/Settings/Features.php74
-rw-r--r--Zotlabs/Module/Settings/Oauth.php11
-rw-r--r--Zotlabs/Module/Settings/Oauth2.php160
-rw-r--r--Zotlabs/Module/Settings/Permcats.php5
-rw-r--r--Zotlabs/Module/Setup.php20
-rw-r--r--Zotlabs/Module/Share.php21
-rw-r--r--Zotlabs/Module/Token.php3
-rw-r--r--Zotlabs/Module/Uexport.php4
-rw-r--r--Zotlabs/Module/Webfinger.php28
-rw-r--r--Zotlabs/Module/Well_known.php5
-rw-r--r--Zotlabs/Module/Wiki.php4
-rw-r--r--Zotlabs/Storage/Browser.php2
-rw-r--r--Zotlabs/Storage/Directory.php28
-rw-r--r--Zotlabs/Storage/File.php2
-rw-r--r--Zotlabs/Storage/ZotOauth2Pdo.php10
-rw-r--r--Zotlabs/Update/_1208.php26
-rw-r--r--Zotlabs/Update/_1209.php26
-rw-r--r--Zotlabs/Update/_1210.php78
-rw-r--r--Zotlabs/Update/_1211.php26
-rw-r--r--Zotlabs/Update/_1212.php26
-rw-r--r--Zotlabs/Web/HTTPSig.php129
-rw-r--r--Zotlabs/Web/WebServer.php6
-rw-r--r--Zotlabs/Widget/Catcloud.php46
-rw-r--r--Zotlabs/Widget/Design_tools.php13
-rw-r--r--Zotlabs/Widget/Forums.php4
-rw-r--r--Zotlabs/Widget/Newmember.php11
-rw-r--r--Zotlabs/Widget/Notifications.php2
-rw-r--r--Zotlabs/Widget/Pubtagcloud.php41
-rw-r--r--Zotlabs/Widget/Settings_menu.php10
-rw-r--r--Zotlabs/Widget/Tagcloud.php9
-rw-r--r--Zotlabs/Widget/Tasklist.php2
-rwxr-xr-xboot.php26
-rw-r--r--composer.lock264
-rw-r--r--doc/about/project.bb2
-rw-r--r--doc/context/fr/appman/help.html5
-rw-r--r--doc/context/fr/apps/edit/index.html4
-rw-r--r--doc/context/fr/apps/help.html7
-rw-r--r--doc/context/fr/cards/help.html20
-rw-r--r--doc/context/fr/chat/help.html8
-rw-r--r--doc/context/fr/cloud/help.html7
-rw-r--r--doc/context/fr/connections/help.html8
-rw-r--r--doc/context/fr/connections/ifpending/help.html8
-rw-r--r--doc/context/fr/connedit/help.html13
-rw-r--r--doc/context/fr/events/help.html8
-rw-r--r--doc/context/fr/mail/help.html10
-rw-r--r--doc/context/fr/photos/help.html6
-rw-r--r--doc/context/fr/profile/help.html6
-rw-r--r--doc/context/fr/settings/account/help.html18
-rw-r--r--doc/context/fr/settings/channel/help.html18
-rw-r--r--doc/context/fr/settings/tokens20
-rw-r--r--doc/context/fr/webpages/help.html8
-rw-r--r--doc/context/fr/wiki/help.html13
-rw-r--r--doc/context/ru/cards/help.html16
-rw-r--r--doc/dnt-policy.txt218
-rw-r--r--doc/feature/additional/access.md41
-rw-r--r--doc/feature/additional/composition.md67
-rw-r--r--doc/feature/additional/filtering.md57
-rw-r--r--doc/feature/additional/general.md130
-rw-r--r--doc/feature/additional/overview.md33
-rw-r--r--doc/feature/additional/posts.md57
-rw-r--r--doc/fr/about.bb25
-rw-r--r--doc/fr/about/about.bb198
-rw-r--r--doc/fr/about/project.bb174
-rw-r--r--doc/fr/toc.html73
-rw-r--r--doc/member/member_guide.bb126
-rw-r--r--doc/toc.html19
-rw-r--r--doc/tutorials/personal_channel.html17
-rw-r--r--include/account.php3
-rw-r--r--include/api.php30
-rw-r--r--include/api_auth.php57
-rw-r--r--include/attach.php179
-rw-r--r--include/auth.php18
-rw-r--r--include/bbcode.php111
-rw-r--r--include/channel.php31
-rw-r--r--include/connections.php14
-rw-r--r--include/conversation.php15
-rw-r--r--include/datetime.php8
-rwxr-xr-xinclude/dba/dba_driver.php25
-rwxr-xr-xinclude/dba/dba_pdo.php4
-rw-r--r--include/event.php22
-rw-r--r--include/features.php39
-rw-r--r--include/feedutils.php9
-rw-r--r--include/follow.php23
-rw-r--r--include/help.php2
-rw-r--r--include/html2bbcode.php1
-rw-r--r--include/hubloc.php3
-rw-r--r--include/import.php9
-rwxr-xr-xinclude/items.php151
-rw-r--r--include/nav.php4
-rw-r--r--include/network.php58
-rwxr-xr-xinclude/oembed.php7
-rw-r--r--include/permissions.php2
-rw-r--r--include/photo/photo_driver.php7
-rw-r--r--include/photo/photo_gd.php5
-rw-r--r--include/photo/photo_imagick.php13
-rw-r--r--include/photos.php19
-rwxr-xr-xinclude/plugin.php63
-rw-r--r--include/queue_fn.php6
-rw-r--r--include/security.php9
-rw-r--r--include/statistics_fns.php44
-rw-r--r--include/taxonomy.php92
-rw-r--r--include/text.php72
-rw-r--r--include/zid.php21
-rw-r--r--include/zot.php92
-rw-r--r--install/schema_mysql.sql60
-rw-r--r--install/schema_postgres.sql70
-rw-r--r--library/IXR_Library.php61
-rw-r--r--library/bootstrap/css/bootstrap-grid.css350
-rw-r--r--library/bootstrap/css/bootstrap-grid.css.map2
-rw-r--r--library/bootstrap/css/bootstrap-grid.min.css4
-rw-r--r--library/bootstrap/css/bootstrap-grid.min.css.map2
-rw-r--r--library/bootstrap/css/bootstrap-reboot.css4
-rw-r--r--library/bootstrap/css/bootstrap-reboot.css.map2
-rw-r--r--library/bootstrap/css/bootstrap-reboot.min.css2
-rw-r--r--library/bootstrap/css/bootstrap-reboot.min.css.map2
-rw-r--r--library/bootstrap/css/bootstrap.css871
-rw-r--r--library/bootstrap/css/bootstrap.css.map2
-rw-r--r--library/bootstrap/css/bootstrap.min.css4
-rw-r--r--library/bootstrap/css/bootstrap.min.css.map2
-rw-r--r--library/bootstrap/js/bootstrap.bundle.js10495
-rw-r--r--library/bootstrap/js/bootstrap.bundle.js.map2
-rw-r--r--library/bootstrap/js/bootstrap.bundle.min.js4
-rw-r--r--library/bootstrap/js/bootstrap.bundle.min.js.map2
-rw-r--r--library/bootstrap/js/bootstrap.js6103
-rw-r--r--library/bootstrap/js/bootstrap.js.map2
-rw-r--r--library/bootstrap/js/bootstrap.min.js4
-rw-r--r--library/bootstrap/js/bootstrap.min.js.map2
-rw-r--r--library/justifiedGallery/jquery.justifiedGallery.js122
-rw-r--r--library/justifiedGallery/jquery.justifiedGallery.min.js6
-rw-r--r--library/justifiedGallery/justifiedGallery.css19
-rw-r--r--library/justifiedGallery/justifiedGallery.min.css6
-rwxr-xr-xtests/travis/prepare_pgsql.sh17
-rw-r--r--tests/unit/Access/PermissionLimitsTest.php2
-rw-r--r--tests/unit/Access/PermissionRolesTest.php3
-rw-r--r--tests/unit/Web/HttpSigTest.php125
-rwxr-xr-xutil/dcp64
-rw-r--r--util/hmessages.po3061
-rw-r--r--vendor/commerceguys/intl/.travis.yml14
-rw-r--r--vendor/commerceguys/intl/resources/country/af.json54
-rw-r--r--vendor/commerceguys/intl/resources/country/am.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/ar-LY.json42
-rw-r--r--vendor/commerceguys/intl/resources/country/ar-SA.json44
-rw-r--r--vendor/commerceguys/intl/resources/country/ar.json42
-rw-r--r--vendor/commerceguys/intl/resources/country/as.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/az-Cyrl.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/az.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/bas.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/base.json4
-rw-r--r--vendor/commerceguys/intl/resources/country/be.json22
-rw-r--r--vendor/commerceguys/intl/resources/country/bg.json4
-rw-r--r--vendor/commerceguys/intl/resources/country/bn-IN.json50
-rw-r--r--vendor/commerceguys/intl/resources/country/bn.json52
-rw-r--r--vendor/commerceguys/intl/resources/country/bs-Cyrl.json186
-rw-r--r--vendor/commerceguys/intl/resources/country/bs.json52
-rw-r--r--vendor/commerceguys/intl/resources/country/ca.json8
-rw-r--r--vendor/commerceguys/intl/resources/country/ce.json38
-rw-r--r--vendor/commerceguys/intl/resources/country/chr.json8
-rw-r--r--vendor/commerceguys/intl/resources/country/ckb.json40
-rw-r--r--vendor/commerceguys/intl/resources/country/cs.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/cy.json8
-rw-r--r--vendor/commerceguys/intl/resources/country/da.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/de-AT.json14
-rw-r--r--vendor/commerceguys/intl/resources/country/de-CH.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/de.json16
-rw-r--r--vendor/commerceguys/intl/resources/country/el.json40
-rw-r--r--vendor/commerceguys/intl/resources/country/en-GB.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/en.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/es-AR.json8
-rw-r--r--vendor/commerceguys/intl/resources/country/es-BO.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-BR.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-BZ.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/es-CL.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-CO.json8
-rw-r--r--vendor/commerceguys/intl/resources/country/es-CR.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-CU.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-DO.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-EC.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-GT.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-HN.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-MX.json22
-rw-r--r--vendor/commerceguys/intl/resources/country/es-NI.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-PA.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-PE.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-PR.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-PY.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-SV.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-US.json16
-rw-r--r--vendor/commerceguys/intl/resources/country/es-UY.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es-VE.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/es.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/et.json12
-rw-r--r--vendor/commerceguys/intl/resources/country/eu.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/fa-AF.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/fil.json48
-rw-r--r--vendor/commerceguys/intl/resources/country/fr-BE.json12
-rw-r--r--vendor/commerceguys/intl/resources/country/fr-CA.json14
-rw-r--r--vendor/commerceguys/intl/resources/country/fr.json12
-rw-r--r--vendor/commerceguys/intl/resources/country/ga.json270
-rw-r--r--vendor/commerceguys/intl/resources/country/gd.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/gl.json86
-rw-r--r--vendor/commerceguys/intl/resources/country/gu.json100
-rw-r--r--vendor/commerceguys/intl/resources/country/he.json52
-rw-r--r--vendor/commerceguys/intl/resources/country/hi.json34
-rw-r--r--vendor/commerceguys/intl/resources/country/hr.json8
-rw-r--r--vendor/commerceguys/intl/resources/country/hu.json4
-rw-r--r--vendor/commerceguys/intl/resources/country/hy.json12
-rw-r--r--vendor/commerceguys/intl/resources/country/id.json18
-rw-r--r--vendor/commerceguys/intl/resources/country/is.json12
-rw-r--r--vendor/commerceguys/intl/resources/country/it.json16
-rw-r--r--vendor/commerceguys/intl/resources/country/ja.json28
-rw-r--r--vendor/commerceguys/intl/resources/country/jgo.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/ka.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/kea.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/kk.json22
-rw-r--r--vendor/commerceguys/intl/resources/country/km.json190
-rw-r--r--vendor/commerceguys/intl/resources/country/kn.json114
-rw-r--r--vendor/commerceguys/intl/resources/country/kok.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/ky.json94
-rw-r--r--vendor/commerceguys/intl/resources/country/lb.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/ln.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/lo.json54
-rw-r--r--vendor/commerceguys/intl/resources/country/lv.json4
-rw-r--r--vendor/commerceguys/intl/resources/country/mk.json22
-rw-r--r--vendor/commerceguys/intl/resources/country/ml.json50
-rw-r--r--vendor/commerceguys/intl/resources/country/mn.json130
-rw-r--r--vendor/commerceguys/intl/resources/country/mr.json8
-rw-r--r--vendor/commerceguys/intl/resources/country/ms.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/my.json68
-rw-r--r--vendor/commerceguys/intl/resources/country/nb.json12
-rw-r--r--vendor/commerceguys/intl/resources/country/ne.json70
-rw-r--r--vendor/commerceguys/intl/resources/country/nl.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/nn.json40
-rw-r--r--vendor/commerceguys/intl/resources/country/nus.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/or.json296
-rw-r--r--vendor/commerceguys/intl/resources/country/pa.json10
-rw-r--r--vendor/commerceguys/intl/resources/country/pl.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/ps.json998
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-AO.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-CH.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-CV.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-GQ.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-GW.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-LU.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-MO.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-MZ.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-PT.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-ST.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt-TL.json30
-rw-r--r--vendor/commerceguys/intl/resources/country/pt.json42
-rw-r--r--vendor/commerceguys/intl/resources/country/qu.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/rm.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/ro-MD.json14
-rw-r--r--vendor/commerceguys/intl/resources/country/ro.json14
-rw-r--r--vendor/commerceguys/intl/resources/country/ru-UA.json14
-rw-r--r--vendor/commerceguys/intl/resources/country/ru.json16
-rw-r--r--vendor/commerceguys/intl/resources/country/sd.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/si.json4
-rw-r--r--vendor/commerceguys/intl/resources/country/sk.json12
-rw-r--r--vendor/commerceguys/intl/resources/country/sl.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/sq.json56
-rw-r--r--vendor/commerceguys/intl/resources/country/sr-Cyrl-BA.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/sr-Cyrl-ME.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/sr-Cyrl-XK.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/sr-Latn-BA.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/sr-Latn-ME.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/sr-Latn-XK.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/sr-Latn.json14
-rw-r--r--vendor/commerceguys/intl/resources/country/sr.json14
-rw-r--r--vendor/commerceguys/intl/resources/country/sv.json4
-rw-r--r--vendor/commerceguys/intl/resources/country/sw-CD.json158
-rw-r--r--vendor/commerceguys/intl/resources/country/sw-KE.json150
-rw-r--r--vendor/commerceguys/intl/resources/country/sw.json168
-rw-r--r--vendor/commerceguys/intl/resources/country/ta.json2
-rw-r--r--vendor/commerceguys/intl/resources/country/te.json154
-rw-r--r--vendor/commerceguys/intl/resources/country/tg.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/th.json20
-rw-r--r--vendor/commerceguys/intl/resources/country/ti.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/tk.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/to.json26
-rw-r--r--vendor/commerceguys/intl/resources/country/tr.json8
-rw-r--r--vendor/commerceguys/intl/resources/country/tt.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/uk.json128
-rw-r--r--vendor/commerceguys/intl/resources/country/ur-IN.json28
-rw-r--r--vendor/commerceguys/intl/resources/country/ur.json28
-rw-r--r--vendor/commerceguys/intl/resources/country/uz-Cyrl.json18
-rw-r--r--vendor/commerceguys/intl/resources/country/uz.json80
-rw-r--r--vendor/commerceguys/intl/resources/country/vai.json168
-rw-r--r--vendor/commerceguys/intl/resources/country/vi.json24
-rw-r--r--vendor/commerceguys/intl/resources/country/wo.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/yo-BJ.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/yo.json6
-rw-r--r--vendor/commerceguys/intl/resources/country/yue.json761
-rw-r--r--vendor/commerceguys/intl/resources/country/zh-Hant-HK.json22
-rw-r--r--vendor/commerceguys/intl/resources/country/zh-Hant-MO.json22
-rw-r--r--vendor/commerceguys/intl/resources/country/zh-Hant.json34
-rw-r--r--vendor/commerceguys/intl/resources/country/zh.json20
-rw-r--r--vendor/commerceguys/intl/resources/country/zu.json8
-rw-r--r--vendor/commerceguys/intl/resources/currency/af.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/agq.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ak.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/am.json21
-rw-r--r--vendor/commerceguys/intl/resources/currency/ar.json38
-rw-r--r--vendor/commerceguys/intl/resources/currency/asa.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ast.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/az.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/bas.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/base.json4
-rw-r--r--vendor/commerceguys/intl/resources/currency/be.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/bez.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/bg.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/bm.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/bn.json21
-rw-r--r--vendor/commerceguys/intl/resources/currency/br.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/brx.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/bs-Cyrl.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/bs.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ca.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/ce.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/cgg.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/chr.json3
-rw-r--r--vendor/commerceguys/intl/resources/currency/cs.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/cy.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/da.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/dav.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/de-CH.json10
-rw-r--r--vendor/commerceguys/intl/resources/currency/de.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/dje.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/dsb.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/dz.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ebu.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ee.json119
-rw-r--r--vendor/commerceguys/intl/resources/currency/el.json17
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-AG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-AI.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-AT.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-AU.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-BB.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-BE.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-BM.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-BS.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-BW.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-BZ.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-CA.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-CC.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-CH.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-CK.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-CM.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-CX.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-CY.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-DE.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-DG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-DK.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-DM.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-ER.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-FI.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-FJ.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-FK.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-FM.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-GB.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-GD.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-GG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-GH.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-GI.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-GM.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-GY.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-HK.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-IE.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-IL.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-IM.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-IN.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-IO.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-JE.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-JM.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-KE.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-KI.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-KN.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-KY.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-LC.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-LR.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-LS.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-MG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-MO.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-MS.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-MT.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-MU.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-MW.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-MY.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-NA.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-NF.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-NG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-NL.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-NR.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-NU.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-NZ.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-PG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-PH.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-PK.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-PN.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-PW.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-RW.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SB.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SC.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SD.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SE.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SH.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SI.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SL.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SS.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SX.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-SZ.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-TC.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-TK.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-TO.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-TT.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-TV.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-TZ.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-UG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-VC.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-VG.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-VU.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-WS.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-ZA.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-ZM.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en-ZW.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/en.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-AR.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-BO.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-BR.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-BZ.json475
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-CL.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-CO.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-CR.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-CU.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-DO.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-EC.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-GT.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-HN.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-MX.json189
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-NI.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-PA.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-PE.json35
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-PR.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-PY.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-SV.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-US.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-UY.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es-VE.json33
-rw-r--r--vendor/commerceguys/intl/resources/currency/es.json35
-rw-r--r--vendor/commerceguys/intl/resources/currency/et.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/eu.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ewo.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/fa-AF.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/fa.json17
-rw-r--r--vendor/commerceguys/intl/resources/currency/ff.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/fi.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/fil.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/fo.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/fr-CA.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/fr.json31
-rw-r--r--vendor/commerceguys/intl/resources/currency/fur.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/fy.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ga.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/gd.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/gl.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/gsw.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/gu.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/guz.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ha.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/he.json53
-rw-r--r--vendor/commerceguys/intl/resources/currency/hi.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/hr.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/hsb.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/hu.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/hy.json235
-rw-r--r--vendor/commerceguys/intl/resources/currency/id.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/is.json3
-rw-r--r--vendor/commerceguys/intl/resources/currency/it.json12
-rw-r--r--vendor/commerceguys/intl/resources/currency/ja.json17
-rw-r--r--vendor/commerceguys/intl/resources/currency/jmc.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ka.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/kab.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/kam.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/kde.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/kea.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/khq.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ki.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/kk.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/kln.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/km.json3
-rw-r--r--vendor/commerceguys/intl/resources/currency/kn.json29
-rw-r--r--vendor/commerceguys/intl/resources/currency/ko.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ks.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ksb.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ksf.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ksh.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ky.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/lag.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/lb.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/lg.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ln.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/lo.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/lt.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/lu.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/luo.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/luy.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/lv.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/mas.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/mer.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/mfe.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/mg.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/mk.json21
-rw-r--r--vendor/commerceguys/intl/resources/currency/ml.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/mn.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/mr.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ms.json35
-rw-r--r--vendor/commerceguys/intl/resources/currency/mua.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/my.json119
-rw-r--r--vendor/commerceguys/intl/resources/currency/mzn.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/naq.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/nb.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/nd.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ne.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/nl.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/nmg.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/nn.json371
-rw-r--r--vendor/commerceguys/intl/resources/currency/nyn.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/or.json493
-rw-r--r--vendor/commerceguys/intl/resources/currency/pa.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/pl.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-AO.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-CH.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-CV.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-GQ.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-GW.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-LU.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-MO.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-MZ.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-PT.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-ST.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt-TL.json123
-rw-r--r--vendor/commerceguys/intl/resources/currency/pt.json39
-rw-r--r--vendor/commerceguys/intl/resources/currency/rm.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/rn.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ro.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/rof.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ru.json321
-rw-r--r--vendor/commerceguys/intl/resources/currency/rwk.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/saq.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/sbp.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/sd.json494
-rw-r--r--vendor/commerceguys/intl/resources/currency/seh.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ses.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/sg.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/shi-Latn.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/shi.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/si.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/sk.json17
-rw-r--r--vendor/commerceguys/intl/resources/currency/sl.json29
-rw-r--r--vendor/commerceguys/intl/resources/currency/sn.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/sq.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/sr-Latn.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/sr.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/sv.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/sw-CD.json141
-rw-r--r--vendor/commerceguys/intl/resources/currency/sw.json147
-rw-r--r--vendor/commerceguys/intl/resources/currency/ta.json3
-rw-r--r--vendor/commerceguys/intl/resources/currency/te.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/teo.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/th.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/tk.json85
-rw-r--r--vendor/commerceguys/intl/resources/currency/tr.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/twq.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/tzm.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/ug.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/uk.json13
-rw-r--r--vendor/commerceguys/intl/resources/currency/ur-IN.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/ur.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/uz-Cyrl.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/uz.json65
-rw-r--r--vendor/commerceguys/intl/resources/currency/vai-Latn.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/vai.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/vi.json11
-rw-r--r--vendor/commerceguys/intl/resources/currency/vun.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/xog.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/yo-BJ.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/yo.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/yue.json496
-rw-r--r--vendor/commerceguys/intl/resources/currency/zgh.json7
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh-Hant-MO.json9
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh-Hant.json15
-rw-r--r--vendor/commerceguys/intl/resources/currency/zh.json5
-rw-r--r--vendor/commerceguys/intl/resources/currency/zu.json3
-rw-r--r--vendor/commerceguys/intl/resources/language/af.json43
-rw-r--r--vendor/commerceguys/intl/resources/language/agq.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ak.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/am.json27
-rw-r--r--vendor/commerceguys/intl/resources/language/ar-EG.json61
-rw-r--r--vendor/commerceguys/intl/resources/language/ar-LY.json63
-rw-r--r--vendor/commerceguys/intl/resources/language/ar-SA.json55
-rw-r--r--vendor/commerceguys/intl/resources/language/ar.json63
-rw-r--r--vendor/commerceguys/intl/resources/language/asa.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ast.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/az-Cyrl.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/az.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/bas.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/be.json63
-rw-r--r--vendor/commerceguys/intl/resources/language/bem.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/bez.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/bg.json49
-rw-r--r--vendor/commerceguys/intl/resources/language/bm.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/bn-IN.json35
-rw-r--r--vendor/commerceguys/intl/resources/language/bn.json35
-rw-r--r--vendor/commerceguys/intl/resources/language/br.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/brx.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/bs-Cyrl.json123
-rw-r--r--vendor/commerceguys/intl/resources/language/bs.json31
-rw-r--r--vendor/commerceguys/intl/resources/language/ca.json29
-rw-r--r--vendor/commerceguys/intl/resources/language/ce.json139
-rw-r--r--vendor/commerceguys/intl/resources/language/cgg.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/chr.json33
-rw-r--r--vendor/commerceguys/intl/resources/language/ckb.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/cs.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/cy.json23
-rw-r--r--vendor/commerceguys/intl/resources/language/da.json19
-rw-r--r--vendor/commerceguys/intl/resources/language/dav.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/de-AT.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/de-CH.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/de-LU.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/de.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/dje.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/dsb.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/dyo.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/dz.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ebu.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ee.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/el.json139
-rw-r--r--vendor/commerceguys/intl/resources/language/en-AU.json24
-rw-r--r--vendor/commerceguys/intl/resources/language/en-CA.json650
-rw-r--r--vendor/commerceguys/intl/resources/language/en-GB.json650
-rw-r--r--vendor/commerceguys/intl/resources/language/en-IN.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/en.json18
-rw-r--r--vendor/commerceguys/intl/resources/language/eo.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/es-AR.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-BO.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-BR.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-BZ.json644
-rw-r--r--vendor/commerceguys/intl/resources/language/es-CL.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-CO.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-CR.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-CU.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-DO.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-EC.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-GT.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-HN.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-MX.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-NI.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-PA.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-PE.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-PR.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-PY.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-SV.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-US.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/es-UY.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es-VE.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/es.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/et.json29
-rw-r--r--vendor/commerceguys/intl/resources/language/eu.json91
-rw-r--r--vendor/commerceguys/intl/resources/language/ewo.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/fa-AF.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/fa.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ff.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/fi.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/fil.json17
-rw-r--r--vendor/commerceguys/intl/resources/language/fo.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/fr-BE.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/fr-CA.json17
-rw-r--r--vendor/commerceguys/intl/resources/language/fr-CH.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/fr.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/fur.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/fy.json19
-rw-r--r--vendor/commerceguys/intl/resources/language/ga.json39
-rw-r--r--vendor/commerceguys/intl/resources/language/gd.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/gl.json83
-rw-r--r--vendor/commerceguys/intl/resources/language/gsw.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/gu.json55
-rw-r--r--vendor/commerceguys/intl/resources/language/guz.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ha.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/he.json31
-rw-r--r--vendor/commerceguys/intl/resources/language/hi.json27
-rw-r--r--vendor/commerceguys/intl/resources/language/hr.json17
-rw-r--r--vendor/commerceguys/intl/resources/language/hsb.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/hu.json19
-rw-r--r--vendor/commerceguys/intl/resources/language/hy.json33
-rw-r--r--vendor/commerceguys/intl/resources/language/id.json33
-rw-r--r--vendor/commerceguys/intl/resources/language/ig.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/is.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/it.json17
-rw-r--r--vendor/commerceguys/intl/resources/language/ja.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/jmc.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ka.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/kab.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/kam.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/kde.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/kea.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/khq.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ki.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/kk.json75
-rw-r--r--vendor/commerceguys/intl/resources/language/kln.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/km.json49
-rw-r--r--vendor/commerceguys/intl/resources/language/kn.json79
-rw-r--r--vendor/commerceguys/intl/resources/language/ko.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/kok.json709
-rw-r--r--vendor/commerceguys/intl/resources/language/ks.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ksb.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ksf.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ksh.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ky.json43
-rw-r--r--vendor/commerceguys/intl/resources/language/lag.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/lb.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/lg.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/lkt.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ln.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/lo.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/lrc.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/lt.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/lu.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/luo.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/luy.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/lv.json69
-rw-r--r--vendor/commerceguys/intl/resources/language/mas.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/mer.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/mfe.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/mg.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/mgh.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/mk.json39
-rw-r--r--vendor/commerceguys/intl/resources/language/ml.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/mn.json119
-rw-r--r--vendor/commerceguys/intl/resources/language/mr.json17
-rw-r--r--vendor/commerceguys/intl/resources/language/ms.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/mt.json17
-rw-r--r--vendor/commerceguys/intl/resources/language/mua.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/my.json57
-rw-r--r--vendor/commerceguys/intl/resources/language/mzn.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/naq.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/nb.json29
-rw-r--r--vendor/commerceguys/intl/resources/language/nd.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ne.json43
-rw-r--r--vendor/commerceguys/intl/resources/language/nl.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/nmg.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/nn.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/nus.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/nyn.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/om.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/or.json445
-rw-r--r--vendor/commerceguys/intl/resources/language/os.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/pa.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pl.json19
-rw-r--r--vendor/commerceguys/intl/resources/language/ps.json819
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-AO.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-CH.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-CV.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-GQ.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-GW.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-LU.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-MO.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-MZ.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-PT.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-ST.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt-TL.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/pt.json53
-rw-r--r--vendor/commerceguys/intl/resources/language/qu.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/rm.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/rn.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ro-MD.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/ro.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/rof.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ru.json25
-rw-r--r--vendor/commerceguys/intl/resources/language/rw.json17
-rw-r--r--vendor/commerceguys/intl/resources/language/rwk.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/sah.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/saq.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/sbp.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/sd.json641
-rw-r--r--vendor/commerceguys/intl/resources/language/se-FI.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/se.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/seh.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ses.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/sg.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/shi-Latn.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/shi.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/si.json75
-rw-r--r--vendor/commerceguys/intl/resources/language/sk.json27
-rw-r--r--vendor/commerceguys/intl/resources/language/sl.json41
-rw-r--r--vendor/commerceguys/intl/resources/language/smn.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/sn.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/so.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/sq.json33
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json27
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Latn-BA.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Latn-ME.json27
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Latn-XK.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/sr-Latn.json27
-rw-r--r--vendor/commerceguys/intl/resources/language/sr.json27
-rw-r--r--vendor/commerceguys/intl/resources/language/sv-FI.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/sv.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/sw-CD.json33
-rw-r--r--vendor/commerceguys/intl/resources/language/sw-KE.json27
-rw-r--r--vendor/commerceguys/intl/resources/language/sw.json33
-rw-r--r--vendor/commerceguys/intl/resources/language/ta.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/te.json107
-rw-r--r--vendor/commerceguys/intl/resources/language/teo.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/tg.json641
-rw-r--r--vendor/commerceguys/intl/resources/language/th.json71
-rw-r--r--vendor/commerceguys/intl/resources/language/ti.json51
-rw-r--r--vendor/commerceguys/intl/resources/language/tk.json641
-rw-r--r--vendor/commerceguys/intl/resources/language/to.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/tr.json41
-rw-r--r--vendor/commerceguys/intl/resources/language/tt.json641
-rw-r--r--vendor/commerceguys/intl/resources/language/twq.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/tzm.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/ug.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/uk.json93
-rw-r--r--vendor/commerceguys/intl/resources/language/ur-IN.json31
-rw-r--r--vendor/commerceguys/intl/resources/language/ur.json51
-rw-r--r--vendor/commerceguys/intl/resources/language/uz-Cyrl.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/uz.json139
-rw-r--r--vendor/commerceguys/intl/resources/language/vai-Latn.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/vai.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/vi.json29
-rw-r--r--vendor/commerceguys/intl/resources/language/vun.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/wae.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/wo.json641
-rw-r--r--vendor/commerceguys/intl/resources/language/xog.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/yav.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/yi.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/yo-BJ.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/yo.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/yue.json635
-rw-r--r--vendor/commerceguys/intl/resources/language/zgh.json15
-rw-r--r--vendor/commerceguys/intl/resources/language/zh-Hant-HK.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/zh-Hant-MO.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/zh-Hant.json21
-rw-r--r--vendor/commerceguys/intl/resources/language/zh.json405
-rw-r--r--vendor/commerceguys/intl/resources/language/zu.json15
-rw-r--r--vendor/commerceguys/intl/resources/number_format/bg.json4
-rw-r--r--vendor/commerceguys/intl/resources/number_format/bs-Cyrl.json9
-rw-r--r--vendor/commerceguys/intl/resources/number_format/ckb.json4
-rw-r--r--vendor/commerceguys/intl/resources/number_format/de-CH.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/de-LI.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/el.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/es-BZ.json (renamed from vendor/commerceguys/intl/resources/number_format/yue.json)4
-rw-r--r--vendor/commerceguys/intl/resources/number_format/es-CO.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/es-DO.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/es-MX.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/eu.json3
-rw-r--r--vendor/commerceguys/intl/resources/number_format/fa-AF.json4
-rw-r--r--vendor/commerceguys/intl/resources/number_format/fa.json6
-rw-r--r--vendor/commerceguys/intl/resources/number_format/fr-CH.json3
-rw-r--r--vendor/commerceguys/intl/resources/number_format/hy.json4
-rw-r--r--vendor/commerceguys/intl/resources/number_format/it-CH.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/ka.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/or.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/pt.json4
-rw-r--r--vendor/commerceguys/intl/resources/number_format/sd.json12
-rw-r--r--vendor/commerceguys/intl/resources/number_format/sl.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/tg.json9
-rw-r--r--vendor/commerceguys/intl/resources/number_format/tt.json9
-rw-r--r--vendor/commerceguys/intl/resources/number_format/ur-IN.json4
-rw-r--r--vendor/commerceguys/intl/resources/number_format/ur.json6
-rw-r--r--vendor/commerceguys/intl/resources/number_format/vi.json2
-rw-r--r--vendor/commerceguys/intl/resources/number_format/wo.json9
-rw-r--r--vendor/commerceguys/intl/resources/number_format/zu.json2
-rw-r--r--vendor/commerceguys/intl/scripts/fetch_data.sh2
-rw-r--r--vendor/commerceguys/intl/scripts/number_format/generate.php2
-rw-r--r--vendor/commerceguys/intl/src/Formatter/NumberFormatter.php2
-rw-r--r--vendor/composer/ClassLoader.php15
-rw-r--r--vendor/composer/autoload_classmap.php234
-rw-r--r--vendor/composer/autoload_namespaces.php1
-rw-r--r--vendor/composer/autoload_psr4.php1
-rw-r--r--vendor/composer/autoload_static.php296
-rw-r--r--vendor/composer/installed.json71
-rw-r--r--vendor/ezyang/htmlpurifier/NEWS14
-rw-r--r--vendor/ezyang/htmlpurifier/README.md4
-rw-r--r--vendor/ezyang/htmlpurifier/VERSION2
-rw-r--r--vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload-legacy.php15
-rw-r--r--vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload.php5
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php15
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php5
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php2
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier.php6
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php2
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php2
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php13
-rw-r--r--[-rwxr-xr-x]vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README0
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php12
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php6
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php57
-rw-r--r--vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php4
-rw-r--r--vendor/ezyang/htmlpurifier/maintenance/PH5P.php4
-rw-r--r--[-rwxr-xr-x]vendor/ezyang/htmlpurifier/maintenance/compile-doxygen.sh0
-rw-r--r--[-rwxr-xr-x]vendor/ezyang/htmlpurifier/maintenance/flush-definition-cache.php0
-rw-r--r--[-rwxr-xr-x]vendor/ezyang/htmlpurifier/maintenance/generate-entity-file.php0
-rw-r--r--[-rwxr-xr-x]vendor/ezyang/htmlpurifier/maintenance/generate-standalone.php0
-rw-r--r--[-rwxr-xr-x]vendor/ezyang/htmlpurifier/maintenance/merge-library.php0
-rw-r--r--[-rwxr-xr-x]vendor/ezyang/htmlpurifier/maintenance/regenerate-docs.sh0
-rw-r--r--vendor/michelf/php-markdown/.gitignore3
-rw-r--r--vendor/michelf/php-markdown/License.md6
-rw-r--r--vendor/michelf/php-markdown/Michelf/Markdown.php190
-rw-r--r--vendor/michelf/php-markdown/Michelf/MarkdownExtra.php307
-rw-r--r--vendor/michelf/php-markdown/Michelf/MarkdownInterface.php4
-rw-r--r--vendor/michelf/php-markdown/Readme.md193
-rw-r--r--vendor/michelf/php-markdown/Readme.php8
-rw-r--r--vendor/michelf/php-markdown/composer.json7
-rw-r--r--vendor/sabre/http/.travis.yml2
-rw-r--r--vendor/sabre/http/CHANGELOG.md11
-rw-r--r--vendor/sabre/http/lib/Auth/Basic.php2
-rw-r--r--vendor/sabre/http/lib/Sapi.php6
-rw-r--r--vendor/sabre/http/lib/Version.php2
-rw-r--r--vendor/sabre/vobject/CHANGELOG.md16
-rw-r--r--vendor/sabre/vobject/composer.json2
-rw-r--r--vendor/sabre/vobject/lib/ITip/Broker.php20
-rw-r--r--vendor/sabre/vobject/lib/Parser/MimeDir.php8
-rw-r--r--vendor/sabre/vobject/lib/Property.php5
-rw-r--r--vendor/sabre/vobject/lib/Property/Text.php5
-rw-r--r--vendor/sabre/vobject/lib/Recur/RRuleIterator.php6
-rw-r--r--vendor/sabre/vobject/lib/Version.php2
-rw-r--r--vendor/sabre/vobject/lib/timezonedata/php-bc.php1
-rw-r--r--view/css/conversation.css23
-rw-r--r--view/css/mod_help.css4
-rw-r--r--view/css/mod_import.css37
-rw-r--r--view/css/mod_oauth2testvehicle.css4
-rw-r--r--view/css/widgets.css1
-rw-r--r--view/de-de/hmessages.po3204
-rw-r--r--view/de-de/hstrings.php207
-rw-r--r--view/es-es/hmessages.po3143
-rw-r--r--view/es-es/hstrings.php153
-rw-r--r--view/fr/hmessages.po3092
-rw-r--r--view/fr/hstrings.php167
-rw-r--r--view/it/hmessages.po2618
-rw-r--r--view/it/hstrings.php475
-rw-r--r--view/js/autocomplete.js43
-rw-r--r--view/js/main.js77
-rw-r--r--view/js/mod_help.js6
-rw-r--r--view/pdl/mod_display.pdl3
-rw-r--r--view/pdl/mod_pubstream.pdl3
-rw-r--r--view/theme/redbasic/css/style.css21
-rw-r--r--view/theme/redbasic/schema/BS-Default.css7
-rw-r--r--view/theme/redbasic/schema/Focus-Boxy.css15
-rw-r--r--view/theme/redbasic/schema/Focus-Boxy.php (renamed from view/theme/redbasic/schema/boxy.php)0
-rw-r--r--view/theme/redbasic/schema/Focus-Light.css4
-rw-r--r--view/theme/redbasic/schema/Focus-Light.php (renamed from view/theme/redbasic/schema/BS-Default.php)0
-rw-r--r--view/theme/redbasic/schema/boxy.css7
-rw-r--r--view/theme/redbasic/schema/dark.css4
-rw-r--r--view/theme/redbasic/schema/simple_black_on_white_(unmaintained,deprecated).css (renamed from view/theme/redbasic/schema/simple_black_on_white.css)0
-rw-r--r--view/theme/redbasic/schema/simple_black_on_white_(unmaintained,deprecated).php (renamed from view/theme/redbasic/schema/simple_black_on_white.php)0
-rw-r--r--view/theme/redbasic/schema/simple_green_on_black_(unmaintained,deprecated).css (renamed from view/theme/redbasic/schema/simple_green_on_black.css)0
-rw-r--r--view/theme/redbasic/schema/simple_green_on_black_(unmaintained,deprecated).php (renamed from view/theme/redbasic/schema/simple_green_on_black.php)0
-rw-r--r--view/theme/redbasic/schema/simple_white_on_black_(unmaintained,deprecated).css (renamed from view/theme/redbasic/schema/simple_white_on_black.css)0
-rw-r--r--view/theme/redbasic/schema/simple_white_on_black_(unmaintained,deprecated).php (renamed from view/theme/redbasic/schema/simple_white_on_black.php)0
-rwxr-xr-xview/tpl/admin_site.tpl3
-rwxr-xr-xview/tpl/channel_import.tpl60
-rw-r--r--view/tpl/cloud_directory.tpl6
-rw-r--r--view/tpl/cloud_header.tpl2
-rwxr-xr-xview/tpl/comment_item.tpl3
-rwxr-xr-xview/tpl/connections.tpl2
-rwxr-xr-xview/tpl/conv_item.tpl54
-rwxr-xr-xview/tpl/conv_list.tpl49
-rwxr-xr-xview/tpl/cover_photo.tpl8
-rw-r--r--view/tpl/generic_addon_settings.tpl4
-rwxr-xr-xview/tpl/jot-header.tpl93
-rwxr-xr-xview/tpl/jot.tpl4
-rwxr-xr-xview/tpl/navbar_default.tpl4
-rwxr-xr-xview/tpl/navbar_tucson.tpl4
-rw-r--r--view/tpl/oauth2testvehicle.tpl21
-rwxr-xr-xview/tpl/oauth_authorize.tpl18
-rwxr-xr-xview/tpl/photo_album.tpl2
-rwxr-xr-xview/tpl/photos_recent.tpl2
-rwxr-xr-xview/tpl/profile_edit.tpl8
-rwxr-xr-xview/tpl/profile_photo.tpl4
-rw-r--r--view/tpl/profile_tabs.tpl3
-rwxr-xr-xview/tpl/settings.tpl5
-rwxr-xr-xview/tpl/settings_features.tpl22
-rwxr-xr-xview/tpl/settings_nick_set.tpl2
-rwxr-xr-xview/tpl/settings_oauth2.tpl35
-rwxr-xr-xview/tpl/settings_oauth2_edit.tpl21
-rwxr-xr-xview/tpl/settings_oauth_edit.tpl1
-rw-r--r--view/tpl/wiki.tpl1
1045 files changed, 48488 insertions, 29968 deletions
diff --git a/.travis.yml b/.travis.yml
index 94c7b4226..8db58f3dc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -62,28 +62,34 @@ matrix:
fast_finish: true
# Additional check combinations
include:
- # PHP7.1, mariadb 10.1
- - php: '7.1'
- env: DB=mariadb MARIADB_VERSION=10.1 CODECOV=1
+ # PHP7.2, mariadb 10.2
+ - php: '7.2'
+ env: DB=mariadb MARIADB_VERSION=10.2 CODECOV=1
# use mariadb instead of MySQL
addons:
- mariadb: '10.1'
- # PHP7.1, PostgreSQL 9.6
- - php: '7.1'
+ mariadb: '10.2'
+ # PHP7.2, PostgreSQL 9.6
+ - php: '7.2'
env: DB=pgsql POSTGRESQL_VERSION=9.6 PHPUNITFILE=phpunit-pgsql.xml
# Use newer postgres than 9.2 default
addons:
postgresql: '9.6'
services:
- postgresql
- # PHP7.1, old precise distribution with MySQL 5.5
- - php: '7.1'
+ # PostgreSQL 10 with Docker container
+ - php: '7.2'
+ env: DB=pgsql POSTGRESQL_VERSION=10 PHPUNITFILE=phpunit-pgsql.xml
+ sudo: required
+ services:
+ - docker
+ # PHP7.2, old precise distribution with MySQL 5.5
+ - php: '7.2'
env: DB=mysql MYSQL_VERSION=5.5
dist: precise
services:
- mysql
# MySQL 5.7 with Docker container
- - php: '7.1'
+ - php: '7.2'
env: DB=mysql MYSQL_VERSION=5.7
sudo: required
services:
@@ -109,6 +115,8 @@ before_install:
- travis_retry composer self-update
# Start MySQL 5.7 Docker container, needs some time to come up
- if [[ "$MYSQL_VERSION" == "5.7" ]]; then sudo service mysql stop; docker run -d -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mysql:5.7 && sleep 25 && docker ps; fi
+ # Start PostgreSQL 10 Docker container, needs some time to come up
+ - if [[ "$POSTGRESQL_VERSION" == "10" ]]; then sudo service postgresql stop; docker run -d -p 5432:5432 postgres:10-alpine && sleep 35 && docker ps; fi
# Install composer dev libs
install:
diff --git a/CHANGELOG b/CHANGELOG
index ad5e004c8..62645b2b1 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,79 @@
+Hubzilla 3.4 (2018-05-04)
+ - Provide warnings about profile photo and cover photo permissions
+ - Don't duplicate addressbook entries on repeated channel imports
+ - Where possible strip zid parameter from links that get pasted into posts so that they will get a correct zid when rendered
+ - Rename boxy schema to Focus-Boxy
+ - Rename BS-Default schema to Focus-Light
+ - Mark simple_* schemas unmaintained and deprecated - they will be removed in next release if nobody steps up to maintain them.
+ - Implement trending tags for mod pubstream
+ - Relax restrictions to the design tools menu to allow those with write_pages permission
+ - Add alt pager to mod moderate
+ - Show existing cover photo when changing it
+ - Update to bootstrap lib to version 4.1
+ - Provide a higher accuracy method for active channels information
+ - Provide visible star status for starred posts
+ - Move the thread author menu to the wall item photo
+ - Accept system_language through either get or post
+ - Remove recipient name from stored notifications but keep them in emails
+ - Fix issue of being forced to log back in after leaving a delegated channel
+ - Implement last commented expiration setting in mod admin
+ - Create catcloud widget and provide a type option which can include 'cards' or 'articles'
+ - Modified notifications widget to add the public stream when the current user is allowed to see it only
+ - Don't provide a connect button for transient identities
+ - Merge techlevels and features
+ - Implement auto-save posts and comments in browser using localStorage
+ - Display directory server in siteinfo.json
+ - Bring back the dnt policy document
+ - Implement OAuth2/OpenIDConnect server
+ - Add basic structure for additional features documentation
+ - Community tag refactor
+ - Obscurify chats
+ - Provide a way to share wiki pages
+ - Update folder timestamp on uploaded files
+ - Code optimisations and de-duplication on updating parent commented timestamp
+ - Turn newmember widget into a feature
+ - Make list mode work in cards and articles
+ - Make alt pager work for articles and cards
+ - Initial support for alternative sort orders on the cloud pages
+ - Add Ochannel module for testing OStatus bad behaviour
+ - Add the social - federation permission role
+ - Update justified gallery lib from 3.6.3 to 3.6.5
+
+ Bugfixes
+ - Fix regression with forum widget unseen count
+ - Fix issue with imagemagick exif info
+ - Aonymous comments in StdLimits shouldn't be allowed
+ - Fix wiki pages not syncing
+ - Show "Unseen public activity" channel setting when site only public streams are activated
+ - Fix channel import failing to provide channel_password value
+ - Fix permalinks to children of articles and cards
+ - Fix missing year on profile birthday input
+ - Fix missing login/out buttons for medium screensize
+ - Preserve existing categories when updating an app from an embed source
+ - Fix app sellpage not being stored
+ - Fix tagadelic being overly protective of permissions
+ - Fix comments not displayed in single card/article view
+ - Fix anonymous comments bump thread
+ - Fix pending registrations visible in admin accounts
+
+ Addons
+ Pubcrawl: fix issues with "private" messages
+ Pubcrawl: fix issues with postgresql
+ Fuzzloc: new addon to blur your browser location
+ Pubcrawl: implement follow by webfinger
+ Cart: new addon which provides online shop functionalities (experimental)
+ Pubcrawl: implement two-way summary functionality
+ Wordpress: upgrade incutio xmlrpc library to use hubzilla curl wrapper
+ Hzfiles: various fixes
+ Diaspora: support full_name attribute in profile messages
+ Frphotos: deprecate plugin (keep it for reference)
+ Webmention: require html5 parser
+ GNU-Social: provide alternative xchan_url
+ Diaspora: fix wrong callback function
+ Diaspora: fix conversion of forum mentions to markdown by providing a !{forum@host} link syntax
+ Diaspora: fix item title not transferred
+
+
Hubzilla 3.2 (2018-03-09)
- Improve rendering of Readme files in plugin settings
- Add pdl file for mod moderate
diff --git a/Zotlabs/Access/PermissionLimits.php b/Zotlabs/Access/PermissionLimits.php
index 125d11b7b..b8ca3034c 100644
--- a/Zotlabs/Access/PermissionLimits.php
+++ b/Zotlabs/Access/PermissionLimits.php
@@ -72,13 +72,13 @@ class PermissionLimits {
* @param int $channel_id
* @param string $perm (optional)
* @return
- * * \b boolean false if no perm_limits set for this channel
- * * \b int if $perm is set, return one of PERMS_* constants for this permission
+ * * \b false if no perm_limits set for this channel
+ * * \b int if $perm is set, return one of PERMS_* constants for this permission, default 0
* * \b array with all permission limits, if $perm is not set
*/
static public function Get($channel_id, $perm = '') {
if($perm) {
- return PConfig::Get($channel_id, 'perm_limits', $perm);
+ return intval(PConfig::Get($channel_id, 'perm_limits', $perm));
}
PConfig::Load($channel_id);
diff --git a/Zotlabs/Access/PermissionRoles.php b/Zotlabs/Access/PermissionRoles.php
index b335bf825..9855a05c4 100644
--- a/Zotlabs/Access/PermissionRoles.php
+++ b/Zotlabs/Access/PermissionRoles.php
@@ -41,6 +41,24 @@ class PermissionRoles {
break;
+ case 'social_federation':
+ $ret['perms_auto'] = false;
+ $ret['default_collection'] = false;
+ $ret['directory_publish'] = true;
+ $ret['online'] = true;
+ $ret['perms_connect'] = [
+ 'view_stream', 'view_profile', 'view_contacts', 'view_storage',
+ 'view_pages', 'view_wiki', 'send_stream', 'post_wall', 'post_comments',
+ 'post_mail', 'chat', 'post_like', 'republish'
+ ];
+ $ret['limits'] = PermissionLimits::Std_Limits();
+ $ret['limits']['post_comments'] = PERMS_AUTHED;
+ $ret['limits']['post_mail'] = PERMS_AUTHED;
+ $ret['limits']['post_like'] = PERMS_AUTHED;
+ $ret['limits']['chat'] = PERMS_AUTHED;
+ break;
+
+
case 'social_restricted':
$ret['perms_auto'] = false;
$ret['default_collection'] = true;
@@ -263,6 +281,7 @@ class PermissionRoles {
static public function roles() {
$roles = [
t('Social Networking') => [
+ 'social_federation' => t('Social - Federation'),
'social' => t('Social - Mostly Public'),
'social_restricted' => t('Social - Restricted'),
'social_private' => t('Social - Private')
diff --git a/Zotlabs/Daemon/Expire.php b/Zotlabs/Daemon/Expire.php
index 215513e87..398425861 100644
--- a/Zotlabs/Daemon/Expire.php
+++ b/Zotlabs/Daemon/Expire.php
@@ -34,7 +34,8 @@ class Expire {
logger('expire: start', LOGGER_DEBUG);
- $site_expire = get_config('system', 'default_expire_days');
+ $site_expire = intval(get_config('system', 'default_expire_days'));
+ $commented_days = intval(get_config('system','active_expire_days'));
logger('site_expire: ' . $site_expire);
@@ -64,7 +65,7 @@ class Expire {
// if the site or service class expiration is non-zero and less than person expiration, use that
logger('Expire: ' . $rr['channel_address'] . ' interval: ' . $expire_days, LOGGER_DEBUG);
- item_expire($rr['channel_id'], $expire_days);
+ item_expire($rr['channel_id'], $expire_days, $commented_days);
}
}
@@ -85,7 +86,7 @@ class Expire {
logger('Expire: sys interval: ' . $expire_days, LOGGER_DEBUG);
if ($expire_days)
- item_expire($x['channel_id'], $expire_days);
+ item_expire($x['channel_id'], $expire_days, $commented_days);
logger('Expire: sys: done', LOGGER_DEBUG);
}
diff --git a/Zotlabs/Lib/Chatroom.php b/Zotlabs/Lib/Chatroom.php
index e762620ae..882c846cd 100644
--- a/Zotlabs/Lib/Chatroom.php
+++ b/Zotlabs/Lib/Chatroom.php
@@ -266,7 +266,7 @@ class Chatroom {
intval($room_id),
dbesc($xchan),
dbesc(datetime_convert()),
- dbesc($arr['chat_text'])
+ dbesc(str_rot47(base64url_encode($arr['chat_text'])))
);
$ret['success'] = true;
diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php
index 61c98c881..cfb0bd344 100644
--- a/Zotlabs/Lib/Enotify.php
+++ b/Zotlabs/Lib/Enotify.php
@@ -115,6 +115,9 @@ class Enotify {
$always_show_in_notices = get_pconfig($recip['channel_id'],'system','always_show_in_notices');
+ $vnotify = get_pconfig($recip['channel_id'],'system','vnotify');
+
+ $salutation = $recip['channel_name'];
// e.g. "your post", "David's photo", etc.
$possess_desc = t('%s <!item_type!>');
@@ -123,7 +126,7 @@ class Enotify {
logger('notification: mail');
$subject = sprintf( t('[$Projectname:Notify] New mail received at %s'),$sitename);
- $preamble = sprintf( t('%1$s, %2$s sent you a new private message at %3$s.'),$recip['channel_name'], $sender['xchan_name'],$sitename);
+ $preamble = sprintf( t('%1$s sent you a new private message at %2$s.'), $sender['xchan_name'],$sitename);
$epreamble = sprintf( t('%1$s sent you %2$s.'),'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]', '[zrl=$itemlink]' . t('a private message') . '[/zrl]');
$sitelink = t('Please visit %s to view and/or reply to your private messages.');
$tsitelink = sprintf( $sitelink, $siteurl . '/mail/' . $params['item']['id'] );
@@ -142,7 +145,7 @@ class Enotify {
if(array_key_exists('item',$params) && in_array($params['item']['verb'], [ACTIVITY_LIKE, ACTIVITY_DISLIKE])) {
- if(! $always_show_in_notices) {
+ if(! $always_show_in_notices || !($vnotify & VNOTIFY_LIKE)) {
logger('notification: not a visible activity. Ignoring.');
pop_lang();
return;
@@ -195,8 +198,7 @@ class Enotify {
//$possess_desc = str_replace('<!item_type!>',$possess_desc);
// "a post"
- $dest_str = sprintf(t('%1$s, %2$s %3$s [zrl=%4$s]a %5$s[/zrl]'),
- $recip['channel_name'],
+ $dest_str = sprintf(t('%1$s %2$s [zrl=%3$s]a %4$s[/zrl]'),
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$action,
$itemlink,
@@ -204,8 +206,7 @@ class Enotify {
// "George Bull's post"
if($p)
- $dest_str = sprintf(t('%1$s, %2$s %3$s [zrl=%4$s]%5$s\'s %6$s[/zrl]'),
- $recip['channel_name'],
+ $dest_str = sprintf(t('%1$s %2$s [zrl=%3$s]%4$s\'s %5$s[/zrl]'),
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$action,
$itemlink,
@@ -214,8 +215,7 @@ class Enotify {
// "your post"
if($p[0]['owner']['xchan_name'] == $p[0]['author']['xchan_name'] && intval($p[0]['item_wall']))
- $dest_str = sprintf(t('%1$s, %2$s %3$s [zrl=%4$s]your %5$s[/zrl]'),
- $recip['channel_name'],
+ $dest_str = sprintf(t('%1$s %2$s [zrl=%3$s]your %4$s[/zrl]'),
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$action,
$itemlink,
@@ -230,7 +230,7 @@ class Enotify {
$subject = sprintf( t('[$Projectname:Notify] Moderated Comment to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
else
$subject = sprintf( t('[$Projectname:Notify] Comment to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
- $preamble = sprintf( t('%1$s, %2$s commented on an item/conversation you have been following.'), $recip['channel_name'], $sender['xchan_name']);
+ $preamble = sprintf( t('%1$s commented on an item/conversation you have been following.'), $sender['xchan_name']);
$epreamble = $dest_str;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -249,7 +249,7 @@ class Enotify {
$itemlink = $params['link'];
if (array_key_exists('item',$params) && (! activity_match($params['item']['verb'],ACTIVITY_LIKE))) {
- if(! $always_show_in_notices) {
+ if(! $always_show_in_notices || !($vnotify & VNOTIFY_LIKE)) {
logger('notification: not a visible activity. Ignoring.');
pop_lang();
return;
@@ -296,8 +296,7 @@ class Enotify {
// "your post"
if($p[0]['owner']['xchan_name'] == $p[0]['author']['xchan_name'] && intval($p[0]['item_wall']))
- $dest_str = sprintf(t('%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]'),
- $recip['channel_name'],
+ $dest_str = sprintf(t('%1$s liked [zrl=%2$s]your %3$s[/zrl]'),
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink,
$item_post_type);
@@ -312,7 +311,7 @@ class Enotify {
// differents subjects for messages on the same thread.
$subject = sprintf( t('[$Projectname:Notify] Like received to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']);
- $preamble = sprintf( t('%1$s, %2$s liked an item/conversation you created.'), $recip['channel_name'], $sender['xchan_name']);
+ $preamble = sprintf( t('%1$s liked an item/conversation you created.'), $sender['xchan_name']);
$epreamble = $dest_str;
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
@@ -325,10 +324,9 @@ class Enotify {
if($params['type'] == NOTIFY_WALL) {
$subject = sprintf( t('[$Projectname:Notify] %s posted to your profile wall') , $sender['xchan_name']);
- $preamble = sprintf( t('%1$s, %2$s posted to your profile wall at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
+ $preamble = sprintf( t('%1$s posted to your profile wall at %2$s') , $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]') ,
- $recip['channel_name'],
+ $epreamble = sprintf( t('%1$s posted to [zrl=%2$s]your wall[/zrl]') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
@@ -352,9 +350,8 @@ class Enotify {
}
$subject = sprintf( t('[$Projectname:Notify] %s tagged you') , $sender['xchan_name']);
- $preamble = sprintf( t('%1$s, %2$s tagged you at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s, %2$s [zrl=%3$s]tagged you[/zrl].') ,
- $recip['channel_name'],
+ $preamble = sprintf( t('%1$s tagged you at %2$s') , $sender['xchan_name'], $sitename);
+ $epreamble = sprintf( t('%1$s [zrl=%2$s]tagged you[/zrl].') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
@@ -366,9 +363,8 @@ class Enotify {
if ($params['type'] == NOTIFY_POKE) {
$subject = sprintf( t('[$Projectname:Notify] %1$s poked you') , $sender['xchan_name']);
- $preamble = sprintf( t('%1$s, %2$s poked you at %3$s') , $recip['channel_name'], $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s, %2$s [zrl=%2$s]poked you[/zrl].') ,
- $recip['channel_name'],
+ $preamble = sprintf( t('%1$s poked you at %2$s') , $sender['xchan_name'], $sitename);
+ $epreamble = sprintf( t('%1$s [zrl=%2$s]poked you[/zrl].') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$params['link']);
@@ -384,9 +380,8 @@ class Enotify {
if ($params['type'] == NOTIFY_TAGSHARE) {
$subject = sprintf( t('[$Projectname:Notify] %s tagged your post') , $sender['xchan_name']);
- $preamble = sprintf( t('%1$s, %2$s tagged your post at %3$s') , $recip['channel_name'],$sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]') ,
- $recip['channel_name'],
+ $preamble = sprintf( t('%1$s tagged your post at %2$s'),$sender['xchan_name'], $sitename);
+ $epreamble = sprintf( t('%1$s tagged [zrl=%2$s]your post[/zrl]') ,
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]',
$itemlink);
@@ -398,9 +393,8 @@ class Enotify {
if ($params['type'] == NOTIFY_INTRO) {
$subject = sprintf( t('[$Projectname:Notify] Introduction received'));
- $preamble = sprintf( t('%1$s, you\'ve received an new connection request from \'%2$s\' at %3$s'), $recip['channel_name'], $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s, you\'ve received [zrl=%2$s]a new connection request[/zrl] from %3$s.'),
- $recip['channel_name'],
+ $preamble = sprintf( t('You\'ve received an new connection request from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
+ $epreamble = sprintf( t('You\'ve received [zrl=%1$s]a new connection request[/zrl] from %2$s.'),
$siteurl . '/connections/ifpending',
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
$body = sprintf( t('You may visit their profile at %s'),$sender['xchan_url']);
@@ -413,9 +407,8 @@ class Enotify {
if ($params['type'] == NOTIFY_SUGGEST) {
$subject = sprintf( t('[$Projectname:Notify] Friend suggestion received'));
- $preamble = sprintf( t('%1$s, you\'ve received a friend suggestion from \'%2$s\' at %3$s'), $recip['channel_name'], $sender['xchan_name'], $sitename);
- $epreamble = sprintf( t('%1$s, you\'ve received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s.'),
- $recip['channel_name'],
+ $preamble = sprintf( t('You\'ve received a friend suggestion from \'%1$s\' at %2$s'), $sender['xchan_name'], $sitename);
+ $epreamble = sprintf( t('You\'ve received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s.'),
$itemlink,
'[zrl=' . $params['item']['url'] . ']' . $params['item']['name'] . '[/zrl]',
'[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]');
@@ -664,7 +657,7 @@ class Enotify {
'$banner' => $datarray['banner'],
'$notify_icon' => \Zotlabs\Lib\System::get_notify_icon(),
'$product' => $datarray['product'],
- '$preamble' => $datarray['preamble'],
+ '$preamble' => $salutation . '<br><br>' . $datarray['preamble'],
'$sitename' => $datarray['sitename'],
'$siteurl' => $datarray['siteurl'],
'$source_name' => $datarray['source_name'],
@@ -686,7 +679,7 @@ class Enotify {
$email_text_body = replace_macros($tpl, array(
'$banner' => $datarray['banner'],
'$product' => $datarray['product'],
- '$preamble' => $datarray['preamble'],
+ '$preamble' => $salutation . "\n\n" . $datarray['preamble'],
'$sitename' => $datarray['sitename'],
'$siteurl' => $datarray['siteurl'],
'$source_name' => $datarray['source_name'],
@@ -754,8 +747,8 @@ class Enotify {
// generate a mime boundary
$mimeBoundary = rand(0, 9) . "-"
- .rand(10000000000, 9999999999) . "-"
- .rand(10000000000, 9999999999) . "=:"
+ .rand(100000000, 999999999) . "-"
+ .rand(100000000, 999999999) . "=:"
.rand(10000, 99999);
// generate a multipart/alternative message header
diff --git a/Zotlabs/Lib/NativeWiki.php b/Zotlabs/Lib/NativeWiki.php
index 7642dbb3e..6f916216e 100644
--- a/Zotlabs/Lib/NativeWiki.php
+++ b/Zotlabs/Lib/NativeWiki.php
@@ -171,16 +171,23 @@ class NativeWiki {
dbesc(NWIKI_ITEM_RESOURCE_TYPE),
dbesc($resource_id)
);
+
if($r) {
$q = q("select * from item where resource_type = 'nwikipage' and resource_id = '%s'",
- dbesc($r[0]['resource_type'])
+ dbesc($r[0]['resource_id'])
);
if($q) {
$r = array_merge($r,$q);
}
xchan_query($r);
$sync_item = fetch_post_tags($r);
- build_sync_packet($uid,array('wiki' => array(encode_item($sync_item[0],true))));
+ if($sync_item) {
+ $pkt = [];
+ foreach($sync_item as $w) {
+ $pkt[] = encode_item($w,true);
+ }
+ build_sync_packet($uid,array('wiki' => $pkt));
+ }
}
}
diff --git a/Zotlabs/Lib/Share.php b/Zotlabs/Lib/Share.php
index b5341e662..e9e4d23c4 100644
--- a/Zotlabs/Lib/Share.php
+++ b/Zotlabs/Lib/Share.php
@@ -123,11 +123,13 @@ class Share {
$bb = substr($this->item['body'], $pos);
} else {
$bb = "[share author='".urlencode($this->item['author']['xchan_name']).
- "' profile='".$this->item['author']['xchan_url'] .
- "' avatar='".$this->item['author']['xchan_photo_s'].
- "' link='".$this->item['plink'].
- "' posted='".$this->item['created'].
- "' message_id='".$this->item['mid']."']";
+ "' profile='" . $this->item['author']['xchan_url'] .
+ "' avatar='" . $this->item['author']['xchan_photo_s'] .
+ "' link='" . $this->item['plink'] .
+ "' auth='" . (($this->item['author']['network'] === 'zot') ? 'true' : 'false') .
+ "' posted='" . $this->item['created'] .
+ "' message_id='" . $this->item['mid'] .
+ "']";
if($this->item['title'])
$bb .= '[b]'.$this->item['title'].'[/b]'."\r\n";
$bb .= (($is_photo) ? $photo_bb . "\r\n" . $this->item['body'] : $this->item['body']);
diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php
index d35d4732a..61a012f9d 100644
--- a/Zotlabs/Lib/ThreadItem.php
+++ b/Zotlabs/Lib/ThreadItem.php
@@ -238,9 +238,9 @@ class ThreadItem {
'do' => t("Add Star"),
'undo' => t("Remove Star"),
'toggle' => t("Toggle Star Status"),
- 'classdo' => (intval($item['item_starred']) ? "hidden" : ""),
- 'classundo' => (intval($item['item_starred']) ? "" : "hidden"),
- 'isstarred' => (intval($item['item_starred']) ? "starred fa-star" : "unstarred fa-star-o"),
+ 'classdo' => ((intval($item['item_starred'])) ? "hidden" : ""),
+ 'classundo' => ((intval($item['item_starred'])) ? "" : "hidden"),
+ 'isstarred' => ((intval($item['item_starred'])) ? true : false),
'starred' => t('starred'),
);
@@ -733,6 +733,8 @@ class ThreadItem {
$arr = array('comment_buttons' => '','id' => $this->get_id());
call_hooks('comment_buttons',$arr);
$comment_buttons = $arr['comment_buttons'];
+
+ $feature_auto_save_draft = ((feature_enabled($conv->get_profile_owner(), 'auto_save_draft')) ? "true" : "false");
$comment_box = replace_macros($template,array(
'$return_path' => '',
@@ -768,7 +770,8 @@ class ThreadItem {
'$anoncomments' => ((($conv->get_mode() === 'channel' || $conv->get_mode() === 'display') && perm_is_allowed($conv->get_profile_owner(),'','post_comments')) ? true : false),
'$anonname' => [ 'anonname', t('Your full name (required)') ],
'$anonmail' => [ 'anonmail', t('Your email address (required)') ],
- '$anonurl' => [ 'anonurl', t('Your website URL (optional)') ]
+ '$anonurl' => [ 'anonurl', t('Your website URL (optional)') ],
+ '$auto_save_draft' => $feature_auto_save_draft,
));
return $comment_box;
diff --git a/Zotlabs/Module/Acl.php b/Zotlabs/Module/Acl.php
index fae7e2e44..4c5883e88 100644
--- a/Zotlabs/Module/Acl.php
+++ b/Zotlabs/Module/Acl.php
@@ -24,7 +24,7 @@ class Acl extends \Zotlabs\Web\Controller {
function init() {
- logger('mod_acl: ' . print_r($_REQUEST,true));
+ logger('mod_acl: ' . print_r($_REQUEST,true),LOGGER_DATA);
$start = (x($_REQUEST,'start') ? $_REQUEST['start'] : 0);
$count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 500);
@@ -82,7 +82,7 @@ class Acl extends \Zotlabs\Web\Controller {
if($search) {
$sql_extra = " AND groups.gname LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
- $sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc($search) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
+ $sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc(punify($search)) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") ";
// This horrible mess is needed because position also returns 0 if nothing is found.
// Would be MUCH easier if it instead returned a very large value
@@ -92,10 +92,10 @@ class Acl extends \Zotlabs\Web\Controller {
$order_extra2 = "CASE WHEN xchan_name LIKE "
. protect_sprintf( "'%" . dbesc($search) . "%'" )
. " then POSITION('" . protect_sprintf(dbesc($search))
- . "' IN xchan_name) else position('" . protect_sprintf(dbesc($search)) . "' IN xchan_addr) end, ";
+ . "' IN xchan_name) else position('" . protect_sprintf(dbesc(punify($search))) . "' IN xchan_addr) end, ";
$col = ((strpos($search,'@') !== false) ? 'xchan_addr' : 'xchan_name' );
- $sql_extra3 = "AND $col like " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " ";
+ $sql_extra3 = "AND $col like " . protect_sprintf( "'%" . dbesc(($col === 'xchan_addr') ? punify($search) : $search) . "%'" ) . " ";
}
else {
@@ -435,7 +435,7 @@ class Acl extends \Zotlabs\Web\Controller {
$count = (x($_REQUEST,'count') ? $_REQUEST['count'] : 100);
if($url) {
$query = $url . '?f=' . (($token) ? '&t=' . urlencode($token) : '');
- $query .= '&name=' . urlencode($search) . "&limit=$count" . (($address) ? '&address=' . urlencode($search) : '');
+ $query .= '&name=' . urlencode($search) . "&limit=$count" . (($address) ? '&address=' . urlencode(punify($search)) : '');
$x = z_fetch_url($query);
if($x['success']) {
diff --git a/Zotlabs/Module/Admin/Accounts.php b/Zotlabs/Module/Admin/Accounts.php
index 2e417edd1..0c7e089be 100644
--- a/Zotlabs/Module/Admin/Accounts.php
+++ b/Zotlabs/Module/Admin/Accounts.php
@@ -133,12 +133,13 @@ class Accounts {
$base = z_root() . '/admin/accounts?f=';
$odir = (($dir === 'asc') ? '0' : '1');
-
+
$users = q("SELECT account_id , account_email, account_lastlog, account_created, account_expires, account_service_class, ( account_flags & %d ) > 0 as blocked,
(SELECT %s FROM channel as ch WHERE ch.channel_account_id = ac.account_id and ch.channel_removed = 0 ) as channels FROM account as ac
- where true $serviceclass order by $key $dir limit %d offset %d ",
+ where true $serviceclass and account_flags != %d order by $key $dir limit %d offset %d ",
intval(ACCOUNT_BLOCKED),
db_concat('ch.channel_address', ' '),
+ intval(ACCOUNT_BLOCKED | ACCOUNT_PENDING),
intval(\App::$pager['itemspage']),
intval(\App::$pager['start'])
);
@@ -203,4 +204,4 @@ class Accounts {
}
-} \ No newline at end of file
+}
diff --git a/Zotlabs/Module/Admin/Site.php b/Zotlabs/Module/Admin/Site.php
index 6d5747380..656770ad9 100644
--- a/Zotlabs/Module/Admin/Site.php
+++ b/Zotlabs/Module/Admin/Site.php
@@ -39,9 +39,10 @@ class Site {
$site_location = ((x($_POST,'site_location')) ? notags(trim($_POST['site_location'])) : '');
$frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : '');
$firstpage = ((x($_POST,'firstpage')) ? notags(trim($_POST['firstpage'])) : 'profiles');
+ $first_page = ((x($_POST,'first_page')) ? notags(trim($_POST['first_page'])) : 'profiles');
// check value after trim
- if(! $firstpage) {
- $firstpage = 'profiles';
+ if(! $first_page) {
+ $first_page = 'profiles';
}
$mirror_frontpage = ((x($_POST,'mirror_frontpage')) ? intval(trim($_POST['mirror_frontpage'])) : 0);
$directory_server = ((x($_POST,'directory_server')) ? trim($_POST['directory_server']) : '');
@@ -55,6 +56,7 @@ class Site {
$global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : '');
$no_community_page = !((x($_POST,'no_community_page')) ? True : False);
$default_expire_days = ((array_key_exists('default_expire_days',$_POST)) ? intval($_POST['default_expire_days']) : 0);
+ $active_expire_days = ((array_key_exists('active_expire_days',$_POST)) ? intval($_POST['active_expire_days']) : 7);
$reply_address = ((array_key_exists('reply_address',$_POST) && trim($_POST['reply_address'])) ? trim($_POST['reply_address']) : 'noreply@' . \App::get_hostname());
$from_email = ((array_key_exists('from_email',$_POST) && trim($_POST['from_email'])) ? trim($_POST['from_email']) : 'Administrator@' . \App::get_hostname());
@@ -86,7 +88,7 @@ class Site {
set_config('system', 'maxloadavg', $maxloadavg);
set_config('system', 'frontpage', $frontpage);
set_config('system', 'sellpage', $site_sellpage);
- set_config('system', 'workflow_channel_next', $firstpage);
+ set_config('system', 'workflow_channel_next', $first_page);
set_config('system', 'site_location', $site_location);
set_config('system', 'mirror_frontpage', $mirror_frontpage);
set_config('system', 'sitename', $sitename);
@@ -94,6 +96,7 @@ class Site {
set_config('system', 'enable_context_help', $enable_context_help);
set_config('system', 'verify_email', $verify_email);
set_config('system', 'default_expire_days', $default_expire_days);
+ set_config('system', 'active_expire_days', $active_expire_days);
set_config('system', 'reply_address', $reply_address);
set_config('system', 'from_email', $from_email);
set_config('system', 'from_email_name' , $from_email_name);
@@ -347,9 +350,10 @@ class Site {
'$thumbnail_security' => array('thumbnail_security', t("Allow SVG thumbnails in file browser"), get_config('system','thumbnail_security',0), t("WARNING: SVG images may contain malicious code.")),
'$maxloadavg' => array('maxloadavg', t("Maximum Load Average"), ((intval(get_config('system','maxloadavg')) > 0)?get_config('system','maxloadavg'):50), t("Maximum system load before delivery and poll processes are deferred - default 50.")),
'$default_expire_days' => array('default_expire_days', t('Expiration period in days for imported (grid/network) content'), intval(get_config('system','default_expire_days')), t('0 for no expiration of imported content')),
+ '$active_expire_days' => array('active_expire_days', t('Do not expire any posts which have comments less than this many days ago'), intval(get_config('system','active_expire_days',7)), ''),
'$sellpage' => array('site_sellpage', t('Public servers: Optional landing (marketing) webpage for new registrants'), get_config('system','sellpage',''), sprintf( t('Create this page first. Default is %s/register'),z_root())),
- '$firstpage' => array('firstpage', t('Page to display after creating a new channel'), get_config('system','workflow_channel_next','profiles'), t('Recommend: profiles, go, or settings')),
+ '$first_page' => array('first_page', t('Page to display after creating a new channel'), get_config('system','workflow_channel_next','profiles'), t('Recommend: profiles, go, or settings')),
'$location' => array('site_location', t('Optional: site location'), get_config('system','site_location',''), t('Region or country')),
diff --git a/Zotlabs/Module/Articles.php b/Zotlabs/Module/Articles.php
index 62ce1cb9c..284868241 100644
--- a/Zotlabs/Module/Articles.php
+++ b/Zotlabs/Module/Articles.php
@@ -191,7 +191,7 @@ class Articles extends \Zotlabs\Web\Controller {
'$title' => t('Articles'),
'$editor' => $editor,
'$content' => $content,
- '$pager' => alt_pager($a,$pager_total)
+ '$pager' => alt_pager($pager_total)
]);
return $o;
diff --git a/Zotlabs/Module/Authorize.php b/Zotlabs/Module/Authorize.php
index 254700b4e..bfb76150f 100644
--- a/Zotlabs/Module/Authorize.php
+++ b/Zotlabs/Module/Authorize.php
@@ -4,60 +4,89 @@ namespace Zotlabs\Module;
use Zotlabs\Identity\OAuth2Storage;
-
class Authorize extends \Zotlabs\Web\Controller {
- function init() {
-
- // workaround for HTTP-auth in CGI mode
- if (x($_SERVER, 'REDIRECT_REMOTE_USER')) {
- $userpass = base64_decode(substr($_SERVER["REDIRECT_REMOTE_USER"], 6)) ;
- if(strlen($userpass)) {
- list($name, $password) = explode(':', $userpass);
- $_SERVER['PHP_AUTH_USER'] = $name;
- $_SERVER['PHP_AUTH_PW'] = $password;
- }
+ function get() {
+ if (!local_channel()) {
+ return login();
+ } else {
+ // TODO: Fully implement the dynamic client registration protocol:
+ // OpenID Connect Dynamic Client Registration 1.0 Client Metadata
+ // http://openid.net/specs/openid-connect-registration-1_0.html
+ $app = array(
+ 'name' => (x($_REQUEST, 'client_name') ? urldecode($_REQUEST['client_name']) : t('Unknown App')),
+ 'icon' => (x($_REQUEST, 'logo_uri') ? urldecode($_REQUEST['logo_uri']) : z_root() . '/images/icons/plugin.png'),
+ 'url' => (x($_REQUEST, 'client_uri') ? urldecode($_REQUEST['client_uri']) : ''),
+ );
+ $o .= replace_macros(get_markup_template('oauth_authorize.tpl'), array(
+ '$title' => t('Authorize'),
+ '$authorize' => sprintf( t('Do you authorize the app %s to access your channel data?'), '<a style="float: none;" href="' . $app['url'] . '">' . $app['name'] . '</a> '),
+ '$app' => $app,
+ '$yes' => t('Allow'),
+ '$no' => t('Deny'),
+ '$client_id' => (x($_REQUEST, 'client_id') ? $_REQUEST['client_id'] : ''),
+ '$redirect_uri' => (x($_REQUEST, 'redirect_uri') ? $_REQUEST['redirect_uri'] : ''),
+ '$state' => (x($_REQUEST, 'state') ? $_REQUEST['state'] : ''),
+ ));
+ return $o;
}
+ }
- if (x($_SERVER, 'HTTP_AUTHORIZATION')) {
- $userpass = base64_decode(substr($_SERVER["HTTP_AUTHORIZATION"], 6)) ;
- if(strlen($userpass)) {
- list($name, $password) = explode(':', $userpass);
- $_SERVER['PHP_AUTH_USER'] = $name;
- $_SERVER['PHP_AUTH_PW'] = $password;
- }
+ function post() {
+ if (! local_channel()) {
+ return;
}
- $s = new \Zotlabs\Identity\OAuth2Server(new OAuth2Storage(\DBA::$dba->db));
+ $storage = new OAuth2Storage(\DBA::$dba->db);
+ $s = new \Zotlabs\Identity\OAuth2Server($storage);
+
+ // TODO: The automatic client registration protocol below should adhere more
+ // closely to "OAuth 2.0 Dynamic Client Registration Protocol" defined
+ // at https://tools.ietf.org/html/rfc7591
+
+ // If no client_id was provided, generate a new one.
+ if (x($_POST, 'client_id')) {
+ $client_id = $_POST['client_id'];
+ } else {
+ $client_id = $_POST['client_id'] = random_string(16);
+ }
+ // If no redirect_uri was provided, generate a fake one.
+ if (x($_POST, 'redirect_uri')) {
+ $redirect_uri = $_POST['redirect_uri'];
+ } else {
+ $redirect_uri = $_POST['redirect_uri'] = 'https://fake.example.com/oauth';
+ }
$request = \OAuth2\Request::createFromGlobals();
$response = new \OAuth2\Response();
- // validate the authorize request
- if (! $s->validateAuthorizeRequest($request, $response)) {
+ // If the client is not registered, add to the database
+ if (!$client = $storage->getClientDetails($client_id)) {
+ $client_secret = random_string(16);
+ // Client apps are registered per channel
+ $user_id = local_channel();
+ $storage->setClientDetails($client_id, $client_secret, $redirect_uri, 'authorization_code', null, $user_id);
+
+ }
+ if (!$client = $storage->getClientDetails($client_id)) {
+ // There was an error registering the client.
$response->send();
killme();
}
+ $response->setParameter('client_secret', $client['client_secret']);
- // display an authorization form
- if (empty($_POST)) {
-
- return '
-<form method="post">
- <label>Do You Authorize TestClient?</label><br />
- <input type="submit" name="authorized" value="yes">
- <input type="submit" name="authorized" value="no">
-</form>';
+ // validate the authorize request
+ if (!$s->validateAuthorizeRequest($request, $response)) {
+ $response->send();
+ killme();
}
// print the authorization code if the user has authorized your client
- $is_authorized = ($_POST['authorized'] === 'yes');
+ $is_authorized = ($_POST['authorize'] === 'allow');
$s->handleAuthorizeRequest($request, $response, $is_authorized, local_channel());
if ($is_authorized) {
- // this is only here so that you get to see your code in the cURL request. Otherwise,
- // we'd redirect back to the client
- $code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=')+5, 40);
- echo("SUCCESS! Authorization Code: $code");
+ $code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=') + 5, 40);
+ logger('Authorization Code: ' . $code);
}
$response->send();
diff --git a/Zotlabs/Module/Cards.php b/Zotlabs/Module/Cards.php
index d3b16e82e..f196988a2 100644
--- a/Zotlabs/Module/Cards.php
+++ b/Zotlabs/Module/Cards.php
@@ -194,7 +194,7 @@ class Cards extends \Zotlabs\Web\Controller {
'$title' => t('Cards'),
'$editor' => $editor,
'$content' => $content,
- '$pager' => alt_pager($a, $pager_total)
+ '$pager' => alt_pager($pager_total)
]);
return $o;
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index 6a334b59a..953f87f11 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -380,7 +380,7 @@ class Channel extends \Zotlabs\Web\Controller {
}
if((! $update) || ($checkjs->disabled())) {
- $o .= alt_pager($a,count($items));
+ $o .= alt_pager(count($items));
if ($mid && $items[0]['title'])
\App::$page['title'] = $items[0]['title'] . " - " . \App::$page['title'];
}
diff --git a/Zotlabs/Module/Chanview.php b/Zotlabs/Module/Chanview.php
index 24ab9b022..779c7e646 100644
--- a/Zotlabs/Module/Chanview.php
+++ b/Zotlabs/Module/Chanview.php
@@ -19,7 +19,7 @@ class Chanview extends \Zotlabs\Web\Controller {
}
if($_REQUEST['address']) {
$r = q("select * from xchan where xchan_addr = '%s' limit 1",
- dbesc($_REQUEST['address'])
+ dbesc(punify($_REQUEST['address']))
);
}
elseif(local_channel() && intval($_REQUEST['cid'])) {
diff --git a/Zotlabs/Module/Chatsvc.php b/Zotlabs/Module/Chatsvc.php
index 0f79e3b4c..b4657e84d 100644
--- a/Zotlabs/Module/Chatsvc.php
+++ b/Zotlabs/Module/Chatsvc.php
@@ -60,7 +60,7 @@ class Chatsvc extends \Zotlabs\Web\Controller {
intval(\App::$data['chat']['room_id']),
dbesc(get_observer_hash()),
dbesc(datetime_convert()),
- dbesc($arr['chat_text'])
+ dbesc(str_rot47(base64url_encode($arr['chat_text'])))
);
$ret['success'] = true;
@@ -157,7 +157,7 @@ class Chatsvc extends \Zotlabs\Web\Controller {
'name' => $rr['xchan_name'],
'isotime' => datetime_convert('UTC', date_default_timezone_get(), $rr['created'], 'c'),
'localtime' => datetime_convert('UTC', date_default_timezone_get(), $rr['created'], 'r'),
- 'text' => zidify_links(smilies(bbcode($rr['chat_text']))),
+ 'text' => zidify_links(smilies(bbcode(base64url_decode(str_rot47($rr['chat_text']))))),
'self' => ((get_observer_hash() == $rr['chat_xchan']) ? 'self' : '')
);
}
diff --git a/Zotlabs/Module/Cloud.php b/Zotlabs/Module/Cloud.php
index 8b5476efc..34397d275 100644
--- a/Zotlabs/Module/Cloud.php
+++ b/Zotlabs/Module/Cloud.php
@@ -60,6 +60,12 @@ class Cloud extends \Zotlabs\Web\Controller {
// if we arrived at this path with any query parameters in the url, build a clean url without
// them and redirect.
+ if(! array_key_exists('cloud_sort',$_SESSION)) {
+ $_SESSION['cloud_sort'] = 'name';
+ }
+
+ $_SESSION['cloud_sort'] = (($_REQUEST['sort']) ? trim(notags($_REQUEST['sort'])) : $_SESSION['cloud_sort']);
+
$x = clean_query_string();
if($x !== \App::$query_string)
goaway(z_root() . '/' . $x);
diff --git a/Zotlabs/Module/Connections.php b/Zotlabs/Module/Connections.php
index 55e716ace..3bbdbf326 100644
--- a/Zotlabs/Module/Connections.php
+++ b/Zotlabs/Module/Connections.php
@@ -32,6 +32,7 @@ class Connections extends \Zotlabs\Web\Controller {
nav_set_selected('Connections');
+ $active = false;
$blocked = false;
$hidden = false;
$ignored = false;
@@ -44,11 +45,16 @@ class Connections extends \Zotlabs\Web\Controller {
if(! $_REQUEST['aj'])
$_SESSION['return_url'] = \App::$query_string;
- $search_flags = '';
+ $search_flags = "";
$head = '';
if(argc() == 2) {
switch(argv(1)) {
+ case 'active':
+ $search_flags = " and abook_blocked = 0 and abook_ignored = 0 and abook_hidden = 0 and abook_archived = 0 AND abook_not_here = 0 ";
+ $head = t('Active');
+ $active = true;
+ break;
case 'blocked':
$search_flags = " and abook_blocked = 1 ";
$head = t('Blocked');
@@ -101,8 +107,9 @@ class Connections extends \Zotlabs\Web\Controller {
case 'all':
$head = t('All');
default:
- $search_flags = '';
- $all = true;
+ $search_flags = " and abook_blocked = 0 and abook_ignored = 0 and abook_hidden = 0 and abook_archived = 0 and abook_not_here = 0 ";
+ $active = true;
+ $head = t('Active');
break;
}
@@ -129,6 +136,13 @@ class Connections extends \Zotlabs\Web\Controller {
),
*/
+ 'active' => array(
+ 'label' => t('Active Connections'),
+ 'url' => z_root() . '/connections/active',
+ 'sel' => ($active) ? 'active' : '',
+ 'title' => t('Show active connections'),
+ ),
+
'pending' => array(
'label' => t('New Connections'),
'url' => z_root() . '/connections/pending',
@@ -136,12 +150,6 @@ class Connections extends \Zotlabs\Web\Controller {
'title' => t('Show pending (new) connections'),
),
- 'all' => array(
- 'label' => t('All Connections'),
- 'url' => z_root() . '/connections/all',
- 'sel' => ($all) ? 'active' : '',
- 'title' => t('Show all connections'),
- ),
/*
array(
@@ -187,6 +195,13 @@ class Connections extends \Zotlabs\Web\Controller {
// 'title' => t('Only show one-way connections'),
// ),
+
+ 'all' => array(
+ 'label' => t('All Connections'),
+ 'url' => z_root() . '/connections',
+ 'sel' => ($all) ? 'active' : '',
+ 'title' => t('Show all connections'),
+ ),
);
@@ -238,6 +253,7 @@ class Connections extends \Zotlabs\Web\Controller {
$status_str = '';
$status = array(
+ ((intval($rr['abook_active'])) ? t('Active') : ''),
((intval($rr['abook_pending'])) ? t('Pending approval') : ''),
((intval($rr['abook_archived'])) ? t('Archived') : ''),
((intval($rr['abook_hidden'])) ? t('Hidden') : ''),
diff --git a/Zotlabs/Module/Connedit.php b/Zotlabs/Module/Connedit.php
index f359175c1..cb9c19cf0 100644
--- a/Zotlabs/Module/Connedit.php
+++ b/Zotlabs/Module/Connedit.php
@@ -828,7 +828,7 @@ class Connedit extends \Zotlabs\Web\Controller {
$locstr = locations_by_netid($contact['xchan_hash']);
if(! $locstr)
- $locstr = $contact['xchan_url'];
+ $locstr = unpunify($contact['xchan_url']);
$clone_warn = '';
$clonable = (in_array($contact['xchan_network'],['zot','rss']) ? true : false);
@@ -852,8 +852,8 @@ class Connedit extends \Zotlabs\Web\Controller {
'$permcat' => [ 'permcat', t('Permission role'), '', '<span class="loading invisible">' . t('Loading') . '<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span></span>',$permcats ],
'$permcat_new' => t('Add permission role'),
'$permcat_enable' => feature_enabled(local_channel(),'permcats'),
- '$addr' => $contact['xchan_addr'],
- '$primeurl' => $contact['xchan_url'],
+ '$addr' => unpunify($contact['xchan_addr']),
+ '$primeurl' => unpunify($contact['xchan_url']),
'$section' => $section,
'$sections' => $sections,
'$vcard' => $vcard,
diff --git a/Zotlabs/Module/Cover_photo.php b/Zotlabs/Module/Cover_photo.php
index 56e35f912..76e80156c 100644
--- a/Zotlabs/Module/Cover_photo.php
+++ b/Zotlabs/Module/Cover_photo.php
@@ -355,6 +355,8 @@ class Cover_photo extends \Zotlabs\Web\Controller {
$o .= replace_macros($tpl,array(
'$user' => \App::$channel['channel_address'],
+ '$info' => t('Your cover photo may be visible to anybody on the internet'),
+ '$existing' => get_cover_photo(local_channel(),'array',PHOTO_RES_COVER_850),
'$lbl_upfile' => t('Upload File:'),
'$lbl_profiles' => t('Select a profile:'),
'$title' => t('Change Cover Photo'),
diff --git a/Zotlabs/Module/Directory.php b/Zotlabs/Module/Directory.php
index 62a1670f9..f2673fa1a 100644
--- a/Zotlabs/Module/Directory.php
+++ b/Zotlabs/Module/Directory.php
@@ -299,9 +299,9 @@ class Directory extends \Zotlabs\Web\Controller {
if(strlen($out))
$out .= ', ';
if($marr && in_arrayi($k,$marr))
- $out .= '<strong>' . $k . '</strong>';
+ $out .= '<a href="' . z_root() . '/directory/f=&keywords=' . urlencode($k) .'"><strong>' . $k . '</strong></a>';
else
- $out .= $k;
+ $out .= '<a href="' . z_root() . '/directory/f=&keywords=' . urlencode($k) .'">' . $k . '</a>';
}
}
@@ -404,7 +404,7 @@ class Directory extends \Zotlabs\Web\Controller {
'$entries' => $entries,
'$dirlbl' => $suggest ? t('Channel Suggestions') : $dirtitle,
'$submit' => t('Find'),
- '$next' => alt_pager($a,$j['records'], t('next page'), t('previous page')),
+ '$next' => alt_pager($j['records'], t('next page'), t('previous page')),
'$sort' => t('Sort options'),
'$normal' => t('Alphabetic'),
'$reverse' => t('Reverse Alphabetic'),
diff --git a/Zotlabs/Module/Display.php b/Zotlabs/Module/Display.php
index fa29ce66c..06c9479b2 100644
--- a/Zotlabs/Module/Display.php
+++ b/Zotlabs/Module/Display.php
@@ -102,7 +102,7 @@ class Display extends \Zotlabs\Web\Controller {
if($decoded)
$item_hash = $decoded;
- $r = q("select id, uid, mid, parent_mid, thr_parent, verb, item_type, item_deleted, item_blocked from item where mid like '%s' limit 1",
+ $r = q("select id, uid, mid, parent_mid, thr_parent, verb, item_type, item_deleted, author_xchan, item_blocked from item where mid like '%s' limit 1",
dbesc($item_hash . '%')
);
@@ -110,6 +110,14 @@ class Display extends \Zotlabs\Web\Controller {
$target_item = $r[0];
}
+ $x = q("select * from xchan where xchan_hash = '%s' limit 1",
+ dbesc($target_item['author_xchan'])
+ );
+ if($x) {
+// not yet ready for prime time
+// \App::$poi = $x[0];
+ }
+
//if the item is to be moderated redirect to /moderate
if($target_item['item_blocked'] == ITEM_MODERATED) {
goaway(z_root() . '/moderate/' . $target_item['id']);
@@ -124,7 +132,7 @@ class Display extends \Zotlabs\Web\Controller {
$y = q("select * from iconfig left join item on iconfig.iid = item.id
where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'WEBPAGE' and item.id = %d limit 1",
intval($target_item['uid']),
- intval($target_item['id'])
+ intval($target_item['parent'])
);
if($x && $y) {
goaway(z_root() . '/page/' . $x[0]['channel_address'] . '/' . $y[0]['v']);
@@ -141,7 +149,7 @@ class Display extends \Zotlabs\Web\Controller {
$y = q("select * from iconfig left join item on iconfig.iid = item.id
where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'ARTICLE' and item.id = %d limit 1",
intval($target_item['uid']),
- intval($target_item['id'])
+ intval($target_item['parent'])
);
if($x && $y) {
goaway(z_root() . '/articles/' . $x[0]['channel_address'] . '/' . $y[0]['v']);
@@ -158,7 +166,7 @@ class Display extends \Zotlabs\Web\Controller {
$y = q("select * from iconfig left join item on iconfig.iid = item.id
where item.uid = %d and iconfig.cat = 'system' and iconfig.k = 'CARD' and item.id = %d limit 1",
intval($target_item['uid']),
- intval($target_item['id'])
+ intval($target_item['parent'])
);
if($x && $y) {
goaway(z_root() . '/cards/' . $x[0]['channel_address'] . '/' . $y[0]['v']);
@@ -169,6 +177,7 @@ class Display extends \Zotlabs\Web\Controller {
}
}
+
$static = ((array_key_exists('static',$_REQUEST)) ? intval($_REQUEST['static']) : 0);
diff --git a/Zotlabs/Module/Editpost.php b/Zotlabs/Module/Editpost.php
index a54c42e7f..57a4cb97f 100644
--- a/Zotlabs/Module/Editpost.php
+++ b/Zotlabs/Module/Editpost.php
@@ -82,7 +82,7 @@ class Editpost extends \Zotlabs\Web\Controller {
'editor_autocomplete'=> true,
'bbco_autocomplete'=> 'bbcode',
'return_path' => $_SESSION['return_url'],
- 'button' => t('Edit'),
+ 'button' => t('Submit'),
'hide_voting' => true,
'hide_future' => true,
'hide_location' => true,
diff --git a/Zotlabs/Module/Follow.php b/Zotlabs/Module/Follow.php
index d8a86d0ce..cbf9d62c5 100644
--- a/Zotlabs/Module/Follow.php
+++ b/Zotlabs/Module/Follow.php
@@ -14,21 +14,26 @@ class Follow extends \Zotlabs\Web\Controller {
}
$uid = local_channel();
- $url = notags(trim($_REQUEST['url']));
+ $url = notags(trim(punify($_REQUEST['url'])));
$return_url = $_SESSION['return_url'];
$confirm = intval($_REQUEST['confirm']);
-
+ $interactive = (($_REQUEST['interactive']) ? intval($_REQUEST['interactive']) : 1);
$channel = \App::get_channel();
- $result = new_contact($uid,$url,$channel,true,$confirm);
+ $result = new_contact($uid,$url,$channel,$interactive,$confirm);
if($result['success'] == false) {
if($result['message'])
notice($result['message']);
- goaway($return_url);
+ if($interactive) {
+ goaway($return_url);
+ }
+ else {
+ json_return_and_die($result);
+ }
}
- info( t('Channel added.') . EOL);
+ info( t('Connection added.') . EOL);
$clone = array();
foreach($result['abook'] as $k => $v) {
@@ -53,7 +58,12 @@ class Follow extends \Zotlabs\Web\Controller {
if(($can_view_stream) || ($result['abook']['xchan_network'] === 'rss'))
\Zotlabs\Daemon\Master::Summon(array('Onepoll',$result['abook']['abook_id']));
- goaway(z_root() . '/connedit/' . $result['abook']['abook_id'] . '?f=&follow=1');
+ if($interactive) {
+ goaway(z_root() . '/connedit/' . $result['abook']['abook_id'] . '?f=&follow=1');
+ }
+ else {
+ json_return_and_die([ 'success' => true ]);
+ }
}
diff --git a/Zotlabs/Module/Hashtags.php b/Zotlabs/Module/Hashtags.php
new file mode 100644
index 000000000..300485196
--- /dev/null
+++ b/Zotlabs/Module/Hashtags.php
@@ -0,0 +1,27 @@
+<?php
+
+namespace Zotlabs\Module;
+
+
+class Hashtags extends \Zotlabs\Web\Controller {
+
+ function init() {
+ $result = [];
+
+ $t = escape_tags($_REQUEST['t']);
+ if(! $t)
+ json_return_and_die($result);
+
+ $r = q("select distinct(term) from term where term like '%s' and ttype = %d order by term",
+ dbesc($t . '%'),
+ intval(TERM_HASHTAG)
+ );
+ if($r) {
+ foreach($r as $rv) {
+ $result[] = [ 'text' => $rv['term'] ];
+ }
+ }
+
+ json_return_and_die($result);
+ }
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Import.php b/Zotlabs/Module/Import.php
index 36bd72310..c36e4723a 100644
--- a/Zotlabs/Module/Import.php
+++ b/Zotlabs/Module/Import.php
@@ -114,15 +114,16 @@ class Import extends \Zotlabs\Web\Controller {
return;
}
- if(array_key_exists('compatibility',$data) && array_key_exists('database',$data['compatibility'])) {
- $v1 = substr($data['compatibility']['database'],-4);
- $v2 = substr(DB_UPDATE_VERSION,-4);
- if($v2 > $v1) {
- $t = sprintf( t('Warning: Database versions differ by %1$d updates.'), $v2 - $v1 );
- notice($t);
- }
-
- }
+// This is only an info message but it is alarming to folks who then report failure with this as the cause, when in fact we ignore this completely.
+// if(array_key_exists('compatibility',$data) && array_key_exists('database',$data['compatibility'])) {
+// $v1 = substr($data['compatibility']['database'],-4);
+// $v2 = substr(DB_UPDATE_VERSION,-4);
+// if($v2 > $v1) {
+// $t = sprintf( t('Warning: Database versions differ by %1$d updates.'), $v2 - $v1 );
+// notice($t);
+// }
+//
+// }
if($moving)
$seize = 1;
@@ -362,11 +363,27 @@ class Import extends \Zotlabs\Web\Controller {
continue;
}
- abook_store_lowlevel($abook);
+ $r = q("select abook_id from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
+ dbesc($abook['abook_xchan']),
+ intval($channel['channel_id'])
+ );
+ if($r) {
+ foreach($abook as $k => $v) {
+ $r = q("UPDATE abook SET " . TQUOT . "%s" . TQUOT . " = '%s' WHERE abook_xchan = '%s' AND abook_channel = %d",
+ dbesc($k),
+ dbesc($v),
+ dbesc($abook['abook_xchan']),
+ intval($channel['channel_id'])
+ );
+ }
+ }
+ else {
+ abook_store_lowlevel($abook);
- $friends ++;
- if(intval($abook['abook_feed']))
- $feeds ++;
+ $friends ++;
+ if(intval($abook['abook_feed']))
+ $feeds ++;
+ }
translate_abook_perms_inbound($channel,$abook_copy);
@@ -515,16 +532,19 @@ class Import extends \Zotlabs\Web\Controller {
'$desc' => t('Use this form to import an existing channel from a different server/hub. You may retrieve the channel identity from the old server/hub via the network or provide an export file.'),
'$label_filename' => t('File to Upload'),
'$choice' => t('Or provide the old server/hub details'),
- '$label_old_address' => t('Your old identity address (xyz@example.com)'),
- '$label_old_email' => t('Your old login email address'),
- '$label_old_pass' => t('Your old login password'),
+
+ '$old_address' => [ 'old_address', t('Your old identity address (xyz@example.com)'), '', ''],
+ '$email' => [ 'email', t('Your old login email address'), '', '' ],
+ '$password' => [ 'password', t('Your old login password'), '', '' ],
+ '$import_posts' => [ 'import_posts', t('Import a few months of posts if possible (limited by available memory'), false, '', [ t('No'), t('Yes') ]],
+
'$common' => t('For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media.'),
- '$label_import_primary' => t('Make this hub my primary location'),
- '$label_import_moving' => t('Move this channel (disable all previous locations)'),
- '$label_import_posts' => t('Import a few months of posts if possible (limited by available memory'),
+
+ '$make_primary' => [ 'make_primary', t('Make this hub my primary location'), false, '', [ t('No'), t('Yes') ] ],
+ '$moving' => [ 'moving', t('Move this channel (disable all previous locations)'), false, '', [ t('No'), t('Yes') ] ],
+
'$pleasewait' => t('This process may take several minutes to complete. Please submit the form only once and leave this page open until finished.'),
- '$email' => '',
- '$pass' => '',
+
'$form_security_token' => get_form_security_token('channel_import'),
'$submit' => t('Submit')
));
diff --git a/Zotlabs/Module/Item.php b/Zotlabs/Module/Item.php
index fba2ef7a4..bba1dc02d 100644
--- a/Zotlabs/Module/Item.php
+++ b/Zotlabs/Module/Item.php
@@ -468,6 +468,7 @@ class Item extends \Zotlabs\Web\Controller {
$private = intval($acl->is_private() || $parent_item['item_private']);
$public_policy = $parent_item['public_policy'];
$owner_hash = $parent_item['owner_xchan'];
+ $webpage = $parent_item['item_type'];
}
if((! $allow_empty) && (! strlen($body))) {
@@ -542,7 +543,7 @@ class Item extends \Zotlabs\Web\Controller {
// Look for tags and linkify them
$results = linkify_tags($a, $body, ($uid) ? $uid : $profile_uid);
-
+
if($results) {
// Set permissions based on tag replacements
diff --git a/Zotlabs/Module/Like.php b/Zotlabs/Module/Like.php
index 6d9fde17c..4e216f08b 100644
--- a/Zotlabs/Module/Like.php
+++ b/Zotlabs/Module/Like.php
@@ -296,10 +296,11 @@ class Like extends \Zotlabs\Web\Controller {
notice( t('Permission denied') . EOL);
killme();
}
-
+
$r = q("select * from xchan where xchan_hash = '%s' limit 1",
dbesc($item['owner_xchan'])
);
+
if($r)
$thread_owner = $r[0];
else
@@ -418,6 +419,7 @@ class Like extends \Zotlabs\Web\Controller {
$arr['item_origin'] = 1;
$arr['item_notshown'] = 1;
+ $arr['item_type'] = $item['item_type'];
if(intval($item['item_wall']))
$arr['item_wall'] = 1;
diff --git a/Zotlabs/Module/Logout.php b/Zotlabs/Module/Logout.php
index f06e7278b..d11ce54ac 100644
--- a/Zotlabs/Module/Logout.php
+++ b/Zotlabs/Module/Logout.php
@@ -5,7 +5,12 @@ namespace Zotlabs\Module;
class Logout extends \Zotlabs\Web\Controller {
function init() {
- \App::$session->nuke();
+ if($_SESSION['delegate'] && $_SESSION['delegate_push']) {
+ $_SESSION = $_SESSION['delegate_push'];
+ }
+ else {
+ \App::$session->nuke();
+ }
goaway(z_root());
}
diff --git a/Zotlabs/Module/Magic.php b/Zotlabs/Module/Magic.php
index 15e5cedcf..4b3a223ba 100644
--- a/Zotlabs/Module/Magic.php
+++ b/Zotlabs/Module/Magic.php
@@ -112,6 +112,8 @@ class Magic extends \Zotlabs\Web\Controller {
if($r && intval($r[0]['channel_id'])) {
$allowed = perm_is_allowed($r[0]['channel_id'],get_observer_hash(),'delegate');
if($allowed) {
+ $tmp = $_SESSION;
+ $_SESSION['delegate_push'] = $tmp;
$_SESSION['delegate_channel'] = $r[0]['channel_id'];
$_SESSION['delegate'] = get_observer_hash();
$_SESSION['account_id'] = intval($r[0]['channel_account_id']);
diff --git a/Zotlabs/Module/Mail.php b/Zotlabs/Module/Mail.php
index b58b169d0..ca183f644 100644
--- a/Zotlabs/Module/Mail.php
+++ b/Zotlabs/Module/Mail.php
@@ -67,14 +67,14 @@ class Mail extends \Zotlabs\Web\Controller {
if(! $recipient) {
$channel = \App::get_channel();
- $j = \Zotlabs\Zot\Finger::run($rstr,$channel);
+ $j = \Zotlabs\Zot\Finger::run(punify($rstr),$channel);
if(! $j['success']) {
notice( t('Unable to lookup recipient.') . EOL);
return;
}
- logger('message_post: lookup: ' . $url . ' ' . print_r($j,true));
+ logger('message_post: lookup: ' . $rstr . ' ' . print_r($j,true));
if(! $j['guid']) {
notice( t('Unable to communicate with requested channel.'));
diff --git a/Zotlabs/Module/Message.php b/Zotlabs/Module/Message.php
index 7494f4bf4..5856bfbdf 100644
--- a/Zotlabs/Module/Message.php
+++ b/Zotlabs/Module/Message.php
@@ -93,7 +93,7 @@ class Message extends \Zotlabs\Web\Controller {
));
- $o .= alt_pager($a,count($r));
+ $o .= alt_pager(count($r));
return $o;
diff --git a/Zotlabs/Module/Moderate.php b/Zotlabs/Module/Moderate.php
index cf1625a6b..a7c98e05e 100644
--- a/Zotlabs/Module/Moderate.php
+++ b/Zotlabs/Module/Moderate.php
@@ -14,9 +14,12 @@ class Moderate extends \Zotlabs\Web\Controller {
return;
}
+ \App::set_pager_itemspage(60);
+ $pager_sql = sprintf(" LIMIT %d OFFSET %d ", intval(\App::$pager['itemspage']), intval(\App::$pager['start']));
+
//show all items
if(argc() == 1) {
- $r = q("select item.id as item_id, item.* from item where item.uid = %d and item_blocked = %d and item_deleted = 0 order by created desc limit 60",
+ $r = q("select item.id as item_id, item.* from item where item.uid = %d and item_blocked = %d and item_deleted = 0 order by created desc $pager_sql",
intval(local_channel()),
intval(ITEM_MODERATED)
);
@@ -26,7 +29,7 @@ class Moderate extends \Zotlabs\Web\Controller {
if(argc() == 2) {
$post_id = intval(argv(1));
- $r = q("select item.id as item_id, item.* from item where item.id = %d and item.uid = %d and item_blocked = %d and item_deleted = 0 order by created desc limit 60",
+ $r = q("select item.id as item_id, item.* from item where item.id = %d and item.uid = %d and item_blocked = %d and item_deleted = 0 order by created desc $pager_sql",
intval($post_id),
intval(local_channel()),
intval(ITEM_MODERATED)
@@ -47,17 +50,26 @@ class Moderate extends \Zotlabs\Web\Controller {
);
if($r) {
+ $item = $r[0];
+
if($action === 'approve') {
q("update item set item_blocked = 0 where uid = %d and id = %d",
intval(local_channel()),
intval($post_id)
);
+
+ $item['item_blocked'] = 0;
+
+ item_update_parent_commented($item);
+
notice( t('Comment approved') . EOL);
}
elseif($action === 'drop') {
drop_item($post_id,false);
notice( t('Comment deleted') . EOL);
}
+
+ // refetch the item after changes have been made
$r = q("select * from item where id = %d",
intval($post_id)
@@ -83,6 +95,7 @@ class Moderate extends \Zotlabs\Web\Controller {
}
$o = conversation($items,'moderate',false,'traditional');
+ $o .= alt_pager(count($items));
return $o;
}
diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php
index 6e961dc36..8d017207b 100644
--- a/Zotlabs/Module/Network.php
+++ b/Zotlabs/Module/Network.php
@@ -210,10 +210,9 @@ class Network extends \Zotlabs\Web\Controller {
$sql_nets = '';
- $distinct = '';
$item_thread_top = ' AND item_thread_top = 1 ';
- $sql_extra = $sql_options;
+ $sql_extra = '';
if($group) {
$contact_str = '';
@@ -229,7 +228,6 @@ class Network extends \Zotlabs\Web\Controller {
$contact_str = ' 0 ';
info( t('Privacy group is empty'));
}
- $distinct = ' distinct ';
$item_thread_top = '';
$sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND (( author_xchan IN ( $contact_str ) OR owner_xchan in ( $contact_str )) or allow_gid like '" . protect_sprintf('%<' . dbesc($group_hash) . '>%') . "' ) and id = parent $item_normal ) ";
@@ -254,7 +252,6 @@ class Network extends \Zotlabs\Web\Controller {
intval(local_channel())
);
if($r) {
- $distinct = ' distinct ';
$item_thread_top = '';
$sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval(local_channel()) . " AND ( author_xchan = '" . dbesc($r[0]['abook_xchan']) . "' or owner_xchan = '" . dbesc($r[0]['abook_xchan']) . "' ) $item_normal ) ";
$title = replace_macros(get_markup_template("section_title.tpl"),array(
@@ -274,7 +271,6 @@ class Network extends \Zotlabs\Web\Controller {
dbesc($xchan)
);
if($r) {
- $distinct = ' distinct ';
$item_thread_top = '';
$sql_extra = " AND item.parent IN ( SELECT DISTINCT parent FROM item WHERE true $sql_options AND uid = " . intval(local_channel()) . " AND ( author_xchan = '" . dbesc($xchan) . "' or owner_xchan = '" . dbesc($xchan) . "' ) $item_normal ) ";
$title = replace_macros(get_markup_template("section_title.tpl"),array(
@@ -381,7 +377,6 @@ class Network extends \Zotlabs\Web\Controller {
}
if($conv) {
- $distinct = ' distinct ';
$item_thread_top = '';
$sql_extra .= sprintf(" AND parent IN (SELECT distinct(parent) from item where ( author_xchan like '%s' or item_mentionsme = 1 )) ",
dbesc(protect_sprintf($channel['channel_hash']))
@@ -464,7 +459,7 @@ class Network extends \Zotlabs\Web\Controller {
WHERE true $uids $item_normal
and (abook.abook_blocked = 0 or abook.abook_flags is null)
$simple_update
- $sql_extra $sql_nets
+ $sql_extra $sql_options $sql_nets
$net_query2
ORDER BY item.received DESC $pager_sql "
);
@@ -487,13 +482,13 @@ class Network extends \Zotlabs\Web\Controller {
if($load) {
// Fetch a page full of parent items for this page
- $r = q("SELECT $distinct item.parent AS item_id FROM item
+ $r = q("SELECT item.parent AS item_id FROM item
left join abook on ( item.owner_xchan = abook.abook_xchan $abook_uids )
$net_query
WHERE true $uids $item_thread_top $item_normal
AND item.mid = item.parent_mid
and (abook.abook_blocked = 0 or abook.abook_flags is null)
- $sql_extra3 $sql_extra $sql_nets
+ $sql_extra3 $sql_extra $sql_options $sql_nets
$net_query2
ORDER BY $ordering DESC $pager_sql "
);
@@ -506,7 +501,7 @@ class Network extends \Zotlabs\Web\Controller {
$net_query
WHERE true $uids $item_normal_update $simple_update
and (abook.abook_blocked = 0 or abook.abook_flags is null)
- $sql_extra3 $sql_extra $sql_nets $net_query2"
+ $sql_extra3 $sql_extra $sql_options $sql_nets $net_query2"
);
$_SESSION['loadtime'] = datetime_convert();
}
@@ -570,7 +565,7 @@ class Network extends \Zotlabs\Web\Controller {
$o .= conversation($items,$mode,$update,$page_mode);
if(($items) && (! $update))
- $o .= alt_pager($a,count($items));
+ $o .= alt_pager(count($items));
return $o;
}
diff --git a/Zotlabs/Module/New_channel.php b/Zotlabs/Module/New_channel.php
index 548f28c4f..d9becbc22 100644
--- a/Zotlabs/Module/New_channel.php
+++ b/Zotlabs/Module/New_channel.php
@@ -16,8 +16,15 @@ class New_channel extends \Zotlabs\Web\Controller {
require_once('library/urlify/URLify.php');
$result = array('error' => false, 'message' => '');
$n = trim($_REQUEST['name']);
-
- $x = strtolower(\URLify::transliterate($n));
+
+ $x = false;
+
+ if(get_config('system','unicode_usernames')) {
+ $x = punify(mb_strtolower($n));
+ }
+
+ if((! $x) || strlen($x) > 64)
+ $x = strtolower(\URLify::transliterate($n));
$test = array();
@@ -43,7 +50,14 @@ class New_channel extends \Zotlabs\Web\Controller {
$result = array('error' => false, 'message' => '');
$n = trim($_REQUEST['nick']);
- $x = strtolower(\URLify::transliterate($n));
+ $x = false;
+
+ if(get_config('system','unicode_usernames')) {
+ $x = punify(mb_strtolower($n));
+ }
+
+ if((! $x) || strlen($x) > 64)
+ $x = strtolower(\URLify::transliterate($n));
$test = array();
@@ -132,14 +146,14 @@ class New_channel extends \Zotlabs\Web\Controller {
$name = array('name', t('Name or caption'), ((x($_REQUEST,'name')) ? $_REQUEST['name'] : ''), t('Examples: "Bob Jameson", "Lisa and her Horses", "Soccer", "Aviation Group"'), "*");
$nickhub = '@' . \App::get_hostname();
$nickname = array('nickname', t('Choose a short nickname'), ((x($_REQUEST,'nickname')) ? $_REQUEST['nickname'] : ''), sprintf( t('Your nickname will be used to create an easy to remember channel address e.g. nickname%s'), $nickhub), "*");
- $role = array('permissions_role' , t('Channel role and privacy'), ($privacy_role) ? $privacy_role : 'social', t('Select a channel role with your privacy requirements.') . ' <a href="help/member/member_guide#Account_Permission_Roles" target="_blank">' . t('Read more about roles') . '</a>',$perm_roles);
+ $role = array('permissions_role' , t('Channel role and privacy'), ($privacy_role) ? $privacy_role : 'social', t('Select a channel role with your privacy requirements.') . ' <a href="help/member/member_guide#Channel_Permission_Roles" target="_blank">' . t('Read more about roles') . '</a>',$perm_roles);
$o = replace_macros(get_markup_template('new_channel.tpl'), array(
'$title' => t('Create Channel'),
- '$desc' => t('A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions.'),
+ '$desc' => t('A channel is a unique network identity. It can represent a person (social network profile), a forum (group), a business or celebrity page, a newsfeed, and many other things. Channels can make connections with other channels to share information with each other.') . ' ' . t('The type of channel you create affects the basic privacy settings, the permissions that are granted to connections/friends, and also the channel\'s visibility across the network.'),
'$label_import' => t('or <a href="import">import an existing channel</a> from another location.'),
'$name' => $name,
- '$role' => $role,
+ '$role' => $role,
'$default_role' => $default_role,
'$nickname' => $nickname,
'$validate' => t('Validate'),
diff --git a/Zotlabs/Module/Oauth2testvehicle.php b/Zotlabs/Module/Oauth2testvehicle.php
new file mode 100644
index 000000000..5ae278e8c
--- /dev/null
+++ b/Zotlabs/Module/Oauth2testvehicle.php
@@ -0,0 +1,151 @@
+<?php
+
+namespace Zotlabs\Module;
+
+/**
+ * The OAuth2TestVehicle class is a way to test the registration of an OAuth2
+ * client app. It allows you to walk through the steps of registering a client,
+ * requesting an authorization code for that client, and then requesting an
+ * access token for use in authentication against the Hubzilla API endpoints.
+ */
+class OAuth2TestVehicle extends \Zotlabs\Web\Controller {
+
+ function init() {
+
+ killme();
+
+ // If there is a 'code' and 'state' parameter then this is a client app
+ // callback issued after the authorization code request
+ // TODO: Check state value and compare to original sent value
+ // "You should first compare this state value to ensure it matches the
+ // one you started with. You can typically store the state value in a
+ // cookie, and compare it when the user comes back. This ensures your
+ // redirection endpoint isn't able to be tricked into attempting to
+ // exchange arbitrary authorization codes."
+ $_SESSION['redirect_uri'] = z_root() . '/oauth2testvehicle';
+ $_SESSION['authorization_code'] = (x($_REQUEST, 'code') ? $_REQUEST['code'] : $_SESSION['authorization_code']);
+ $_SESSION['state'] = (x($_REQUEST, 'state') ? $_REQUEST['state'] : $_SESSION['state'] );
+ $_SESSION['client_id'] = (x($_REQUEST, 'client_id') ? $_REQUEST['client_id'] : $_SESSION['client_id'] );
+ $_SESSION['client_secret'] = (x($_REQUEST, 'client_secret') ? $_REQUEST['client_secret'] : $_SESSION['client_secret']);
+ $_SESSION['access_token'] = (x($_REQUEST, 'access_token') ? $_REQUEST['access_token'] : $_SESSION['access_token'] );
+ $_SESSION['api_response'] = (x($_SESSION, 'api_response') ? $_SESSION['api_response'] : '');
+ }
+ function get() {
+
+ $o .= replace_macros(get_markup_template('oauth2testvehicle.tpl'), array(
+ '$baseurl' => z_root(),
+ '$api_response' => $_SESSION['api_response'],
+ /*
+ endpoints => array(
+ array(
+ 'path_to_endpoint',
+ array(
+ array('field_name_1', 'value'),
+ array('field_name_2', 'value'),
+ ...
+ ),
+ 'submit_button_name',
+ 'Description of API action'
+ )
+ )
+ */
+ '$endpoints' => array(
+ array(
+ 'authorize',
+ array(
+ array('response_type', 'code'),
+ array('client_id', (x($_REQUEST, 'client_id') ? $_REQUEST['client_id'] : 'oauth2_test_app')),
+ array('redirect_uri', $_SESSION['redirect_uri']),
+ array('state', 'xyz'),
+ // OpenID Connect Dynamic Client Registration 1.0 Client Metadata
+ // http://openid.net/specs/openid-connect-registration-1_0.html
+ array('client_name', 'OAuth2 Test App'),
+ array('logo_uri', urlencode(z_root() . '/images/icons/plugin.png')),
+ array('client_uri', urlencode('https://client.example.com/website')),
+ array('application_type', 'web'), // would be 'native' for mobile app
+ ),
+ 'oauth_authorize',
+ 'Authorize a test client app',
+ 'GET',
+ (($_REQUEST['code'] && $_REQUEST['state']) ? true : false),
+ ),
+ array(
+ 'oauth2testvehicle',
+ array(
+ array('action', 'request_token'),
+ array('grant_type', 'authorization_code'),
+ array('code', $_SESSION['authorization_code']),
+ array('redirect_uri', $_SESSION['redirect_uri']),
+ array('client_id', ($_SESSION['client_id'] ? $_SESSION['client_id'] : 'oauth2_test_app')),
+ array('client_secret', $_SESSION['client_secret']),
+ ),
+ 'oauth_token_request',
+ 'Request a token',
+ 'POST',
+ ($_SESSION['success'] === 'request_token'),
+ ),
+ array(
+ 'oauth2testvehicle',
+ array(
+ array('action', 'api_files'),
+ array('access_token', $_SESSION['access_token']),
+ ),
+ 'oauth_api_files',
+ 'API: Get channel files',
+ 'POST',
+ ($_SESSION['success'] === 'api_files'),
+ )
+ )
+ ));
+ $_SESSION['success'] = '';
+ return $o;
+ }
+
+ function post() {
+
+ switch ($_POST['action']) {
+ case 'api_files':
+ $access_token = $_SESSION['access_token'];
+ $url = z_root() . '/api/z/1.0/files/';
+ $headers = [];
+ $headers[] = 'Authorization: Bearer ' . $access_token;
+ $post = z_fetch_url($url, false, 0, array(
+ 'custom' => 'GET',
+ 'headers' => $headers,
+ ));
+ logger(json_encode($post, JSON_PRETTY_PRINT), LOGGER_DEBUG);
+ $response = json_decode($post['body'], true);
+ $_SESSION['api_response'] = json_encode($response, JSON_PRETTY_PRINT);
+ break;
+ case 'request_token':
+ $grant_type = (x($_POST, 'grant_type') ? $_POST['grant_type'] : '');
+ $redirect_uri = (x($_POST, 'redirect_uri') ? $_POST['redirect_uri'] : '');
+ $client_id = (x($_POST, 'client_id') ? $_POST['client_id'] : '');
+ $code = (x($_POST, 'code') ? $_POST['code'] : '');
+ $client_secret = (x($_POST, 'client_secret') ? $_POST['client_secret'] : '');
+ $url = z_root() . '/token/';
+ $params = http_build_query(array(
+ 'grant_type' => $grant_type,
+ 'redirect_uri' => urlencode($redirect_uri),
+ 'client_id' => $client_id,
+ 'code' => $code,
+ ));
+ $post = z_post_url($url, $params, 0, array(
+ 'http_auth' => $client_id . ':' . $client_secret,
+ ));
+ logger(json_encode($post, JSON_PRETTY_PRINT), LOGGER_DEBUG);
+ $response = json_decode($post['body'], true);
+ logger(json_encode($response, JSON_PRETTY_PRINT), LOGGER_DEBUG);
+ if($response['access_token']) {
+ info('Access token received: ' . $response['access_token'] . EOL);
+ $_SESSION['success'] = 'request_token';
+ $_SESSION['access_token'] = $response['access_token'];
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+}
diff --git a/Zotlabs/Module/Oep.php b/Zotlabs/Module/Oep.php
index bb3a13b56..0f20a5f9a 100644
--- a/Zotlabs/Module/Oep.php
+++ b/Zotlabs/Module/Oep.php
@@ -72,7 +72,7 @@ class Oep extends \Zotlabs\Web\Controller {
$url = $args['url'];
$maxwidth = intval($args['maxwidth']);
$maxheight = intval($args['maxheight']);
- logger('processing display');
+
if(preg_match('#//(.*?)/display/(.*?)(&|\?|$)#',$url,$matches)) {
$res = $matches[2];
}
@@ -125,6 +125,7 @@ class Oep extends \Zotlabs\Web\Controller {
"' profile='".$p[0]['author']['xchan_url'] .
"' avatar='".$p[0]['author']['xchan_photo_s'].
"' link='".$p[0]['plink'].
+ "' auth='".(($p[0]['author']['network'] === 'zot') ? 'true' : 'false') .
"' posted='".$p[0]['created'].
"' message_id='".$p[0]['mid']."']";
if($p[0]['title'])
@@ -209,6 +210,7 @@ class Oep extends \Zotlabs\Web\Controller {
"' profile='".$p[0]['author']['xchan_url'] .
"' avatar='".$p[0]['author']['xchan_photo_s'].
"' link='".$p[0]['plink'].
+ "' auth='".(($p[0]['author']['network'] === 'zot') ? 'true' : 'false') .
"' posted='".$p[0]['created'].
"' message_id='".$p[0]['mid']."']";
if($p[0]['title'])
@@ -292,6 +294,7 @@ class Oep extends \Zotlabs\Web\Controller {
"' profile='".$p[0]['author']['xchan_url'] .
"' avatar='".$p[0]['author']['xchan_photo_s'].
"' link='".$p[0]['plink'].
+ "' auth='".(($p[0]['author']['network'] === 'zot') ? 'true' : 'false') .
"' posted='".$p[0]['created'].
"' message_id='".$p[0]['mid']."']";
if($p[0]['title'])
@@ -366,6 +369,7 @@ class Oep extends \Zotlabs\Web\Controller {
"' profile='".$p[0]['author']['xchan_url'] .
"' avatar='".$p[0]['author']['xchan_photo_s'].
"' link='".$p[0]['plink'].
+ "' auth='".(($p[0]['author']['network'] === 'zot') ? 'true' : 'false') .
"' posted='".$p[0]['created'].
"' message_id='".$p[0]['mid']."']";
if($p[0]['title'])
diff --git a/Zotlabs/Module/Owa.php b/Zotlabs/Module/Owa.php
index e62fc9592..da26748b3 100644
--- a/Zotlabs/Module/Owa.php
+++ b/Zotlabs/Module/Owa.php
@@ -34,6 +34,15 @@ class Owa extends \Zotlabs\Web\Controller {
where hubloc_addr = '%s' ",
dbesc(str_replace('acct:','',$keyId))
);
+ if(! $r) {
+ $found = discover_by_webbie(str_replace('acct:','',$keyId));
+ if($found) {
+ $r = q("select * from hubloc left join xchan on hubloc_hash = xchan_hash
+ where hubloc_addr = '%s' ",
+ dbesc(str_replace('acct:','',$keyId))
+ );
+ }
+ }
if($r) {
foreach($r as $hubloc) {
$verified = \Zotlabs\Web\HTTPSig::verify('',$hubloc['xchan_pubkey']);
diff --git a/Zotlabs/Module/Photo.php b/Zotlabs/Module/Photo.php
index 8a110f925..b3171fe75 100644
--- a/Zotlabs/Module/Photo.php
+++ b/Zotlabs/Module/Photo.php
@@ -127,69 +127,45 @@ class Photo extends \Zotlabs\Web\Controller {
}
}
- $r = q("SELECT uid FROM photo WHERE resource_id = '%s' AND imgscale = %d LIMIT 1",
+ $r = q("SELECT uid, photo_usage FROM photo WHERE resource_id = '%s' AND imgscale = %d LIMIT 1",
dbesc($photo),
intval($resolution)
);
if($r) {
-
- $allowed = (($r[0]['uid']) ? perm_is_allowed($r[0]['uid'],$observer_xchan,'view_storage') : true);
-
- $sql_extra = permissions_sql($r[0]['uid']);
- if(! $sql_extra)
- $sql_extra = ' and true ';
-
- // Only check permissions on normal photos. Those photos we don't check includes
- // profile photos, xchan photos (which are also profile photos), 'thing' photos,
- // and cover photos
-
- $sql_extra = " and (( photo_usage = 0 $sql_extra ) or photo_usage != 0 )";
+ $allowed = (-1);
+ if(intval($r[0]['photo_usage'])) {
+ $allowed = 1;
+ if(intval($r[0]['photo_usage']) === PHOTO_COVER)
+ if($resolution < PHOTO_RES_COVER_1200)
+ $allowed = (-1);
+ if(intval($r[0]['photo_usage']) === PHOTO_PROFILE)
+ if(! in_array($resolution,[4,5,6]))
+ $allowed = (-1);
+ }
+ if($allowed === (-1))
+ $allowed = attach_can_view($r[0]['uid'],$observer_xchan,$photo);
+
$channel = channelx_by_n($r[0]['uid']);
// Now we'll see if we can access the photo
- $r = q("SELECT * FROM photo WHERE resource_id = '%s' AND imgscale = %d $sql_extra LIMIT 1",
+ $e = q("SELECT * FROM photo WHERE resource_id = '%s' AND imgscale = %d $sql_extra LIMIT 1",
dbesc($photo),
intval($resolution)
);
- // viewing cover photos is allowed unless a plugin chooses to block it.
-
- if($r && intval($r[0]['photo_usage']) === PHOTO_COVER && $resolution >= PHOTO_RES_COVER_1200)
- $allowed = 1;
-
- $d = [ 'imgscale' => $resolution, 'resource_id' => $photo, 'photo' => $r, 'allowed' => $allowed ];
- call_hooks('get_photo',$d);
+ $exists = (($e) ? true : false);
- $resolution = $d['imgscale'];
- $photo = $d['resource_id'];
- $r = $d['photo'];
- $allowed = $d['allowed'];
-
- if($r && $allowed) {
- $data = dbunescbin($r[0]['content']);
- $mimetype = $r[0]['mimetype'];
- if(intval($r[0]['os_storage'])) {
+ if($exists && $allowed) {
+ $data = dbunescbin($e[0]['content']);
+ $mimetype = $e[0]['mimetype'];
+ if(intval($e[0]['os_storage'])) {
$streaming = $data;
}
}
else {
-
- // Does the picture exist? It may be a remote person with no credentials,
- // but who should otherwise be able to view it. Show a default image to let
- // them know permissions was denied. It may be possible to view the image
- // through an authenticated profile visit.
- // There won't be many completely unauthorised people seeing this because
- // they won't have the photo link, so there's a reasonable chance that the person
- // might be able to obtain permission to view it.
-
- $r = q("SELECT * FROM photo WHERE resource_id = '%s' AND imgscale = %d LIMIT 1",
- dbesc($photo),
- intval($resolution)
- );
-
- if($r) {
+ if(! $allowed) {
logger('mod_photo: forbidden. ' . \App::$query_string);
$observer = \App::get_observer();
logger('mod_photo: observer = ' . (($observer) ? $observer['xchan_addr'] : '(not authenticated)'));
@@ -201,9 +177,6 @@ class Photo extends \Zotlabs\Web\Controller {
}
}
-
-
-
if(! isset($data)) {
if(isset($resolution)) {
switch($resolution) {
@@ -295,7 +268,6 @@ class Photo extends \Zotlabs\Web\Controller {
}
killme();
- // NOTREACHED
}
}
diff --git a/Zotlabs/Module/Photos.php b/Zotlabs/Module/Photos.php
index 81af607ec..a143c4d4c 100644
--- a/Zotlabs/Module/Photos.php
+++ b/Zotlabs/Module/Photos.php
@@ -695,8 +695,8 @@ class Photos extends \Zotlabs\Web\Controller {
'$newalbum_label' => t('Enter an album name'),
'$newalbum_placeholder' => t('or select an existing album (doubleclick)'),
'$visible' => array('visible', t('Create a status post for this upload'), 0,'', array(t('No'), t('Yes')), 'onclick="showHideBodyTextarea();"'),
- '$caption' => array('description', t('Caption (optional):')),
- '$body' => array('body', t('Description (optional):'),'', 'Description will only appear in the status post'),
+ '$caption' => array('description', t('Title (optional)')),
+ '$body' => array('body', t('Description (optional)'),'', 'Description will only appear in the status post'),
'$albums' => $albums['albums'],
'$selname' => $selname,
'$permissions' => t('Permissions'),
@@ -841,7 +841,7 @@ class Photos extends \Zotlabs\Web\Controller {
'$album_id' => $datum,
'$album_edit' => array(t('Edit Album'), $album_edit),
'$can_post' => $can_post,
- '$upload' => array(t('Upload'), z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/upload/' . $datum),
+ '$upload' => array(t('Add Photos'), z_root() . '/photos/' . \App::$data['channel']['channel_address'] . '/upload/' . $datum),
'$order' => $order,
'$upload_form' => $upload_form,
'$usage' => $usage_message
@@ -1065,7 +1065,7 @@ class Photos extends \Zotlabs\Web\Controller {
'newalbum_placeholder' => t('or select an existing one (doubleclick)'),
'nickname' => \App::$data['channel']['channel_address'],
'resource_id' => $ph[0]['resource_id'],
- 'capt_label' => t('Caption'),
+ 'capt_label' => t('Title (optional)'),
'caption' => $caption_e,
'tag_label' => t('Add a Tag'),
'permissions' => t('Permissions'),
@@ -1148,10 +1148,10 @@ class Photos extends \Zotlabs\Web\Controller {
builtin_activity_puller($item, $conv_responses);
}
-
$like_count = ((x($alike,$link_item['mid'])) ? $alike[$link_item['mid']] : '');
$like_list = ((x($alike,$link_item['mid'])) ? $alike[$link_item['mid'] . '-l'] : '');
- if (count($like_list) > MAX_LIKERS) {
+
+ if(is_array($like_list) && (count($like_list) > MAX_LIKERS)) {
$like_list_part = array_slice($like_list, 0, MAX_LIKERS);
array_push($like_list_part, '<a href="#" data-toggle="modal" data-target="#likeModal-' . $this->get_id() . '"><b>' . t('View all') . '</b></a>');
} else {
@@ -1163,7 +1163,7 @@ class Photos extends \Zotlabs\Web\Controller {
$dislike_count = ((x($dlike,$link_item['mid'])) ? $dlike[$link_item['mid']] : '');
$dislike_list = ((x($dlike,$link_item['mid'])) ? $dlike[$link_item['mid'] . '-l'] : '');
$dislike_button_label = tt('Dislike','Dislikes',$dislike_count,'noun');
- if (count($dislike_list) > MAX_LIKERS) {
+ if (is_array($dislike_list) && (count($dislike_list) > MAX_LIKERS)) {
$dislike_list_part = array_slice($dislike_list, 0, MAX_LIKERS);
array_push($dislike_list_part, '<a href="#" data-toggle="modal" data-target="#dislikeModal-' . $this->get_id() . '"><b>' . t('View all') . '</b></a>');
} else {
@@ -1378,7 +1378,7 @@ class Photos extends \Zotlabs\Web\Controller {
'$title' => t('Recent Photos'),
'$album_id' => bin2hex(t('Recent Photos')),
'$can_post' => $can_post,
- '$upload' => array(t('Upload'), z_root().'/photos/'.\App::$data['channel']['channel_address'].'/upload'),
+ '$upload' => array(t('Add Photos'), z_root().'/photos/'.\App::$data['channel']['channel_address'].'/upload'),
'$photos' => $photos,
'$upload_form' => $upload_form,
'$usage' => $usage_message
diff --git a/Zotlabs/Module/Ping.php b/Zotlabs/Module/Ping.php
index eab49d69e..206b8c3d1 100644
--- a/Zotlabs/Module/Ping.php
+++ b/Zotlabs/Module/Ping.php
@@ -140,7 +140,13 @@ class Ping extends \Zotlabs\Web\Controller {
db_utcnow(), db_quoteinterval('3 MINUTE')
);
- $discover_tab_on = ((get_config('system','disable_discover_tab') || get_config('system','disable_discover_tab') === false) ? false : true);
+
+ $sql_extra = '';
+ if(! ($vnotify & VNOTIFY_LIKE))
+ $sql_extra = " AND verb NOT IN ('" . dbesc(ACTIVITY_LIKE) . "', '" . dbesc(ACTIVITY_DISLIKE) . "') ";
+
+ $discover_tab_on = can_view_public_stream();
+
$notify_pubs = ((local_channel()) ? ($vnotify & VNOTIFY_PUBS) && $discover_tab_on : $discover_tab_on);
if($notify_pubs) {
@@ -151,7 +157,8 @@ class Ping extends \Zotlabs\Web\Controller {
AND item_unseen = 1
AND author_xchan != '%s'
AND created > '" . datetime_convert('UTC','UTC',$_SESSION['static_loadtime']) . "'
- $item_normal",
+ $item_normal
+ $sql_extra",
intval($sys['channel_id']),
dbesc(get_observer_hash())
);
@@ -160,6 +167,8 @@ class Ping extends \Zotlabs\Web\Controller {
$result['pubs'] = intval($pubs[0]['total']);
}
+
+
if((argc() > 1) && (argv(1) === 'pubs') && ($notify_pubs)) {
$sys = get_sys_channel();
$result = array();
@@ -170,6 +179,7 @@ class Ping extends \Zotlabs\Web\Controller {
AND author_xchan != '%s'
AND created > '" . datetime_convert('UTC','UTC',$_SESSION['static_loadtime']) . "'
$item_normal
+ $sql_extra
ORDER BY created DESC
LIMIT 300",
intval($sys['channel_id']),
@@ -275,10 +285,10 @@ class Ping extends \Zotlabs\Web\Controller {
intval(local_channel())
);
- $b64mid = ((strpos($r[0]['thr_parent'], 'b64.' === 0)) ? $r[0]['thr_parent'] : 'b64.' . base64url_encode($r[0]['thr_parent']));
+ $b64mid = ((strpos($r[0]['thr_parent'], 'b64.') === 0) ? $r[0]['thr_parent'] : 'b64.' . base64url_encode($r[0]['thr_parent']));
}
else {
- $b64mid = ((strpos($mid, 'b64.' === 0)) ? $mid : 'b64.' . base64url_encode($mid));
+ $b64mid = ((strpos($mid, 'b64.') === 0) ? $mid : 'b64.' . base64url_encode($mid));
}
$notifs[] = array(
@@ -334,6 +344,7 @@ class Ping extends \Zotlabs\Web\Controller {
AND item_unseen = 1
AND author_xchan != '%s'
$item_normal
+ $sql_extra
ORDER BY created DESC
LIMIT 300",
intval(local_channel()),
@@ -508,6 +519,7 @@ class Ping extends \Zotlabs\Web\Controller {
$r = q("SELECT id, item_wall FROM item
WHERE uid = %d and item_unseen = 1
$item_normal
+ $sql_extra
AND author_xchan != '%s'",
intval(local_channel()),
dbesc($ob_hash)
diff --git a/Zotlabs/Module/Profile_photo.php b/Zotlabs/Module/Profile_photo.php
index 2ce8686b9..751c4338f 100644
--- a/Zotlabs/Module/Profile_photo.php
+++ b/Zotlabs/Module/Profile_photo.php
@@ -451,6 +451,7 @@ class Profile_photo extends \Zotlabs\Web\Controller {
$o .= replace_macros($tpl,array(
'$user' => \App::$channel['channel_address'],
+ '$info' => ((count($profiles) > 1) ? t('Your default profile photo is visible to anybody on the internet. Profile photos for alternate profiles will inherit the permissions of the profile') : t('Your profile photo is visible to anybody on the internet and may be distributed to other websites.')),
'$importfile' => (($importing) ? \App::$data['importfile'] : ''),
'$lbl_upfile' => t('Upload File:'),
'$lbl_profiles' => t('Select a profile:'),
diff --git a/Zotlabs/Module/Profiles.php b/Zotlabs/Module/Profiles.php
index b1cf9596c..202ee462a 100644
--- a/Zotlabs/Module/Profiles.php
+++ b/Zotlabs/Module/Profiles.php
@@ -655,7 +655,7 @@ class Profiles extends \Zotlabs\Web\Controller {
intval($id),
intval(local_channel())
);
- if(! count($r)) {
+ if(! $r) {
notice( t('Profile not found.') . EOL);
return;
}
@@ -712,13 +712,10 @@ class Profiles extends \Zotlabs\Web\Controller {
$tpl = get_markup_template("profile_edit.tpl");
$o .= replace_macros($tpl,array(
-
+ '$multi_profiles' => ((feature_enabled(local_channel(),'multi_profiles')) ? true : false),
'$form_security_token' => get_form_security_token("profile_edit"),
- '$profile_clone_link' => ((feature_enabled(local_channel(),'multi_profiles')) ? 'profiles/clone/' . $r[0]['id'] . '?t='
- . get_form_security_token("profile_clone") : ''),
- '$profile_drop_link' => 'profiles/drop/' . $r[0]['id'] . '?t='
- . get_form_security_token("profile_drop"),
-
+ '$profile_clone_link' => 'profiles/clone/' . $r[0]['id'] . '?t=' . get_form_security_token("profile_clone"),
+ '$profile_drop_link' => 'profiles/drop/' . $r[0]['id'] . '?t=' . get_form_security_token("profile_drop"),
'$fields' => $fields,
'$vcard' => $vcard,
'$guid' => $r[0]['profile_guid'],
@@ -735,7 +732,7 @@ class Profiles extends \Zotlabs\Web\Controller {
'$addthing' => t('Add profile things'),
'$personal' => t('Personal'),
'$location' => t('Location'),
- '$relation' => t('Relation'),
+ '$relation' => t('Relationship'),
'$miscellaneous'=> t('Miscellaneous'),
'$exportable' => feature_enabled(local_channel(),'profile_export'),
'$lbl_import' => t('Import profile from file'),
@@ -786,22 +783,22 @@ class Profiles extends \Zotlabs\Web\Controller {
'$channels' => array('channels', t('My other channels'), $r[0]['channels']),
'$extra_fields' => $extra_fields,
'$comms' => t('Communications'),
- '$tel_label' => t('Phone'),
- '$email_label' => t('Email'),
- '$impp_label' => t('Instant messenger'),
- '$url_label' => t('Website'),
- '$adr_label' => t('Address'),
- '$note_label' => t('Note'),
- '$mobile' => t('Mobile'),
- '$home' => t('Home'),
- '$work' => t('Work'),
- '$other' => t('Other'),
- '$add_card' => t('Add Contact'),
- '$add_field' => t('Add Field'),
- '$create' => t('Create'),
- '$update' => t('Update'),
- '$delete' => t('Delete'),
- '$cancel' => t('Cancel'),
+ '$tel_label' => t('Phone'),
+ '$email_label' => t('Email'),
+ '$impp_label' => t('Instant messenger'),
+ '$url_label' => t('Website'),
+ '$adr_label' => t('Address'),
+ '$note_label' => t('Note'),
+ '$mobile' => t('Mobile'),
+ '$home' => t('Home'),
+ '$work' => t('Work'),
+ '$other' => t('Other'),
+ '$add_card' => t('Add Contact'),
+ '$add_field' => t('Add Field'),
+ '$create' => t('Create'),
+ '$update' => t('Update'),
+ '$delete' => t('Delete'),
+ '$cancel' => t('Cancel'),
));
$arr = array('profile' => $r[0], 'entry' => $o);
diff --git a/Zotlabs/Module/Pubstream.php b/Zotlabs/Module/Pubstream.php
index 79f205a22..571118201 100644
--- a/Zotlabs/Module/Pubstream.php
+++ b/Zotlabs/Module/Pubstream.php
@@ -34,6 +34,8 @@ class Pubstream extends \Zotlabs\Web\Controller {
}
$mid = ((x($_REQUEST,'mid')) ? $_REQUEST['mid'] : '');
+ $hashtags = ((x($_REQUEST,'tag')) ? $_REQUEST['tag'] : '');
+
if(strpos($mid,'b64.') === 0)
$decoded = @base64url_decode(substr($mid,4));
@@ -133,7 +135,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
'$order' => 'comment',
'$file' => '',
'$cats' => '',
- '$tags' => '',
+ '$tags' => $hashtags,
'$dend' => '',
'$mid' => $mid,
'$verb' => '',
@@ -170,6 +172,10 @@ class Pubstream extends \Zotlabs\Web\Controller {
$page_mode = 'client';
+ if(x($hashtags)) {
+ $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
+ }
+
$net_query = (($net) ? " left join xchan on xchan_hash = author_xchan " : '');
$net_query2 = (($net) ? " and xchan_network = '" . protect_sprintf(dbesc($net)) . "' " : '');
@@ -224,7 +230,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
);
}
else {
- $r = q("SELECT distinct parent AS item_id, $ordering FROM item
+ $r = q("SELECT parent AS item_id FROM item
left join abook on item.author_xchan = abook.abook_xchan
$net_query
WHERE true $uids $item_normal_update
@@ -273,7 +279,7 @@ class Pubstream extends \Zotlabs\Web\Controller {
$o .= '<div id="content-complete"></div>';
if(($items) && (! $update))
- $o .= alt_pager($a,count($items));
+ $o .= alt_pager(count($items));
return $o;
diff --git a/Zotlabs/Module/React.php b/Zotlabs/Module/React.php
index 6473317c7..fbb760786 100644
--- a/Zotlabs/Module/React.php
+++ b/Zotlabs/Module/React.php
@@ -49,6 +49,7 @@ class React extends \Zotlabs\Web\Controller {
$n['aid'] = $channel['channel_account_id'];
$n['uid'] = $channel['channel_id'];
$n['item_origin'] = true;
+ $n['item_type'] = $i[0]['item_type'];
$n['parent'] = $postid;
$n['parent_mid'] = $i[0]['mid'];
$n['mid'] = item_message_id();
diff --git a/Zotlabs/Module/Regmod.php b/Zotlabs/Module/Regmod.php
index c7e5c44aa..70635d707 100644
--- a/Zotlabs/Module/Regmod.php
+++ b/Zotlabs/Module/Regmod.php
@@ -35,6 +35,8 @@ class Regmod extends \Zotlabs\Web\Controller {
if($cmd === 'allow') {
if (! account_allow($hash)) killme();
}
+
+ goaway('/admin/accounts');
}
}
diff --git a/Zotlabs/Module/Rpost.php b/Zotlabs/Module/Rpost.php
index 42c360fd4..f0c4a06b9 100644
--- a/Zotlabs/Module/Rpost.php
+++ b/Zotlabs/Module/Rpost.php
@@ -113,43 +113,7 @@ class Rpost extends \Zotlabs\Web\Controller {
}
if($_REQUEST['post_id']) {
- $r = q("SELECT * from item WHERE id = %d LIMIT 1",
- intval($_REQUEST['post_id'])
- );
- if(($r) && (! intval($r[0]['item_private']))) {
- $sql_extra = item_permissions_sql($r[0]['uid']);
-
- $r = q("select * from item where id = %d $sql_extra",
- intval($_REQUEST['post_id'])
- );
- if($r && $r[0]['mimetype'] === 'text/bbcode') {
-
- xchan_query($r);
-
- $is_photo = (($r[0]['obj_type'] === ACTIVITY_OBJ_PHOTO) ? true : false);
- if($is_photo) {
- $object = json_decode($r[0]['obj'],true);
- $photo_bb = $object['body'];
- }
-
- if (strpos($r[0]['body'], "[/share]") !== false) {
- $pos = strpos($r[0]['body'], "[share");
- $i = substr($r[0]['body'], $pos);
- } else {
- $i = "[share author='".urlencode($r[0]['author']['xchan_name']).
- "' profile='".$r[0]['author']['xchan_url'] .
- "' avatar='".$r[0]['author']['xchan_photo_s'].
- "' link='".$r[0]['plink'].
- "' posted='".$r[0]['created'].
- "' message_id='".$r[0]['mid']."']";
- if($r[0]['title'])
- $i .= '[b]'.$r[0]['title'].'[/b]'."\r\n";
- $i .= (($is_photo) ? $photo_bb . "\r\n" . $r[0]['body'] : $r[0]['body']);
- $i .= "[/share]";
- }
- }
- }
- $_REQUEST['body'] = $_REQUEST['body'] . $i;
+ $_REQUEST['body'] .= '[share=' . intval($_REQUEST['post_id']) . '][/share]';
}
$x = array(
diff --git a/Zotlabs/Module/Search.php b/Zotlabs/Module/Search.php
index 55e0e746f..43464ad8b 100644
--- a/Zotlabs/Module/Search.php
+++ b/Zotlabs/Module/Search.php
@@ -66,6 +66,10 @@ class Search extends \Zotlabs\Web\Controller {
$search = substr($search,1);
goaway(z_root() . '/directory' . '?f=1&navsearch=1&search=' . $search);
}
+ if(strpos($search,'!') === 0) {
+ $search = substr($search,1);
+ goaway(z_root() . '/directory' . '?f=1&navsearch=1&search=' . $search);
+ }
if(strpos($search,'?') === 0) {
$search = substr($search,1);
goaway(z_root() . '/help' . '?f=1&navsearch=1&search=' . $search);
diff --git a/Zotlabs/Module/Settings/Channel.php b/Zotlabs/Module/Settings/Channel.php
index fb8284d2e..3e928ec58 100644
--- a/Zotlabs/Module/Settings/Channel.php
+++ b/Zotlabs/Module/Settings/Channel.php
@@ -202,12 +202,14 @@ class Channel {
$vnotify += intval($_POST['vnotify9']);
if(x($_POST,'vnotify10'))
$vnotify += intval($_POST['vnotify10']);
- if(x($_POST,'vnotify11'))
+ if(x($_POST,'vnotify11') && is_site_admin())
$vnotify += intval($_POST['vnotify11']);
if(x($_POST,'vnotify12'))
$vnotify += intval($_POST['vnotify12']);
if(x($_POST,'vnotify13'))
$vnotify += intval($_POST['vnotify13']);
+ if(x($_POST,'vnotify14'))
+ $vnotify += intval($_POST['vnotify14']);
$always_show_in_notices = x($_POST,'always_show_in_notices') ? 1 : 0;
@@ -412,12 +414,16 @@ class Channel {
));
$subdir = ((strlen(\App::get_path())) ? '<br />' . t('or') . ' ' . z_root() . '/channel/' . $nickname : '');
+
+ $webbie = $nickname . '@' . \App::get_hostname();
+ $intl_nickname = unpunify($nickname) . '@' . unpunify(\App::get_hostname());
+
$tpl_addr = get_markup_template("settings_nick_set.tpl");
$prof_addr = replace_macros($tpl_addr,array(
'$desc' => t('Your channel address is'),
- '$nickname' => $nickname,
+ '$nickname' => (($intl_nickname === $webbie) ? $webbie : $intl_nickname . '&nbsp;(' . $webbie . ')'),
'$subdir' => $subdir,
'$davdesc' => t('Your files/photos are accessible via WebDAV at'),
'$davpath' => ((get_account_techlevel() > 3) ? z_root() . '/dav/' . $nickname : ''),
@@ -480,7 +486,8 @@ class Channel {
$plugin = [ 'basic' => '', 'security' => '', 'notify' => '', 'misc' => '' ];
call_hooks('channel_settings',$plugin);
- $disable_discover_tab = get_config('system','disable_discover_tab') || get_config('system','disable_discover_tab') === false;
+ $disable_discover_tab = intval(get_config('system','disable_discover_tab',1)) == 1;
+ $site_firehose = intval(get_config('system','site_firehose',0)) == 1;
$o .= replace_macros($stpl,array(
'$ptitle' => t('Channel Settings'),
@@ -529,7 +536,7 @@ class Channel {
'$deny_gid' => acl2json($perm_defaults['deny_gid']),
'$suggestme' => $suggestme,
'$group_select' => $group_select,
- '$role' => array('permissions_role' , t('Channel permissions category:'), $permissions_role, '', $perm_roles),
+ '$role' => array('permissions_role' , t('Channel role and privacy'), $permissions_role, '', $perm_roles),
'$defpermcat' => [ 'defpermcat', t('Default Permissions Group'), $default_permcat, '', $permcats ],
'$permcat_enable' => feature_enabled(local_channel(),'permcats'),
'$profile_in_dir' => $profile_in_dir,
@@ -569,11 +576,12 @@ class Channel {
'$vnotify8' => array('vnotify8', t('System info messages'), ($vnotify & VNOTIFY_INFO), VNOTIFY_INFO, t('Recommended'), $yes_no),
'$vnotify9' => array('vnotify9', t('System critical alerts'), ($vnotify & VNOTIFY_ALERT), VNOTIFY_ALERT, t('Recommended'), $yes_no),
'$vnotify10' => array('vnotify10', t('New connections'), ($vnotify & VNOTIFY_INTRO), VNOTIFY_INTRO, t('Recommended'), $yes_no),
- '$vnotify11' => array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, '', $yes_no),
+ '$vnotify11' => ((is_site_admin()) ? array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, '', $yes_no) : array()),
'$vnotify12' => array('vnotify12', t('Unseen shared files'), ($vnotify & VNOTIFY_FILES), VNOTIFY_FILES, '', $yes_no),
- '$vnotify13' => (($disable_discover_tab) ? array() : array('vnotify13', t('Unseen public activity'), ($vnotify & VNOTIFY_PUBS), VNOTIFY_PUBS, '', $yes_no)),
+ '$vnotify13' => (($disable_discover_tab && !$site_firehose) ? array() : array('vnotify13', t('Unseen public activity'), ($vnotify & VNOTIFY_PUBS), VNOTIFY_PUBS, '', $yes_no)),
+ '$vnotify14' => array('vnotify14', t('Unseen likes and dislikes'), ($vnotify & VNOTIFY_LIKE), VNOTIFY_LIKE, '', $yes_no),
'$mailhost' => [ 'mailhost', t('Email notification hub (hostname)'), get_pconfig(local_channel(),'system','email_notify_host',\App::get_hostname()), sprintf( t('If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s'),\App::get_hostname()) ],
- '$always_show_in_notices' => array('always_show_in_notices', t('Also show new wall posts, private messages and connections under Notices'), $always_show_in_notices, 1, '', $yes_no),
+ '$always_show_in_notices' => array('always_show_in_notices', t('Show new wall posts, private messages and connections under Notices'), $always_show_in_notices, 1, '', $yes_no),
'$evdays' => array('evdays', t('Notify me of events this many days in advance'), $evdays, t('Must be greater than 0')),
'$basic_addon' => $plugin['basic'],
diff --git a/Zotlabs/Module/Settings/Featured.php b/Zotlabs/Module/Settings/Featured.php
index 1da139206..542a05363 100644
--- a/Zotlabs/Module/Settings/Featured.php
+++ b/Zotlabs/Module/Settings/Featured.php
@@ -57,7 +57,10 @@ class Featured {
}
call_hooks('feature_settings', $settings_addons);
-
+
+ $this->sortpanels($settings_addons);
+
+
$tpl = get_markup_template("settings_addons.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_featured"),
@@ -67,5 +70,15 @@ class Featured {
));
return $o;
}
-
-} \ No newline at end of file
+
+ function sortpanels(&$s) {
+ $a = explode('<div class="panel">',$s);
+ if($a) {
+ usort($a,'featured_sort');
+ $s = implode('<div class="panel">',$a);
+ }
+ }
+
+}
+
+
diff --git a/Zotlabs/Module/Settings/Features.php b/Zotlabs/Module/Settings/Features.php
index 5b642acc3..888032c28 100644
--- a/Zotlabs/Module/Settings/Features.php
+++ b/Zotlabs/Module/Settings/Features.php
@@ -8,43 +8,75 @@ class Features {
function post() {
check_form_security_token_redirectOnErr('/settings/features', 'settings_features');
- // Build list of features and check which are set
- // We will not create any settings for features that are above our techlevel
-
- $features = get_features();
- $all_features = array();
- foreach($features as $k => $v) {
- foreach($v as $f)
- $all_features[] = $f[0];
- }
- foreach($all_features as $k) {
- if(x($_POST,"feature_$k"))
- set_pconfig(local_channel(),'feature',$k, 1);
- else
- set_pconfig(local_channel(),'feature',$k, 0);
+ $features = get_features(false);
+
+ foreach($features as $fname => $fdata) {
+ foreach(array_slice($fdata,1) as $f) {
+ $k = $f[0];
+ if(array_key_exists("feature_$k",$_POST))
+ set_pconfig(local_channel(),'feature',$k, (string) $_POST["feature_$k"]);
+ else
+ set_pconfig(local_channel(),'feature', $k, '');
+ }
}
build_sync_packet();
return;
}
function get() {
- $arr = array();
- $features = get_features();
-
+
+ $arr = [];
+ $harr = [];
+
+ if(intval($_REQUEST['techlevel']))
+ $level = intval($_REQUEST['techlevel']);
+ else {
+ $level = get_account_techlevel();
+ }
+
+ if(! intval($level)) {
+ notice( t('Permission denied.') . EOL);
+ return;
+ }
+
+ $techlevels = \Zotlabs\Lib\Techlevels::levels();
+
+ // This page isn't accessible at techlevel 0
+
+ unset($techlevels[0]);
+
+ $def_techlevel = (($level > 0) ? $level : 1);
+ $techlock = get_config('system','techlevel_lock');
+
+ $all_features_raw = get_features(false);
+
+ foreach($all_features_raw as $fname => $fdata) {
+ foreach(array_slice($fdata,1) as $f) {
+ $harr[$f[0]] = ((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : '');
+ }
+ }
+
+ $features = get_features(true,$level);
+
foreach($features as $fname => $fdata) {
$arr[$fname] = array();
$arr[$fname][0] = $fdata[0];
foreach(array_slice($fdata,1) as $f) {
- $arr[$fname][1][] = array('feature_' .$f[0],$f[1],((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
+ $arr[$fname][1][] = array('feature_' . $f[0],$f[1],((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On')));
+ unset($harr[$f[0]]);
}
}
$tpl = get_markup_template("settings_features.tpl");
$o .= replace_macros($tpl, array(
'$form_security_token' => get_form_security_token("settings_features"),
- '$title' => t('Additional Features'),
- '$features' => $arr,
- '$submit' => t('Submit'),
+ '$title' => t('Additional Features'),
+ '$techlevel' => [ 'techlevel', t('Your technical skill level'), $def_techlevel, t('Used to provide a member experience and additional features consistent with your comfort level'), $techlevels ],
+ '$techlock' => $techlock,
+ '$features' => $arr,
+ '$hiddens' => $harr,
+ '$baseurl' => z_root(),
+ '$submit' => t('Submit'),
));
return $o;
diff --git a/Zotlabs/Module/Settings/Oauth.php b/Zotlabs/Module/Settings/Oauth.php
index c612c7667..d6576c6de 100644
--- a/Zotlabs/Module/Settings/Oauth.php
+++ b/Zotlabs/Module/Settings/Oauth.php
@@ -23,11 +23,12 @@ class Oauth {
check_form_security_token_redirectOnErr('/settings/oauth', 'settings_oauth');
- $name = ((x($_POST,'name')) ? $_POST['name'] : '');
- $key = ((x($_POST,'key')) ? $_POST['key'] : '');
- $secret = ((x($_POST,'secret')) ? $_POST['secret'] : '');
- $redirect = ((x($_POST,'redirect')) ? $_POST['redirect'] : '');
- $icon = ((x($_POST,'icon')) ? $_POST['icon'] : '');
+ $name = ((x($_POST,'name')) ? escape_tags($_POST['name']) : '');
+ $key = ((x($_POST,'key')) ? escape_tags($_POST['key']) : '');
+ $secret = ((x($_POST,'secret')) ? escape_tags($_POST['secret']) : '');
+ $redirect = ((x($_POST,'redirect')) ? escape_tags($_POST['redirect']) : '');
+ $icon = ((x($_POST,'icon')) ? escape_tags($_POST['icon']) : '');
+ $oauth2 = ((x($_POST,'oauth2')) ? intval($_POST['oauth2']) : 0);
$ok = true;
if($name == '') {
$ok = false;
diff --git a/Zotlabs/Module/Settings/Oauth2.php b/Zotlabs/Module/Settings/Oauth2.php
new file mode 100644
index 000000000..88bbea3b8
--- /dev/null
+++ b/Zotlabs/Module/Settings/Oauth2.php
@@ -0,0 +1,160 @@
+<?php
+
+namespace Zotlabs\Module\Settings;
+
+
+class Oauth2 {
+
+
+ function post() {
+
+ if(x($_POST,'remove')){
+ check_form_security_token_redirectOnErr('/settings/oauth2', 'settings_oauth2');
+
+ $key = $_POST['remove'];
+ q("DELETE FROM tokens WHERE id='%s' AND uid=%d",
+ dbesc($key),
+ local_channel());
+ goaway(z_root()."/settings/oauth2/");
+ return;
+ }
+
+ if((argc() > 2) && (argv(2) === 'edit' || argv(2) === 'add') && x($_POST,'submit')) {
+
+ check_form_security_token_redirectOnErr('/settings/oauth2', 'settings_oauth2');
+
+ $name = ((x($_POST,'name')) ? escape_tags(trim($_POST['name'])) : '');
+ $secret = ((x($_POST,'secret')) ? escape_tags(trim($_POST['secret'])) : '');
+ $redirect = ((x($_POST,'redirect')) ? escape_tags(trim($_POST['redirect'])) : '');
+ $grant = ((x($_POST,'grant')) ? escape_tags(trim($_POST['grant'])) : '');
+ $scope = ((x($_POST,'scope')) ? escape_tags(trim($_POST['scope'])) : '');
+
+ $ok = true;
+ if($name == '' || $secret == '') {
+ $ok = false;
+ notice( t('Name and Secret are required') . EOL);
+ }
+
+ if($ok) {
+ if ($_POST['submit']==t("Update")){
+ $r = q("UPDATE oauth_clients SET
+ client_id = '%s',
+ client_secret = '%s',
+ redirect_uri = '%s',
+ grant_types = '%s',
+ scope = '%s',
+ user_id = '%s'
+ WHERE client_id='%s'",
+ dbesc($name),
+ dbesc($secret),
+ dbesc($redirect),
+ dbesc($grant),
+ dbesc($scope),
+ dbesc(local_channel()),
+ dbesc($name));
+ } else {
+ $r = q("INSERT INTO oauth_clients (client_id, client_secret, redirect_uri, grant_types, scope, user_id)
+ VALUES ('%s','%s','%s','%s','%s','%s')",
+ dbesc($name),
+ dbesc($secret),
+ dbesc($redirect),
+ dbesc($grant),
+ dbesc($scope),
+ dbesc(local_channel())
+ );
+ $r = q("INSERT INTO xperm (xp_client, xp_channel, xp_perm) VALUES ('%s', %d, '%s') ",
+ dbesc($name),
+ intval(local_channel()),
+ dbesc('all')
+ );
+ }
+ }
+ goaway(z_root()."/settings/oauth2/");
+ return;
+ }
+ }
+
+ function get() {
+
+ if((argc() > 2) && (argv(2) === 'add')) {
+ $tpl = get_markup_template("settings_oauth2_edit.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_oauth2"),
+ '$title' => t('Add OAuth2 application'),
+ '$submit' => t('Submit'),
+ '$cancel' => t('Cancel'),
+ '$name' => array('name', t('Name'), '', t('Name of application')),
+ '$secret' => array('secret', t('Consumer Secret'), random_string(16), t('Automatically generated - change if desired. Max length 20')),
+ '$redirect' => array('redirect', t('Redirect'), '', t('Redirect URI - leave blank unless your application specifically requires this')),
+ '$grant' => array('grant', t('Grant Types'), '', t('leave blank unless your application sepcifically requires this')),
+ '$scope' => array('scope', t('Authorization scope'), '', t('leave blank unless your application sepcifically requires this')),
+ ));
+ return $o;
+ }
+
+ if((argc() > 3) && (argv(2) === 'edit')) {
+ $r = q("SELECT * FROM oauth_clients WHERE client_id='%s' AND user_id= '%s'",
+ dbesc(argv(3)),
+ dbesc(local_channel())
+ );
+
+ if (! $r){
+ notice(t('OAuth2 Application not found.'));
+ return;
+ }
+
+ $app = $r[0];
+
+ $tpl = get_markup_template("settings_oauth2_edit.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_oauth2"),
+ '$title' => t('Add application'),
+ '$submit' => t('Update'),
+ '$cancel' => t('Cancel'),
+ '$name' => array('name', t('Name'), $app['client_id'], t('Name of application')),
+ '$secret' => array('secret', t('Consumer Secret'), $app['client_secret'], t('Automatically generated - change if desired. Max length 20')),
+ '$redirect' => array('redirect', t('Redirect'), $app['redirect_uri'], t('Redirect URI - leave blank unless your application specifically requires this')),
+ '$grant' => array('grant', t('Grant Types'), $app['grant_types'], t('leave blank unless your application sepcifically requires this')),
+ '$scope' => array('scope', t('Authorization scope'), $app['scope'], t('leave blank unless your application sepcifically requires this')),
+ ));
+ return $o;
+ }
+
+ if((argc() > 3) && (argv(2) === 'delete')) {
+ check_form_security_token_redirectOnErr('/settings/oauth2', 'settings_oauth2', 't');
+
+ $r = q("DELETE FROM oauth_clients WHERE client_id = '%s' AND user_id = '%s'",
+ dbesc(argv(3)),
+ dbesc(local_channel())
+ );
+ goaway(z_root()."/settings/oauth2/");
+ return;
+ }
+
+
+ $r = q("SELECT oauth_clients.*, oauth_access_tokens.access_token as oauth_token, (oauth_clients.user_id = '%s') AS my
+ FROM oauth_clients
+ LEFT JOIN oauth_access_tokens ON oauth_clients.client_id=oauth_access_tokens.client_id
+ WHERE oauth_clients.user_id IN ('%s',0)",
+ dbesc(local_channel()),
+ dbesc(local_channel())
+ );
+
+ $tpl = get_markup_template("settings_oauth2.tpl");
+ $o .= replace_macros($tpl, array(
+ '$form_security_token' => get_form_security_token("settings_oauth2"),
+ '$baseurl' => z_root(),
+ '$title' => t('Connected OAuth2 Apps'),
+ '$add' => t('Add application'),
+ '$edit' => t('Edit'),
+ '$delete' => t('Delete'),
+ '$consumerkey' => t('Client key starts with'),
+ '$noname' => t('No name'),
+ '$remove' => t('Remove authorization'),
+ '$apps' => $r,
+ ));
+ return $o;
+
+ }
+
+} \ No newline at end of file
diff --git a/Zotlabs/Module/Settings/Permcats.php b/Zotlabs/Module/Settings/Permcats.php
index 535399083..40641c3f2 100644
--- a/Zotlabs/Module/Settings/Permcats.php
+++ b/Zotlabs/Module/Settings/Permcats.php
@@ -19,6 +19,11 @@ class Permcats {
$all_perms = \Zotlabs\Access\Permissions::Perms();
$name = escape_tags(trim($_POST['name']));
+ if(! $name) {
+ notice( t('Permission Name is required.') . EOL);
+ return;
+ }
+
$pcarr = [];
diff --git a/Zotlabs/Module/Setup.php b/Zotlabs/Module/Setup.php
index 8e7fbbddf..a3832d156 100644
--- a/Zotlabs/Module/Setup.php
+++ b/Zotlabs/Module/Setup.php
@@ -563,16 +563,20 @@ class Setup extends \Zotlabs\Web\Controller {
$status = true;
$help = '';
- if( (file_exists('.htconfig.php') && !is_writable('.htconfig.php')) ||
- (!file_exists('.htconfig.php') && !is_writable('.')) ) {
- $status = false;
- $help = t('The web installer needs to be able to create a file called ".htconfig.php" in the top folder of your web server and it is unable to do so.') .EOL;
- $help .= t('This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.').EOL;
- $help .= t('At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder.').EOL;
- $help .= t('You can alternatively skip this procedure and perform a manual installation. Please see the file "install/INSTALL.txt" for instructions.').EOL;
+ $fname = '.htconfig.php';
+
+ if((file_exists($fname) && is_writable($fname)) ||
+ (! (file_exists($fname) && is_writable('.')))) {
+ $this->check_add($checks, t('.htconfig.php is writable'), $status, true, $help);
+ return;
}
- $this->check_add($checks, t('.htconfig.php is writable'), $status, false, $help);
+ $status = false;
+ $help = t('The web installer needs to be able to create a file called ".htconfig.php" in the top folder of your web server and it is unable to do so.') .EOL;
+ $help .= t('This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can.').EOL;
+ $help .= t('Please see install/INSTALL.txt for additional information.');
+
+ $this->check_add($checks, t('.htconfig.php is writable'), $status, true, $help);
}
/**
diff --git a/Zotlabs/Module/Share.php b/Zotlabs/Module/Share.php
index 7f4d8b1eb..c6d0be051 100644
--- a/Zotlabs/Module/Share.php
+++ b/Zotlabs/Module/Share.php
@@ -14,10 +14,15 @@ class Share extends \Zotlabs\Web\Controller {
if(! $post_id)
killme();
-
echo '[share=' . $post_id . '][/share]';
killme();
+
+ /**
+ * The remaining code is deprecated and handled in Zotlabs/Lib/Share.php at post
+ * submission time.
+ */
+
if(! (local_channel() || remote_channel()))
killme();
@@ -60,12 +65,14 @@ class Share extends \Zotlabs\Web\Controller {
$pos = strpos($r[0]['body'], "[share");
$o = substr($r[0]['body'], $pos);
} else {
- $o = "[share author='".urlencode($r[0]['author']['xchan_name']).
- "' profile='".$r[0]['author']['xchan_url'] .
- "' avatar='".$r[0]['author']['xchan_photo_s'].
- "' link='".$r[0]['plink'].
- "' posted='".$r[0]['created'].
- "' message_id='".$r[0]['mid']."']";
+ $o = "[share author='" . urlencode($r[0]['author']['xchan_name']) .
+ "' profile='" . $r[0]['author']['xchan_url'] .
+ "' avatar='" . $r[0]['author']['xchan_photo_s'] .
+ "' link='" . $r[0]['plink'] .
+ "' auth='" . (($r[0]['author']['network'] === 'zot') ? 'true' : 'false') .
+ "' posted='" . $r[0]['created'] .
+ "' message_id='" . $r[0]['mid'] .
+ "']";
if($r[0]['title'])
$o .= '[b]'.$r[0]['title'].'[/b]'."\r\n";
$o .= (($is_photo) ? $photo_bb . "\r\n" . $r[0]['body'] : $r[0]['body']);
diff --git a/Zotlabs/Module/Token.php b/Zotlabs/Module/Token.php
index f7c074233..32cf95c61 100644
--- a/Zotlabs/Module/Token.php
+++ b/Zotlabs/Module/Token.php
@@ -29,7 +29,8 @@ class Token extends \Zotlabs\Web\Controller {
}
$s = new \Zotlabs\Identity\OAuth2Server(new OAuth2Storage(\DBA::$dba->db));
- $s->handleTokenRequest(\OAuth2\Request::createFromGlobals())->send();
+ $request = \OAuth2\Request::createFromGlobals();
+ $s->handleTokenRequest($request)->send();
killme();
}
diff --git a/Zotlabs/Module/Uexport.php b/Zotlabs/Module/Uexport.php
index 28c840ceb..9af1887dc 100644
--- a/Zotlabs/Module/Uexport.php
+++ b/Zotlabs/Module/Uexport.php
@@ -22,8 +22,8 @@ class Uexport extends \Zotlabs\Web\Controller {
$month = intval(argv(2));
}
- header('content-type: application/octet_stream');
- header('content-disposition: attachment; filename="' . $channel['channel_address'] . (($year) ? '-' . $year : '') . (($month) ? '-' . $month : '') . '.json"' );
+ header('content-type: application/json');
+ header('content-disposition: attachment; filename="' . $channel['channel_address'] . (($year) ? '-' . $year : '') . (($month) ? '-' . $month : '') . (($_REQUEST['sections']) ? '-' . $_REQUEST['sections'] : '') . '.json"' );
if($year) {
echo json_encode(identity_export_year(local_channel(),$year,$month));
diff --git a/Zotlabs/Module/Webfinger.php b/Zotlabs/Module/Webfinger.php
index c50680de7..0dafae23c 100644
--- a/Zotlabs/Module/Webfinger.php
+++ b/Zotlabs/Module/Webfinger.php
@@ -17,33 +17,15 @@ class Webfinger extends \Zotlabs\Web\Controller {
$o .= '<br /><br />';
- $old = false;
if(x($_GET,'addr')) {
$addr = trim($_GET['addr']);
- // if(strpos($addr,'@') !== false) {
- $res = webfinger_rfc7033($addr,true);
- if(! $res) {
- $res = old_webfinger($addr);
- $old = true;
- }
- // }
- // else {
- // if(function_exists('lrdd'))
- // $res = lrdd($addr);
- // }
-
- if($res && $old) {
- foreach($res as $r) {
- if($r['@attributes']['rel'] === 'http://microformats.org/profile/hcard') {
- $hcard = unamp($r['@attributes']['href']);
- require_once('library/HTML5/Parser.php');
- $res['vcard'] = scrape_vcard($hcard);
- break;
- }
- }
+
+ $res = webfinger_rfc7033($addr,true);
+ if(! $res) {
+ $res = old_webfinger($addr);
}
-
+
$o .= '<pre>';
$o .= str_replace("\n",'<br />',print_r($res,true));
$o .= '</pre>';
diff --git a/Zotlabs/Module/Well_known.php b/Zotlabs/Module/Well_known.php
index b57666bff..177de2323 100644
--- a/Zotlabs/Module/Well_known.php
+++ b/Zotlabs/Module/Well_known.php
@@ -26,7 +26,6 @@ class Well_known extends \Zotlabs\Web\Controller {
killme();
}
-
switch(argv(1)) {
case 'zot-info':
\App::$argc -= 1;
@@ -52,6 +51,10 @@ class Well_known extends \Zotlabs\Web\Controller {
$module->init();
break;
+ case 'dnt-policy.txt':
+ echo file_get_contents('doc/dnt-policy.txt');
+ killme();
+
default:
if(file_exists(\App::$cmd)) {
echo file_get_contents(\App::$cmd);
diff --git a/Zotlabs/Module/Wiki.php b/Zotlabs/Module/Wiki.php
index ae543eb98..7dc8eb1bc 100644
--- a/Zotlabs/Module/Wiki.php
+++ b/Zotlabs/Module/Wiki.php
@@ -284,6 +284,8 @@ class Wiki extends \Zotlabs\Web\Controller {
$wikiheaderPage = urldecode($pageUrlName);
$renamePage = (($wikiheaderPage === 'Home') ? '' : t('Rename page'));
+ $sharePage = t('Share');
+
$p = [];
if(! $ignore_language) {
@@ -354,6 +356,8 @@ class Wiki extends \Zotlabs\Web\Controller {
'$wikiheaderName' => $wikiheaderName,
'$wikiheaderPage' => $wikiheaderPage,
'$renamePage' => $renamePage,
+ '$sharePage' => $sharePage,
+ '$shareLink' => urlencode('#^[zrl=' . z_root() . '/wiki/' . argv(1) . '/' . $wikiUrlName . '/' . $pageUrlName . ']' . '[ ' . $owner['channel_name'] . ' ] ' . $wikiheaderName . ' - ' . $wikiheaderPage . '[/zrl]'),
'$showPageControls' => $showPageControls,
'$editOrSourceLabel' => (($showPageControls) ? t('Edit') : t('Source')),
'$tools_label' => 'Page Tools',
diff --git a/Zotlabs/Storage/Browser.php b/Zotlabs/Storage/Browser.php
index f1c95802b..508c39d22 100644
--- a/Zotlabs/Storage/Browser.php
+++ b/Zotlabs/Storage/Browser.php
@@ -274,7 +274,7 @@ class Browser extends DAV\Browser\Plugin {
'$actionspanel' => $output,
'$shared' => t('Shared'),
'$create' => t('Create'),
- '$upload' => t('Upload'),
+ '$upload' => t('Add Files'),
'$is_owner' => $is_owner,
'$parentpath' => $parentpath,
'$cpath' => bin2hex(\App::$query_string),
diff --git a/Zotlabs/Storage/Directory.php b/Zotlabs/Storage/Directory.php
index 510d463c1..7068ee15a 100644
--- a/Zotlabs/Storage/Directory.php
+++ b/Zotlabs/Storage/Directory.php
@@ -169,7 +169,7 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo
$x = attach_syspaths($this->auth->owner_id,$this->folder_hash);
- $y = q("update attach set display_path = '%s where hash = '%s' and uid = %d",
+ $y = q("update attach set display_path = '%s' where hash = '%s' and uid = %d",
dbesc($x['path']),
dbesc($this->folder_hash),
intval($this->auth->owner_id)
@@ -389,8 +389,12 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo
);
if ($r) {
+
+ // When initiated from DAV, set the 'force' flag on attach_mkdir(). This will cause the operation to report success even if the
+ // folder already exists.
+
require_once('include/attach.php');
- $result = attach_mkdir($r[0], $this->auth->observer, array('filename' => $name, 'folder' => $this->folder_hash));
+ $result = attach_mkdir($r[0], $this->auth->observer, array('filename' => $name, 'folder' => $this->folder_hash, 'force' => true));
if($result['success']) {
$sync = attach_export_data($r[0],$result['data']['hash']);
@@ -680,7 +684,7 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo
throw new DAV\Exception\Forbidden('Permission denied.');
}
else {
- throw new DAV\Exception\NotFound('A component of the request file path could not be found.');
+ throw new DAV\Exception\NotFound('A component of the requested file path could not be found.');
}
}
@@ -691,7 +695,23 @@ class Directory extends DAV\Node implements DAV\ICollection, DAV\IQuota, DAV\IMo
}
$prefix = '';
- $suffix = ' order by is_dir desc, filename asc ';
+
+ if(! array_key_exists('cloud_sort',$_SESSION))
+ $_SESSION['cloud_sort'] = 'name';
+
+ switch($_SESSION['cloud_sort']) {
+ case 'size':
+ $suffix = ' order by is_dir desc, filesize asc ';
+ break;
+ // The following provides inconsistent results for directories because we re-calculate the date for directories based on the most recent change
+ case 'date':
+ $suffix = ' order by is_dir desc, edited asc ';
+ break;
+ case 'name':
+ default:
+ $suffix = ' order by is_dir desc, filename asc ';
+ break;
+ }
$r = q("select $prefix id, uid, hash, filename, filetype, filesize, revision, folder, flags, is_dir, created, edited from attach where folder = '%s' and uid = %d $perms $suffix",
dbesc($folder),
diff --git a/Zotlabs/Storage/File.php b/Zotlabs/Storage/File.php
index 53d5d3476..4610aceb7 100644
--- a/Zotlabs/Storage/File.php
+++ b/Zotlabs/Storage/File.php
@@ -49,7 +49,7 @@ class File extends DAV\Node implements DAV\IFile {
$this->data = $data;
$this->auth = $auth;
- logger(print_r($this->data, true), LOGGER_DATA);
+ // logger(print_r($this->data, true), LOGGER_DATA);
}
/**
diff --git a/Zotlabs/Storage/ZotOauth2Pdo.php b/Zotlabs/Storage/ZotOauth2Pdo.php
new file mode 100644
index 000000000..b2c3ce228
--- /dev/null
+++ b/Zotlabs/Storage/ZotOauth2Pdo.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace Zotlabs\Storage;
+
+class ZotOauth2Pdo extends \OAuth2\Storage\Pdo {
+ public function getConfig()
+ {
+ return $this->config;
+ }
+}
diff --git a/Zotlabs/Update/_1208.php b/Zotlabs/Update/_1208.php
new file mode 100644
index 000000000..840252694
--- /dev/null
+++ b/Zotlabs/Update/_1208.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1208 {
+
+ function run() {
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r1 = q("ALTER TABLE poll ADD poll_author text NOT NULL");
+ $r2 = q("create index \"poll_author_idx\" on poll (\"poll_author\") ");
+
+ $r = ($r1 && $r2);
+ }
+ else {
+ $r = q("ALTER TABLE `poll` ADD `poll_author` VARCHAR(191) NOT NULL AFTER `poll_votes`,
+ ADD INDEX `poll_author` (`poll_author`)");
+ }
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+ }
+
+}
diff --git a/Zotlabs/Update/_1209.php b/Zotlabs/Update/_1209.php
new file mode 100644
index 000000000..dc95c3166
--- /dev/null
+++ b/Zotlabs/Update/_1209.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1209 {
+
+ function run() {
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r1 = q("ALTER TABLE poll_elm ADD pelm_order numeric(6) NOT NULL DEFAULT '0' ");
+ $r2 = q("create index \"pelm_order_idx\" on poll_elm (\"pelm_order\")");
+
+ $r = ($r1 && $r2);
+ }
+ else {
+ $r = q("ALTER TABLE `poll_elm` ADD `pelm_order` int(11) NOT NULL DEFAULT 0,
+ ADD INDEX `pelm_order` (`pelm_order`)");
+ }
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+ }
+
+}
diff --git a/Zotlabs/Update/_1210.php b/Zotlabs/Update/_1210.php
new file mode 100644
index 000000000..813e3fe82
--- /dev/null
+++ b/Zotlabs/Update/_1210.php
@@ -0,0 +1,78 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1210 {
+
+ function run() {
+
+ $sql = "CREATE TABLE oauth_clients (
+ client_id VARCHAR(80) NOT NULL,
+ client_secret VARCHAR(80),
+ redirect_uri VARCHAR(2000),
+ grant_types VARCHAR(80),
+ scope VARCHAR(4000),
+ user_id VARCHAR(80),
+ PRIMARY KEY (client_id)
+);
+
+CREATE TABLE oauth_access_tokens (
+ access_token VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ PRIMARY KEY (access_token)
+);
+
+CREATE TABLE oauth_authorization_codes (
+ authorization_code VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ redirect_uri VARCHAR(2000),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ id_token VARCHAR(1000),
+ PRIMARY KEY (authorization_code)
+);
+
+CREATE TABLE oauth_refresh_tokens (
+ refresh_token VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ PRIMARY KEY (refresh_token)
+);
+
+CREATE TABLE oauth_scopes (
+ scope VARCHAR(191) NOT NULL,
+ is_default SMALLINT,
+ PRIMARY KEY (scope)
+);
+
+CREATE TABLE oauth_jwt (
+ client_id VARCHAR(80) NOT NULL,
+ subject VARCHAR(80),
+ public_key VARCHAR(2000) NOT NULL
+);
+";
+
+ $arr = explode(';', $sql);
+ $errors = 0;
+ foreach($arr as $a) {
+ if(strlen(trim($a))) {
+ $r = dbq(trim($a));
+ if(! $r) {
+ $errors ++;
+ }
+ }
+ }
+
+ if(! $errors)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+ }
+
+}
diff --git a/Zotlabs/Update/_1211.php b/Zotlabs/Update/_1211.php
new file mode 100644
index 000000000..26e25536d
--- /dev/null
+++ b/Zotlabs/Update/_1211.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1211 {
+
+ function run() {
+
+ if(ACTIVE_DBTYPE == DBTYPE_POSTGRES) {
+ $r1 = q("ALTER TABLE channel ADD channel_active timestamp NOT NULL DEFAULT '0001-01-01 00:00:00' ");
+ $r2 = q("create index \"channel_active_idx\" on channel (\"channel_active\")");
+
+ $r = ($r1 && $r2);
+ }
+ else {
+ $r = q("ALTER TABLE `channel` ADD `channel_active` datetime NOT NULL DEFAULT '0001-01-01 00:00:00' ,
+ ADD INDEX `channel_active` (`channel_active`)");
+ }
+
+ if($r)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+
+ }
+
+}
diff --git a/Zotlabs/Update/_1212.php b/Zotlabs/Update/_1212.php
new file mode 100644
index 000000000..f15ba8a71
--- /dev/null
+++ b/Zotlabs/Update/_1212.php
@@ -0,0 +1,26 @@
+<?php
+
+namespace Zotlabs\Update;
+
+class _1212 {
+
+ function run() {
+
+ $r = q("select channel_id from channel where true");
+ if($r) {
+ foreach($r as $rv) {
+ $role = get_pconfig($rv['channel_id'],'system','permissions_role');
+ if($role !== 'custom') {
+ $role_permissions = \Zotlabs\Access\PermissionRoles::role_perms($role);
+ if(array_key_exists('limits',$role_permissions) && array_key_exists('post_comments',$role_permissions['limits'])) {
+ set_pconfig($rv['channel_id'],'perm_limits','post_comments',$role_permissions['limits']['post_comments']);
+ }
+ }
+ }
+ }
+
+ return UPDATE_SUCCESS;
+
+ }
+
+}
diff --git a/Zotlabs/Web/HTTPSig.php b/Zotlabs/Web/HTTPSig.php
index a27edb73d..df66ecf5c 100644
--- a/Zotlabs/Web/HTTPSig.php
+++ b/Zotlabs/Web/HTTPSig.php
@@ -3,16 +3,24 @@
namespace Zotlabs\Web;
/**
- * Implements HTTP Signatures per draft-cavage-http-signatures-07
+ * @brief Implements HTTP Signatures per draft-cavage-http-signatures-07.
+ *
+ * @see https://tools.ietf.org/html/draft-cavage-http-signatures-07
*/
-
-
class HTTPSig {
- // See RFC5843
-
- static function generate_digest($body,$set = true) {
- $digest = base64_encode(hash('sha256',$body,true));
+ /**
+ * @brief RFC5843
+ *
+ * @see https://tools.ietf.org/html/rfc5843
+ *
+ * @param string $body The value to create the digest for
+ * @param boolean $set (optional, default true)
+ * If set send a Digest HTTP header
+ * @return string The generated digest of $body
+ */
+ static function generate_digest($body, $set = true) {
+ $digest = base64_encode(hash('sha256', $body, true));
if($set) {
header('Digest: SHA-256=' . $digest);
@@ -40,6 +48,7 @@ class HTTPSig {
if(is_array($data) && $data['header']) {
if(! $data['success'])
return $result;
+
$h = new \Zotlabs\Web\HTTPHeaders($data['header']);
$headers = $h->fetcharr();
$body = $data['body'];
@@ -47,9 +56,11 @@ class HTTPSig {
else {
$headers = [];
- $headers['(request-target)'] =
+ $headers['(request-target)'] =
strtolower($_SERVER['REQUEST_METHOD']) . ' ' .
$_SERVER['REQUEST_URI'];
+ $headers['content-type'] = $_SERVER['CONTENT_TYPE'];
+
foreach($_SERVER as $k => $v) {
if(strpos($k,'HTTP_') === 0) {
$field = str_replace('_','-',strtolower(substr($k,5)));
@@ -58,6 +69,10 @@ class HTTPSig {
}
}
+ // logger('SERVER: ' . print_r($_SERVER,true), LOGGER_ALL);
+
+ // logger('headers: ' . print_r($headers,true), LOGGER_ALL);
+
$sig_block = null;
if(array_key_exists('signature',$headers)) {
@@ -78,7 +93,7 @@ class HTTPSig {
$result['header_signed'] = true;
$signed_headers = $sig_block['headers'];
- if(! $signed_headers)
+ if(! $signed_headers)
$signed_headers = [ 'date' ];
$signed_data = '';
@@ -131,7 +146,7 @@ class HTTPSig {
if($digest[0] === 'SHA-512')
$hashalg = 'sha512';
- // The explode operation will have stripped the '=' padding, so compare against unpadded base64
+ // The explode operation will have stripped the '=' padding, so compare against unpadded base64
if(rtrim(base64_encode(hash($hashalg,$body,true)),'=') === $digest[1]) {
$result['content_valid'] = true;
}
@@ -146,7 +161,7 @@ class HTTPSig {
if($digest[0] === 'SHA-512')
$hashalg = 'sha512';
- // The explode operation will have stripped the '=' padding, so compare against unpadded base64
+ // The explode operation will have stripped the '=' padding, so compare against unpadded base64
if(rtrim(base64_encode(hash($hashalg,$_POST['data'],true)),'=') === $digest[1]) {
$result['content_valid'] = true;
}
@@ -155,9 +170,15 @@ class HTTPSig {
logger('Content_Valid: ' . (($result['content_valid']) ? 'true' : 'false'));
return $result;
-
}
+ /**
+ * @brief
+ *
+ * @param string $id
+ * @return boolean|string
+ * false if no pub key found, otherwise return the pub key
+ */
function get_activitypub_key($id) {
if(strpos($id,'acct:') === 0) {
@@ -174,25 +195,41 @@ class HTTPSig {
if($x && $x[0]['xchan_pubkey']) {
return ($x[0]['xchan_pubkey']);
}
- $r = as_fetch($id);
+
+ if(function_exists('as_fetch'))
+ $r = as_fetch($id);
if($r) {
$j = json_decode($r,true);
- if($j['id'] !== $id)
- return false;
if(array_key_exists('publicKey',$j) && array_key_exists('publicKeyPem',$j['publicKey'])) {
+ if((array_key_exists('id',$j['publicKey']) && $j['publicKey']['id'] !== $id) && $j['id'] !== $id)
+ return false;
+
return($j['publicKey']['publicKeyPem']);
}
}
+
return false;
}
-
-
-
- static function create_sig($request,$head,$prvkey,$keyid = 'Key',$send_headers = false,$auth = false,$alg = 'sha256',
- $crypt_key = null, $crypt_algo = 'aes256ctr') {
+ /**
+ * @brief
+ *
+ * @param string $request
+ * @param array $head
+ * @param string $prvkey
+ * @param string $keyid (optional, default 'Key')
+ * @param boolean $send_headers (optional, default false)
+ * If set send a HTTP header
+ * @param boolean $auth (optional, default false)
+ * @param string $alg (optional, default 'sha256')
+ * @param string $crypt_key (optional, default null)
+ * @param string $crypt_algo (optional, default 'aes256ctr')
+ * @return array
+ */
+ static function create_sig($request, $head, $prvkey, $keyid = 'Key', $send_headers = false, $auth = false,
+ $alg = 'sha256', $crypt_key = null, $crypt_algo = 'aes256ctr') {
$return_headers = [];
@@ -212,7 +249,7 @@ class HTTPSig {
$x = crypto_encapsulate($headerval,$crypt_key,$crypt_algo);
$headerval = 'iv="' . $x['iv'] . '",key="' . $x['key'] . '",alg="' . $x['alg'] . '",data="' . $x['data'] . '"';
}
-
+
if($auth) {
$sighead = 'Authorization: Signature ' . $headerval;
}
@@ -236,12 +273,20 @@ class HTTPSig {
else {
$return_headers[] = $sighead;
}
+
return $return_headers;
}
-
-
- static function sign($request,$head,$prvkey,$alg = 'sha256') {
+ /**
+ * @brief
+ *
+ * @param string $request
+ * @param array $head
+ * @param string $prvkey
+ * @param string $alg (optional) default 'sha256'
+ * @return array
+ */
+ static function sign($request, $head, $prvkey, $alg = 'sha256') {
$ret = [];
@@ -250,27 +295,38 @@ class HTTPSig {
if($request) {
$headers = '(request-target)' . ': ' . trim($request) . "\n";
$fields = '(request-target)';
- }
+ }
if($head) {
foreach($head as $k => $v) {
$headers .= strtolower($k) . ': ' . trim($v) . "\n";
if($fields)
$fields .= ' ';
+
$fields .= strtolower($k);
}
// strip the trailing linefeed
$headers = rtrim($headers,"\n");
}
- $sig = base64_encode(rsa_sign($headers,$prvkey,$alg));
+ $sig = base64_encode(rsa_sign($headers,$prvkey,$alg));
$ret['headers'] = $fields;
$ret['signature'] = $sig;
-
+
return $ret;
}
+ /**
+ * @brief
+ *
+ * @param string $header
+ * @return array associate array with
+ * - \e string \b keyID
+ * - \e string \b algorithm
+ * - \e array \b headers
+ * - \e string \b signature
+ */
static function parse_sigheader($header) {
$ret = [];
@@ -297,12 +353,23 @@ class HTTPSig {
}
- static function decrypt_sigheader($header,$prvkey = null) {
+ /**
+ * @brief
+ *
+ * @param string $header
+ * @param string $prvkey (optional), if not set use site private key
+ * @return array|string associative array, empty string if failue
+ * - \e string \b iv
+ * - \e string \b key
+ * - \e string \b alg
+ * - \e string \b data
+ */
+ static function decrypt_sigheader($header, $prvkey = null) {
$iv = $key = $alg = $data = null;
if(! $prvkey) {
- $prvkey = get_config('system','prvkey');
+ $prvkey = get_config('system', 'prvkey');
}
$matches = [];
@@ -319,10 +386,8 @@ class HTTPSig {
if($iv && $key && $alg && $data) {
return crypto_unencapsulate([ 'iv' => $iv, 'key' => $key, 'alg' => $alg, 'data' => $data ] , $prvkey);
}
- return '';
+ return '';
}
}
-
-
diff --git a/Zotlabs/Web/WebServer.php b/Zotlabs/Web/WebServer.php
index 5183fb2b0..1c3ea29d0 100644
--- a/Zotlabs/Web/WebServer.php
+++ b/Zotlabs/Web/WebServer.php
@@ -44,9 +44,9 @@ class WebServer {
* We have to do it here because the session was just now opened.
*/
- if(array_key_exists('system_language',$_POST)) {
- if(strlen($_POST['system_language']))
- $_SESSION['language'] = $_POST['system_language'];
+ if(array_key_exists('system_language',$_REQUEST)) {
+ if(strlen($_REQUEST['system_language']))
+ $_SESSION['language'] = $_REQUEST['system_language'];
else
unset($_SESSION['language']);
}
diff --git a/Zotlabs/Widget/Catcloud.php b/Zotlabs/Widget/Catcloud.php
new file mode 100644
index 000000000..c53f9bbf6
--- /dev/null
+++ b/Zotlabs/Widget/Catcloud.php
@@ -0,0 +1,46 @@
+<?php
+
+namespace Zotlabs\Widget;
+
+class Catcloud {
+
+ function widget($arr) {
+
+ if((! \App::$profile['profile_uid']) || (! \App::$profile['channel_hash']))
+ return '';
+
+ $limit = ((array_key_exists('limit',$arr)) ? intval($arr['limit']) : 50);
+
+ if(array_key_exists('type',$arr)) {
+ switch($arr['type']) {
+
+ case 'cards':
+
+ if(! perm_is_allowed(\App::$profile['profile_uid'], get_observer_hash(), 'view_pages'))
+ return '';
+
+ return card_catblock(\App::$profile['profile_uid'], $limit, '', \App::$profile['channel_hash']);
+
+ case 'articles':
+
+ if(! perm_is_allowed(\App::$profile['profile_uid'], get_observer_hash(), 'view_pages'))
+ return '';
+
+ return article_catblock(\App::$profile['profile_uid'], $limit, '', \App::$profile['channel_hash']);
+
+
+ default:
+ break;
+ }
+ }
+
+
+ if(! perm_is_allowed(\App::$profile['profile_uid'], get_observer_hash(), 'view_stream'))
+ return '';
+
+ return catblock(\App::$profile['profile_uid'], $limit, '', \App::$profile['channel_hash']);
+
+
+ }
+
+}
diff --git a/Zotlabs/Widget/Design_tools.php b/Zotlabs/Widget/Design_tools.php
index 8ab6a235d..a15c0c98d 100644
--- a/Zotlabs/Widget/Design_tools.php
+++ b/Zotlabs/Widget/Design_tools.php
@@ -6,16 +6,9 @@ class Design_tools {
function widget($arr) {
- // mod menu doesn't load a profile. For any modules which load a profile, check it.
- // otherwise local_channel() is sufficient for permissions.
+ if(perm_is_allowed(\App::$profile['profile_uid'],get_observer_hash(),'write_pages') || (\App::$is_sys && is_site_admin()))
+ return design_tools();
- if(\App::$profile['profile_uid'])
- if((\App::$profile['profile_uid'] != local_channel()) && (! \App::$is_sys))
- return '';
-
- if(! local_channel())
- return '';
-
- return design_tools();
+ return EMPTY_STR;
}
} \ No newline at end of file
diff --git a/Zotlabs/Widget/Forums.php b/Zotlabs/Widget/Forums.php
index f65a639ff..7415c0f0a 100644
--- a/Zotlabs/Widget/Forums.php
+++ b/Zotlabs/Widget/Forums.php
@@ -66,8 +66,8 @@ class Forums {
for($x = 0; $x < count($r1); $x ++) {
$r = q("select sum(item_unseen) as unseen from item
where uid = %d and owner_xchan = '%s' and item_unseen = 1 $perms_sql ",
- dbesc($r1[$x]['xchan_hash']),
- intval(local_channel())
+ intval(local_channel()),
+ dbesc($r1[$x]['xchan_hash'])
);
if($r)
$r1[$x]['unseen'] = $r[0]['unseen'];
diff --git a/Zotlabs/Widget/Newmember.php b/Zotlabs/Widget/Newmember.php
index d12655499..1a4b575b9 100644
--- a/Zotlabs/Widget/Newmember.php
+++ b/Zotlabs/Widget/Newmember.php
@@ -13,22 +13,13 @@ class Newmember {
if(! $c)
return EMPTY_STR;
-
$a = \App::get_account();
if(! $a)
return EMPTY_STR;
-
- if(datetime_convert('UTC','UTC',$a['account_created']) < datetime_convert('UTC','UTC', 'now - 60 days'))
- return EMPTY_STR;
-
- // This could be a new account that was used to clone a very old channel
-
- $ob = \App::get_observer();
- if($ob && array_key_exists('xchan_name_date',$ob) && $ob['xchan_name_date'] < datetime_convert('UTC','UTC','now - 60 days'))
+ if(! feature_enabled(local_channel(),'start_menu'))
return EMPTY_STR;
-
$options = [
t('Profile Creation'),
[
diff --git a/Zotlabs/Widget/Notifications.php b/Zotlabs/Widget/Notifications.php
index f2619c5cf..fc78a2a39 100644
--- a/Zotlabs/Widget/Notifications.php
+++ b/Zotlabs/Widget/Notifications.php
@@ -123,7 +123,7 @@ class Notifications {
];
}
- if(get_config('system', 'disable_discover_tab') != 1) {
+ if(can_view_public_stream()) {
$notifications[] = [
'type' => 'pubs',
'icon' => 'globe',
diff --git a/Zotlabs/Widget/Pubtagcloud.php b/Zotlabs/Widget/Pubtagcloud.php
new file mode 100644
index 000000000..826e3e6ae
--- /dev/null
+++ b/Zotlabs/Widget/Pubtagcloud.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace Zotlabs\Widget;
+
+class Pubtagcloud {
+
+ function widget($arr) {
+
+ $trending = ((array_key_exists('trending',$arr)) ? intval($arr['trending']) : 0);
+ if((observer_prohibited(true))) {
+ return EMPTY_STR;
+ }
+
+ if(! intval(get_config('system','open_pubstream',1))) {
+ if(! get_observer_hash()) {
+ return EMPTY_STR;
+ }
+ }
+
+ $site_firehose = ((intval(get_config('system','site_firehose',0))) ? true : false);
+ $net_firehose = ((get_config('system','disable_discover_tab',1)) ? false : true);
+
+ if(! ($site_firehose || $net_firehose)) {
+ return EMPTY_STR;
+ }
+
+ if($net_firehose) {
+ $site_firehose = false;
+ }
+
+ $safemode = get_xconfig(get_observer_hash(),'directory','safemode',1);
+
+
+
+ $limit = ((array_key_exists('limit', $arr)) ? intval($arr['limit']) : 75);
+
+ return pubtagblock($net_firehose,$site_firehose, $limit, $trending, $safemode);
+
+ return '';
+ }
+}
diff --git a/Zotlabs/Widget/Settings_menu.php b/Zotlabs/Widget/Settings_menu.php
index 455fdcb9b..9574becc3 100644
--- a/Zotlabs/Widget/Settings_menu.php
+++ b/Zotlabs/Widget/Settings_menu.php
@@ -81,12 +81,20 @@ class Settings_menu {
if(feature_enabled(local_channel(),'oauth_clients')) {
$tabs[] = array(
- 'label' => t('Connected apps'),
+ 'label' => t('OAuth1 apps'),
'url' => z_root() . '/settings/oauth',
'selected' => ((argv(1) === 'oauth') ? 'active' : ''),
);
}
+ if(feature_enabled(local_channel(),'oauth2_clients')) {
+ $tabs[] = array(
+ 'label' => t('OAuth2 apps'),
+ 'url' => z_root() . '/settings/oauth2',
+ 'selected' => ((argv(1) === 'oauth2') ? 'active' : ''),
+ );
+ }
+
if(feature_enabled(local_channel(),'access_tokens')) {
$tabs[] = array(
'label' => t('Guest Access Tokens'),
diff --git a/Zotlabs/Widget/Tagcloud.php b/Zotlabs/Widget/Tagcloud.php
index cf7a4932e..f79bd59ad 100644
--- a/Zotlabs/Widget/Tagcloud.php
+++ b/Zotlabs/Widget/Tagcloud.php
@@ -2,9 +2,6 @@
namespace Zotlabs\Widget;
-// @FIXME The problem with this widget is that we don't have a search function for webpages
-// that we can send the links to. Then we should also provide an option to search webpages
-// and conversations.
class Tagcloud {
@@ -14,15 +11,15 @@ class Tagcloud {
$uid = \App::$profile_uid;
$count = ((x($args,'count')) ? intval($args['count']) : 24);
$flags = 0;
- $type = TERM_CATEGORY;
+ $type = TERM_HASHTAG;
// @FIXME there exists no $authors variable
- $r = tagadelic($uid, $count, $authors, $owner, $flags, ITEM_TYPE_WEBPAGE, $type);
+ $r = tagadelic($uid, $count, $authors, $owner, $flags, 0, $type);
// @FIXME this should use a template
if($r) {
- $o = '<div class="tagblock widget"><h3>' . t('Categories') . '</h3><div class="tags" align="center">';
+ $o = '<div class="tagblock widget"><h3>' . t('Tags') . '</h3><div class="tags" align="center">';
foreach($r as $rv) {
$o .= '<span class="tag' . $rv[2] . '">' . $rv[0] .' </span> ' . "\r\n";
}
diff --git a/Zotlabs/Widget/Tasklist.php b/Zotlabs/Widget/Tasklist.php
index 3961eecce..56342bd17 100644
--- a/Zotlabs/Widget/Tasklist.php
+++ b/Zotlabs/Widget/Tasklist.php
@@ -21,7 +21,7 @@ class Tasklist {
</script>';
$o .= '<div class="widget">' . '<h3>' . t('Tasks') . '</h3><div class="tasklist-tasks">';
- $o .= '</div><form id="tasklist-new-form" action="" ><input id="tasklist-new-summary" type="text" name="summary" value="" /></form>';
+ $o .= '</div><form id="tasklist-new-form" action="" ><input class="form-control" id="tasklist-new-summary" type="text" name="summary" value="" /></form>';
$o .= '</div>';
return $o;
diff --git a/boot.php b/boot.php
index 7d88c19f5..c54fb9314 100755
--- a/boot.php
+++ b/boot.php
@@ -50,9 +50,11 @@ require_once('include/attach.php');
require_once('include/bbcode.php');
define ( 'PLATFORM_NAME', 'hubzilla' );
-define ( 'STD_VERSION', '3.2.2' );
-define ( 'ZOT_REVISION', '1.3' );
-define ( 'DB_UPDATE_VERSION', 1207 );
+define ( 'STD_VERSION', '3.4' );
+define ( 'ZOT_REVISION', '6.0a' );
+
+
+define ( 'DB_UPDATE_VERSION', 1212 );
define ( 'PROJECT_BASE', __DIR__ );
@@ -79,11 +81,12 @@ define ( 'DIRECTORY_MODE_STANDALONE', 0x0100); // A detached (off the grid) hub
// point to go out and find the rest of the world.
define ( 'DIRECTORY_REALM', 'RED_GLOBAL');
-define ( 'DIRECTORY_FALLBACK_MASTER', 'https://gravizot.de');
+define ( 'DIRECTORY_FALLBACK_MASTER', 'https://zotadel.net');
$DIRECTORY_FALLBACK_SERVERS = array(
'https://hubzilla.zottel.net',
- 'https://gravizot.de'
+ 'https://gravizot.de',
+ 'https://zotadel.net'
);
@@ -401,6 +404,7 @@ define ( 'VNOTIFY_INTRO', 0x0200 );
define ( 'VNOTIFY_REGISTER', 0x0400 );
define ( 'VNOTIFY_FILES', 0x0800 );
define ( 'VNOTIFY_PUBS', 0x1000 );
+define ( 'VNOTIFY_LIKE', 0x2000 );
@@ -477,6 +481,7 @@ define ( 'ACTIVITY_ABSTAIN', NAMESPACE_ZOT . '/activity/abstain' );
define ( 'ACTIVITY_ATTEND', NAMESPACE_ZOT . '/activity/attendyes' );
define ( 'ACTIVITY_ATTENDNO', NAMESPACE_ZOT . '/activity/attendno' );
define ( 'ACTIVITY_ATTENDMAYBE', NAMESPACE_ZOT . '/activity/attendmaybe' );
+define ( 'ACTIVITY_POLLRESPONSE', NAMESPACE_ZOT . '/activity/pollresponse' );
define ( 'ACTIVITY_OBJ_HEART', NAMESPACE_ZOT . '/activity/heart' );
@@ -854,7 +859,7 @@ class App {
self::$scheme = 'https';
if(x($_SERVER,'SERVER_NAME')) {
- self::$hostname = $_SERVER['SERVER_NAME'];
+ self::$hostname = punify($_SERVER['SERVER_NAME']);
if(x($_SERVER,'SERVER_PORT') && $_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443)
self::$hostname .= ':' . $_SERVER['SERVER_PORT'];
@@ -951,6 +956,9 @@ class App {
&& is_array(self::$config['system'])
&& array_key_exists('baseurl',self::$config['system'])
&& strlen(self::$config['system']['baseurl'])) {
+ // get_baseurl() is a heavily used function.
+ // Do not use punify() here until we find a library that performs better than what we have now.
+ //$url = punify(self::$config['system']['baseurl']);
$url = self::$config['system']['baseurl'];
$url = trim($url,'\\/');
return $url;
@@ -958,7 +966,7 @@ class App {
$scheme = self::$scheme;
- self::$baseurl = $scheme . "://" . self::$hostname . ((isset(self::$path) && strlen(self::$path)) ? '/' . self::$path : '' );
+ self::$baseurl = $scheme . "://" . punify(self::$hostname) . ((isset(self::$path) && strlen(self::$path)) ? '/' . self::$path : '' );
return self::$baseurl;
}
@@ -969,7 +977,7 @@ class App {
&& is_array(self::$config['system'])
&& array_key_exists('baseurl',self::$config['system'])
&& strlen(self::$config['system']['baseurl'])) {
- $url = self::$config['system']['baseurl'];
+ $url = punify(self::$config['system']['baseurl']);
$url = trim($url,'\\/');
}
@@ -980,7 +988,7 @@ class App {
if($parsed !== false) {
self::$scheme = $parsed['scheme'];
- self::$hostname = $parsed['host'];
+ self::$hostname = punify($parsed['host']);
if(x($parsed,'port'))
self::$hostname .= ':' . $parsed['port'];
if(x($parsed,'path'))
diff --git a/composer.lock b/composer.lock
index 8ec0857f1..4a80d7d90 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
- "content-hash": "73ca170baa6ded94a989b8a1066e6a98",
+ "content-hash": "516114a0fbd804e5234ebeacbac30376",
"packages": [
{
"name": "bshaffer/oauth2-server-php",
@@ -66,16 +66,16 @@
},
{
"name": "commerceguys/intl",
- "version": "v0.7.4",
+ "version": "v0.7.5",
"source": {
"type": "git",
"url": "https://github.com/commerceguys/intl.git",
- "reference": "edfcfc26ed8505c4f6fcf862eb36dfda1af74b00"
+ "reference": "de1435502068393fae4061818e194e4ea61b98d6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/commerceguys/intl/zipball/edfcfc26ed8505c4f6fcf862eb36dfda1af74b00",
- "reference": "edfcfc26ed8505c4f6fcf862eb36dfda1af74b00",
+ "url": "https://api.github.com/repos/commerceguys/intl/zipball/de1435502068393fae4061818e194e4ea61b98d6",
+ "reference": "de1435502068393fae4061818e194e4ea61b98d6",
"shasum": ""
},
"require": {
@@ -106,20 +106,20 @@
}
],
"description": "Internationalization library powered by CLDR data.",
- "time": "2016-12-13T12:33:19+00:00"
+ "time": "2017-12-29T00:13:05+00:00"
},
{
"name": "ezyang/htmlpurifier",
- "version": "v4.9.3",
+ "version": "v4.10.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "95e1bae3182efc0f3422896a3236e991049dac69"
+ "reference": "d85d39da4576a6934b72480be6978fb10c860021"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/95e1bae3182efc0f3422896a3236e991049dac69",
- "reference": "95e1bae3182efc0f3422896a3236e991049dac69",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021",
+ "reference": "d85d39da4576a6934b72480be6978fb10c860021",
"shasum": ""
},
"require": {
@@ -153,7 +153,7 @@
"keywords": [
"html"
],
- "time": "2017-06-03T02:28:16+00:00"
+ "time": "2018-02-23T01:58:20+00:00"
},
{
"name": "league/html-to-markdown",
@@ -256,30 +256,25 @@
},
{
"name": "michelf/php-markdown",
- "version": "1.7.0",
+ "version": "1.8.0",
"source": {
"type": "git",
"url": "https://github.com/michelf/php-markdown.git",
- "reference": "1f51cc520948f66cd2af8cbc45a5ee175e774220"
+ "reference": "01ab082b355bf188d907b9929cd99b2923053495"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/michelf/php-markdown/zipball/1f51cc520948f66cd2af8cbc45a5ee175e774220",
- "reference": "1f51cc520948f66cd2af8cbc45a5ee175e774220",
+ "url": "https://api.github.com/repos/michelf/php-markdown/zipball/01ab082b355bf188d907b9929cd99b2923053495",
+ "reference": "01ab082b355bf188d907b9929cd99b2923053495",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-lib": "1.4.x-dev"
- }
- },
"autoload": {
- "psr-0": {
- "Michelf": ""
+ "psr-4": {
+ "Michelf\\": "Michelf/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -303,7 +298,7 @@
"keywords": [
"markdown"
],
- "time": "2016-10-29T18:58:20+00:00"
+ "time": "2018-01-15T00:49:33+00:00"
},
{
"name": "pear/text_languagedetect",
@@ -538,16 +533,16 @@
},
{
"name": "sabre/http",
- "version": "4.2.3",
+ "version": "v4.2.4",
"source": {
"type": "git",
"url": "https://github.com/sabre-io/http.git",
- "reference": "0295f9a3ee39be97e0898592fc19e42421e0cd93"
+ "reference": "acccec4ba863959b2d10c1fa0fb902736c5c8956"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sabre-io/http/zipball/0295f9a3ee39be97e0898592fc19e42421e0cd93",
- "reference": "0295f9a3ee39be97e0898592fc19e42421e0cd93",
+ "url": "https://api.github.com/repos/sabre-io/http/zipball/acccec4ba863959b2d10c1fa0fb902736c5c8956",
+ "reference": "acccec4ba863959b2d10c1fa0fb902736c5c8956",
"shasum": ""
},
"require": {
@@ -590,7 +585,7 @@
"keywords": [
"http"
],
- "time": "2017-06-12T07:53:04+00:00"
+ "time": "2018-02-23T11:10:29+00:00"
},
{
"name": "sabre/uri",
@@ -645,16 +640,16 @@
},
{
"name": "sabre/vobject",
- "version": "4.1.3",
+ "version": "4.1.5",
"source": {
"type": "git",
"url": "https://github.com/sabre-io/vobject.git",
- "reference": "df9916813d1d83e4f761c4cba13361ee74196fac"
+ "reference": "0928660e92d46d2d24336a6db320636aa3a75414"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sabre-io/vobject/zipball/df9916813d1d83e4f761c4cba13361ee74196fac",
- "reference": "df9916813d1d83e4f761c4cba13361ee74196fac",
+ "url": "https://api.github.com/repos/sabre-io/vobject/zipball/0928660e92d46d2d24336a6db320636aa3a75414",
+ "reference": "0928660e92d46d2d24336a6db320636aa3a75414",
"shasum": ""
},
"require": {
@@ -663,7 +658,7 @@
"sabre/xml": ">=1.5 <3.0"
},
"require-dev": {
- "phpunit/phpunit": "> 4.8, <6.0.0",
+ "phpunit/phpunit": "> 4.8.35, <6.0.0",
"sabre/cs": "^1.0.0"
},
"suggest": {
@@ -738,7 +733,7 @@
"xCal",
"xCard"
],
- "time": "2017-10-18T08:29:40+00:00"
+ "time": "2018-03-08T21:06:39+00:00"
},
{
"name": "sabre/xml",
@@ -1179,16 +1174,16 @@
},
{
"name": "behat/mink-extension",
- "version": "2.3.0",
+ "version": "2.3.1",
"source": {
"type": "git",
"url": "https://github.com/Behat/MinkExtension.git",
- "reference": "badc565b7a1d05c4a4bf49c789045bcf7af6c6de"
+ "reference": "80f7849ba53867181b7e412df9210e12fba50177"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/badc565b7a1d05c4a4bf49c789045bcf7af6c6de",
- "reference": "badc565b7a1d05c4a4bf49c789045bcf7af6c6de",
+ "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/80f7849ba53867181b7e412df9210e12fba50177",
+ "reference": "80f7849ba53867181b7e412df9210e12fba50177",
"shasum": ""
},
"require": {
@@ -1234,7 +1229,7 @@
"test",
"web"
],
- "time": "2017-11-24T19:30:49+00:00"
+ "time": "2018-02-06T15:36:30+00:00"
},
{
"name": "behat/mink-goutte-driver",
@@ -2024,35 +2019,29 @@
},
{
"name": "phpdocumentor/reflection-docblock",
- "version": "4.2.0",
+ "version": "3.3.2",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "66465776cfc249844bde6d117abff1d22e06c2da"
+ "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/66465776cfc249844bde6d117abff1d22e06c2da",
- "reference": "66465776cfc249844bde6d117abff1d22e06c2da",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2",
+ "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2",
"shasum": ""
},
"require": {
- "php": "^7.0",
+ "php": "^5.6 || ^7.0",
"phpdocumentor/reflection-common": "^1.0.0",
"phpdocumentor/type-resolver": "^0.4.0",
"webmozart/assert": "^1.0"
},
"require-dev": {
- "doctrine/instantiator": "~1.0.5",
- "mockery/mockery": "^1.0",
- "phpunit/phpunit": "^6.4"
+ "mockery/mockery": "^0.9.4",
+ "phpunit/phpunit": "^4.4"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.x-dev"
- }
- },
"autoload": {
"psr-4": {
"phpDocumentor\\Reflection\\": [
@@ -2071,7 +2060,7 @@
}
],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "time": "2017-11-27T17:38:31+00:00"
+ "time": "2017-11-10T14:09:06+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -2122,16 +2111,16 @@
},
{
"name": "phpspec/prophecy",
- "version": "1.7.3",
+ "version": "1.7.5",
"source": {
"type": "git",
"url": "https://github.com/phpspec/prophecy.git",
- "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf"
+ "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf",
- "reference": "e4ed002c67da8eceb0eb8ddb8b3847bb53c5c2bf",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/dfd6be44111a7c41c2e884a336cc4f461b3b2401",
+ "reference": "dfd6be44111a7c41c2e884a336cc4f461b3b2401",
"shasum": ""
},
"require": {
@@ -2143,7 +2132,7 @@
},
"require-dev": {
"phpspec/phpspec": "^2.5|^3.2",
- "phpunit/phpunit": "^4.8.35 || ^5.7"
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5"
},
"type": "library",
"extra": {
@@ -2181,20 +2170,20 @@
"spy",
"stub"
],
- "time": "2017-11-24T13:59:53+00:00"
+ "time": "2018-02-19T10:16:54+00:00"
},
{
"name": "phpunit/dbunit",
- "version": "3.0.2",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/dbunit.git",
- "reference": "403350339b6aca748ee0067d027d85621992e21f"
+ "reference": "0fa4329e490480ab957fe7b1185ea0996ca11f44"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/403350339b6aca748ee0067d027d85621992e21f",
- "reference": "403350339b6aca748ee0067d027d85621992e21f",
+ "url": "https://api.github.com/repos/sebastianbergmann/dbunit/zipball/0fa4329e490480ab957fe7b1185ea0996ca11f44",
+ "reference": "0fa4329e490480ab957fe7b1185ea0996ca11f44",
"shasum": ""
},
"require": {
@@ -2233,7 +2222,7 @@
"testing",
"xunit"
],
- "time": "2017-11-18T17:40:34+00:00"
+ "time": "2018-01-23T13:32:26+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -2773,21 +2762,21 @@
},
{
"name": "sebastian/comparator",
- "version": "2.1.0",
+ "version": "2.1.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "1174d9018191e93cb9d719edec01257fc05f8158"
+ "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1174d9018191e93cb9d719edec01257fc05f8158",
- "reference": "1174d9018191e93cb9d719edec01257fc05f8158",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/34369daee48eafb2651bea869b4b15d75ccc35f9",
+ "reference": "34369daee48eafb2651bea869b4b15d75ccc35f9",
"shasum": ""
},
"require": {
"php": "^7.0",
- "sebastian/diff": "^2.0",
+ "sebastian/diff": "^2.0 || ^3.0",
"sebastian/exporter": "^3.1"
},
"require-dev": {
@@ -2833,7 +2822,7 @@
"compare",
"equality"
],
- "time": "2017-11-03T07:16:52+00:00"
+ "time": "2018-02-01T13:46:46+00:00"
},
{
"name": "sebastian/diff",
@@ -3287,16 +3276,16 @@
},
{
"name": "symfony/browser-kit",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/browser-kit.git",
- "reference": "f761b4ecdd23a451c2cae6fba704d8b207cbb045"
+ "reference": "490f27762705c8489bd042fe3e9377a191dba9b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/browser-kit/zipball/f761b4ecdd23a451c2cae6fba704d8b207cbb045",
- "reference": "f761b4ecdd23a451c2cae6fba704d8b207cbb045",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/490f27762705c8489bd042fe3e9377a191dba9b4",
+ "reference": "490f27762705c8489bd042fe3e9377a191dba9b4",
"shasum": ""
},
"require": {
@@ -3340,20 +3329,20 @@
],
"description": "Symfony BrowserKit Component",
"homepage": "https://symfony.com",
- "time": "2017-12-11T22:06:16+00:00"
+ "time": "2018-01-03T07:37:34+00:00"
},
{
"name": "symfony/class-loader",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/class-loader.git",
- "reference": "e8d36a7b5568d232f5c3f8ef92665836b9f1e038"
+ "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/class-loader/zipball/e8d36a7b5568d232f5c3f8ef92665836b9f1e038",
- "reference": "e8d36a7b5568d232f5c3f8ef92665836b9f1e038",
+ "url": "https://api.github.com/repos/symfony/class-loader/zipball/e63c12699822bb3b667e7216ba07fbcc3a3e203e",
+ "reference": "e63c12699822bb3b667e7216ba07fbcc3a3e203e",
"shasum": ""
},
"require": {
@@ -3396,20 +3385,20 @@
],
"description": "Symfony ClassLoader Component",
"homepage": "https://symfony.com",
- "time": "2017-11-05T16:10:10+00:00"
+ "time": "2018-01-03T07:37:34+00:00"
},
{
"name": "symfony/config",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/config.git",
- "reference": "e57211b88aa889fefac1cb36866db04100b0f21c"
+ "reference": "05e10567b529476a006b00746c5f538f1636810e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/config/zipball/e57211b88aa889fefac1cb36866db04100b0f21c",
- "reference": "e57211b88aa889fefac1cb36866db04100b0f21c",
+ "url": "https://api.github.com/repos/symfony/config/zipball/05e10567b529476a006b00746c5f538f1636810e",
+ "reference": "05e10567b529476a006b00746c5f538f1636810e",
"shasum": ""
},
"require": {
@@ -3422,6 +3411,7 @@
},
"require-dev": {
"symfony/dependency-injection": "~3.3|~4.0",
+ "symfony/event-dispatcher": "~3.3|~4.0",
"symfony/finder": "~3.3|~4.0",
"symfony/yaml": "~3.0|~4.0"
},
@@ -3458,20 +3448,20 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-02-14T10:03:57+00:00"
},
{
"name": "symfony/console",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "9f21adfb92a9315b73ae2ed43138988ee4913d4e"
+ "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/9f21adfb92a9315b73ae2ed43138988ee4913d4e",
- "reference": "9f21adfb92a9315b73ae2ed43138988ee4913d4e",
+ "url": "https://api.github.com/repos/symfony/console/zipball/067339e9b8ec30d5f19f5950208893ff026b94f7",
+ "reference": "067339e9b8ec30d5f19f5950208893ff026b94f7",
"shasum": ""
},
"require": {
@@ -3527,20 +3517,20 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-02-26T15:46:28+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "eac760b414cf1f64362c3dd047b989e4db121332"
+ "reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/eac760b414cf1f64362c3dd047b989e4db121332",
- "reference": "eac760b414cf1f64362c3dd047b989e4db121332",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/544655f1fc078a9cd839fdda2b7b1e64627c826a",
+ "reference": "544655f1fc078a9cd839fdda2b7b1e64627c826a",
"shasum": ""
},
"require": {
@@ -3580,20 +3570,20 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-02-03T14:55:07+00:00"
},
{
"name": "symfony/debug",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/debug.git",
- "reference": "543deab3ffff94402440b326fc94153bae2dfa7a"
+ "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/543deab3ffff94402440b326fc94153bae2dfa7a",
- "reference": "543deab3ffff94402440b326fc94153bae2dfa7a",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/9b1071f86e79e1999b3d3675d2e0e7684268b9bc",
+ "reference": "9b1071f86e79e1999b3d3675d2e0e7684268b9bc",
"shasum": ""
},
"require": {
@@ -3636,20 +3626,20 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
- "time": "2017-12-12T08:27:14+00:00"
+ "time": "2018-02-28T21:49:22+00:00"
},
{
"name": "symfony/dependency-injection",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
- "reference": "5f81907ea43bfa971ac2c7fbac593ebe7cd7d333"
+ "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/5f81907ea43bfa971ac2c7fbac593ebe7cd7d333",
- "reference": "5f81907ea43bfa971ac2c7fbac593ebe7cd7d333",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/12e901abc1cb0d637a0e5abe9923471361d96b07",
+ "reference": "12e901abc1cb0d637a0e5abe9923471361d96b07",
"shasum": ""
},
"require": {
@@ -3707,20 +3697,20 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-03-04T03:54:53+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "dc847845c66fa68ad4522ed27e62b9b9dd12ab3b"
+ "reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/dc847845c66fa68ad4522ed27e62b9b9dd12ab3b",
- "reference": "dc847845c66fa68ad4522ed27e62b9b9dd12ab3b",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/2bb5d3101cc01f4fe580e536daf4f1959bc2d24d",
+ "reference": "2bb5d3101cc01f4fe580e536daf4f1959bc2d24d",
"shasum": ""
},
"require": {
@@ -3763,20 +3753,20 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-02-22T10:48:49+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "b869cbf8a15ca6261689de2c28a7d7f2d0706835"
+ "reference": "58990682ac3fdc1f563b7e705452921372aad11d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b869cbf8a15ca6261689de2c28a7d7f2d0706835",
- "reference": "b869cbf8a15ca6261689de2c28a7d7f2d0706835",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/58990682ac3fdc1f563b7e705452921372aad11d",
+ "reference": "58990682ac3fdc1f563b7e705452921372aad11d",
"shasum": ""
},
"require": {
@@ -3826,20 +3816,20 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-02-14T10:03:57+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "25b135bea251829e3db6a77d773643408b575ed4"
+ "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/25b135bea251829e3db6a77d773643408b575ed4",
- "reference": "25b135bea251829e3db6a77d773643408b575ed4",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541",
+ "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541",
"shasum": ""
},
"require": {
@@ -3875,20 +3865,20 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
- "time": "2017-12-14T19:40:10+00:00"
+ "time": "2018-02-22T10:48:49+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.6.0",
+ "version": "v1.7.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
+ "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
- "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/78be803ce01e55d3491c1397cf1c64beb9c1b63b",
+ "reference": "78be803ce01e55d3491c1397cf1c64beb9c1b63b",
"shasum": ""
},
"require": {
@@ -3900,7 +3890,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.6-dev"
+ "dev-master": "1.7-dev"
}
},
"autoload": {
@@ -3934,20 +3924,20 @@
"portable",
"shim"
],
- "time": "2017-10-11T12:05:26+00:00"
+ "time": "2018-01-30T19:27:44+00:00"
},
{
"name": "symfony/translation",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "4c5d5582baf2829751a5207659329c1f52eedeb6"
+ "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/4c5d5582baf2829751a5207659329c1f52eedeb6",
- "reference": "4c5d5582baf2829751a5207659329c1f52eedeb6",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/80e19eaf12cbb546ac40384e5c55c36306823e57",
+ "reference": "80e19eaf12cbb546ac40384e5c55c36306823e57",
"shasum": ""
},
"require": {
@@ -4002,20 +3992,20 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
- "time": "2017-12-12T08:27:14+00:00"
+ "time": "2018-02-22T06:28:18+00:00"
},
{
"name": "symfony/yaml",
- "version": "v3.4.2",
+ "version": "v3.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "afe0cd38486505c9703707707d91450cfc1bd536"
+ "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/afe0cd38486505c9703707707d91450cfc1bd536",
- "reference": "afe0cd38486505c9703707707d91450cfc1bd536",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/6af42631dcf89e9c616242c900d6c52bd53bd1bb",
+ "reference": "6af42631dcf89e9c616242c900d6c52bd53bd1bb",
"shasum": ""
},
"require": {
@@ -4060,7 +4050,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
- "time": "2017-12-11T20:38:23+00:00"
+ "time": "2018-02-16T09:50:28+00:00"
},
{
"name": "theseer/tokenizer",
@@ -4171,6 +4161,6 @@
"ext-openssl": "*"
},
"platform-dev": {
- "php": ">=7.0"
+ "php": ">=5.6 || >=7.0"
}
}
diff --git a/doc/about/project.bb b/doc/about/project.bb
index f9bc920f8..fe90b4d36 100644
--- a/doc/about/project.bb
+++ b/doc/about/project.bb
@@ -116,7 +116,7 @@ even if we have had our occasional disagreements.
[li]Simon[/li]
[li]zottel[/li]
[li]Christian Vogeley[/li]
-[li]Jeroen van Riet Paap (jeroenpraat)[/li]
+[li]jeroenpraat[/li]
[li]Michael Vogel[/li]
[li]erik[/li]
[li]Zach Prezkuta[/li]
diff --git a/doc/context/fr/appman/help.html b/doc/context/fr/appman/help.html
new file mode 100644
index 000000000..d65f78378
--- /dev/null
+++ b/doc/context/fr/appman/help.html
@@ -0,0 +1,5 @@
+<dl class="dl-horizontal">
+ <dt>Information de base</dt>
+ <dd>Modifiez les propriétés individuelles de l'application que vous avez sélectionnée. Les catégories vous permettent de trier vos applications pour vous aider à les trouver plus facilement dans la liste. La prise en charge des applications personnalisées que vous ou votre administrateur pouvez choisir de créer inclut des champs tels que &laquo;Prix de l'application&raquo; et &laquo;Lieu d'achat&raquo; qui ne sont pas applicables aux applications centrales Hubzilla.
+ </dd>
+</dl>
diff --git a/doc/context/fr/apps/edit/index.html b/doc/context/fr/apps/edit/index.html
new file mode 100644
index 000000000..93fd8dec6
--- /dev/null
+++ b/doc/context/fr/apps/edit/index.html
@@ -0,0 +1,4 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Modifiez ou supprimez vos applications à l'aide des boutons de contrôle situés à côté de chaque icône d'application dans la liste.</dd>
+</dl>
diff --git a/doc/context/fr/apps/help.html b/doc/context/fr/apps/help.html
new file mode 100644
index 000000000..65eb63d84
--- /dev/null
+++ b/doc/context/fr/apps/help.html
@@ -0,0 +1,7 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Cette page vous montre quelles applications sont disponibles pour votre canal, y compris les applications centrales et celles fournies par les greffons. Pour ajouter une application au <a href='#' onclick='contextualHelpFocus("#app-menu", 1); return false;' title="Cliquez pour ouvrir...">menu de l'application</a>, cliquez sur le bouton étoile l'application dans la liste ci-dessous.</dd>
+ <dt>Gérer les applications</dt>
+ <dd>Appuyez sur le bouton &laquo;Gérer les applications&raquo; pour ouvrir une page où vous pouvez éditer le nom, les catégories et autres propriétés de vos applications.
+ </dd>
+</dl>
diff --git a/doc/context/fr/cards/help.html b/doc/context/fr/cards/help.html
new file mode 100644
index 000000000..a58a9a73e
--- /dev/null
+++ b/doc/context/fr/cards/help.html
@@ -0,0 +1,20 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Les cartes représentent un domaine persistant de collaboration qui est distinct du volet social. Ils sont un peu plus légers que les pages web et les wikis pour une organisation rapide de l'information et ont l'avantage de permettre la collaboration et le commentaire. Ils sont bien adaptés pour aider à organiser des tâches complexes où il y a des mises à jour et des retours d'information fréquents.
+ </dd>
+ <dt>Ajouter une carte</dt>
+ <dd>
+ La création d'une nouvelle carte est très similaire à la composition d'un nouveau message.<br><br>
+ <ul>
+ <li>
+ <b>Nom du lien de page :</b> Le nom du lien de page est le nom de la carte pour l'URL statique.
+ </li>
+ <li>
+ <b>Titre :</b> Le titre est affiché en haut de la carte.
+ </li>
+ <li>
+ <b>Catégories :</b> Si la <a href="/settings/features">fonction catégories de messages</a> est activée pour votre chaîne, vous pouvez ajouter des catégories à la carte. Ces catégories remplissent la liste des catégories sur le panneau de gauche et permettent de filtrer votre collection de cartes.
+ </li>
+ </ul>
+ </dd>
+</dl>
diff --git a/doc/context/fr/chat/help.html b/doc/context/fr/chat/help.html
new file mode 100644
index 000000000..5f354c3c6
--- /dev/null
+++ b/doc/context/fr/chat/help.html
@@ -0,0 +1,8 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Créez et utilisez des salons de discussion pour communiquer en temps réel, en utilisant le système standard de permissions Hubzilla pour le contrôle d'accès aux salons de discussion.</dd>
+ <dt>Créer un nouveau salon de discussion</dt>
+ <dd>Utilisez le bouton &laquo;Nouveau&raquo; pour créer un nouveau salon de discussion. Entrez un nom et la durée de conservation des messages.</dd>
+ <dt>Discussion</dt>
+ <dd>Entrez votre message dans la boîte de message et cliquez sur &laquo;Envoyer&raquo;. Vous pouvez définir un statut en sélectionnant le bouton du menu de la salle de discussion à côté du bouton &laquo;Envoyer&raquo;. D'autres personnes &laquo;dans la salon&raquo; sont visibles dans le panneau latéral du panneau &laquo;Membres du Salon&raquo;.</dd>
+</dl>
diff --git a/doc/context/fr/cloud/help.html b/doc/context/fr/cloud/help.html
new file mode 100644
index 000000000..c72e2ca1b
--- /dev/null
+++ b/doc/context/fr/cloud/help.html
@@ -0,0 +1,7 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Cette page affiche les fichiers cloud d'un canal. Les fichiers visibles par l'observateur dépendent des permissions individuelles définies par le propriétaire du canal. Si vous avez l'autorisation de créer/télécharger des fichiers, vous verrez des boutons de contrôle au-dessus de la liste des fichiers.
+ </dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#tabs-collapse-1", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">Onglets de contenu de la chaîne</a></dt>
+ <dd>Les onglets de contenu du canal sont des liens vers d'autres contenus publiés par le canal. L'onglet <b>A propos</b> permet d'accéder au profil du canal. L'onglet <b>Photos</b> permet d'accéder aux galeries de photos de la chaîne. L'onglet <b>Fichiers</b> permet d'accéder aux fichiers généraux partagés publiés par le canal.</dd>
+</dl>
diff --git a/doc/context/fr/connections/help.html b/doc/context/fr/connections/help.html
new file mode 100644
index 000000000..38e581866
--- /dev/null
+++ b/doc/context/fr/connections/help.html
@@ -0,0 +1,8 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Cette page affiche une liste de toutes les connexions de ce canal. La liste peut être <a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">triée et filtrée à l'aide du bouton de menu à côté du bouton de recherche</a>. </dd>
+ <dt>Détails de connexion</dt>
+ <dd>Chaque entrée de liste affiche les détails d'une connexion spécifique. Une image d'avatar translucide indique une connexion archivée.</dd>
+ <dt>État de la connexion</dt>
+ <dd> Une connexion peut être dans différents états : <ul><li>Archivé</li><li>Ignoré</li><li>Bloqué</li><li>Caché</li></ul></dd>
+</dl>
diff --git a/doc/context/fr/connections/ifpending/help.html b/doc/context/fr/connections/ifpending/help.html
new file mode 100644
index 000000000..38e581866
--- /dev/null
+++ b/doc/context/fr/connections/ifpending/help.html
@@ -0,0 +1,8 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Cette page affiche une liste de toutes les connexions de ce canal. La liste peut être <a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">triée et filtrée à l'aide du bouton de menu à côté du bouton de recherche</a>. </dd>
+ <dt>Détails de connexion</dt>
+ <dd>Chaque entrée de liste affiche les détails d'une connexion spécifique. Une image d'avatar translucide indique une connexion archivée.</dd>
+ <dt>État de la connexion</dt>
+ <dd> Une connexion peut être dans différents états : <ul><li>Archivé</li><li>Ignoré</li><li>Bloqué</li><li>Caché</li></ul></dd>
+</dl>
diff --git a/doc/context/fr/connedit/help.html b/doc/context/fr/connedit/help.html
new file mode 100644
index 000000000..c9b784d3e
--- /dev/null
+++ b/doc/context/fr/connedit/help.html
@@ -0,0 +1,13 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Cette page vous permet de modifier ou d'éditer les paramètres individuels pour une connexion particulière ou de supprimer complètement une connexion. Vous êtes peut-être arrivé sur cette page après avoir créé ou approuvé une nouvelle connexion. Si c'est le cas, vous n'êtes pas tenu de faire quoi que ce soit. Votre connexion a déjà été établie. <strong>Vous pouvez</strong> les ajouter à un groupe ou ajuster des permissions spéciales, et cette page est présentée de façon à ce que vous puissiez le faire pendant que l'occasion se présente.
+ </dd>
+ <dt><a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">Outils de connexion</a></dt>
+ <dd>Le <a href='#' onclick='contextualHelpFocus(".section-title-wrapper", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">menu Outils de connexion</a> permet d'accéder à plusieurs paramètres. Afficher le profil, Afficher l'activité récente, Rafraîchir les autorisations, définir ou réinitialiser les indicateurs (Bloquer, Ignorer, Archiver, Cacher) et supprimer la connexion.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#group-sidebar", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">Groupes de protection de la vie privée</a></dt>
+ <dd>Chaque connexion peut être assignée à un ou plusieurs groupes de confidentialité pour regrouper des collections d'amis ayant accès à des messages, médias et autres contenus spécifiques. Vous pouvez les ajouter à un groupe de confidentialité existant ici, ou créer un nouveau groupe de confidentialité. Lorsque vous les ajoutez à un groupe existant, l'action est immédiate et vous n'avez pas besoin de soumettre un formulaire. </dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#perms-tool", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">Permissions individuelles</a></dt>
+ <dd>L'octroi de permissions est généralement automatique et n'exige aucune action de votre part. Cependant, il se peut que vous souhaitiez ajuster des paramètres spécifiques pour cette connexion qui sont différents des autres.</dd>
+ <dt>Paramètres spécifiques aux fonctions</dt>
+ <dd>Un certain nombre de paramètres individuels sont contrôlés par des fonctions supplémentaires qui peuvent ou non être activées sur votre hub ou pour votre canal. Plusieurs fonctions optionnelles ont des paramètres pour chaque connexion, et ceux-ci peuvent être définis sur cette page par le biais d'onglets de formulaire supplémentaires qui peuvent être présents.</dd>
+</dl>
diff --git a/doc/context/fr/events/help.html b/doc/context/fr/events/help.html
new file mode 100644
index 000000000..aafd49703
--- /dev/null
+++ b/doc/context/fr/events/help.html
@@ -0,0 +1,8 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Cette page affiche un calendrier des événements qui vous appartiennent et que vous partagez avec d'autres canaux.</dd>
+ <dt>Vue du calendrier</dt>
+ <dd>Le calendrier peut être affiché en mode mois, semaine ou jour en utilisant les options du panneau latéral.</dd>
+ <dt>Exportation/Importation</dt>
+ <dd>Exporter ou importer des événements de calendrier en utilisant des fichiers au format standard iCalendar (.ics).</dd>
+</dl>
diff --git a/doc/context/fr/mail/help.html b/doc/context/fr/mail/help.html
new file mode 100644
index 000000000..fcf4eff21
--- /dev/null
+++ b/doc/context/fr/mail/help.html
@@ -0,0 +1,10 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Les messages affichés dans courrier privé ne sont visibles que pour vous et le destinataire unique.</dd>
+ <dt>Vue combinée</dt>
+ <dd>Les conversations complètes peuvent être visualisées dans un fil continu en sélectionnant <b>Vue combinée </b>. Les conversations disponibles sont affichées sous le menu dans le panneau latéral.</dd>
+ <dt>Boîte de réception/Boîte d'envoi</dt>
+ <dd>Les messages individuels envoyés sont visualisés en sélectionnant <b>Boîte d'envoi</b>, et les messages entrants sont visualisés en utilisant le filtre <b>Boîte de réception</b>.</dd>
+ <dt>Nouveau message.</dt>
+ <dd>Les messages individuels ont des rapports de livraison qui peuvent être visualisés à l'aide du menu déroulant. Les messages peuvent également être rappelés à partir du même menu, ce qui peut empêcher le destinataire de voir le message <i>s'il ne l'a pas déjà lu</i>.</dd>
+</dl>
diff --git a/doc/context/fr/photos/help.html b/doc/context/fr/photos/help.html
new file mode 100644
index 000000000..8609e9849
--- /dev/null
+++ b/doc/context/fr/photos/help.html
@@ -0,0 +1,6 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Cette page affiche les albums photos du canal. Les images visibles pour l'observateur dépendent des permissions d'images individuelles.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#tabs-collapse-1", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">Onglets de contenu du canal</a></dt>
+ <dd>Les onglets de contenu du canal sont des liens vers d'autres contenus publiés par le canal. L'onglet <b>A propos</b> permet d'accéder au profil de canal. L'onglet <b>Photos</b> permet d'accéder aux galeries de photos des chaînes. L'onglet <b>Fichiers</b> permet d'accéder aux fichiers généraux partagés publiés par le canal.</dd>
+</dl>
diff --git a/doc/context/fr/profile/help.html b/doc/context/fr/profile/help.html
new file mode 100644
index 000000000..26559db6f
--- /dev/null
+++ b/doc/context/fr/profile/help.html
@@ -0,0 +1,6 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Ceci est la page de profil d'un canal. Il affiche typiquement des informations décrivant le canal. Si le canal représente une personne dans un réseau social, par exemple, le profil peut fournir des informations de contact et d'autres détails personnels sur la personne. Les canaux peuvent avoir plusieurs profils, où le profil affiché dépend de l'observateur.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#tabs-collapse-1", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">Onglets de contenu du canal</a></dt>
+ <dd>Les onglets de contenu du canal sont des liens vers d'autres contenus publiés par le canal. L'onglet <b>A propos</b> permet d'accéder au profil de canal. L'onglet <b>Photos</b> permet d'accéder aux galeries de photos des chaînes. L'onglet <b>Fichiers</b> permet d'accéder aux fichiers généraux partagés publiés par le canal.</dd>
+</dl>
diff --git a/doc/context/fr/settings/account/help.html b/doc/context/fr/settings/account/help.html
new file mode 100644
index 000000000..ed8e7f374
--- /dev/null
+++ b/doc/context/fr/settings/account/help.html
@@ -0,0 +1,18 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>
+ Une fois que vous avez enregistré un <i>compte</i> dans la matrice, vous avez également créé un <i>profil</i> et un <i>canal</i>.
+ </dd>
+ <dt>Compte</dt>
+ <dd>
+ Vous avez <i>un compte</i>. Il contient votre compte de courriel et votre mot de passe. Avec votre compte, vous accédez à votre profil et votre canal. Pensez à votre compte comme la façon dont vous vous authentifiez sur un site Hubzilla. Il vous permet de faire des choses, comme créer des profils et des canaux avec lesquels vous pouvez vous connecter à d'autres personnes.
+ </dd>
+ <dt>Profile</dt>
+ <dd>
+ Vous vous êtes sûrement inscrit à d'autres services Internet, comme les forums ou les communautés en ligne. Pour chacun d'entre eux, vous avez fourni des informations sur vous-même, telles que la date de naissance, le pays, l'âge et autres. Contrairement à d'autres services, Hubzilla vous offre l'avantage de créer <i>plus de profils</i>. Vous pouvez ainsi faire la distinction entre les profils qui s'adressent à tous (votre profil public) et vos collègues de travail, votre famille et votre partenaire. Pensez à votre profil comme étant l'information de base sur vous-même que vous donnez aux autres.
+ </dd>
+ <dt>Channel</dt>
+ <dd>
+ Lors de l'enregistrement, vous avez créé votre premier <i>canal</i>. Oui, en plus de plusieurs profils, vous pouvez avoir plusieurs canaux. Cela pourrait être un peu confus au début, mais mettons les choses au clair. Vous avez déjà créé un canal. Vous pouvez utiliser celui-ci pour le public, pour communiquer avec les gens sur la vie de tous les jours. Mais vous êtes peut-être un lecteur de livres passionné et beaucoup de gens s'ennuient. Ainsi, vous ouvrez un <i>second canal </i> juste pour les amateurs de livres, où vous pouvez tous parler de livres autant que vous le souhaitez. Il s'agit évidemment d'un nouveau flux de messages, avec un nouveau profil (ou nouveaux profils) et des contacts complètement différents. Certaines connexions peuvent exister dans les deux canaux, mais il y en aura qui sont exclusives à l'un d'entre eux. Vous-même vous changez entre les deux comme vous le feriez dans la vie réelle lorsque vous parlez à des gens que vous rencontrez dans la rue ou à des gens que vous rencontrez pour parler de livres spécifiquement. Vous pouvez même vous connecter à vous-même, ou mieux : à votre autre canal <i class="fa fa-smile-o" aria-hidden="true"></i> <i>.<br/>Penser un canal comme différents espaces dédiés à différents sujets où vous rencontrez différentes personnes.</i>.
+ </dd>
+</dl>
diff --git a/doc/context/fr/settings/channel/help.html b/doc/context/fr/settings/channel/help.html
new file mode 100644
index 000000000..ed8e7f374
--- /dev/null
+++ b/doc/context/fr/settings/channel/help.html
@@ -0,0 +1,18 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>
+ Une fois que vous avez enregistré un <i>compte</i> dans la matrice, vous avez également créé un <i>profil</i> et un <i>canal</i>.
+ </dd>
+ <dt>Compte</dt>
+ <dd>
+ Vous avez <i>un compte</i>. Il contient votre compte de courriel et votre mot de passe. Avec votre compte, vous accédez à votre profil et votre canal. Pensez à votre compte comme la façon dont vous vous authentifiez sur un site Hubzilla. Il vous permet de faire des choses, comme créer des profils et des canaux avec lesquels vous pouvez vous connecter à d'autres personnes.
+ </dd>
+ <dt>Profile</dt>
+ <dd>
+ Vous vous êtes sûrement inscrit à d'autres services Internet, comme les forums ou les communautés en ligne. Pour chacun d'entre eux, vous avez fourni des informations sur vous-même, telles que la date de naissance, le pays, l'âge et autres. Contrairement à d'autres services, Hubzilla vous offre l'avantage de créer <i>plus de profils</i>. Vous pouvez ainsi faire la distinction entre les profils qui s'adressent à tous (votre profil public) et vos collègues de travail, votre famille et votre partenaire. Pensez à votre profil comme étant l'information de base sur vous-même que vous donnez aux autres.
+ </dd>
+ <dt>Channel</dt>
+ <dd>
+ Lors de l'enregistrement, vous avez créé votre premier <i>canal</i>. Oui, en plus de plusieurs profils, vous pouvez avoir plusieurs canaux. Cela pourrait être un peu confus au début, mais mettons les choses au clair. Vous avez déjà créé un canal. Vous pouvez utiliser celui-ci pour le public, pour communiquer avec les gens sur la vie de tous les jours. Mais vous êtes peut-être un lecteur de livres passionné et beaucoup de gens s'ennuient. Ainsi, vous ouvrez un <i>second canal </i> juste pour les amateurs de livres, où vous pouvez tous parler de livres autant que vous le souhaitez. Il s'agit évidemment d'un nouveau flux de messages, avec un nouveau profil (ou nouveaux profils) et des contacts complètement différents. Certaines connexions peuvent exister dans les deux canaux, mais il y en aura qui sont exclusives à l'un d'entre eux. Vous-même vous changez entre les deux comme vous le feriez dans la vie réelle lorsque vous parlez à des gens que vous rencontrez dans la rue ou à des gens que vous rencontrez pour parler de livres spécifiquement. Vous pouvez même vous connecter à vous-même, ou mieux : à votre autre canal <i class="fa fa-smile-o" aria-hidden="true"></i> <i>.<br/>Penser un canal comme différents espaces dédiés à différents sujets où vous rencontrez différentes personnes.</i>.
+ </dd>
+</dl>
diff --git a/doc/context/fr/settings/tokens b/doc/context/fr/settings/tokens
new file mode 100644
index 000000000..6be17a615
--- /dev/null
+++ b/doc/context/fr/settings/tokens
@@ -0,0 +1,20 @@
+<dl class="dl-horizontal">
+ <dt><a href="/help/member/member_guide#Guest_Access_Tokens">Jetons d'accès invités</a></dt>
+ <dd>
+ Afin de faciliter le partage de ressources privées avec des non-membres ou des membres de nœuds de fédération à découverte d'identification limitée, Hubzilla devrait fournir aux membres un mécanisme pour créer et gérer des logins temporaires (&laquo;jetables&raquo;), alias &laquo;Zot Access Tokens&raquo;. Ces jetons/accréditations peuvent être utilisés pour s'authentifier sur un site hubzilla dans le seul but d'accéder à des ressources privilégiées ou contrôlées (fichiers, photos, posts, pages web, salons de discussion, etc.
+ </dd>
+ <dt>Créer un jeton</dt>
+ <dd>
+ Le formulaire à créer/éditer accepte trois paramètres, un nom lisible par l'homme, un mot de passe ou un jeton d'accès, et une expiration facultative. Une fois expiré, le jeton d'accès n'est plus valide, ne peut plus être utilisé et sera automatiquement supprimé de la liste des comptes temporaires. Le champ mot de passe dans les formulaires de création/édition affiche le texte du jeton d'accès et non un mot de passe masqué.
+ </dd>
+ <dt>Partager un jeton</dt>
+ <dd>
+ Nous ne spécifions pas de mécanismes pour partager ces jetons avec d'autres. Toute méthode de communication peut être utilisée. Tous les jetons que vous avez créés sont ajoutés au sélecteur de liste de contrôle d'accès et peuvent être utilisés partout où des listes de contrôle d'accès sont fournies.
+
+ <b>Exemple</b> : Un visiteur arrive sur votre site. Elle a un jeton d'accès que vous lui avez fourni et tente de visiter l'un de vos albums photos (qui ne peut être visionné que par vous-même et une identité temporaire). La permission est refusée.
+
+ Le visiteur sélectionne maintenant &laquo;Login&raquo; dans la barre de navigation du menu. Ceci présente une page de connexion. Elle entre le nom et le mot de passe que vous lui avez fournis, et elle peut maintenant voir l'album photo restreint.
+
+ Alternativement, vous pouvez partager un lien vers un fichier protégé en ajoutant un paramètre &laquo;&zat=abc123&raquo; à l'URL, où la chaîne &laquo;abc123&raquo; est la clé d'accès ou le mot de passe pour la connexion temporaire. Aucune autre négociation n'est nécessaire et le dossier est présenté.
+ </dd>
+</dl>
diff --git a/doc/context/fr/webpages/help.html b/doc/context/fr/webpages/help.html
new file mode 100644
index 000000000..c9d34c08f
--- /dev/null
+++ b/doc/context/fr/webpages/help.html
@@ -0,0 +1,8 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Vous pouvez créer des sites Web modulaires, conscients de l'identité, composés d'éléments partageables.</dd>
+ <dt>Pages</dt>
+ <dd>Cette page énumère vos "pages", qui sont assignées des URLs où les gens peuvent visiter votre site. La structure des pages est généralement décrite par une <b>mise en page </b> associée , et leur contenu est construit à partir d'une collection de <b>blocs</b>.</dd>
+ <dt><a href='#' onclick='contextualHelpFocus("#website-portation-tools", 1); return false;' title="Cliquez pour mettre en évidence l'élément...">Outils de portage de site Web</a></dt>
+ <dd>Les outils de portation de site Web vous permettent d'importer/exporter plusieurs éléments de pages Web (pages, mises en page, mises en page, blocs). Vous pouvez <b>importer </b> soit à partir d'un fichier zip téléchargé, soit à partir d'un dossier de fichiers cloud existant. Vous pouvez <b>exporter </b> vers un fichier zip contenant un groupe choisi d'éléments de page Web sous une forme compatible avec l'outil d'importation, ou vous pouvez exporter directement vers un dossier de fichiers dans le cloud. <a target="_blank" href="help/webpages">en savoir plus...</a></dd>
+</dl>
diff --git a/doc/context/fr/wiki/help.html b/doc/context/fr/wiki/help.html
new file mode 100644
index 000000000..af46899e4
--- /dev/null
+++ b/doc/context/fr/wiki/help.html
@@ -0,0 +1,13 @@
+<dl class="dl-horizontal">
+ <dt>Informations de base</dt>
+ <dd>Chaque wiki est une collection de pages, composée sous forme de fichiers texte au format Markdown.</dd>
+ <dt>Liste des wikis</dt>
+ <dd>Les wikis appartenant au canal <i>que vous avez la permission de voir </i> sont listés dans le panneau latéral.</dd>
+ <dt>Historique de la page</dt>
+ <dd>Chaque révision d'une page est sauvegardée pour permettre un retour rapide. Cliquez sur l'onglet <b>History</b> pour afficher l'historique des révisions de page, y compris la date et l'auteur de chacune d'entre elles. Le bouton Revenir chargera la révision sélectionnée mais n'enregistrera pas automatiquement la page.</dd>
+ <dt>Pages</dt>
+ <dd>La liste des pages du wiki est listée dans le panneau <b>Pages Wiki</b>. Avant d'enregistrer les modifications de page à l'aide du menu déroulant <b>Page</b>, vous pouvez <a href='#' onclick='contextualHelpFocus("#id_commitMsg", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">entrer un message personnalisé</a> à afficher dans le <a href='#' onclick='contextualHelpFocus("#wiki-get-history", 0); return false;' title="Cliquez pour mettre en évidence l'élément...">visualiseur d'historique de page</a> avec la révision.</dd>
+</dl>
+
+
+
diff --git a/doc/context/ru/cards/help.html b/doc/context/ru/cards/help.html
new file mode 100644
index 000000000..ccdf9d6d9
--- /dev/null
+++ b/doc/context/ru/cards/help.html
@@ -0,0 +1,16 @@
+<dl class="dl-horizontal"><dt>Резюме</dt>
+ <dd>Карточки используются для командной работы в виртуальном пространстве дополнительно к ленте сообщений. Карточки являются болле компактными по сравнению с веб-страницами и вики и предназначены для быстрой организации работы. Преимущество карточек в возможности совместной работы и комментирования. Карточки могут помочь организовать и упростить работу, связанную с частыми изменениями и с обсуждением в проекте.
+ </dd>
+ <dt>Добавить карточку</dt>
+ <dd>
+ Создание новой карточки подобно написанию нового поста.<br /><br /><ul><li>
+ <b>Имя ссылки для веб-страницы</b>: Имя ссылки для веб-страницы - это имя карточки для статической URL
+ </li>
+ <li>
+ <b>Заголовок</b>: Текст заголовка карточки
+ </li>
+ <li>
+ <b>Категории</b>: Если <a href="/settings/features">Инструмент "Категории сообщения"</a> в вашем канале разрешён, то вы можете присвоить карточке определённую категорию. Эта категория появится в списке <b>Категорий</b> в левой колонке и разрешает быстрый выбор записей определённой категории из картотеки одним щёлчком мышки.
+ </li>
+ </ul></dd>
+</dl>
diff --git a/doc/dnt-policy.txt b/doc/dnt-policy.txt
new file mode 100644
index 000000000..ad946d1f8
--- /dev/null
+++ b/doc/dnt-policy.txt
@@ -0,0 +1,218 @@
+Do Not Track Compliance Policy
+
+Version 1.0
+
+This domain complies with user opt-outs from tracking via the "Do Not Track"
+or "DNT" header [http://www.w3.org/TR/tracking-dnt/]. This file will always
+be posted via HTTPS at https://example-domain.com/.well-known/dnt-policy.txt
+to indicate this fact.
+
+SCOPE
+
+This policy document allows an operator of a Fully Qualified Domain Name
+("domain") to declare that it respects Do Not Track as a meaningful privacy
+opt-out of tracking, so that privacy-protecting software can better determine
+whether to block or anonymize communications with this domain. This policy is
+intended first and foremost to be posted on domains that publish ads, widgets,
+images, scripts and other third-party embedded hypertext (for instance on
+widgets.example.com), but it can be posted on any domain, including those users
+visit directly (such as www.example.com). The policy may be applied to some
+domains used by a company, site, or service, and not to others. Do Not Track
+may be sent by any client that uses the HTTP protocol, including websites,
+mobile apps, and smart devices like TVs. Do Not Track also works with all
+protocols able to read HTTP headers, including SPDY.
+
+NOTE: This policy contains both Requirements and Exceptions. Where possible
+terms are defined in the text, but a few additional definitions are included
+at the end.
+
+REQUIREMENTS
+
+When this domain receives Web requests from a user who enables DNT by actively
+choosing an opt-out setting in their browser or by installing software that is
+primarily designed to protect privacy ("DNT User"), we will take the following
+measures with respect to those users' data, subject to the Exceptions, also
+listed below:
+
+1. END USER IDENTIFIERS:
+
+ a. If a DNT User has logged in to our service, all user identifiers, such as
+ unique or nearly unique cookies, "supercookies" and fingerprints are
+ discarded as soon as the HTTP(S) response is issued.
+
+ Data structures which associate user identifiers with accounts may be
+ employed to recognize logged in users per Exception 4 below, but may not
+ be associated with records of the user's activities unless otherwise
+ excepted.
+
+ b. If a DNT User is not logged in to our service, we will take steps to ensure
+ that no user identifiers are transmitted to us at all.
+
+2. LOG RETENTION:
+
+ a. Logs with DNT Users' identifiers removed (but including IP addresses and
+ User Agent strings) may be retained for a period of 10 days or less,
+ unless an Exception (below) applies. This period of time balances privacy
+ concerns with the need to ensure that log processing systems have time to
+ operate; that operations engineers have time to monitor and fix technical
+ and performance problems; and that security and data aggregation systems
+ have time to operate.
+
+ b. These logs will not be used for any other purposes.
+
+3. OTHER DOMAINS:
+
+ a. If this domain transfers identifiable user data about DNT Users to
+ contractors, affiliates or other parties, or embeds from or posts data to
+ other domains, we will either:
+
+ b. ensure that the operators of those domains abide by this policy overall
+ by posting it at /.well-known/dnt-policy.txt via HTTPS on the domains in
+ question,
+
+ OR
+
+ ensure that the recipient's policies and practices require the recipient
+ to respect the policy for our DNT Users' data.
+
+ OR
+
+ obtain a contractual commitment from the recipient to respect this policy
+ for our DNT Users' data.
+
+ NOTE: if an “Other Domain” does not receive identifiable user information
+ from the domain because such information has been removed, because the
+ Other Domain does not log that information, or for some other reason, these
+ requirements do not apply.
+
+ c. "Identifiable" means any records which are not Anonymized or otherwise
+ covered by the Exceptions below.
+
+4. PERIODIC REASSERTION OF COMPLIANCE:
+
+ At least once every 12 months, we will take reasonable steps commensurate
+ with the size of our organization and the nature of our service to confirm
+ our ongoing compliance with this document, and we will publicly reassert our
+ compliance.
+
+5. USER NOTIFICATION:
+
+ a. If we are required by law to retain or disclose user identifiers, we will
+ attempt to provide the users with notice (unless we are prohibited or it
+ would be futile) that a request for their information has been made in
+ order to give the users an opportunity to object to the retention or
+ disclosure.
+
+ b. We will attempt to provide this notice by email, if the users have given
+ us an email address, and by postal mail if the users have provided a
+ postal address.
+
+ c. If the users do not challenge the disclosure request, we may be legally
+ required to turn over their information.
+
+ d. We may delay notice if we, in good faith, believe that an emergency
+ involving danger of death or serious physical injury to any person
+ requires disclosure without delay of information relating to the
+ emergency.
+
+EXCEPTIONS
+
+Data from DNT Users collected by this domain may be logged or retained only in
+the following specific situations:
+
+1. CONSENT / "OPT BACK IN"
+
+ a. DNT Users are opting out from tracking across the Web. It is possible
+ that for some feature or functionality, we will need to ask a DNT User to
+ "opt back in" to be tracked by us across the entire Web.
+
+ b. If we do that, we will take reasonable steps to verify that the users who
+ select this option have genuinely intended to opt back in to tracking.
+ One way to do this is by performing scientifically reasonable user
+ studies with a representative sample of our users, but smaller
+ organizations can satisfy this requirement by other means.
+
+ c. Where we believe that we have opt back in consent, our server will
+ send a tracking value status header "Tk: C" as described in section 6.2
+ of the W3C Tracking Preference Expression draft:
+
+ http://www.w3.org/TR/tracking-dnt/#tracking-status-value
+
+2. TRANSACTIONS
+
+ If a DNT User actively and knowingly enters a transaction with our
+ services (for instance, clicking on a clearly-labeled advertisement,
+ posting content to a widget, or purchasing an item), we will retain
+ necessary data for as long as required to perform the transaction. This
+ may for example include keeping auditing information for clicks on
+ advertising links; keeping a copy of posted content and the name of the
+ posting user; keeping server-side session IDs to recognize logged in
+ users; or keeping a copy of the physical address to which a purchased
+ item will be shipped. By their nature, some transactions will require data
+ to be retained indefinitely.
+
+3. TECHNICAL AND SECURITY LOGGING:
+
+ a. If, during the processing of the initial request (for unique identifiers)
+ or during the subsequent 10 days (for IP addresses and User Agent strings),
+ we obtain specific information that causes our employees or systems to
+ believe that a request is, or is likely to be, part of a security attack,
+ spam submission, or fraudulent transaction, then logs of those requests
+ are not subject to this policy.
+
+ b. If we encounter technical problems with our site, then, in rare
+ circumstances, we may retain logs for longer than 10 days, if that is
+ necessary to diagnose and fix those problems, but this practice will not be
+ routinized and we will strive to delete such logs as soon as possible.
+
+4. AGGREGATION:
+
+ a. We may retain and share anonymized datasets, such as aggregate records of
+ readership patterns; statistical models of user behavior; graphs of system
+ variables; data structures to count active users on monthly or yearly
+ bases; database tables mapping authentication cookies to logged in
+ accounts; non-unique data structures constructed within browsers for tasks
+ such as ad frequency capping or conversion tracking; or logs with truncated
+ and/or encrypted IP addresses and simplified User Agent strings.
+
+ b. "Anonymized" means we have conducted risk mitigation to ensure
+ that the dataset, plus any additional information that is in our
+ possession or likely to be available to us, does not allow the
+ reconstruction of reading habits, online or offline activity of groups of
+ fewer than 5000 individuals or devices.
+
+ c. If we generate anonymized datasets under this exception we will publicly
+ document our anonymization methods in sufficient detail to allow outside
+ experts to evaluate the effectiveness of those methods.
+
+5. ERRORS:
+
+From time to time, there may be errors by which user data is temporarily
+logged or retained in violation of this policy. If such errors are
+inadvertent, rare, and made in good faith, they do not constitute a breach
+of this policy. We will delete such data as soon as practicable after we
+become aware of any error and take steps to ensure that it is deleted by any
+third-party who may have had access to the data.
+
+ADDITIONAL DEFINITIONS
+
+"Fully Qualified Domain Name" means a domain name that addresses a computer
+connected to the Internet. For instance, example1.com; www.example1.com;
+ads.example1.com; and widgets.example2.com are all distinct FQDNs.
+
+"Supercookie" means any technology other than an HTTP Cookie which can be used
+by a server to associate identifiers with the clients that visit it. Examples
+of supercookies include Flash LSO cookies, DOM storage, HTML5 storage, or
+tricks to store information in caches or etags.
+
+"Risk mitigation" means an engineering process that evaluates the possibility
+and likelihood of various adverse outcomes, considers the available methods of
+making those adverse outcomes less likely, and deploys sufficient mitigations
+to bring the probability and harm from adverse outcomes below an acceptable
+threshold.
+
+"Reading habits" includes amongst other things lists of visited DNS names, if
+those domains pertain to specific topics or activities, but records of visited
+DNS names are not reading habits if those domain names serve content of a very
+diverse and general nature, thereby revealing minimal information about the
+opinions, interests or activities of the user.
diff --git a/doc/feature/additional/access.md b/doc/feature/additional/access.md
new file mode 100644
index 000000000..3581ca11d
--- /dev/null
+++ b/doc/feature/additional/access.md
@@ -0,0 +1,41 @@
+## Access Control and Permissions
+
+
+### Privacy Groups
+
+Enable management and selection of privacy groups.
+<!-- TODO: full description for Privacy Groups -->
+
+Minimum required technical skill level to see this feature: 0
+
+
+### Multiple Profiles
+
+Ability to create multiple profiles.
+<!-- TODO: full description for Multiple Profiles -->
+
+Minimum required technical skill level to see this feature: 3
+
+
+### Permission Groups
+
+Provide alternate connection permission roles.
+<!-- TODO: full description for Permission Groups -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### OAuth Clients
+
+Manage authenticatication tokens for mobile and remote apps.
+<!-- TODO: full description for OAuth Clients -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Access Tokens
+
+Create access tokens so that non-members can access private content.
+<!-- TODO: full description for Access Tokens -->
+
+Minimum required technical skill level to see this feature: 2
diff --git a/doc/feature/additional/composition.md b/doc/feature/additional/composition.md
new file mode 100644
index 000000000..1256f7501
--- /dev/null
+++ b/doc/feature/additional/composition.md
@@ -0,0 +1,67 @@
+## Post Composition Features
+
+
+### Large Photos
+
+Include large (1024px) photo thumbnails in posts.
+If not enabled, use small (640px) photo thumbnails
+<!-- TODO: full description for Large Photos -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Channel Sources
+
+Automatically import channel content from other channels or feeds
+<!-- TODO: full description for Channel Sources -->
+
+Minimum required technical skill level to see this feature: 3
+
+
+### Even More Encryption
+
+Allow optional encryption of content end-to-end with a shared secret key
+<!-- TODO: full description for Even More Encryption -->
+
+Minimum required technical skill level to see this feature: 3
+
+
+### Enable Voting Tools
+
+Provide a class of post which others can vote on
+<!-- TODO: full description for Enable Voting Tools -->
+
+Minimum required technical skill level to see this feature: 3
+
+
+### Disable Comments
+
+Provide the option to disable comments for a post
+<!-- TODO: full description for Disable Comments -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Delayed Posting
+
+Allow posts to be published at a later date
+<!-- TODO: full description for Delayed Posting -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Content Expiration
+
+Remove posts/comments and/or private messages at a future time
+<!-- TODO: full description for Content Expiration -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Suppress Duplicate Posts/Comments
+
+Prevent posts with identical content to be published
+with less than two minutes in between submissions.
+<!-- TODO: full description for Suppress Duplicate Posts/Comments -->
+
+Minimum required technical skill level to see this feature: 1
diff --git a/doc/feature/additional/filtering.md b/doc/feature/additional/filtering.md
new file mode 100644
index 000000000..ba8e1e29f
--- /dev/null
+++ b/doc/feature/additional/filtering.md
@@ -0,0 +1,57 @@
+## Network and Stream Filtering
+
+
+### Search by Date
+
+Ability to select posts by date ranges
+<!-- TODO: full description for Search by Date -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Saved Searches
+
+Save search terms for re-use
+<!-- TODO: full description for Saved Searches -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Network Personal Tab
+
+Enable tab to display only Network posts that you've interacted on
+<!-- TODO: full description for Network Personal Tab -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Network New Tab
+
+Enable tab to display all new Network activity
+<!-- TODO: full description for Network New Tab -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Affinity Tool
+
+Filter stream activity by depth of relationships
+<!-- TODO: full description for Affinity Tool -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Suggest Channels
+
+Show friend and connection suggestions
+<!-- TODO: full description for Suggest Channels -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Connection Filtering
+
+Filter incoming posts from connections based on keywords/content
+<!-- TODO: full description for Connection Filtering -->
+
+Minimum required technical skill level to see this feature: 3
diff --git a/doc/feature/additional/general.md b/doc/feature/additional/general.md
new file mode 100644
index 000000000..a1b712b12
--- /dev/null
+++ b/doc/feature/additional/general.md
@@ -0,0 +1,130 @@
+## General Features
+
+
+### New Member Links
+
+Display new member quick links menu.
+<!-- TODO: full description for New Member Links -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Advanced Profiles
+
+Additional profile sections and selections
+<!-- TODO: full description for Advanced Profiles -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Profile Import/Export
+
+Save and load profile details across sites/channels
+<!-- TODO: full description for Profile Import/Export -->
+
+Minimum required technical skill level to see this feature: 3
+
+
+### Web Pages
+
+Provide managed web pages on your channel
+<!-- TODO: full description for Web Pages -->
+
+Minimum required technical skill level to see this feature: 3
+
+
+### Wiki
+
+Provide a wiki for your channel
+<!-- TODO: full description for Wiki -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Private Notes
+
+Enables a tool to store notes and reminders (note: not encrypted)
+<!-- TODO: full description for Private Notes -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Cards
+
+Create personal planning cards
+<!-- TODO: full description for Cards -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Articles
+
+Create interactive articles
+<!-- TODO: full description for Articles -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Navigation Channel Select
+
+Change channels directly from within the navigation dropdown menu
+<!-- TODO: full description for Navigation Channel Select -->
+
+Minimum required technical skill level to see this feature: 3
+
+
+### Photo Location
+
+If location data is available on uploaded photos, link this to a map.
+<!-- TODO: full description for Photo Location -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Access Controlled Chatrooms
+
+Provide chatrooms and chat services with access control.
+<!-- TODO: full description for Access Controlled Chatrooms -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Smart Birthdays
+
+Make birthday events timezone aware in case your friends are scattered across the planet.
+<!-- TODO: full description for Smart Birthdays -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Event Timezone Selection
+
+Allow event creation in timezones other than your own.
+<!-- TODO: full description for Event Timezone Selection -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Premium Channel
+
+Allows you to set restrictions and terms
+on those that connect with your channel
+<!-- TODO: full description for Premium Channel -->
+
+Minimum required technical skill level to see this feature: 4
+
+
+### Advanced Directory Search
+
+Allows creation of complex directory search queries
+<!-- TODO: full description for Advanced Directory Search -->
+
+Minimum required technical skill level to see this feature: 4
+
+
+### Advanced Theme and Layout Settings
+
+Allows fine tuning of themes and page layouts
+<!-- TODO: full description for Advanced Theme and Layout Settings -->
+
+Minimum required technical skill level to see this feature: 4
diff --git a/doc/feature/additional/overview.md b/doc/feature/additional/overview.md
new file mode 100644
index 000000000..b51f60bcd
--- /dev/null
+++ b/doc/feature/additional/overview.md
@@ -0,0 +1,33 @@
+[chset]: /settings "Channel Settings"
+[ftset]: /settings/features "Additional Features Settings"
+[ftgen]: /help/feature/additional/general "General Features"
+[ftacc]: /help/feature/additional/access "Access Control and Permissions"
+[ftcom]: /help/feature/additional/composition "Post Composition Features"
+[ftfil]: /help/feature/additional/filtering "Network and Stream Filtering"
+[ftpos]: /help/feature/additional/posts "Post/Comment Tools"
+
+
+# Additional Features
+
+<!-- TODO: Introduction to additional features -->
+
+<!-- TODO: Short info and crosslink on techlevels -->
+
+You can switch the features on and off from the
+[Additional Features][ftset] link in the [Channel Settings][chset].
+
+<!-- TODO: Infos about feature visibility and causes/dependencies -->
+
+The following pages decribe all the available features
+grouped in the same way as they are with the accordion tabs on the
+[Additional Features][ftset] settings page:
+
+[General Features][ftgen]
+
+[Access Control and Permissions][ftacc]
+
+[Post Composition Features][ftcom]
+
+[Network and Stream Filtering][ftfil]
+
+[Post/Comment Tools][ftpos]
diff --git a/doc/feature/additional/posts.md b/doc/feature/additional/posts.md
new file mode 100644
index 000000000..d3f6b37db
--- /dev/null
+++ b/doc/feature/additional/posts.md
@@ -0,0 +1,57 @@
+## Post/Comment Tools
+
+
+### Community Tagging
+
+Ability to tag existing posts
+<!-- TODO: full description for Community Tagging -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Post Categories
+
+Add categories to your posts
+<!-- TODO: full description for Post Categories -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Emoji Reactions
+
+Add emoji reaction ability to posts
+<!-- TODO: full description for Emoji Reactions -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Saved Folders
+
+Ability to file posts under folders
+<!-- TODO: full description for Saved Folders -->
+
+Minimum required technical skill level to see this feature: 2
+
+
+### Dislike Posts
+
+Ability to dislike posts/comments
+<!-- TODO: full description for Dislike Posts -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Star Posts
+
+Ability to mark special posts with a star indicator
+<!-- TODO: full description for Star Posts -->
+
+Minimum required technical skill level to see this feature: 1
+
+
+### Tag Cloud
+
+Provide a personal tag cloud on your channel page
+<!-- TODO: full description for Tag Cloud -->
+
+Minimum required technical skill level to see this feature: 2
diff --git a/doc/fr/about.bb b/doc/fr/about.bb
deleted file mode 100644
index 7988c777e..000000000
--- a/doc/fr/about.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-
-$Projectname est un réseau de communication décentralisé, qui a pour but de proposer un moyen de communication qui est résistant à la censure, respecte la confidentialité et qui est indépendant des grandes companies mondiales. Ces companies géantes fonctionnent comme des espions. Ce sont des monopoles centralisés sur internet. A l'orignie internet ne fonctionnait pas ainsi, il était décentralisé.
-
-$Projectname est libre et open source. Il est conçu pour pouvoir monter en charge depuis un petite Raspberry Pi jusqu'à un serveur puissant à plusieurs coeurs. Il peut être utilisé pour servir de moyen de communication entre quelques individus mais peut monter pour héberger plusieurs milliers d'utilisateurs.
-
-$Projectname a pour but d'être utilisable sans documentation. Il est facile à utiliser pour un usage quotidien pour un utilisateur moyen mais aussi par des administrateurs système ou des développeurs.
-
-Comment utiliser ? Cela dépend de ce que vous voulez en faire.
-
-Il est écrit en php. Cela le rend facile à installer sur des hébergement actuels.
-
-It is written in the PHP scripting language, thus making it trivial to install on any hosting platform in use today comme par exemple [url=http://mediatemple.com/]Media Temple[/url] ou bien [url=http://www.dreamhost.com/r.cgi?455365/]Dreamhost[/url] ou bien encore [url=https://www.linode.com]Linode[/url], [url=http://greenqloud.com]GreenQloud[/url] ou [url=https://aws.amazon.com]Amazon AWS[/url]. Il fonctionne aussi trés bien sur un VPS de OVH.
-
-En d'autres mots, $Projectname peut tourner sur n'importe quelle plateforme qui a un serveur web, une base de donnée mysql et du php.
-
-
-En plus, $Projectname offre un grand nombre de suppléments :
-
-[b]Identification en un clic :[/b] cela signifie que vous pouvez accéder à d'autres sits $Projectname simplement en cliquant sur un lien. L'authentificaiton se fera alors automatiquement sans mot de passe. Oubliez le temps ou il vous fallait un grand nom de mot de passe pour aller sur différents sites.
-
-[b]Clone :[/b] Votre présence en ligne n'a plus besoin d'être faite sur un seul et unique site. Vous pouvez cloner ou importer votre identité (on peut aussi dire votre canal) sur un autre serveur (hub). Si votre serveur principal a des problème et s'arrête, pas de problème, vos contacts, vos messages seront continueront automatiquement à être accessible grĉe à votre canal clone. [i](*: Pour le moment seul les messages sont clonés)[/i]
-
-[b]Confidentialité :[/b] Votre identité $Projectname (Zot IDs) peut être supprimé, sauvegardé ou cloné. L'utilisateur à le total contrôle sur ses donnés. Et si vous décidez de supprimer totalement votre compte avec tous le contenu, tout ce que vous avez à faire est de cliquer sur le bouton de suppression du compte. C'est immédiat. Aucune question ne vous sera posé sur la raion. Vous être libre de le faire quand vous voulez.
-
-#include doc/macros/main_footer.bb;
diff --git a/doc/fr/about/about.bb b/doc/fr/about/about.bb
new file mode 100644
index 000000000..de736bff2
--- /dev/null
+++ b/doc/fr/about/about.bb
@@ -0,0 +1,198 @@
+[h3]Qu'est-ce que $Projectname ?[/h3]
+Le nom du projet est un ensemble [b]libre et open source[/b] d'applications et de services web fonctionnant sur un type particulier de serveur web, appelé "hub" (nœud), qui peut se connecter à d'autres hub dans un réseau décentralisé que nous aimons appeler "la grille", fournissant des services sophistiqués de communication, d'identité et de contrôle d'accès qui fonctionnent ensemble de manière transparente à travers les domaines et les sites web indépendants. Il permet à n'importe qui de publier publiquement ou de [b]manière privée[/b] du contenu via des "canaux", qui sont les identités fondamentales, cryptographiquement sécurisées qui fournissent l'authentification indépendamment des hubs qui les hébergent. Cette libération révolutionnaire de l'identité en ligne à partir de serveurs et domaines individuels est appelée "identité nomade", et elle est alimentée par le protocole Zot, un nouveau cadre pour le contrôle d'accès décentralisé avec des permissions extensibles et à finement configurables.
+
+[h3]D'accord... alors qu'est-ce que $Projectname ?[/h3]
+Du point de vue pratique des membres du hub qui utilisent le logiciel, $Projectname offre une variété d'applications et de services Web familiers et intégrés, y compris :
+[ul]
+[li]fils de discussion sur les réseaux sociaux[/li]
+[li]Stockage de fichiers dans le cloud[/li]
+[li]calendrier et contacts (avec support CalDAV et CardDAV)[/li]
+[li]Hébergement de pages web avec un système de gestion de contenu[/li]
+[li]wiki[/li]
+[li] et plus....[/li]
+[/ul]
+Alors que toutes ces applications et services peuvent être trouvés dans d'autres progiciels, seul $Projectname vous permet de définir des permissions pour des groupes et des individus qui n'ont peut-être même pas de comptes sur votre hub ! Dans les applications web typiques, si vous voulez partager des choses en privé sur Internet, les personnes avec qui vous partagez doivent avoir des comptes sur le serveur hébergeant vos données ; autrement, il n'y a pas de moyen robuste pour votre serveur [i]d'authentifier[/i] les visiteurs du site pour savoir s'ils doivent leur accorder l'accès. $Projectname résout ce problème avec un système avancé [i]d'authentification à distance[/i] qui valide l'identité des visiteurs en employant des techniques qui incluent la cryptographie à clé publique.
+
+[h3]Pile logicielle[/h3].
+La pile logicielle $Projectname est une application serveur web relativement standard écrite principalement en PHP/MySQL et [url=https://github.com/redmatrix/hubzilla/blob/master/install/INSTALL.txt] nécessitant un peu plus qu'un serveur web, une base de données compatible MySQL, et le langage de script PHP[/url]. Il est conçu pour être facilement installable par ceux qui ont des compétences de base en administration de sites Web sur des plates-formes d'hébergement mutualisé typiques avec une large gamme de matériel informatique. Il est aussi facilement extensible via des plugins et des thèmes et d'autres outils tiers.
+
+[h3]Glossaire[/h3].
+[dl terms="b"]
+[*= Hub] Une instance de ce logiciel s'exécutant sur un serveur web standard.
+
+[*=Grille] Le réseau global de hubs qui échangent des informations entre eux en utilisant le protocole Zot.
+
+[*=Canaux] L'identité fondamentale sur la grille. Un canal peut représenter une personne, un blog ou un forum pour n'en nommer que quelques-uns. Les canaux peuvent établir des connexions avec d'autres canaux pour partager des informations avec des permissions très détaillées.
+
+[*=Clone] Les canaux peuvent avoir des clones associés à des comptes séparés et non liés sur des hubs indépendants. Les communications partagées avec un canal sont synchronisées entre les clones de canal, ce qui permet à un canal d'envoyer et de recevoir des messages et d'accéder au contenu partagé à partir de plusieurs concentrateurs. Cela fournit une résilience contre les pannes de réseau et de matériel, ce qui peut être un problème important pour les serveurs Web hébergés ou à ressources limitées. Le clonage vous permet de déplacer complètement un canal d'un hub à un autre, emportant avec vous vos données et vos connexions. Voir identité nomade.
+
+[*=Identité nomade] La capacité d'authentifier et de migrer facilement une identité à travers des hubs indépendants et des domaines web. L'identité nomade fournit une véritable propriété d'une identité en ligne, car les identités des canaux contrôlés par un compte sur un hub ne sont pas liées au hub lui-même. Un hub est plus comme un "host" pour les chaînes. Avec Hubzilla, vous n'avez pas de "compte" sur un serveur comme vous le faites sur des sites web typiques ; vous possédez une identité que vous pouvez emporter avec vous à travers la grille en utilisant des clones.
+
+[*= [url=[baseurl]/help/developer/zot_protocol]Zot[/url]] Le nouveau protocole basé sur JSON pour la mise en œuvre de communications et de services décentralisés sécurisés. Il diffère de nombreux autres protocoles de communication en construisant les communications sur un cadre décentralisé d'identité et d'authentification. Le composant d'authentification est similaire à OpenID sur le plan conceptuel, mais il est isolé des identités basées sur le DNS. Dans la mesure du possible, l'authentification à distance est silencieuse et invisible. Il s'agit d'un mécanisme discret de contrôle d'accès distribué à l'échelle de l'Internet.
+[/dl]
+
+[h3]Caractéristiques[/h3]
+Cette page énumère quelques-unes des fonctionnalités de base de $Projectname qui sont regroupées avec la version officielle. Le nom du projet est une plate-forme hautement extensible, ce qui permet d'ajouter plus de fonctionnalités et de fonctionnalités via des thèmes et des plugins supplémentaires.
+
+[h4]Curseur d'affinité[/h4]
+
+Lors de l'ajout de connexions dans $Projectname, les membres ont la possibilité d'assigner des niveaux d'"affinité" (à quel point votre amitié est proche) à la nouvelle connexion. Par exemple, lorsque vous ajoutez quelqu'un qui se trouve être une personne dont vous suivez le blog, vous pourriez assigner à son canal un niveau d'affinité de &quot;Connaissances&quot;.
+
+D'autre part, lors de l'ajout du canal d'un ami, ils pourraient être placés sous le niveau d'affinité &quot;d'Amis&quot;.
+
+A ce stade, l'outil $Projectname [i]curseur d'affinité[/i], qui apparaît généralement en haut de votre page &quot;Matrix&quot ;, ajuste le contenu de la page pour inclure ceux qui se situent dans la plage d'affinité désirée. Les canaux en dehors de cette plage ne seront pas affichés, à moins que vous n'ajustiez le curseur pour les inclure.
+
+Le curseur d'affinité permet de filtrer instantanément de grandes quantités de contenu, regroupées par niveaux de proximité.
+
+[h4]Filtrage de connexion[/h4]
+
+Vous avez la possibilité de contrôler précisément ce qui apparaît dans votre flux en utilisant le "Filtre de connexion" en option. Lorsqu'il est activé, l'éditeur de connexion fournit des entrées pour sélectionner les critères qui doivent être appariés afin d'inclure ou d'exclure un message spécifique d'un canal spécifique. Une fois qu'un message a été autorisé, tous les commentaires à ce message sont autorisés, qu'ils correspondent ou non aux critères de sélection. Vous pouvez sélectionner des mots qui, s'ils sont présents, bloquent le message ou s'assurent qu'il est inclus dans votre flux. Les expressions régulières peuvent être utilisées pour un contrôle encore plus fin, ainsi que les hashtags ou même la langue détectée du message.
+
+[h4]Listes de contrôle d'accès[/h4]
+
+Lors du partage de contenu, les membres ont l'option de restreindre la visibilité du contenu. En cliquant sur le cadenas sous la boîte de partage, on peut choisir les destinataires désirés du message, en sélectionnant leur nom.
+
+Une fois envoyé, le message ne sera visible que par l'expéditeur et les destinataires sélectionnés. En d'autres termes, le message n'apparaîtra sur aucun mur public.
+
+Les listes de contrôle d'accès peuvent être appliquées au contenu et aux messages, aux photos, aux événements, aux pages Web, aux salons de discussion et aux fichiers.
+
+[h4]Ouverture de session unique[/h4]
+
+Les listes de contrôle d'accès fonctionnent pour tous les canaux de la grille grâce à notre technologie unique d'ouverture de session unique. La plupart des liens internes fournissent un jeton d'identité qui peut être vérifié sur d'autres sites $Projectname et sert à contrôler l'accès aux ressources privées. Vous vous connectez une seule fois à votre hub d'origine. Après cela, l'authentification à toutes les ressources $Projectname est "magique".
+
+[h4]Stockage de fichiers avec WebDAV[/h4]
+
+Les fichiers peuvent être téléchargés dans votre espace de stockage personnel à l'aide des utilitaires de votre système d'exploitation (glisser-déposer dans la plupart des cas). Vous pouvez protéger ces fichiers avec des listes de contrôle d'accès à n'importe quelle combinaison de membres $Projectname (y compris certains membres tiers du réseau) ou les rendre publics.
+
+[h4]Albums de photos[/h4]
+
+Stockez vos photos dans des albums. Toutes vos photos peuvent être protégées par des listes de contrôle d'accès.
+
+[h4]Calendrier des événements[/h4]
+
+Créez et gérez des événements et tâches, qui peuvent également être protégés par des listes de contrôle d'accès. Les événements peuvent être importés et exportés vers d'autres logiciels en utilisant le format standard de l'industrie vcalendar/iCal pour être partagés avec d'autres. Les anniversaires sont automatiquement ajoutés par vos amis et convertis en votre fuseau horaire correct afin que vous sachiez précisément quand l'anniversaire se produit - peu importe où vous vous trouvez dans le monde par rapport à la personne fêtée. Les événements sont normalement créés avec des compteurs de présence afin que vos amis et vos connexions puissent répondre instantanément.
+
+[h4]Salons de discussion[/h4]
+
+Vous pouvez créer n'importe quel nombre de salles de chat personnelles et autoriser l'accès via des listes de contrôle d'accès. Ceux-ci sont généralement plus sûrs que XMPP, IRC et autres transports de messagerie instantanée, bien que nous autorisions également l'utilisation de ces autres services via des plugins.
+
+[h4]Création de pages Web[/h4]
+
+$Projectname dispose de nombreux outils de création de " Gestion de contenu " pour la création de pages Web, y compris l'édition de mise en page, les menus, les blocs, les widgets et les régions de pages et de contenu. Tous ces éléments peuvent être contrôlés de façon à ce que les pages qui en résultent soient privées pour le public auquel elles sont destinées.
+
+[h4]Les applications[/h4]
+
+Les applications peuvent être construites et distribuées par les membres. Ces applications sont différentes des applications " verrouillées par le fournisseur" traditionnelles parce qu'elles sont entièrement contrôlées par l'auteur - qui peut fournir un contrôle d'accès sur les pages de l'application de destination et facturer en conséquence pour cet accès. La plupart des applications de $Projectname sont gratuites et peuvent être créées facilement par ceux qui n'ont aucune connaissance en programmation.
+
+[h4]Mise en page[/h4]
+
+La mise en page est basée sur un langage de description appelé Comanche. $Projectname est lui-même rédigé avec des mises en page Comanche que vous pouvez modifier. Cela permet un niveau de personnalisation que vous ne trouverez pas dans d'autres environnements dits "multi-utilisateurs".
+
+[h4]Marque-pages[/h4]
+
+Partagez, sauvegardez et gérez les marque-pages à partir des liens fournis dans les conversations.
+
+[h4]Cryptage des messages privés et protection de la vie privée[/h4].
+
+Le courrier privé est stocké dans un format obscurci. Bien que cela ne soit pas à l'épreuve des balles, cela empêche généralement l'espionnage occasionnel par l'administrateur du site ou le fournisseur d'accès Internet.
+
+Chaque canal $Projectname possède son propre jeu unique de clés RSA 4096 bits privées et publiques associées, générées lors de la première création des canaux. Ceci est utilisé pour protéger les messages privés et les messages en transit.
+
+De plus, les messages peuvent être créés en utilisant un "chiffrement de bout en bout" qui ne peut pas être lu par les opérateurs $Projectname ou les FAI ou toute personne ne connaissant pas le code d'accès.
+
+Les messages publics ne sont généralement pas cryptés en transit ou en stockage.
+
+Les messages privés peuvent être retirés (non expédiés) bien qu'il n'y ait aucune garantie que le destinataire ne l'a pas encore lu.
+
+Posts et messages peuvent être créés avec une date d'expiration, date à laquelle ils seront supprimés/supprimés sur le site du destinataire.
+
+[h4]Fédération des services[/h4]
+
+En plus d'ajouter des greffons de connexion à une variété de réseaux alternatifs, il existe un support natif pour l'importation de contenu à partir de flux RSS/Atom pour créer des canaux spéciaux. Des plugins sont également disponibles pour communiquer avec d'autres personnes en utilisant les protocoles Diaspora et GNU-Social (OStatus). Ces réseaux ne prennent pas en charge l'identité nomade ou le contrôle d'accès inter-domaines ; cependant, les communications de base sont prises en charge par Diaspora, Friendica, GNU-Social, Mastodon et d'autres fournisseurs qui utilisent ces protocoles.
+
+Il existe également un support expérimental pour l'authentification OpenID qui peut être utilisé dans les listes de contrôle d'accès. Il s'agit d'un travail en cours. Votre hub $Projectname peut être utilisé en tant que fournisseur OpenID pour vous authentifier auprès des services externes qui utilisent cette technologie.
+
+Les canaux peuvent avoir la permission de devenir des "canaux dérivés" lorsque deux ou plusieurs canaux existants se combinent pour créer un nouveau canal topique.
+
+[h4]Groupes de protection de la vie privée[/h4]
+
+Notre mise en œuvre de groupes de protection de la vie privée est similaire à Google "Circles" et Diaspora "Aspects". Cela vous permet de filtrer votre flux entrant par groupes sélectionnés et de définir automatiquement la liste de contrôle d'accès sortant sur ceux de ce groupe de confidentialité lorsque vous postez un message. Vous pouvez l'annuler à tout moment (avant l'envoi du poste).
+
+[h4]Services d'annuaire[/h4]
+
+Nous fournissons un accès facile à un annuaire des membres et des outils décentralisés capables de fournir des "suggestions" d'amis. Les répertoires sont des sites $Projectname normaux qui ont choisi d'accepter le rôle de serveur d'annuaire. Cela nécessite plus de ressources que la plupart des sites typiques et n'est donc pas la valeur par défaut. Les annuaires sont synchronisés et mis en miroir de sorte qu'ils contiennent tous des informations à jour sur l'ensemble du réseau (sous réserve des délais de propagation normaux).
+
+[h4]TLS/SSL[/h4]
+
+Pour les hubs $Projectname qui utilisent TLS/SSL, les communications entre le client et le serveur sont cryptées via TLS/SSL. Étant donné les récentes révélations dans les médias concernant la surveillance mondiale et le contournement du chiffrement par la NSA et le GCHQ, il est raisonnable de supposer que les communications protégées par HTTPS peuvent être compromises de diverses façons. Les communications privées sont donc cryptées à un niveau supérieur avant l'envoi hors site.
+
+[h4]Réglages des canaux[/h4]
+
+Lorsqu'un canal est créé, un rôle est choisi qui applique un certain nombre de paramètres de sécurité et de confidentialité préconfigurés. Celles-ci sont choisies pour les meilleures pratiques afin de maintenir la protection de la vie privée aux niveaux requis.
+
+Si vous choisissez un rôle de confidentialité "personnalisé", chaque canal permet de définir des permissions finement définies pour divers aspects de la communication. Par exemple, sous la rubrique " Paramètres de sécurité et de confidentialité ", chaque aspect sur le côté gauche de la page comporte six (6) options de visualisation et d'accès possibles, qui peuvent être sélectionnées en cliquant sur le menu déroulant. Il existe également un certain nombre d'autres paramètres de confidentialité que vous pouvez modifier.
+
+Les options sont :
+
+ - Personne d'autre que vous-même.
+ - Seulement ceux que vous autorisez spécifiquement.
+ - N'importe qui dans votre carnet d'adresses.
+ - Toute personne sur ce site Web.
+ - N'importe qui dans ce réseau.
+ - Toute personne authentifiée.
+ - N'importe qui sur Internet.
+
+[h4]Forums publics et privés[/h4]
+
+Les forums sont généralement des canaux qui peuvent être ouverts à la participation de plusieurs auteurs. Il existe actuellement deux mécanismes pour poster sur les forums : 1) les messages " mur à mur " et 2) via les balises forum @mention. Les forums peuvent être créés par n'importe qui et utilisés à n'importe quelle fin. Le répertoire contient une option pour rechercher des forums publics. Les forums privés ne peuvent être affichés et souvent vus que par les membres.
+
+[h4]Clonage de compte[/h4].
+
+Les comptes en $Projectname sont désignés sous le nom de [i]identités nomades[/i], car l'identité d'un membre n'est pas liée à celle du hub où l'identité a été créée à l'origine. Par exemple, lorsque vous créez un compte Facebook ou Gmail, il est lié à ces services. Ils ne peuvent pas fonctionner sans Facebook.com ou Gmail.com.
+
+Par contre, disons que vous avez créé une identité $Projectname appelée [b]tina@$Projectnamehub.com[/b]. Vous pouvez le cloner dans un autre hub $Projectname en choisissant le même nom, ou un nom différent : [b]machin@quelquonque$ProjectnameHub.info[/b].
+
+Les deux canaux sont maintenant synchronisés, ce qui signifie que tous vos contacts et préférences seront dupliqués sur votre clone. Peu importe que vous envoyiez un courrier à partir de votre hub d'origine ou du nouveau hub. Les messages seront reflétés sur les deux comptes.
+
+C'est une caractéristique plutôt révolutionnaire, si l'on considère certains scénarios :
+
+Que se passe-t-il si le hub où une identité est basée se déconnecte soudainement ? Sans clonage, un membre ne pourra pas communiquer jusqu'à ce que ce hub revienne en ligne (sans aucun doute, beaucoup d'entre vous ont vu et maudit le Twitter "Fail Whale"). Avec le clonage, vous n'avez qu'à vous connecter à votre compte cloné, et la vie continue de manière joyeuse pour toujours.
+
+L'administrateur de votre hub n'a plus les moyens de payer son hub gratuit et public $Projectname. Il annonce que le hub sera fermé dans deux semaines. Cela vous donne amplement le temps de cloner votre (vos) identité(s) et de préserver vos relations $Projectname, vos amis et le contenu.
+
+Que faire si votre identité est soumise à la censure du gouvernement ? Votre fournisseur de concentrateur peut être contraint de supprimer votre compte, ainsi que les identités et les données associées. Avec le clonage, $Projectname offre [b]une résistance à la censure[/b]. Vous pouvez avoir des centaines de clones, si vous le souhaitez, tous nommés différemment, et existant sur de nombreux hubs différents, éparpillés sur Internet.
+
+Le nom du projet offre de nouvelles possibilités intéressantes pour la protection de la vie privée. Vous pouvez en lire plus à la page &lt;Meilleures pratiques en communications privées&gt;.
+
+Certaines mises en garde s'appliquent. Pour une explication complète du clonage d'identité, lisez la page &lt;Comment cloner mon identité&gt;.
+
+[h4]Sauvegarde de compte[/h4]
+
+Hubzilla offre une simple sauvegarde de votre compte en un seul clic, où vous pouvez télécharger une sauvegarde complète de votre (vos) profil(s). Les sauvegardes peuvent ensuite être utilisées pour cloner ou restaurer un profil.
+
+[h4]Suppression de compte[/h4]
+
+Les comptes peuvent être immédiatement supprimés en cliquant sur un lien. Voilà, c'est tout. Tout le contenu associé est ensuite supprimé de la grille (y compris les messages et tout autre contenu produit par le profil supprimé). Selon le nombre de connexions que vous avez, le processus de suppression du contenu distant peut prendre un certain temps, mais il est programmé pour se produire aussi rapidement que possible.
+
+[h4]Suppression de contenu[/h4]
+
+Tout contenu créé dans Hubzilla reste sous le contrôle du membre (ou du canal) qui l'a créé à l'origine. A tout moment, un membre peut supprimer un message ou une série de messages. Le processus de suppression garantit que le contenu est supprimé, qu'il ait été posté sur le hub d'origine d'un canal ou sur un autre hub, où le canal a été authentifié à distance via Zot (protocole de communication et d'authentification Hubzilla).
+
+[h4]Médias[/h4]
+
+Semblable à tout autre système moderne de blogging, réseau social ou service de micro-blogging, Hubzilla prend en charge le téléchargement de fichiers, l'intégration de vidéos, l'intégration de liens vers des pages web.
+
+[h4]Prévisualisation/Édition[/h4]
+
+Les messages et commentaires peuvent être prévisualisés avant l'envoi et édités après l'envoi.
+
+[h4]Vote/consensus[/h4]
+Les messages peuvent être transformés en éléments de "consensus", ce qui permet aux lecteurs d'offrir un retour d'information, qui est rassemblé en compteurs "d'accord", "en désaccord" et "abstention". Cela vous permet de mesurer l'intérêt pour les idées et de créer des sondages informels.
+
+[h4]Extension de Hubzilla[/h4]
+
+Hubzilla peut être étendu de plusieurs façons, par la personnalisation du site, la personnalisation personnelle, la définition d'options, de thèmes et dde greffons.
+
+[h4]API[/h4]
+
+Une API est disponible pour l'utilisation par des services tiers. Un plugin fournit également une implémentation de base de l'API Twitter (pour laquelle il existe des centaines d'outils tiers). L'accès peut être fourni par login/mot de passe ou OAuth, et l'enregistrement client des applications OAuth est fourni.
diff --git a/doc/fr/about/project.bb b/doc/fr/about/project.bb
new file mode 100644
index 000000000..e9bf11cb4
--- /dev/null
+++ b/doc/fr/about/project.bb
@@ -0,0 +1,174 @@
+[h3]La gouvernance de $Projectname [/h3]
+La gouvernance est liée à la gestion d'un projet et plus particulièrement à la résolution des conflits.
+
+[h4]Gouvernance communautaire[/h4]
+Le projet est maintenu et les décisions sont prises par la "communauté". La structure de gouvernance continue d'évoluer. Jusqu'à ce que la structure soit finalisée, les décisions sont prises dans l'ordre suivant :
+
+[ol]
+[*] Consensus paresseux
+Si une proposition de projet est soumise à l'un des forums de gouvernance communautaire et qu'il n'y a pas d'objections sérieuses dans un délai "raisonnable" à partir de la date de la proposition (nous accordons généralement 2 à 3 jours pour que toutes les parties intéressées puissent intervenir), aucun vote n'est nécessaire et la proposition sera considérée comme approuvée. Certaines préoccupations peuvent être soulevées à ce moment-là, mais si elles sont abordées au cours de la discussion et des solutions de rechange fournies, elles seront quand même considérées comme approuvées.
+
+
+[*] Veto
+Les promoteurs principaux ayant un historique important d'engagements de projet peuvent opposer leur veto à toute décision. La décision ne peut être prise tant que le veto n'a pas été levé ou qu'une autre proposition n'a pas été présentée.
+
+
+[*] Vote de la communauté
+Une décision qui n'a pas de mandat clair ou de consensus clair, mais qui ne fait pas l'objet d'un veto, peut être soumise au vote de la communauté. Actuellement, il s'agit d'un simple vote populaire dans l'un des forums communautaires applicables. À ce moment-là, c'est le vote populaire qui décide du résultat. Cela pourrait changer à l'avenir si la communauté adopte un modèle de gouvernance de "conseil". Ce document sera mis à jour à ce moment-là avec les règles de gouvernance mises à jour.
+[/ol]
+
+Le vote communautaire n'offre pas toujours un résultat agréable et peut générer des factions polarisées au sein de la communauté (d'où la raison pour laquelle d'autres modèles sont à l'étude). Si la proposition est rejetée, il y a encore plusieurs choses qui peuvent être faites et la proposition peut être soumise à nouveau avec des paramètres légèrement différents (conversion vers un module complémentaire, conversion vers un module optionnel qui est désactivé par défaut, etc. Si l'intérêt pour le dispositif est élevé et que le vote est "serré", cela peut générer beaucoup de mauvais sentiments parmi les électeurs perdants. Lors de ces votes serrés, il est [b]fortement recommandé[/b] que l'auteur de la proposition prenne des mesures pour répondre à toute préoccupation soulevée et la soumettre de nouveau.
+
+[h3]Politique de confidentialité[/h3]
+
+Q : Qui peut voir mon contenu ?
+
+R : Par défaut, N'IMPORTE QUELLE personne sur Internet, à MOINS que vous le restreigniez. $Projectname vous permet de choisir le niveau de confidentialité que vous désirez. Le contenu restreint ne sera PAS visible pour les "réseaux d'espionnage" et les annonceurs. Il sera protégé contre les écoutes de l'extérieur - au mieux de nos capacités. Les administrateurs de Hub ayant suffisamment de compétences et de patience PEUVENT être en mesure d'écouter certaines communications privées, mais ils doivent déployer des trésors d'efforts pour le faire. Des modes de confidentialité existent au sein de $Projectname qui résistent même à l'écoute par des administrateurs de hub qualifiés et déterminés.
+
+Q : Mon contenu peut-il être censuré ?
+
+R : $Projectname (le réseau) NE PEUT PAS censurer votre contenu. Les administrateurs de serveur et de hub sont soumis aux lois locales et PEUVENT supprimer le contenu répréhensible de leur site/hub. N'importe qui PEUT devenir un administrateur de hub, y compris vous ; et donc publier du contenu qui pourrait autrement être censuré. Vous POUVEZ toujours être soumis aux lois locales.
+
+[h3]Définitions[/h3]
+
+[h4]$Projectname[/h4]
+Autrement appelé "le réseau", $Projectname est une collection d'ordinateurs/serveurs individuels (aka [b]hubs[/b]) qui se connectent ensemble pour former un plus grand réseau coopératif.
+
+[h4]Hub[/h4]
+Un ordinateur individuel ou un serveur connecté à $Projectname. Ces services sont fournis par un [b]administrateur de hub[/b] et peuvent être publics ou privés, payants ou gratuits.
+
+[h4]Administrateur de hub[/h4]
+Gérant du système d'un hub individuel.
+
+[h3]Politiques[/h3]
+
+[h4]Information publique[/h4]
+
+Toute information ou tout ce que vous affichez dans $Projectname PEUT être public ou visible par quiconque sur Internet. Dans la mesure du possible, $Projectname vous permet de protéger le contenu et de restreindre qui peut le consulter.
+
+La photo de votre profil, le nom de votre canal et l'emplacement (URL ou adresse réseau) de votre canal sont visibles par tous sur Internet et les contrôles de confidentialité n'affecteront pas l'affichage de ces éléments.
+
+Vous POUVEZ fournir en plus d'autres informations de profil. Toute information que vous fournissez dans votre profil "par défaut" ou [b]profil public[/b] PEUT être transmise à d'autres hubs dans $Projectname et peut également être affichée dans le répertoire des canaux. Vous pouvez limiter l'affichage de ces informations de profil. Il peut être limité aux seuls membres de votre hub, ou seulement aux connexions (amis), ou à d'autres groupes limités de visionneurs comme vous le souhaitez. Si vous souhaitez que votre profil soit restreint, vous devez définir le paramètre de confidentialité approprié ou simplement NE PAS fournir d'informations supplémentaires.
+
+[h4]Contenu[/h4]
+
+Le contenu que vous fournissez (messages de statut, photos, fichiers, etc.) vous appartient. Par défaut, $Projectname publie le contenu ouvertement et visible par tout le monde sur Internet (PUBLIC). Vous POUVEZ contrôler cela dans les paramètres de votre canal et restreindre les permissions par défaut ou vous POUVEZ restreindre la visibilité de n'importe quel élément publié séparément (PRIVÉ). Les développeurs de noms de projet s'assureront que le contenu restreint est visible SEULEMENT pour ceux qui figurent dans la liste des restrictions - au mieux de leurs capacités.
+
+Les contenus (en particulier les messages de statut) que vous partagez avec d'autres réseaux ou que vous avez rendus visibles à quiconque sur Internet (PUBLIC) ne peuvent pas être facilement repris une fois qu'ils ont été publiés. Il PEUT être partagé avec d'autres réseaux et rendu disponible par le biais de flux RSS/Atom. Il peut aussi être syndiqué sur d'autres sites $Projectname. Il PEUT apparaître sur d'autres réseaux et sites Web et être visible dans les recherches sur Internet. Si vous ne souhaitez pas ce comportement par défaut, veuillez ajuster les paramètres de votre canal et restreindre le nombre de personnes qui peuvent voir votre contenu.
+
+[h4]Commentaires et posts du Forum[/h4]
+
+Les commentaires sur les posts qui ont été créés par d'autres et les posts qui sont désignés comme posts du forum vous appartiennent en tant que créateur/auteur, mais la distribution de ces posts n'est pas sous votre contrôle direct, et vous renoncez à certains droits sur ces items. Ces messages/commentaires PEUVENT être redistribués à d'autres, et PEUVENT être visibles pour n'importe qui sur Internet. Dans le cas de commentaires, le créateur du "premier message" dans le fil de discussion (conversation) auquel vous répondez contrôle la distribution de tous les commentaires et réponses à ce message. Ils "possèdent" et ont donc certains droits sur l'ensemble de la conversation (y compris tous les commentaires qu'elle contient). Vous pouvez toujours modifier ou supprimer le commentaire, mais le propriétaire de la conversation a également le droit de modifier, supprimer, redistribuer et sauvegarder/restaurer tout ou partie du contenu de la conversation.
+
+[h4]Les informations privées[/h4]
+
+Les développeurs de $Projectname s'assureront que tout contenu que vous fournissez et qui est désigné comme PRIVÉ seront protégés contre les écoutes - au mieux de leurs capacités. Le contenu des canaux privés PEUT être vu dans la base de données de chaque administrateur de hub impliqué, mais les messages privés sont masqués dans la base de données. Cette dernière signifie qu'il est très difficile, mais PAS impossible que ce contenu soit vu par un administrateur de hub. Le contenu du canal privé et les messages privés sont également éliminés des notifications par courriel. Le cryptage de bout en bout est fourni en option et ceci NE PEUT PAS être vu, même par un administrateur déterminé.
+
+[h3]Confidentialité de l'identité[/h3]
+
+La confidentialité de votre identité est un autre aspect. Parce que vous avez une identité décentralisée dans $Projectname, votre vie privée s'étend au-delà de votre hub d'origine. Si vous voulez avoir le contrôle total de votre vie privée et de la sécurité, vous devriez faire fonctionner votre propre concentrateur sur un serveur dédié. Pour beaucoup de gens, c'est compliqué et cela peut mettre à l'épreuve leurs capacités techniques. Énumérons donc quelques précautions que vous pouvez prendre pour assurer votre vie privée autant que possible.
+
+Une identité décentralisée a beaucoup d'avantages et vous donne beaucoup de fonctionnalités intéressantes, mais vous devez être conscient du fait que votre identité est connue par d'autres hubs dans le réseau $Projectname. L'un de ces avantages est que d'autres canaux peuvent vous servir du contenu personnalisé et vous permettre de voir des choses privées (comme des photos privées que d'autres souhaitent partager avec vous). Pour cette raison, ces canaux ont besoin de savoir qui vous êtes. Mais nous comprenons que parfois, ces autres canaux en savent plus de vous que vous ne le souhaiteriez. Par exemple, le plug-in Visage qui peut indiquer au propriétaire d'un canal la dernière fois que vous avez visité son profil. Vous pouvez facilement OPT-OUT de ce bas niveau et nous pensons, le suivi inoffensif.
+
+Vous pouvez activer [url=http://donottrack.us/]Ne pas suivre (DNT)[/url] dans votre navigateur Web. Nous respectons cette nouvelle proposition de politique de confidentialité. Tous les navigateurs modernes supportent le DNT. Vous le trouverez dans les paramètres de confidentialité de vos navigateurs ou bien vous pouvez consulter le manuel du navigateur Web. Cela n'affectera pas la fonctionnalité de $Projectname. Ce réglage est probablement suffisant pour la plupart des gens.
+
+Vous pouvez [url=settings]désactiver la publication[/url] de votre chaîne dans notre répertoire de chaînes. Si vous voulez que les gens trouvent votre canal, vous devriez leur donner l'adresse de votre canal directement. Nous pensons que c'est une bonne indication que vous préférez une vie privée supplémentaire et que vous activez automatiquement l'option "Ne pas suivre" si c'est le cas.
+
+Vous pouvez avoir un hub bloqué. Cela signifie que tous les canaux et le contenu de cette hub ne sont pas publics et ne sont pas visibles pour le monde extérieur. C'est quelque chose que seul votre administrateur de hub peut faire. Nous respectons également ce principe et activons automatiquement l'option "Ne pas suivre" si elle est définie.
+
+[h3]La Censure[/h3]
+
+$Projectname est un réseau mondial qui inclut toutes les religions et toutes les cultures. Cela n'implique pas que tous les membres du réseau ressentent la même chose que vous sur les questions litigieuses, et certaines personnes peuvent être FORTEMENT opposées au contenu que vous publiez. En général, si vous souhaitez publier quelque chose que vous savez ne pas être universellement acceptable, la meilleure approche est de limiter l'audience en utilisant les contrôles de confidentialité à un petit cercle d'amis.
+
+$Projectname en tant que fournisseur de réseau n'est pas en mesure de censurer le contenu. Cependant, les administrateurs du hub PEUVENT censurer tout contenu qui apparaît sur leur hub pour se conformer aux lois locales ou même au jugement personnel. Leur décision est finale. Si vous avez des problèmes avec un administrateur de hub, vous pouvez déplacer votre compte et vos messages sur un autre site qui correspond mieux à vos attentes. Veuillez vérifier (périodiquement) les[Conditions d'utilisation](help/TermsOfService) de votre hub pour connaître les règles ou directives. Si votre contenu se compose de matériel qui est illégal ou qui peut causer des problèmes, vous êtes FORTEMENT encouragé à héberger le vôtre (devenez un administrateur de hub). Vous pouvez toujours trouver que votre contenu est bloqué sur certains hubs, mais $Projectname en tant que réseau ne peut pas l'empêcher d'être posté.
+
+$Projectname RECOMMANDE que les administrateurs du concentrateur accordent un délai de grâce de 1 à 2 jours entre l'avertissement au titulaire du compte du contenu qui doit être supprimé et la suppression ou la désactivation physique du compte. Cela donnera au propriétaire du contenu la possibilité d'exporter les métadonnées de son canal et de les importer sur un autre site. Dans de rares cas, le contenu peut être de nature à justifier la résiliation immédiate du compte. Il s'agit d'une décision de hub, pas d'une décision de $Projectname.
+
+Si vous publiez régulièrement des contenus à caractère adulte ou offensant, nous vous encourageons fortement à marquer votre compte "NSFW" (Not Safe For Work). Ceci empêchera l'affichage de votre photo de profil dans le répertoire, sauf pour les visiteurs qui ont choisi de désactiver le "mode sans échec". Si votre photo de profil est trouvée par les administrateurs d'annuaire comme étant adulte ou offensante, l'administrateur d'annuaire PEUT marquer votre photo de profil comme NSFW. Il n'existe actuellement aucun mécanisme officiel pour contester ou renverser cette décision, c'est pourquoi vous DEVEZ marquer votre propre compte NSFW s'il est susceptible d'être inapproprié pour le grand public.
+
+[h3]Remerciements[/h3]
+
+Merci à tous ceux qui ont aidé et contribué au projet et à ses prédécesseurs au fil des ans.
+Il est possible que votre nom nous ait échappé, mais ce n'est pas intentionnel. Nous remercions également la collectivité et ses membres pour leur précieuse contribution et sans qui tout cet effort n'aurait pas de sens.
+
+Il convient également de reconnaître les contributions et les solutions aux problèmes qui sont apparus à la suite de des discussions entre les membres et les développeurs d'autres projets quelque peu liés et concurrents ; même si nous avons eu nos désaccords occasionnels.
+
+[list]
+[li]Mike Macgirvin[/li]
+[li]Fabio Comuni[/li]
+[li]Simon L'nu[/li]
+[li]marijus[/li]
+[li]Tobias Diekershoff[/li]
+[li]fabrixxm[/li]
+[li]tommy tomson[/li]
+[li]Simon[/li]
+[li]zottel[/li]
+[li]Christian Vogeley[/li]
+[li]jeroenpraat[/li]
+[li]Michael Vogel[/li]
+[li]erik[/li]
+[li]Zach Prezkuta[/li]
+[li]Paolo T[/li]
+[li]Michael Meer[/li]
+[li]Michael[/li]
+[li]Abinoam P. Marques Jr[/li]
+[li]Tobias Hößl[/li]
+[li]Alexander Kampmann[/li]
+[li]Olaf Conradi[/li]
+[li]Paolo Tacconi[/li]
+[li]tobiasd[/li]
+[li]Devlon Duthie[/li]
+[li]Zvi ben Yaakov (a.k.a rdc)[/li]
+[li]Alexandre Hannud Abdo[/li]
+[li]Olivier Migeot[/li]
+[li]Chris Case[/li]
+[li]Klaus Weidenbach[/li]
+[li]Michael Johnston[/li]
+[li]olivierm[/li]
+[li]Vasudev Kamath[/li]
+[li]pixelroot[/li]
+[li]Max Weller[/li]
+[li]duthied[/li]
+[li]Martin Schmitt[/li]
+[li]Sebastian Egbers[/li]
+[li]Erkan Yilmaz[/li]
+[li]sasiflo[/li]
+[li]Stefan Parviainen[/li]
+[li]Haakon Meland Eriksen[/li]
+[li]Oliver Hartmann (23n)[/li]
+[li]Erik Lundin[/li]
+[li]habeascodice[/li]
+[li]sirius[/li]
+[li]Charles[/li]
+[li]Tony Baldwin[/li]
+[li]Hauke Zuehl[/li]
+[li]Keith Fernie[/li]
+[li]Anne Walk[/li]
+[li]toclimb[/li]
+[li]Daniel Frank[/li]
+[li]Matthew Exon[/li]
+[li]Michal Supler[/li]
+[li]Tobias Luther[/li]
+[li]U-SOUND\mike[/li]
+[li]mrjive[/li]
+[li]nostupidzone[/li]
+[li]tonnerkiller[/li]
+[li]Antoine G[/li]
+[li]Christian Drechsler[/li]
+[li]Ludovic Grossard[/li]
+[li]RedmatrixCanada[/li]
+[li]Stanislav Lechev [0xAF][/li]
+[li]aweiher[/li]
+[li]bufalo1973[/li]
+[li]dsp1986[/li]
+[li]felixgilles[/li]
+[li]ike[/li]
+[li]maase2[/li]
+[li]mycocham[/li]
+[li]ndurchx[/li]
+[li]pafcu[/li]
+[li]Simó Albert i Beltran[/li]
+[li]Manuel Reva[/li]
+[li]Manuel Jiménez Friaza[/li]
+[li]Gustav Wall aka "neue medienordnung plus"[/li]
+[/list]
diff --git a/doc/fr/toc.html b/doc/fr/toc.html
new file mode 100644
index 000000000..35edcd96d
--- /dev/null
+++ b/doc/fr/toc.html
@@ -0,0 +1,73 @@
+<div class="" id="accordion">
+ <div class="">
+ <div class="">
+ <h3 class="panel-title">
+ A propos
+ </h3>
+ </div>
+ <div id="about" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/fr/about/about">A propos</a>
+ <a class="nav-link" href="/help/fr/about/project">Le projet</a>
+ <a class="nav-link" href="/help/fr/about/about_hub">A propos de ce hub</a>
+ </div>
+ </div>
+ </div>
+ <div class="">
+ <div class="">
+ <h3 class="panel-title">
+ Membres
+ </h3>
+ </div>
+ <div id="members" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/member/member_guide">Guide</a>
+ <a class="nav-link" href="/help/member/bbcode">Référence du BBcode</a>
+ <a class="nav-link" href="/help/bugs">Signalement des bogues</a>
+ <a class="nav-link" href="/help/member/member_faq">FAQ</a>
+ </div>
+ </div>
+ </div>
+ <div class="panel">
+ <div class="">
+ <h3 class="panel-title">
+ Administrateurs
+ </h3>
+ </div>
+ <div id="administrators" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/admin/administrator_guide">Guide</a>
+ <a class="nav-link" href="/help/admin/hub_snapshots">Instantanés de Hub</a>
+ <a class="nav-link" href="/help/database">Tables de base de données</a>
+ </div>
+ </div>
+ </div>
+ <div class="panel">
+ <div class="">
+ <h3 class="panel-title">
+ Développeurs
+ </h3>
+ </div>
+ <div id="developers" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/developer/developer_guide">Guide</a>
+ <a class="nav-link" href="/help/developer/covenant">Code de conduite</a>
+ <a class="nav-link" href="/help/developer/zot_protocol">Zot Protocol</a>
+ <a class="nav-link" href="/help/developer/api_zot">Zot API</a>
+ <a class="nav-link" href="/help/hooklist">Hooks</a>
+ </div>
+ </div>
+ </div>
+ <div class="panel">
+ <div class="">
+ <h3 class="panel-title">
+ Tutoriels
+ </h3>
+ </div>
+ <div id="tutorials" class="doco-section">
+ <div class="flex-column">
+ <a class="nav-link" href="/help/tutorials/personal_channel">Canal personnel</a>
+ </div>
+ </div>
+ </div>
+</div>
diff --git a/doc/member/member_guide.bb b/doc/member/member_guide.bb
index 10ea4db57..e36e1c497 100644
--- a/doc/member/member_guide.bb
+++ b/doc/member/member_guide.bb
@@ -22,63 +22,41 @@ Click the link to read the site's [zrl=[baseurl]/help/TermsOfService]Terms of Se
Once you have provided the necessary details, click the 'Register' button. Some sites may require administrator approval before the registration is processed, and you will be alerted if this is the case. Please watch your email (including spam folders) for your registration approval.
-[b]Create a Channel[/b]
-Next, you will be presented with the &quot;Add a channel&quot; screen. Normally, your first channel will be one that represents you - so using your own name (or psuedonym) as the channel name is a good idea. The channel name should be thought of as a title, or brief description of your channel. The &quot;choose a short nickname&quot; box is similar to a &quot;username&quot; field. We will use whatever you enter here to create a channel address, which other people will use to connect to you, and you will use to log in to other sites. This looks like an email address, and takes the form nickname@siteyouregisteredat.xyz
-When your channel is created you will be taken straight to your settings page where you can define permissions, enable features, etc. All these things are covered in the appropriate section of the helpfiles.
-
-See Also
-[zrl=[baseurl]/help/accounts_profiles_channels_basics]The Basics about Identities within $Projectname[/zrl]
-[zrl=[baseurl]/help/accounts]Accounts[/zrl]
-[zrl=[baseurl]/help/profiles]Profiles[/zrl]
-[zrl=[baseurl]/help/permissions]Permissions[/zrl]
-[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
-
-[b]Profiles[/b]
-
-$Projectname has unlimited profiles. You may use different profiles to show different &quot;sides of yourself&quot; to different audiences. This is different to having different channels. Different channels allow for completely different sets of information. You may have a channel for yourself, a channel for your sports team, a channel for your website, or whatever else. A profile allows for finely graded &quot;sides&quot; of each channel. For example, your default public profile might say &quot;Hello, I'm Fred, and I like laughing&quot;. You may show your close friends a profile that adds &quot;and I also enjoy dwarf tossing&quot;.
-
-You always have a profile known as your &quot;default&quot; or &quot;public&quot; profile. This profile is always available to the general public and cannot be hidden (there may be rare exceptions on privately run or disconnected sites). You may, and probably should restrict the information you make available on your public profile.
-
-That said, if you want other friends to be able to find you, it helps to have the following information in your public profile...
-
-[ul][*]Your real name or at least a nickname everybody knows
-[*]A photo of you
-[*]Your location on the planet, at least to a country level.[/ul]
-
-In addition, if you'd like to meet people that share some general interests with you, please take a moment and add some &quot;Keywords&quot; to your profile. Such as &quot;music, linux, photography&quot; or whatever. You can add as many keywords as you like.
-
-To create an alternate profile, first go to [zrl=[baseurl]/settings/features]Settings &gt; Additional Features[/zrl] and enable &quot;Multiple Profiles&quot; there, otherwise you won't have the ability to use more than just your default profile.
+[h3]Channels[/h3]
-Then select &quot;Edit Profiles&quot; from the menu of your $Projectname site. You may edit an existing profile, change the profile photo, add things to a profile or create a new profile. You may also create a &quot;clone&quot; of an existing profile if you only wish to change a few items but don't wish to enter all the information again. To do that, click on the profile you want to clone and choose &quot;Clone this profile&quot; there.
+[h4]What are channels?[/h4]
-In the list of your profiles, you can also choose the contacts who can see a specific profile. Just click on &quot;Edit visibility&quot; next to the profile in question (only available for the profiles that are not your default profile) and then click on specific connections to add them to or remove them from the group of people who can see this profile.
+Channels are simply collections of content stored in one place. A channel can represent anything. It could represent you, a website, a forum, photo albums, anything. For most people, their first channel with be &quot;Me&quot;.
-Once a profile has been selected, when the person views your profile, they will see the private profile you have assigned. If they are not authenticated, they will see your public profile.
+The most important features for a channel that represents &quot;me&quot; are:
+[ul]
+[*]Secure and private &quot;spam free&quot; communications
-There is a setting which allows you to publish your profile to a directory and ensure that it can be found by others. You can change this setting on the &quot;Settings&quot; page.
+[*]Identity and &quot;single-signon&quot; across the entire network
-If you do not wish to be found be people unless you give them your channel address, you may leave your profile unpublished.
+[*]Privacy controls and permissions which extend to the entire network
-[b]Keywords and Directory Search[/b]
+[*]Directory services (like a phone book)
+[/ul]
+In short, a channel that represents yourself is &quot;me, on the internet&quot;.
-On the directory page, you may search for people with published profiles. Currently, only the name field and the keywords are searched. You may also include such keywords in your default profile - which may be used to search for common interests with other members. Keywords are used in the channel suggestion tool and although they aren't visible in the directory, they are shown if people visit your profile page.
-On your Connnections page and in the directory there is a link to &quot;Suggestions&quot; or &quot;Channel Suggestions&quot;, respectively. This will find channels who have matching and/or similar keywords. The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance.
-See Also
+[h3]Channel Permission Roles[/h3]
-[zrl=[baseurl]/help/AdvancedSearch]Advanced Searching[/zrl]
+When you create a new channel, you will be asked to select a permission role based on how you envision using this channel. The most popular permission roles are the Social Networking roles. You have many other choices, providing options which are analagous to Facebook Groups and Pages, collaborative spaces, newsfeeds, and more. These roles automatically configure several different system variables ranging from what permissions are granted to friends, to your default privacy settings and visibility choices. Advanced configurations are available to let you adjust each of these parameters to your needs, but we've found that most people prefer to "set it and forget it". Thew following describes some of the different roles which are currently available and how they impact your privacy and ability to interact.
-[h3]Account Permission Roles[/h3]
+[h4]Social[/h4]
+[b]Federation[/b]
-[h4]Social[/h4]
+The channel is a very permissive social networking profile which is compatible with other federated social networks. The permission policies are similar to Twitter and mostly compatible with Diaspora and Mastodon. Privacy is a lower priority than ease of access and connecting with others. Anybody in the network can comment on your public posts and send you private mail. By default posts and published items are public, but you can over-ride this when creating the item and restrict it. You are listed in the directory. Your online presence and connections are visible to others. This mode [i]may[/i] increase your exposure to undesired communications and spam. This role is not generally recommended [i]unless[/i] you need to interact regularly with members of other networks.
[b]Mostly Public[/b]
-The channel is a typical social networking profile. By default posts and published items are public, but one can over-ride this when creating the item and restrict it. You are listed in the directory. Your online presence and connections are visible to others.
+The channel is a typical social networking profile. By default posts and published items are public, but you can over-ride this when creating the item and restrict it. You are listed in the directory. Your online presence and connections are visible to others. Only your immediate connections can comment on your public posts and send you private mail. The permission policies are similar to Facebook.
[b]Restricted[/b]
@@ -94,16 +72,16 @@ By default all posts and published items are sent to your 'Friends' privacy grou
[b]Mostly Public[/b]
-The channel is a typical forum. By default posts and published items are public. Members may post by @mention+ or wall-to-wall post. Posting photos and other published items is blocked. The channel is visible in the directory. Members are added automatically.
+The channel is a typical forum. By default posts and published items are public. Members may post by !mention or wall-to-wall post. Posting photos and other published items is blocked. The channel is visible in the directory. Members are added automatically.
[b]Restricted[/b]
-By default all posts and published items are sent to the channel's 'Friends' privacy group. New friends are added to this privacy group. Members may post by @mention+ or wall-to-wall post, but posts and replies may also be seen by other receipients of the top-level post who are not members. The channel is visible in the directory. Members must be manually added by the forum owner.
+By default all posts and published items are sent to the channel's 'Friends' privacy group. New friends are added to this privacy group. Members may post by !mention or wall-to-wall post, but posts and replies may also be seen by other receipients of the top-level post who are not members. The channel is visible in the directory. Members must be manually added by the forum owner.
[b]Private[/b]
-By default all posts and published items are sent to your 'Friends' privacy group. New friends are added to this privacy group. The owner can over-ride this and create a public post or public item if desired. Members cannot. You are NOT listed in the directory. Only your connections can see your other connections. Your online presence is hidden. Members must be manually added by the forum owner. Posting by @mention+ is disabled. Posts can only be made via wall-to-wall posts, and sent to members of the 'Friends' privacy group. They are not publicly visible.
+By default all posts and published items are sent to your 'Friends' privacy group. New friends are added to this privacy group. The owner can over-ride this and create a public post or public item if desired. Members cannot. You are NOT listed in the directory. Only your connections can see your other connections. Your online presence is hidden. Members must be manually added by the forum owner. Posting by !mention is disabled. Posts can only be made via wall-to-wall posts, and sent to members of the 'Friends' privacy group. They are not publicly visible.
[h4]Feed[/h4]
@@ -136,33 +114,59 @@ A public forum which allows members to post files/photos/webpages.
Set all the privacy and permissions manually to suit your specific needs.
-[h3]Channels[/h3]
+[h3]Creating channels[/h3]
-[h4]What are channels?[/h4]
-Channels are simply collections of content stored in one place. A channel can represent anything. It could represent you, a website, a forum, photo albums, anything. For most people, their first channel with be &quot;Me&quot;.
+After creating your account, you will be presented with the &quot;Add a channel&quot; screen. Normally, your first channel will be one that represents you - so using your own name (or psuedonym) as the channel name is a good idea. The channel name should be thought of as a title, or brief description of your channel. The &quot;choose a short nickname&quot; box is similar to a &quot;username&quot; field. We will use whatever you enter here to create a channel address, which other people will use to connect to you, and you will use to log in to other sites. This looks like an email address, and takes the form nickname@siteyouregisteredat.xyz
-The most important features for a channel that represents &quot;me&quot; are:
-[ul]
-[*]Secure and private &quot;spam free&quot; communications
+See Also
+[zrl=[baseurl]/help/accounts_profiles_channels_basics]The Basics about Identities within $Projectname[/zrl]
+[zrl=[baseurl]/help/accounts]Accounts[/zrl]
+[zrl=[baseurl]/help/profiles]Profiles[/zrl]
+[zrl=[baseurl]/help/permissions]Permissions[/zrl]
+[zrl=[baseurl]/help/remove_account]Remove Account[/zrl]
-[*]Identity and &quot;single-signon&quot; across the entire network
-[*]Privacy controls and permissions which extend to the entire network
+You can create additonal channels from the &quot;Channel Manager&quot; link.
-[*]Directory services (like a phone book)
-[/ul]
-In short, a channel that represents yourself is &quot;me, on the internet&quot;.
+Once you have done this, your channel is ready to use. At [observer=1][observer.url][/observer][observer=0][baseurl]/channel/username[/observer] you will find your channel &quot;stream&quot;. This is where your recent activity will appear, in reverse chronological order. If you post in the box marked &quot;share&quot;, the entry will appear at the top of your stream. You will also find links to all the other communication areas for this channel here. The "hamburger" menu in most themes will provide you with navigation to other system components and apps. The Photos page contain photo albums, and the Events page contains events share by both yourself and your contacts.
+
+[b]Profiles[/b]
+
+$Projectname has unlimited profiles. You may use different profiles to show different &quot;sides of yourself&quot; to different audiences. This is different to having different channels. Different channels allow for completely different sets of information. You may have a channel for yourself, a channel for your sports team, a channel for your website, or whatever else. A profile allows for finely graded &quot;sides&quot; of each channel. For example, your default public profile might say &quot;Hello, I'm Fred, and I like laughing&quot;. You may show your close friends a profile that adds &quot;and I also enjoy dwarf tossing&quot;.
+
+You always have a profile known as your &quot;default&quot; or &quot;public&quot; profile. This profile is always available to the general public and cannot be hidden (there may be rare exceptions on privately run or disconnected sites). You may, and probably should restrict the information you make available on your public profile.
+
+That said, if you want other friends to be able to find you, it helps to have the following information in your public profile...
+
+[ul][*]Your real name or at least a nickname everybody knows
+[*]A photo of you
+[*]Your location on the planet, at least to a country level.[/ul]
+
+In addition, if you'd like to meet people that share some general interests with you, please take a moment and add some &quot;Keywords&quot; to your profile. Such as &quot;music, linux, photography&quot; or whatever. You can add as many keywords as you like.
+
+To create an alternate profile, first go to [zrl=[baseurl]/settings/features]Settings &gt; Additional Features[/zrl] and enable &quot;Multiple Profiles&quot; there, otherwise you won't have the ability to use more than just your default profile.
+
+Then select &quot;Edit Profiles&quot; from the menu of your $Projectname site. You may edit an existing profile, change the profile photo, add things to a profile or create a new profile. You may also create a &quot;clone&quot; of an existing profile if you only wish to change a few items but don't wish to enter all the information again. To do that, click on the profile you want to clone and choose &quot;Clone this profile&quot; there.
+
+In the list of your profiles, you can also choose the contacts who can see a specific profile. Just click on &quot;Edit visibility&quot; next to the profile in question (only available for the profiles that are not your default profile) and then click on specific connections to add them to or remove them from the group of people who can see this profile.
+
+Once a profile has been selected, when the person views your profile, they will see the private profile you have assigned. If they are not authenticated, they will see your public profile.
+
+There is a setting which allows you to publish your profile to a directory and ensure that it can be found by others. You can change this setting on the &quot;Settings&quot; page.
+
+If you do not wish to be found be people unless you give them your channel address, you may leave your profile unpublished.
+
+[b]Keywords and Directory Search[/b]
-[h4]Creating channels[/h4]
+On the directory page, you may search for people with published profiles. Currently, only the name field and the keywords are searched. You may also include such keywords in your default profile - which may be used to search for common interests with other members. Keywords are used in the channel suggestion tool and although they aren't visible in the directory, they are shown if people visit your profile page.
-You will be required to create your first channel as part of the sign up process. You can also create additonal channels from the &quot;Select channel&quot; link.
+On your Connnections page and in the directory there is a link to &quot;Suggestions&quot; or &quot;Channel Suggestions&quot;, respectively. This will find channels who have matching and/or similar keywords. The more keywords you provide, the more relevant the search results that are returned. These are sorted by relevance.
-You will be asked to provide a channel name, and a short nick name. For a channel that represents yourself, it is a good idea to use your real name here to ensure your friends can find you, and connect to your channel. The short nickname will be used to generate a &quot;webbie&quot;. This is a bit like a username, and will look like an email address, taking the form nickname@domain. You should put a little thought into what you want to use here. Imagine somebody asking for your webbie and having to tell them it is &quot;llamas-are_kewl.123&quot;. &quot;llamasarecool&quot; would be a much better choice.
+See Also
-Once you have created your channel, you will be taken to the settings page, where you can configure your channel, and set your default permissions.
+[zrl=[baseurl]/help/AdvancedSearch]Advanced Searching[/zrl]
-Once you have done this, your channel is ready to use. At [observer=1][observer.url][/observer][observer=0][baseurl]/channel/username[/observer] you will find your channel &quot;stream&quot;. This is where your recent activity will appear, in reverse chronological order. If you post in the box marked &quot;share&quot;, the entry will appear at the top of your stream. You will also find links to all the other communication areas for this channel here. The &quot;About&quot; tab contains your &quot;profile&quot;, the photos page contain photo albums, and the events page contains events share by both yourself and your contacts.
[h4]The grid, permissions and delegation[/h4]
@@ -195,7 +199,7 @@ The process for connecting to channels on other networks (such as GNU-Social, Ma
Some communications offer more than one protocol. If you wish to connect with somebody on Mastodon (for instance) they can use either the 'ostatus' or the 'activitypub' protocol for communication. Generally the 'activitypub' protocol will provide a better experience than 'ostatus', but $Projectname will often choose the first protocol it discovers and this may not be the one you want. You may connect with somebody over a specific protocol by prepending the protocol name in square brackets to their &quot;webbie&quot;. For example
[code]
-[activitypub]foobar@foo.bar
+[activitypub]https://foo.bar/foobar
[ostatus]foobar@foo.bar
[diaspora]foobar@foo.bar
[zot]foobar@foo.bar
@@ -360,12 +364,14 @@ Note: In previous releases, forums were delivered by using @forum+ with a plus s
[h4]Private Mentions[/h4]
If you wish to restrict a post to a single person or a number of people, you can do this by selecting channels or privacy groups from the privacy tool. You can also just tag them with a privacy tag. A privacy tag is a name preceded by the two characters @! - and in addition to tagging these channels, will also change the privacy permissions of the post to only include them. You can have more than one privacy tag, for instance @!bob and @!linda will send the post only to Bob and Linda. This mechanism over-rides the privacy selector.
+Forums may be mentioned in the same way. !!dogs will post to the dogs forum privately. The forum will redeliver the post to all the forum members, but your own followers will not see the post unless they are also members of the dogs forum.
+
You may also tag privacy groups which are "public". When you create or edit a privacy group, there is a checkbox to allow the group members to be seen by others. If this box is checked for a group and you tag (for instance) @!Friends - the post will be restricted to the Friends group. Check that the group is public before doing this - as there is no way to take back a post except to delete it. The group name will appear in the post and will alert members of that group that they are members of it.
[h4]Mentions and Comments[/h4]
The above mechanisms only apply to "top-level" posts you create. Mentioning a channel with any of the above mechanisms has no effect in comments, except that the mentioned channel may receive a notification if they were already included as a recipient in the conversation.
-[h4]Topical Tags[/h4]
+[h4]Topical Tags (also known as Hashtags)[/h4]
Topical tags are indicated by preceding the tag name with the # character. This will create a link in the post to a generalised site search for the term provided. For example, #[zrl=[baseurl]/search?tag=cars]cars[/zrl] will provide a search link for all posts mentioning 'cars' on your site. Topical tags are generally a minimum of three characters in length. Shorter search terms are not likely to yield any search results, although this depends on the database configuration.
Topical tags are also not linked if they are purely numeric, e.g. #1. If you wish to use a numeric hashtag, please add some descriptive text such as #2012-elections.
diff --git a/doc/toc.html b/doc/toc.html
index 1b7de3cb3..9c3d22ab8 100644
--- a/doc/toc.html
+++ b/doc/toc.html
@@ -2,14 +2,12 @@
<div class="">
<div class="">
<h3 class="panel-title">
- About
+ Tutorials
</h3>
</div>
- <div id="about" class="doco-section">
+ <div id="tutorials" class="doco-section">
<div class="flex-column">
- <a class="nav-link" href="/help/about/about">About</a>
- <a class="nav-link" href="/help/about/project">Project</a>
- <a class="nav-link" href="/help/about/about_hub">About this hub</a>
+ <a class="nav-link" href="/help/tutorials/personal_channel">Personal Channel</a>
</div>
</div>
</div>
@@ -23,7 +21,8 @@
<div class="flex-column">
<a class="nav-link" href="/help/member/member_guide">Guide</a>
<a class="nav-link" href="/help/member/bbcode">BBcode Reference</a>
- <a class="nav-link" href="/help/bugs">Reporting Bugs</a>
+ <a class="nav-link" href="/help/feature/additional/overview">Additional Features</a>
+ <a class="nav-link" href="/help/bugs">Reporting Bugs</a>
<a class="nav-link" href="/help/member/member_faq">FAQ</a>
</div>
</div>
@@ -61,12 +60,14 @@
<div class="panel">
<div class="">
<h3 class="panel-title">
- Tutorials
+ About
</h3>
</div>
- <div id="tutorials" class="doco-section">
+ <div id="about" class="doco-section">
<div class="flex-column">
- <a class="nav-link" href="/help/tutorials/personal_channel">Personal Channel</a>
+ <a class="nav-link" href="/help/about/about">About</a>
+ <a class="nav-link" href="/help/about/project">Project</a>
+ <a class="nav-link" href="/help/about/about_hub">About this hub</a>
</div>
</div>
</div>
diff --git a/doc/tutorials/personal_channel.html b/doc/tutorials/personal_channel.html
index 9dbc2aaec..bbf367571 100644
--- a/doc/tutorials/personal_channel.html
+++ b/doc/tutorials/personal_channel.html
@@ -13,8 +13,11 @@ to a personal channel in a natural way.</p>
<p>Enter your name and a nickname for the channel address, and select a "role".
Typically if this is a personal channel that represents you, select a <strong>Social</strong> role
with a level of default privacy that you are comfortable with. If you are unsure,
-select <strong>Social - Restricted</strong>.</p>
+select <strong>Social - Mostly public</strong> which allows easy interaction and provides privacy when you need it.
+Alternatively, <strong>Social - Restricted</strong> is very popular among privacy advocates, though it may require a bit more
+effort to meet people. Whichever setting you choose can be changed later if you decide you require more or less privacy than what is provided.</p>
+<!-- This section no longer applicable
<h3 id="Configure_your_channel_features">Configure your channel features</h3>
<p>When your new channel is created you are directed to the channel settings page.
@@ -26,17 +29,13 @@ enable various features. Remember to press the Submit button when you are done w
your selections.</p>
<p><img class="img-responsive" src="/help/tutorials/assets/3656a67dce40a1fc2515e9089217f2e136d4fcf8babe77bac00ecaad43ce.png" alt="image"><img class="img-responsive" src="/help/tutorials/assets/4aaaf1e124514c8d6999a5fe1d07be5af460cda4ba6cde9106ebc1564bb0.png" alt="image"><img class="img-responsive" src="/help/tutorials/assets/99a6efda4df631dfb2d2a849412044cc6a0f8aebeac289d28786f2649d24.png" alt="image"><img class="img-responsive" src="/help/tutorials/assets/e5d5674a34e848e2cce90a60fc416415271d9c51b81ad2a950fb0157222a.png" alt="image"></p>
+-->
<h3 id="Add_a_profile_photo">Add a profile photo</h3>
-<p>Navigate to your channel home by clicking the "Home" icon on the left side of the
-navbar, and then select the <strong>About</strong> tab to view your profile.</p>
+<p>When your new channel is created, you will be directed to a page determined by your site admin. By default this is the <strong>Edit Profile</strong> page.
-<p>Press the <strong>Edit</strong> button on the right to edit your profile information.</p>
-
-<p><img class="img-responsive" src="/help/tutorials/assets/2243e48ccea25bd907cce3dbd6fc9f7cd832a4c91a4c5dd294b7b219e7d8.png" alt="image"></p>
-
-<p>From the <strong>Profile Tools</strong> dropdown menu, select the <strong>Change profile photo</strong></p>
+<p>From the <strong>Profile Tools</strong> dropdown menu, select <strong>Change profile photo</strong> (or just click the profile photo).</p>
<p><img class="img-responsive" src="/help/tutorials/assets/31f42a02bdbae095e0329db6c3814e2975979aff12f873f43d81724c5e61.png" alt="image"></p>
@@ -44,7 +43,7 @@ navbar, and then select the <strong>About</strong> tab to view your profile.</p>
<p><img class="img-responsive" src="/help/tutorials/assets/458a842c2ea0fbe3b7869bb14dfffe1e5be098d1cd6e590bbead25b4cc05.png" alt="image"></p>
-<p>When you press <strong>Submit</strong> you will be redirected back to the profile editor.
+<p>When you press <strong>Done Editing</strong> you will be redirected back to the profile editor.
(You might need to clear your browser cache if you have trouble seeing the new photo.)</p>
<p><img class="img-responsive" src="/help/tutorials/assets/d080e92d797af5e863fa39b2084c16a8410de1f7a6559633435817444aef.png" alt="image"></p>
diff --git a/include/account.php b/include/account.php
index 40cf281c3..2b24364f4 100644
--- a/include/account.php
+++ b/include/account.php
@@ -23,6 +23,7 @@ function get_account_by_id($account_id) {
function check_account_email($email) {
+ $email = punify($email);
$result = array('error' => false, 'message' => '');
// Caution: empty email isn't counted as an error in this function.
@@ -139,7 +140,7 @@ function create_account($arr) {
$result = array('success' => false, 'email' => '', 'password' => '', 'message' => '');
$invite_code = ((x($arr,'invite_code')) ? notags(trim($arr['invite_code'])) : '');
- $email = ((x($arr,'email')) ? notags(trim($arr['email'])) : '');
+ $email = ((x($arr,'email')) ? notags(punify(trim($arr['email']))) : '');
$password = ((x($arr,'password')) ? trim($arr['password']) : '');
$password2 = ((x($arr,'password2')) ? trim($arr['password2']) : '');
$parent = ((x($arr,'parent')) ? intval($arr['parent']) : 0 );
diff --git a/include/api.php b/include/api.php
index c91590070..6a05a40a5 100644
--- a/include/api.php
+++ b/include/api.php
@@ -193,26 +193,18 @@ require_once('include/api_zot.php');
$redirect = trim($_REQUEST['redirect_uris'][0]);
else
$redirect = trim($_REQUEST['redirect_uris']);
+ $grant_types = trim($_REQUEST['grant_types']);
+ $scope = trim($_REQUEST['scope']);
$icon = trim($_REQUEST['logo_uri']);
- if($oauth2) {
- $r = q("INSERT INTO oauth_clients (client_id, client_secret, redirect_uri, grant_types, scope, user_id)
- VALUES ( '%s', '%s', '%s', null, null, null ) ",
- dbesc($key),
- dbesc($secret),
- dbesc($redirect)
- );
- }
- else {
- $r = q("INSERT INTO clients (client_id, pw, clname, redirect_uri, icon, uid)
- VALUES ('%s','%s','%s','%s','%s',%d)",
- dbesc($key),
- dbesc($secret),
- dbesc($name),
- dbesc($redirect),
- dbesc($icon),
- intval(0)
- );
- }
+ $r = q("INSERT INTO oauth_clients (client_id, client_secret, redirect_uri, grant_types, scope, user_id)
+ VALUES ( '%s', '%s', '%s', '%s', '%s', '%s' ) ",
+ dbesc($key),
+ dbesc($secret),
+ dbesc($redirect),
+ dbesc($grant_types),
+ dbesc($scope),
+ dbesc((string) api_user())
+ );
$ret['client_id'] = $key;
$ret['client_secret'] = $secret;
diff --git a/include/api_auth.php b/include/api_auth.php
index 5c0bcb317..e2f7ab155 100644
--- a/include/api_auth.php
+++ b/include/api_auth.php
@@ -14,25 +14,58 @@ function api_login(&$a){
// login with oauth
try {
- $oauth = new ZotOAuth1();
- $req = OAuth1Request::from_request();
+ // OAuth 2.0
+ $storage = new \Zotlabs\Identity\OAuth2Storage(\DBA::$dba->db);
+ $server = new \Zotlabs\Identity\OAuth2Server($storage);
+ $request = \OAuth2\Request::createFromGlobals();
+ if ($server->verifyResourceRequest($request)) {
+ $token = $server->getAccessTokenData($request);
+ $uid = $token['user_id'];
+ $r = q("SELECT * FROM channel WHERE channel_id = %d LIMIT 1",
+ intval($uid)
+ );
+ if (count($r)) {
+ $record = $r[0];
+ } else {
+ header('HTTP/1.0 401 Unauthorized');
+ echo('This api requires login');
+ killme();
+ }
+
+ $_SESSION['uid'] = $record['channel_id'];
+ $_SESSION['addr'] = $_SERVER['REMOTE_ADDR'];
+
+ $x = q("select * from account where account_id = %d LIMIT 1",
+ intval($record['channel_account_id'])
+ );
+ if ($x) {
+ require_once('include/security.php');
+ authenticate_success($x[0], null, true, false, true, true);
+ $_SESSION['allow_api'] = true;
+ call_hooks('logged_in', App::$user);
+ return;
+ }
+ } else {
+ // OAuth 1.0
+ $oauth = new ZotOAuth1();
+ $req = OAuth1Request::from_request();
- list($consumer,$token) = $oauth->verify_request($req);
+ list($consumer, $token) = $oauth->verify_request($req);
- if (!is_null($token)){
- $oauth->loginUser($token->uid);
+ if (!is_null($token)) {
+ $oauth->loginUser($token->uid);
- App::set_oauth_key($consumer->key);
+ App::set_oauth_key($consumer->key);
- call_hooks('logged_in', App::$user);
- return;
+ call_hooks('logged_in', App::$user);
+ return;
+ }
+ killme();
}
- killme();
- }
- catch(Exception $e) {
+ } catch (Exception $e) {
logger($e->getMessage());
}
-
+
// workarounds for HTTP-auth in CGI mode
foreach([ 'REDIRECT_REMOTE_USER', 'HTTP_AUTHORIZATION' ] as $head) {
diff --git a/include/attach.php b/include/attach.php
index 39269eb03..0d2b43b58 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -266,14 +266,12 @@ function attach_by_hash($hash, $observer_hash, $rev = 0) {
return $ret;
}
- if(! perm_is_allowed($r[0]['uid'], $observer_hash, 'view_storage')) {
+ if(! attach_can_view($r[0]['uid'], $observer_hash, $hash)) {
$ret['message'] = t('Permission denied.');
return $ret;
}
- $sql_extra = permissions_sql($r[0]['uid'],$observer_hash);
-
- // Now we'll see if we can access the attachment
+ // We've already checked for existence and permissions
$r = q("SELECT * FROM attach WHERE hash = '%s' and uid = %d $sql_extra LIMIT 1",
dbesc($hash),
@@ -281,20 +279,12 @@ function attach_by_hash($hash, $observer_hash, $rev = 0) {
);
if(! $r) {
- $ret['message'] = t('Permission denied.');
+ $ret['message'] = t('Unknown error.');
return $ret;
}
$r[0]['content'] = dbunescbin($r[0]['content']);
- if($r[0]['folder']) {
- $x = attach_can_view_folder($r[0]['uid'],$observer_hash,$r[0]['folder']);
- if(! $x) {
- $ret['message'] = t('Permission denied.');
- return $ret;
- }
- }
-
$ret['success'] = true;
$ret['data'] = $r[0];
@@ -302,6 +292,29 @@ function attach_by_hash($hash, $observer_hash, $rev = 0) {
}
+function attach_can_view($uid,$ob_hash,$resource) {
+
+ $sql_extra = permissions_sql($uid,$ob_hash);
+ $hash = $resource;
+
+ if(! perm_is_allowed($uid,$ob_hash,'view_storage')) {
+ return false;
+ }
+
+ $r = q("select folder from attach where hash = '%s' and uid = %d $sql_extra",
+ dbesc($hash),
+ intval($uid)
+ );
+ if(! $r) {
+ return false;
+ }
+
+ return attach_can_view_folder($uid,$ob_hash,$r[0]['folder']);
+
+}
+
+
+
function attach_can_view_folder($uid,$ob_hash,$folder_hash) {
$sql_extra = permissions_sql($uid,$ob_hash);
@@ -948,6 +961,16 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) {
return $ret;
}
+ // Update the folder timestamp @todo recurse to the storage root folder
+
+ if($folder_hash) {
+ q("UPDATE attach set edited = '%s' where hash = '%s' and uid = %d and is_dir = 1",
+ dbesc($edited),
+ dbesc($folder_hash),
+ intval($channel_id)
+ );
+ }
+
// Caution: This re-uses $sql_options set further above
$r = q("select * from attach where uid = %d and hash = '%s' $sql_options limit 1",
@@ -2276,33 +2299,22 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
if(! ($c && $resource_id))
return false;
+
+ // find the resource to be moved
+
$r = q("select * from attach where hash = '%s' and uid = %d limit 1",
dbesc($resource_id),
intval($channel_id)
);
- if(! $r)
+ if(! $r) {
+ logger('resource_id not found');
return false;
+ }
$oldstorepath = dbunescbin($r[0]['content']);
- if($r[0]['is_dir']) {
- $move_success = true;
- $x = q("select hash from attach where folder = '%s' and uid = %d",
- dbesc($r[0]['hash']),
- intval($channel_id)
- );
- if($x) {
- foreach($x as $xv) {
- $rs = attach_move($channel_id,$xv['hash'],$r[0]['hash']);
- if(! $rs) {
- $move_success = false;
- break;
- }
- }
- }
- return $move_success;
- }
+ // find the resource we are moving to
if($new_folder_hash) {
$n = q("select * from attach where hash = '%s' and uid = %d and is_dir = 1 limit 1",
@@ -2316,6 +2328,10 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
$newstorepath = dbunescbin($n[0]['content']) . '/' . $resource_id;
}
else {
+
+ // root directory
+
+ $newdirname = EMPTY_STR;
$newstorepath = 'store/' . $c['channel_address'] . '/' . $resource_id;
}
@@ -2325,56 +2341,61 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
$filename = $r[0]['filename'];
- $s = q("select filename, id, hash, filesize from attach where filename = '%s' and folder = '%s' ",
- dbesc($filename),
- dbesc($new_folder_hash)
- );
+ // don't do duplicate check unless our parent folder has changed.
- if($s) {
- $overwrite = get_pconfig($channel_id,'system','overwrite_dup_files');
- if($overwrite) {
- /// @fixme
- return;
- }
- else {
- if(strpos($filename,'.') !== false) {
- $basename = substr($filename,0,strrpos($filename,'.'));
- $ext = substr($filename,strrpos($filename,'.'));
+ if($r[0]['folder'] !== $new_folder_hash) {
+
+ $s = q("select filename, id, hash, filesize from attach where filename = '%s' and folder = '%s' ",
+ dbesc($filename),
+ dbesc($new_folder_hash)
+ );
+
+ if($s) {
+ $overwrite = get_pconfig($channel_id,'system','overwrite_dup_files');
+ if($overwrite) {
+ /// @fixme
+ return;
}
else {
- $basename = $filename;
- $ext = '';
- }
+ if(strpos($filename,'.') !== false) {
+ $basename = substr($filename,0,strrpos($filename,'.'));
+ $ext = substr($filename,strrpos($filename,'.'));
+ }
+ else {
+ $basename = $filename;
+ $ext = '';
+ }
- $matches = false;
- if(preg_match('/(.*?)\([0-9]{1,}\)$/',$basename,$matches))
- $basename = $matches[1];
+ $matches = false;
+ if(preg_match('/(.*?)\([0-9]{1,}\)$/',$basename,$matches))
+ $basename = $matches[1];
- $v = q("select filename from attach where ( filename = '%s' OR filename like '%s' ) and folder = '%s' ",
- dbesc($basename . $ext),
- dbesc($basename . '(%)' . $ext),
- dbesc($new_folder_hash)
- );
+ $v = q("select filename from attach where ( filename = '%s' OR filename like '%s' ) and folder = '%s' ",
+ dbesc($basename . $ext),
+ dbesc($basename . '(%)' . $ext),
+ dbesc($new_folder_hash)
+ );
- if($v) {
- $x = 1;
+ if($v) {
+ $x = 1;
- do {
- $found = false;
- foreach($v as $vv) {
- if($vv['filename'] === $basename . '(' . $x . ')' . $ext) {
- $found = true;
- break;
+ do {
+ $found = false;
+ foreach($v as $vv) {
+ if($vv['filename'] === $basename . '(' . $x . ')' . $ext) {
+ $found = true;
+ break;
+ }
}
+ if($found)
+ $x++;
}
- if($found)
- $x++;
+ while($found);
+ $filename = $basename . '(' . $x . ')' . $ext;
}
- while($found);
- $filename = $basename . '(' . $x . ')' . $ext;
+ else
+ $filename = $basename . $ext;
}
- else
- $filename = $basename . $ext;
}
}
@@ -2413,6 +2434,24 @@ function attach_move($channel_id, $resource_id, $new_folder_hash) {
);
}
+ if($r[0]['is_dir']) {
+ $move_success = true;
+ $x = q("select hash from attach where folder = '%s' and uid = %d",
+ dbesc($r[0]['hash']),
+ intval($channel_id)
+ );
+ if($x) {
+ foreach($x as $xv) {
+ $rs = attach_move($channel_id,$xv['hash'],$r[0]['hash']);
+ if(! $rs) {
+ $move_success = false;
+ break;
+ }
+ }
+ }
+ return $move_success;
+ }
+
return true;
}
diff --git a/include/auth.php b/include/auth.php
index 6f5e58361..c44eeb8fc 100644
--- a/include/auth.php
+++ b/include/auth.php
@@ -37,6 +37,7 @@ require_once('include/security.php');
function account_verify_password($login, $pass) {
$ret = [ 'account' => null, 'channel' => null, 'xchan' => null ];
+ $login = punify($login);
$email_verify = get_config('system', 'verify_email');
$register_policy = get_config('system', 'register_policy');
@@ -144,8 +145,17 @@ if((isset($_SESSION)) && (x($_SESSION, 'authenticated')) &&
// process logout request
$args = array('channel_id' => local_channel());
call_hooks('logging_out', $args);
- App::$session->nuke();
- info( t('Logged out.') . EOL);
+
+
+ if($_SESSION['delegate'] && $_SESSION['delegate_push']) {
+ $_SESSION = $_SESSION['delegate_push'];
+ info( t('Delegation session ended.') . EOL);
+ }
+ else {
+ App::$session->nuke();
+ info( t('Logged out.') . EOL);
+ }
+
goaway(z_root());
}
@@ -235,7 +245,7 @@ else {
$record = null;
$addon_auth = array(
- 'username' => trim($_POST['username']),
+ 'username' => punify(trim($_POST['username'])),
'password' => trim($_POST['password']),
'authenticated' => 0,
'user_record' => null
@@ -261,7 +271,7 @@ else {
$verify = account_verify_password($_POST['username'], $_POST['password']);
if($verify && array_key_exists('reason',$verify) && $verify['reason'] === 'unvalidated') {
notice( t('Email validation is incomplete. Please check your email.'));
- goaway(z_root() . '/email_validation/' . bin2hex(trim(escape_tags($_POST['username']))));
+ goaway(z_root() . '/email_validation/' . bin2hex(punify(trim(escape_tags($_POST['username'])))));
}
elseif($verify) {
$atoken = $verify['xchan'];
diff --git a/include/bbcode.php b/include/bbcode.php
index 03a46444b..345b5b025 100644
--- a/include/bbcode.php
+++ b/include/bbcode.php
@@ -85,12 +85,14 @@ function tryoembed($match) {
function nakedoembed($match) {
$url = ((count($match) == 2) ? $match[1] : $match[2]);
- $o = oembed_fetch_url($url);
+ $strip_url = strip_escaped_zids($url);
+
+ $o = oembed_fetch_url($strip_url);
if ($o['type'] == 'error')
- return $match[0];
+ return str_replace($url,$strip_url,$match[0]);
- return '[embed]' . $url . '[/embed]';
+ return '[embed]' . $strip_url . '[/embed]';
}
function tryzrlaudio($match) {
@@ -311,6 +313,19 @@ function bb_ShareAttributes($match) {
if ($matches[1] != "")
$posted = $matches[1];
+ $auth = "";
+ preg_match("/auth='(.*?)'/ism", $attributes, $matches);
+ if ($matches[1] != "") {
+ if($matches[1] === 'true')
+ $auth = true;
+ else
+ $auth = false;
+ }
+
+ if($auth === EMPTY_STR) {
+ $auth = is_matrix_url($profile);
+ }
+
// message_id is never used, do we still need it?
$message_id = "";
preg_match("/message_id='(.*?)'/ism", $attributes, $matches);
@@ -329,7 +344,7 @@ function bb_ShareAttributes($match) {
$headline = '<div class="shared_container"> <div class="shared_header">';
if ($avatar != "")
- $headline .= '<a href="' . zid($profile) . '" ><img src="' . $avatar . '" alt="' . $author . '" height="32" width="32" /></a>';
+ $headline .= '<a href="' . (($auth) ? zid($profile) : $profile) . '" ><img src="' . $avatar . '" alt="' . $author . '" height="32" width="32" /></a>';
if(strpos($link,'/cards/'))
$type = t('card');
@@ -341,8 +356,8 @@ function bb_ShareAttributes($match) {
// Bob Smith wrote the following post 2 hours ago
$fmt = sprintf( t('%1$s wrote the following %2$s %3$s'),
- '<a href="' . zid($profile) . '" >' . $author . '</a>',
- '<a href="' . zid($link) . '" >' . $type . '</a>',
+ '<a href="' . (($auth) ? zid($profile) : $profile) . '" >' . $author . '</a>',
+ '<a href="' . (($auth) ? zid($link) : $link) . '" >' . $type . '</a>',
$reldate
);
@@ -393,7 +408,7 @@ function bb_ShareAttributesSimple($match) {
if ($matches[1] != "")
$profile = $matches[1];
- $text = html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8') . ' <a href="' . $profile . '">' . $author . '</a>: div class="reshared-content">' . $match[2] . '</div>';
+ $text = html_entity_decode("&#x2672; ", ENT_QUOTES, 'UTF-8') . ' <a href="' . $profile . '">' . $author . '</a>: <div class="reshared-content">' . $match[2] . '</div>';
return($text);
}
@@ -668,6 +683,31 @@ function bb_fixtable_lf($match) {
}
+function bbtopoll($s) {
+
+ $pl = [];
+
+ $match = '';
+ if(! preg_match("/\[poll=(.*?)\](.*?)\[\/poll\]/ism",$s,$match)) {
+ return null;
+ }
+ $pl['poll_id'] = $match[1];
+ $pl['poll_question'] = $match[2];
+
+ $match = '';
+ if(preg_match_all("/\[poll\-answer=(.*?)\](.*?)\[\/poll\-answer\]/is",$s,$match,PREG_SET_ORDER)) {
+ $pl['answer'] = [];
+ foreach($match as $m) {
+ $ans = [ 'answer_id' => $m[1], 'answer_text' => $m[2] ];
+ $pl['answer'][] = $ans;
+ }
+ }
+
+ return $pl;
+
+}
+
+
function parseIdentityAwareHTML($Text) {
// Hide all [noparse] contained bbtags by spacefying them
@@ -742,10 +782,16 @@ function parseIdentityAwareHTML($Text) {
function bbcode($Text, $options = []) {
+ if(! is_array($options)) {
+ $options = [];
+ }
+
$preserve_nl = ((array_key_exists('preserve_nl',$options)) ? $options['preserve_nl'] : false);
$tryoembed = ((array_key_exists('tryoembed',$options)) ? $options['tryoembed'] : true);
$cache = ((array_key_exists('cache',$options)) ? $options['cache'] : false);
+ $newwin = ((array_key_exists('newwin',$options)) ? $options['newwin'] : true);
+ $target = (($newwin) ? ' target="_blank" ' : '');
call_hooks('bbcode_filter', $Text);
@@ -766,6 +812,11 @@ function bbcode($Text, $options = []) {
$ev = bbtoevent($Text);
+ // and the same with polls
+
+ $pl = bbtopoll($Text);
+
+
// process [observer] tags before we do anything else because we might
// be stripping away stuff that then doesn't need to be worked on anymore
@@ -891,7 +942,7 @@ function bbcode($Text, $options = []) {
if($tryoembed) {
$Text = preg_replace_callback("/([^\]\='".'"'."\/]|^|\#\^)(https?\:\/\/$urlchars+)/ismu", 'tryoembed', $Text);
}
- $Text = preg_replace("/([^\]\='".'"'."\/]|^|\#\^)(https?\:\/\/$urlchars+)/ismu", '$1<a href="$2" target="_blank" rel="nofollow noopener">$2</a>', $Text);
+ $Text = preg_replace("/([^\]\='".'"'."\/]|^|\#\^)(https?\:\/\/$urlchars+)/ismu", '$1<a href="$2" ' . $target . ' rel="nofollow noopener">$2</a>', $Text);
}
if (strpos($Text,'[/share]') !== false) {
@@ -903,16 +954,16 @@ function bbcode($Text, $options = []) {
}
}
if (strpos($Text,'[/url]') !== false) {
- $Text = preg_replace("/\#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
- $Text = preg_replace("/\#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" target="_blank" rel="nofollow noopener" >$2</a>', $Text);
- $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
- $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1" target="_blank" rel="nofollow noopener" >$2</a>', $Text);
+ $Text = preg_replace("/\#\^\[url\]([$URLSearchString]*)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
+ $Text = preg_replace("/\#\^\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<span class="bookmark-identifier">#^</span><a class="bookmark" href="$1" ' . $target . ' rel="nofollow noopener" >$2</a>', $Text);
+ $Text = preg_replace("/\[url\]([$URLSearchString]*)\[\/url\]/ism", '<a href="$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
+ $Text = preg_replace("/\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism", '<a href="$1" ' . $target . ' rel="nofollow noopener" >$2</a>', $Text);
}
if (strpos($Text,'[/zrl]') !== false) {
- $Text = preg_replace("/\#\^\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
- $Text = preg_replace("/\#\^\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" target="_blank" rel="nofollow noopener" >$2</a>', $Text);
- $Text = preg_replace("/\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<a class="zrl" href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
- $Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<a class="zrl" href="$1" target="_blank" rel="nofollow noopener" >$2</a>', $Text);
+ $Text = preg_replace("/\#\^\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
+ $Text = preg_replace("/\#\^\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<span class="bookmark-identifier">#^</span><a class="zrl bookmark" href="$1" ' . $target . ' rel="nofollow noopener" >$2</a>', $Text);
+ $Text = preg_replace("/\[zrl\]([$URLSearchString]*)\[\/zrl\]/ism", '<a class="zrl" href="$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
+ $Text = preg_replace("/\[zrl\=([$URLSearchString]*)\](.*?)\[\/zrl\]/ism", '<a class="zrl" href="$1" ' . $target . ' rel="nofollow noopener" >$2</a>', $Text);
}
if (get_account_techlevel() < 2)
@@ -920,8 +971,8 @@ function bbcode($Text, $options = []) {
// Perform MAIL Search
if (strpos($Text,'[/mail]') !== false) {
- $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
- $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1" target="_blank" rel="nofollow noopener" >$2</a>', $Text);
+ $Text = preg_replace("/\[mail\]([$MAILSearchString]*)\[\/mail\]/", '<a href="mailto:$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
+ $Text = preg_replace("/\[mail\=([$MAILSearchString]*)\](.*?)\[\/mail\]/", '<a href="mailto:$1" ' . $target . ' rel="nofollow noopener" >$2</a>', $Text);
}
@@ -952,11 +1003,11 @@ function bbcode($Text, $options = []) {
}
// Check for strike-through text
if (strpos($Text,'[s]') !== false) {
- $Text = preg_replace("(\[s\](.*?)\[\/s\])ism", '<strike>$1</strike>', $Text);
+ $Text = preg_replace("(\[s\](.*?)\[\/s\])ism", '<span style="text-decoration: line-through;">$1</span>', $Text);
}
// Check for over-line text
if (strpos($Text,'[o]') !== false) {
- $Text = preg_replace("(\[o\](.*?)\[\/o\])ism", '<span class="overline">$1</span>', $Text);
+ $Text = preg_replace("(\[o\](.*?)\[\/o\])ism", '<span style="text-decoration: overline;">$1</span>', $Text);
}
if (strpos($Text,'[sup]') !== false) {
$Text = preg_replace("(\[sup\](.*?)\[\/sup\])ism", '<sup>$1</sup>', $Text);
@@ -1243,28 +1294,18 @@ function bbcode($Text, $options = []) {
// if video couldn't be embedded, link to it instead.
if (strpos($Text,'[/video]') !== false) {
- $Text = preg_replace("/\[video\](.*?)\[\/video\]/", '<a href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
+ $Text = preg_replace("/\[video\](.*?)\[\/video\]/", '<a href="$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
}
if (strpos($Text,'[/audio]') !== false) {
- $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '<a href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
+ $Text = preg_replace("/\[audio\](.*?)\[\/audio\]/", '<a href="$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
}
if (strpos($Text,'[/zvideo]') !== false) {
- $Text = preg_replace("/\[zvideo\](.*?)\[\/zvideo\]/", '<a class="zid" href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
+ $Text = preg_replace("/\[zvideo\](.*?)\[\/zvideo\]/", '<a class="zid" href="$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
}
if (strpos($Text,'[/zaudio]') !== false) {
- $Text = preg_replace("/\[zaudio\](.*?)\[\/zaudio\]/", '<a class="zid" href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
- }
-
-// if ($tryoembed){
-// if (strpos($Text,'[/iframe]') !== false) {
-// $Text = preg_replace_callback("/\[iframe\](.*?)\[\/iframe\]/ism", 'bb_iframe', $Text);
-// }
-// } else {
-// if (strpos($Text,'[/iframe]') !== false) {
-// $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '<a href="$1" target="_blank" rel="nofollow noopener" >$1</a>', $Text);
-// }
-// }
+ $Text = preg_replace("/\[zaudio\](.*?)\[\/zaudio\]/", '<a class="zid" href="$1" ' . $target . ' rel="nofollow noopener" >$1</a>', $Text);
+ }
// oembed tag
$Text = oembed_bbcode2html($Text);
diff --git a/include/channel.php b/include/channel.php
index a754d3504..4bf490bf0 100644
--- a/include/channel.php
+++ b/include/channel.php
@@ -780,7 +780,7 @@ function identity_basic_export($channel_id, $sections = null) {
}
}
- if(in_array('channel',$sections)) {
+ if(in_array('channel',$sections) || in_array('profile',$sections)) {
$r = q("select * from profile where uid = %d",
intval($channel_id)
);
@@ -1234,7 +1234,7 @@ function profile_load($nickname, $profile = '') {
);
if($z) {
$p[0]['picdate'] = $z[0]['xchan_photo_date'];
- $p[0]['reddress'] = str_replace('@','&#x40;',$z[0]['xchan_addr']);
+ $p[0]['reddress'] = str_replace('@','&#x40;',unpunify($z[0]['xchan_addr']));
}
// fetch user tags if this isn't the default profile
@@ -1255,7 +1255,7 @@ function profile_load($nickname, $profile = '') {
App::$profile = $p[0];
App::$profile_uid = $p[0]['profile_uid'];
- App::$page['title'] = App::$profile['channel_name'] . " - " . channel_reddress(App::$profile);
+ App::$page['title'] = App::$profile['channel_name'] . " - " . unpunify(channel_reddress(App::$profile));
App::$profile['permission_to_view'] = $can_view_profile;
@@ -1573,14 +1573,25 @@ function advanced_profile() {
$profile['howlong'] = relative_date(App::$profile['howlong'], t('for %1$d %2$s'));
}
+ if(App::$profile['keywords']) {
+ $keywords = str_replace(',',' ', App::$profile['keywords']);
+ $keywords = str_replace(' ',' ', $keywords);
+ $karr = explode(' ', $keywords);
+ if($karr) {
+ for($cnt = 0; $cnt < count($karr); $cnt ++) {
+ $karr[$cnt] = '<a href="' . z_root() . '/directory/f=&keywords=' . trim($karr[$cnt]) . '">' . $karr[$cnt] . '</a>';
+ }
+ }
+ $profile['keywords'] = array( t('Tags:'), implode(' ', $karr));
+ }
+
+
if(App::$profile['sexual']) $profile['sexual'] = array( t('Sexual Preference:'), App::$profile['sexual'] );
if(App::$profile['homepage']) $profile['homepage'] = array( t('Homepage:'), linkify(App::$profile['homepage']) );
if(App::$profile['hometown']) $profile['hometown'] = array( t('Hometown:'), linkify(App::$profile['hometown']) );
- if(App::$profile['keywords']) $profile['keywords'] = array( t('Tags:'), App::$profile['keywords']);
-
if(App::$profile['politic']) $profile['politic'] = array( t('Political Views:'), App::$profile['politic']);
if(App::$profile['religion']) $profile['religion'] = array( t('Religion:'), App::$profile['religion']);
@@ -2552,7 +2563,7 @@ function channel_remove($channel_id, $local = true, $unset_session = false) {
q("DELETE FROM photo WHERE uid = %d", intval($channel_id));
q("DELETE FROM attach WHERE uid = %d", intval($channel_id));
q("DELETE FROM profile WHERE uid = %d", intval($channel_id));
- q("DELETE FROM src WHERE src_channel_id = %d", intval($channel_id));
+ q("DELETE FROM source WHERE src_channel_id = %d", intval($channel_id));
$r = q("select hash FROM attach WHERE uid = %d", intval($channel_id));
if($r) {
@@ -2714,7 +2725,7 @@ function anon_identity_init($reqvars) {
$hash = hash('md5',$anon_email);
- $x = q("select * from xchan where xchan_guid = '%s' and xchan_hash = '%s' and xchan_network = 'unknown' limit 1",
+ $x = q("select * from xchan where xchan_guid = '%s' and xchan_hash = '%s' and xchan_network = 'anon' limit 1",
dbesc($anon_email),
dbesc($hash)
);
@@ -2725,19 +2736,19 @@ function anon_identity_init($reqvars) {
'xchan_hash' => $hash,
'xchan_name' => $anon_name,
'xchan_url' => $anon_url,
- 'xchan_network' => 'unknown',
+ 'xchan_network' => 'anon',
'xchan_name_date' => datetime_convert()
]);
- $x = q("select * from xchan where xchan_guid = '%s' and xchan_hash = '%s' and xchan_network = 'unknown' limit 1",
+ $x = q("select * from xchan where xchan_guid = '%s' and xchan_hash = '%s' and xchan_network = 'anon' limit 1",
dbesc($anon_email),
dbesc($hash)
);
$photo = z_root() . '/' . get_default_profile_photo(300);
$photos = import_xchan_photo($photo,$hash);
- $r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_guid = '%s' and xchan_hash = '%s' and xchan_network = 'unknown' ",
+ $r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_guid = '%s' and xchan_hash = '%s' and xchan_network = 'anon' ",
dbesc(datetime_convert()),
dbesc($photos[0]),
dbesc($photos[1]),
diff --git a/include/connections.php b/include/connections.php
index e9d7daa2d..32baa94bd 100644
--- a/include/connections.php
+++ b/include/connections.php
@@ -100,7 +100,6 @@ function vcard_from_xchan($xchan, $observer = null, $mode = '') {
if(! $xchan)
return;
-// FIXME - show connect button to observer if appropriate
$connect = false;
if(local_channel()) {
$r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
@@ -111,6 +110,12 @@ function vcard_from_xchan($xchan, $observer = null, $mode = '') {
$connect = t('Connect');
}
+ // don't provide a connect button for transient or one-way identities
+
+ if(in_array($xchan['xchan_network'],['rss','anon','unknown']) || strpos($xchan['xchan_addr'],'guest:') === 0) {
+ $connect = false;
+ }
+
if(array_key_exists('channel_id',$xchan))
App::$profile_uid = $xchan['channel_id'];
@@ -122,7 +127,7 @@ function vcard_from_xchan($xchan, $observer = null, $mode = '') {
return replace_macros(get_markup_template('xchan_vcard.tpl'),array(
'$name' => $xchan['xchan_name'],
'$photo' => ((is_array(App::$profile) && array_key_exists('photo',App::$profile)) ? App::$profile['photo'] : $xchan['xchan_photo_l']),
- '$follow' => $xchan['xchan_addr'],
+ '$follow' => (($xchan['xchan_addr']) ? $xchan['xchan_addr'] : $xchan['xchan_url']),
'$link' => zid($xchan['xchan_url']),
'$connect' => $connect,
'$newwin' => (($mode === 'chanview') ? t('New window') : ''),
@@ -421,7 +426,10 @@ function random_profile() {
for($i = 0; $i < $retryrandom; $i++) {
- $r = q("select xchan_url, xchan_hash from xchan left join hubloc on hubloc_hash = xchan_hash where xchan_hidden = 0 and xchan_system = 0 and hubloc_connected > %s - interval %s order by $randfunc limit 1",
+ $r = q("select xchan_url, xchan_hash from xchan left join hubloc on hubloc_hash = xchan_hash where
+ xchan_hidden = 0 and xchan_system = 0 and
+ xchan_network = 'zot' and xchan_deleted = 0 and
+ hubloc_connected > %s - interval %s order by $randfunc limit 1",
db_utcnow(),
db_quoteinterval('30 day')
);
diff --git a/include/conversation.php b/include/conversation.php
index 64beb1b0e..97dd402fc 100644
--- a/include/conversation.php
+++ b/include/conversation.php
@@ -404,7 +404,7 @@ function count_descendants($item) {
* @return boolean
*/
function visible_activity($item) {
- $hidden_activities = [ ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_AGREE, ACTIVITY_DISAGREE, ACTIVITY_ABSTAIN, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE ];
+ $hidden_activities = [ ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_AGREE, ACTIVITY_DISAGREE, ACTIVITY_ABSTAIN, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE, ACTIVITY_POLLRESPONSE ];
if(intval($item['item_notshown']))
return false;
@@ -930,7 +930,7 @@ function thread_action_menu($item,$mode = '') {
$menu[] = [
'menu' => 'view_source',
'title' => t('View Source'),
- 'icon' => 'eye',
+ 'icon' => 'code',
'action' => 'viewsrc(' . $item['id'] . '); return false;',
'href' => '#'
];
@@ -1039,7 +1039,7 @@ function thread_author_menu($item, $mode = '') {
if($posts_link) {
$menu[] = [
'menu' => 'view_posts',
- 'title' => t('Activity/Posts'),
+ 'title' => t('Recent Activity'),
'icon' => 'fw',
'action' => '',
'href' => $posts_link
@@ -1301,7 +1301,9 @@ function status_editor($a, $x, $popup = false) {
$id_select = '';
$webpage = ((x($x,'webpage')) ? $x['webpage'] : '');
-
+
+ $feature_auto_save_draft = ((feature_enabled($x['profile_uid'], 'auto_save_draft')) ? "true" : "false");
+
$tpl = get_markup_template('jot-header.tpl');
App::$page['htmlhead'] .= replace_macros($tpl, array(
@@ -1323,6 +1325,7 @@ function status_editor($a, $x, $popup = false) {
'$modalerroralbum' => t('Error getting album'),
'$nocomment_enabled' => t('Comments enabled'),
'$nocomment_disabled' => t('Comments disabled'),
+ '$auto_save_draft' => $feature_auto_save_draft,
));
$tpl = get_markup_template('jot.tpl');
@@ -1607,7 +1610,7 @@ function prepare_page($item) {
// prepare_body calls unobscure() as a side effect. Do it here so that
// the template will get passed an unobscured title.
- $body = prepare_body($item, true);
+ $body = prepare_body($item, [ 'newwin' => false ]);
if(App::$page['template'] == 'none') {
$tpl = 'page_display_empty.tpl';
@@ -1721,7 +1724,7 @@ function network_tabs() {
if(feature_enabled(local_channel(),'star_posts')) {
$tabs[] = array(
'label' => t('Starred'),
- 'url'=>z_root() . '/' . $cmd . ((x($_GET,'cid')) ? '/?f=&cid=' . $_GET['cid'] : '') . '&star=1',
+ 'url'=>z_root() . '/' . $cmd . '/?f=' . ((x($_GET,'cid')) ? '&cid=' . $_GET['cid'] : '') . '&star=1',
'sel'=>$starred_active,
'title' => t('Favourite Posts'),
);
diff --git a/include/datetime.php b/include/datetime.php
index 766c90d16..3a07f1ccf 100644
--- a/include/datetime.php
+++ b/include/datetime.php
@@ -125,10 +125,16 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d
*/
function dob($dob) {
+ $y = substr($dob,0,4);
+ if((! ctype_digit($y)) || ($y < 1900))
+ $ignore_year = true;
+ else
+ $ignore_year = false;
+
if ($dob === '0000-00-00' || $dob === '')
$value = '';
else
- $value = (($year) ? datetime_convert('UTC','UTC',$dob,'Y-m-d') : datetime_convert('UTC','UTC',$dob,'m-d'));
+ $value = (($ignore_year) ? datetime_convert('UTC','UTC',$dob,'m-d') : datetime_convert('UTC','UTC',$dob,'Y-m-d'));
$o = replace_macros(get_markup_template("field_input.tpl"), [
'$field' => [ 'dob', t('Birthday'), $value, ((intval($value)) ? t('Age: ') . age($value,App::$user['timezone'],App::$user['timezone']) : ''), '', 'placeholder="' . t('YYYY-MM-DD or MM-DD') .'"' ]
diff --git a/include/dba/dba_driver.php b/include/dba/dba_driver.php
index b3298b673..9e9f24bb3 100755
--- a/include/dba/dba_driver.php
+++ b/include/dba/dba_driver.php
@@ -460,3 +460,28 @@ function db_logger($s,$level = LOGGER_NORMAL,$syslog = LOG_INFO) {
\DBA::$logging = false;
\DBA::$dba->debug = $saved;
}
+
+
+function db_columns($table) {
+
+ if($table) {
+ if(ACTIVE_DBTYPE === DBTYPE_POSTGRES) {
+ $r = q("SELECT column_name as field FROM information_schema.columns WHERE table_schema = 'public' AND table_name = '%s'",
+ dbesc($table)
+ );
+ if($r) {
+ return ids_to_array($r,'field');
+ }
+ }
+ else {
+ $r = q("show columns in %s",
+ dbesc($table)
+ );
+ if($r) {
+ return ids_to_array($r,'Field');
+ }
+ }
+ }
+
+ return [];
+} \ No newline at end of file
diff --git a/include/dba/dba_pdo.php b/include/dba/dba_pdo.php
index f24c5381a..5002f53e7 100755
--- a/include/dba/dba_pdo.php
+++ b/include/dba/dba_pdo.php
@@ -100,7 +100,9 @@ class dba_pdo extends dba_driver {
if($this->debug) {
db_logger('dba_pdo: DEBUG: ' . printable($sql) . ' returned ' . count($r) . ' results.', LOGGER_NORMAL, LOG_INFO);
- db_logger('dba_pdo: ' . printable(print_r($r,true)), LOGGER_NORMAL, LOG_INFO);
+ if(intval($this->debug) > 1) {
+ db_logger('dba_pdo: ' . printable(print_r($r,true)), LOGGER_NORMAL, LOG_INFO);
+ }
}
return (($this->error) ? false : $r);
diff --git a/include/event.php b/include/event.php
index 1077a3c64..84a16e8be 100644
--- a/include/event.php
+++ b/include/event.php
@@ -1322,3 +1322,25 @@ function translate_type($type) {
return [$type, t('Other') . ' (' . $type . ')'];
}
}
+
+
+function cal_store_lowlevel($arr) {
+
+ $store = [
+ 'cal_aid' => ((array_key_exists('cal_aid',$arr)) ? $arr['cal_aid'] : 0),
+ 'cal_uid' => ((array_key_exists('cal_uid',$arr)) ? $arr['cal_uid'] : 0),
+ 'cal_hash' => ((array_key_exists('cal_hash',$arr)) ? $arr['cal_hash'] : ''),
+ 'cal_name' => ((array_key_exists('cal_name',$arr)) ? $arr['cal_name'] : ''),
+ 'uri' => ((array_key_exists('uri',$arr)) ? $arr['uri'] : ''),
+ 'logname' => ((array_key_exists('logname',$arr)) ? $arr['logname'] : ''),
+ 'pass' => ((array_key_exists('pass',$arr)) ? $arr['pass'] : ''),
+ 'ctag' => ((array_key_exists('ctag',$arr)) ? $arr['ctag'] : ''),
+ 'synctoken' => ((array_key_exists('synctoken',$arr)) ? $arr['synctoken'] : ''),
+ 'cal_types' => ((array_key_exists('cal_types',$arr)) ? $arr['cal_types'] : ''),
+ ];
+
+ return create_table_from_array('cal', $store);
+
+}
+
+
diff --git a/include/features.php b/include/features.php
index 993266977..c865f6754 100644
--- a/include/features.php
+++ b/include/features.php
@@ -28,8 +28,9 @@ function get_feature_default($feature) {
$f = get_features(false);
foreach($f as $cat) {
foreach($cat as $feat) {
- if(is_array($feat) && $feat[0] === $feature)
+ if(is_array($feat) && $feat[0] === $feature) {
return $feat[3];
+ }
}
}
return false;
@@ -43,8 +44,9 @@ function feature_level($feature,$def) {
return $def;
}
-function get_features($filtered = true) {
+function get_features($filtered = true, $level = (-1)) {
+ $account = \App::get_account();
$arr = [
@@ -53,7 +55,14 @@ function get_features($filtered = true) {
t('General Features'),
-
+ [
+ 'start_menu',
+ t('New Member Links'),
+ t('Display new member quick links menu'),
+ (($account['account_created'] > datetime_convert('','','now - 60 days')) ? true : false),
+ get_config('feature_lock','start_menu'),
+ feature_level('start_menu',1),
+ ],
[
'advanced_profiles',
@@ -237,14 +246,23 @@ function get_features($filtered = true) {
[
'oauth_clients',
- t('OAuth Clients'),
- t('Manage authenticatication tokens for mobile and remote apps.'),
+ t('OAuth1 Clients'),
+ t('Manage OAuth1 authenticatication tokens for mobile and remote apps.'),
false,
get_config('feature_lock','oauth_clients'),
feature_level('oauth_clients',1),
],
[
+ 'oauth2_clients',
+ t('OAuth2 Clients'),
+ t('Manage OAuth2 authenticatication tokens for mobile and remote apps.'),
+ false,
+ get_config('feature_lock','oauth2_clients'),
+ feature_level('oauth2_clients',1),
+ ],
+
+ [
'access_tokens',
t('Access Tokens'),
t('Create access tokens so that non-members can access private content.'),
@@ -332,6 +350,15 @@ function get_features($filtered = true) {
feature_level('suppress_duplicates',1),
],
+ [
+ 'auto_save_draft',
+ t('Auto-save drafts of posts and comments'),
+ t('Automatically saves post and comment drafts in local browser storage to help prevent accidental loss of compositions'),
+ true,
+ get_config('feature_lock','auto_save_draft'),
+ feature_level('auto_save_draft',1),
+ ],
+
],
// Network Tools
@@ -481,7 +508,7 @@ function get_features($filtered = true) {
$arr = $x['features'];
- $techlevel = get_account_techlevel();
+ $techlevel = (($level >= 0) ? $level : get_account_techlevel());
// removed any locked features and remove the entire category if this makes it empty
diff --git a/include/feedutils.php b/include/feedutils.php
index 369193fce..023caaad6 100644
--- a/include/feedutils.php
+++ b/include/feedutils.php
@@ -668,6 +668,14 @@ function get_atom_elements($feed, $item) {
}
$termterm = notags(trim(unxmlify($term)));
+ // Mastodon auto generates an nsfw category tag for any 'content-warning' message.
+ // Most people use CW and use both summary/content as a spoiler and we honour that
+ // construct so the post will already be collapsed. The generated tag is almost
+ // always wrong and even if it isn't we would already be doing the right thing.
+
+ if($mastodon && $termterm === 'nsfw' && $summary && $res['body'])
+ continue;
+
if($termterm) {
$terms[] = array(
'otype' => TERM_OBJ_POST,
@@ -926,6 +934,7 @@ function feed_get_reshare(&$res,$item) {
"' profile='" . $share['profile'] .
"' avatar='" . $share['avatar'] .
"' link='" . $share['alternate'] .
+ "' auth='" . 'false' .
"' posted='" . $share['created'] .
"' message_id='" . $share['message_id'] . "']";
diff --git a/include/follow.php b/include/follow.php
index 0843802c5..d803afa3f 100644
--- a/include/follow.php
+++ b/include/follow.php
@@ -88,9 +88,18 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
// Premium channel, set confirm before callback to avoid recursion
- if(array_key_exists('connect_url',$j) && ($interactive) && (! $confirm))
- goaway(zid($j['connect_url']));
-
+ if(array_key_exists('connect_url',$j) && (! $confirm)) {
+ if($interactive) {
+ goaway(zid($j['connect_url']));
+ }
+ else {
+ $result['message'] = t('Premium channel - please visit:') . ' ' . zid($j['connect_url']);
+ logger('mod_follow: ' . $result['message']);
+ return $result;
+ }
+ }
+
+
// do we have an xchan and hubloc?
// If not, create them.
@@ -141,9 +150,9 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
// attempt network auto-discovery
- $d = discover_by_webbie($url,$protocol);
+ $wf = discover_by_webbie($url,$protocol);
- if((! $d) && ($is_http)) {
+ if((! $wf) && ($is_http)) {
// try RSS discovery
@@ -158,9 +167,9 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false)
}
}
- if($d) {
+ if($wf || $d) {
$r = q("select * from xchan where xchan_hash = '%s' or xchan_url = '%s' limit 1",
- dbesc($url),
+ dbesc(($wf) ? $wf : $url),
dbesc($url)
);
}
diff --git a/include/help.php b/include/help.php
index 0dc37e517..ce389b4db 100644
--- a/include/help.php
+++ b/include/help.php
@@ -306,7 +306,7 @@ function store_doc_file($s) {
require_once('include/html2plain.php');
- $item['body'] = html2plain(prepare_text(file_get_contents($s),$mimetype, true));
+ $item['body'] = html2plain(prepare_text(file_get_contents($s),$mimetype, [ 'cache' => true ]));
$item['mimetype'] = 'text/plain';
$item['plink'] = z_root() . '/' . str_replace('doc','help',$s);
diff --git a/include/html2bbcode.php b/include/html2bbcode.php
index 4166299db..1a03fbdaf 100644
--- a/include/html2bbcode.php
+++ b/include/html2bbcode.php
@@ -164,6 +164,7 @@ function html2bbcode($message)
node2bbcode($doc, 'b', array(), '[b]', '[/b]');
node2bbcode($doc, 'i', array(), '[i]', '[/i]');
node2bbcode($doc, 'u', array(), '[u]', '[/u]');
+ node2bbcode($doc, 's', array(), '[s]', '[/s]');
node2bbcode($doc, 'big', array(), "[size=large]", "[/size]");
node2bbcode($doc, 'small', array(), "[size=small]", "[/size]");
diff --git a/include/hubloc.php b/include/hubloc.php
index 0d1a2e560..33d5dcbb2 100644
--- a/include/hubloc.php
+++ b/include/hubloc.php
@@ -270,7 +270,8 @@ function locations_by_netid($netid) {
dbesc($netid)
);
- return array_elm_to_str($locs,'location',', ');
+
+ return array_elm_to_str($locs,'location',', ','trim_and_unpunify');
}
diff --git a/include/import.php b/include/import.php
index 47808544b..fb7826101 100644
--- a/include/import.php
+++ b/include/import.php
@@ -21,6 +21,11 @@ function import_channel($channel, $account_id, $seize) {
$channel['channel_removed'] = (($channel['channel_pageflags'] & 0x8000) ? 1 : 0);
}
+ if(intval($channel['channel_removed'])) {
+ notice( t('Unable to import a removed channel.') . EOL);
+ return false;
+ }
+
// Ignore the hash provided and re-calculate
$channel['channel_hash'] = make_xchan_hash($channel['channel_guid'],$channel['channel_guid_sig']);
@@ -94,7 +99,7 @@ function import_channel($channel, $account_id, $seize) {
}
if($clean) {
- create_table_from_array('channel',$clean);
+ channel_store_lowlevel($clean);
}
$r = q("select * from channel where channel_account_id = %d and channel_guid = '%s' limit 1",
@@ -176,7 +181,7 @@ function import_profiles($channel, $profiles) {
$profile['thumb'] = z_root() . '/photo/' . basename($profile['thumb']);
}
- create_table_from_array('profile', $profile);
+ profile_store_lowlevel($profile);
}
}
}
diff --git a/include/items.php b/include/items.php
index 7faa1b9ec..8bc4595b6 100755
--- a/include/items.php
+++ b/include/items.php
@@ -1977,23 +1977,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) {
*/
call_hooks('post_remote_end', $arr);
- // update the commented timestamp on the parent - unless this is potentially a clone of an older item
- // which we don't wish to bring to the surface. As the queue only holds deliveries for 3 days, it's
- // suspected of being an older cloned item if the creation time is older than that.
-
- if($arr['created'] > datetime_convert('','','now - 4 days')) {
- $z = q("select max(created) as commented from item where parent_mid = '%s' and uid = %d and item_delayed = 0 ",
- dbesc($arr['parent_mid']),
- intval($arr['uid'])
- );
-
- q("UPDATE item set commented = '%s', changed = '%s' WHERE id = %d",
- dbesc(($z) ? $z[0]['commented'] : (datetime_convert())),
- dbesc(datetime_convert()),
- intval($parent_id)
- );
- }
-
+ item_update_parent_commented($arr);
// If _creating_ a deleted item, don't propagate it further or send out notifications.
// We need to store the item details just in case the delete came in before the original post,
@@ -2324,6 +2308,36 @@ function item_store_update($arr, $allow_exec = false, $deliver = true) {
return $ret;
}
+function item_update_parent_commented($item) {
+
+
+ $update_parent = true;
+
+ // update the commented timestamp on the parent
+ // - unless this is a moderated comment or a potential clone of an older item
+ // which we don't wish to bring to the surface. As the queue only holds deliveries
+ // for 3 days, it's suspected of being an older cloned item if the creation time
+ //is older than that.
+
+ if(intval($item['item_blocked']) === ITEM_MODERATED)
+ $update_parent = false;
+
+ if($item['created'] < datetime_convert('','','now - 4 days'))
+ $update_parent = false;
+
+ if($update_parent) {
+ $z = q("select max(created) as commented from item where parent_mid = '%s' and uid = %d and item_delayed = 0 ",
+ dbesc($item['parent_mid']),
+ intval($item['uid'])
+ );
+
+ q("UPDATE item set commented = '%s', changed = '%s' WHERE id = %d",
+ dbesc(($z) ? $z[0]['commented'] : datetime_convert()),
+ dbesc(datetime_convert()),
+ intval($item['parent'])
+ );
+ }
+}
function send_status_notifications($post_id,$item) {
@@ -2518,43 +2532,7 @@ function tag_deliver($uid, $item_id) {
*/
if($item['obj_type'] === ACTIVITY_OBJ_TAGTERM) {
-
- // We received a community tag activity for a post.
- // See if we are the owner of the parent item and have given permission to tag our posts.
- // If so tag the parent post.
-
- logger('tag_deliver: community tag activity received');
-
- if(($item['owner_xchan'] === $u[0]['channel_hash']) && (! get_pconfig($u[0]['channel_id'],'system','blocktags'))) {
- logger('tag_deliver: community tag recipient: ' . $u[0]['channel_name']);
- $j_tgt = json_decode($item['target'],true);
- if($j_tgt && $j_tgt['id']) {
- $p = q("select * from item where mid = '%s' and uid = %d limit 1",
- dbesc($j_tgt['id']),
- intval($u[0]['channel_id'])
- );
- if($p) {
- $j_obj = json_decode($item['obj'],true);
- logger('tag_deliver: tag object: ' . print_r($j_obj,true), LOGGER_DATA);
- if($j_obj && $j_obj['id'] && $j_obj['title']) {
- if(is_array($j_obj['link']))
- $taglink = get_rel_link($j_obj['link'],'alternate');
-
- store_item_tag($u[0]['channel_id'],$p[0]['id'],TERM_OBJ_POST,TERM_COMMUNITYTAG,$j_obj['title'],$j_obj['id']);
- $x = q("update item set edited = '%s', received = '%s', changed = '%s' where mid = '%s' and uid = %d",
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc(datetime_convert()),
- dbesc($j_tgt['id']),
- intval($u[0]['channel_id'])
- );
- Zotlabs\Daemon\Master::Summon(array('Notifier','edit_post',$p[0]['id']));
- }
- }
- }
- }
- else
- logger('Tag permission denied for ' . $u[0]['channel_address']);
+ item_community_tag($u[0],$item);
}
/*
@@ -2749,6 +2727,61 @@ function tag_deliver($uid, $item_id) {
}
+
+function item_community_tag($channel,$item) {
+
+
+ // We received a community tag activity for a post.
+ // See if we are the owner of the parent item and have given permission to tag our posts.
+ // If so tag the parent post.
+
+ logger('tag_deliver: community tag activity received: channel: ' . $channel['channel_name']);
+
+ $tag_the_post = false;
+ $p = null;
+
+ $j_obj = json_decode($item['obj'],true);
+ $j_tgt = json_decode($item['target'],true);
+ if($j_tgt && $j_tgt['id']) {
+ $p = q("select * from item where mid = '%s' and uid = %d limit 1",
+ dbesc($j_tgt['id']),
+ intval($channel['channel_id'])
+ );
+ }
+ if($p) {
+ xchan_query($p);
+ $items = fetch_post_tags($p,true);
+ $pitem = $items[0];
+ $auth = get_iconfig($item,'system','communitytagauth');
+ if($auth) {
+ if(rsa_verify('tagauth.' . $item['mid'],base64url_decode($auth),$pitem['owner']['xchan_pubkey']) || rsa_verify('tagauth.' . $item['mid'],base64url_decode($auth),$pitem['author']['xchan_pubkey'])) {
+ logger('tag_deliver: tagging the post: ' . $channel['channel_name']);
+ $tag_the_post = true;
+ }
+ }
+ else {
+ if(($pitem['owner_xchan'] === $channel['channel_hash']) && (! intval(get_pconfig($channel['channel_id'],'system','blocktags')))) {
+ logger('tag_deliver: community tag recipient: ' . $channel['channel_name']);
+ $tag_the_post = true;
+ $sig = rsa_sign('tagauth.' . $item['mid'],$channel['channel_prvkey']);
+ logger('tag_deliver: setting iconfig for ' . $item['id']);
+ set_iconfig($item['id'],'system','communitytagauth',base64url_encode($sig),1);
+ }
+ }
+
+ if($tag_the_post) {
+ store_item_tag($channel['channel_id'],$pitem['id'],TERM_OBJ_POST,TERM_COMMUNITYTAG,$j_obj['title'],$j_obj['id']);
+ }
+ else {
+ logger('Tag permission denied for ' . $channel['channel_address']);
+ }
+ }
+
+}
+
+
+
+
/**
* @brief This function is called pre-deliver to see if a post matches the criteria to be tag delivered.
*
@@ -3471,11 +3504,14 @@ function item_getfeedattach($item) {
}
-function item_expire($uid,$days) {
+function item_expire($uid,$days,$comment_days = 7) {
if((! $uid) || ($days < 1))
return;
+ if(! $comment_days)
+ $comment_days = 7;
+
// $expire_network_only = save your own wall posts
// and just expire conversations started by others
// do not enable this until we can pass bulk delete messages through zot
@@ -3494,6 +3530,7 @@ function item_expire($uid,$days) {
$r = q("SELECT id FROM item
WHERE uid = %d
AND created < %s - INTERVAL %s
+ AND commented < %s - INTERVAL %s
AND item_retained = 0
AND item_thread_top = 1
AND resource_type = ''
@@ -3501,7 +3538,9 @@ function item_expire($uid,$days) {
$sql_extra $item_normal LIMIT $expire_limit ",
intval($uid),
db_utcnow(),
- db_quoteinterval(intval($days).' DAY')
+ db_quoteinterval(intval($days) . ' DAY'),
+ db_utcnow(),
+ db_quoteinterval(intval($comment_days) . ' DAY')
);
if(! $r)
diff --git a/include/nav.php b/include/nav.php
index df58ee96f..a443c58ff 100644
--- a/include/nav.php
+++ b/include/nav.php
@@ -176,7 +176,7 @@ EOT;
$nav['help'] = [$help_url, t('Help'), "", t('Help and documentation'), 'help_nav_btn', $context_help, $enable_context_help];
}
- $nav['search'] = ['search', t('Search'), "", t('Search site @name, #tag, ?docs, content')];
+ $nav['search'] = ['search', t('Search'), "", t('Search site @name, !forum, #tag, ?docs, content')];
/**
@@ -287,7 +287,7 @@ EOT;
'$is_owner' => $is_owner,
'$sel' => App::$nav_sel,
'$powered_by' => $powered_by,
- '$help' => t('@name, #tag, ?doc, content'),
+ '$help' => t('@name, !forum, #tag, ?doc, content'),
'$pleasewait' => t('Please wait...'),
'$nav_apps' => $nav_apps,
'$navbar_apps' => $navbar_apps,
diff --git a/include/network.php b/include/network.php
index a49e5920d..8b7490a8a 100644
--- a/include/network.php
+++ b/include/network.php
@@ -368,27 +368,6 @@ function z_post_url($url, $params, $redirects = 0, $opts = array()) {
return($ret);
}
-/**
- * @brief Like z_post_url() but with an application/json HTTP header.
- *
- * Add a "Content-Type: application/json" HTTP-header to $opts and call z_post_url().
- *
- * @see z_post_url()
- *
- * @param string $url
- * @param array $params
- * @param number $redirects default 0
- * @param array $opts (optional) curl options
- * @return z_post_url()
- */
-function z_post_url_json($url, $params, $redirects = 0, $opts = array()) {
-
- $opts = array_merge($opts, array('headers' => array('Content-Type: application/json')));
-
- return z_post_url($url,json_encode($params),$redirects,$opts);
-}
-
-
function json_return_and_die($x, $content_type = 'application/json') {
header("Content-type: $content_type");
echo json_encode($x);
@@ -669,6 +648,7 @@ function parse_xml_string($s, $strict = true) {
libxml_use_internal_errors(true);
+
$x = @simplexml_load_string($s2);
if($x === false) {
logger('libxml: parse: error: ' . $s2, LOGGER_DATA);
@@ -682,6 +662,16 @@ function parse_xml_string($s, $strict = true) {
return $x;
}
+
+function sxml2array ( $xmlObject, $out = array () )
+{
+ foreach ( (array) $xmlObject as $index => $node )
+ $out[$index] = ( is_object ( $node ) ) ? sxml2array ( $node ) : $node;
+
+ return $out;
+}
+
+
/**
* @brief Scales an external image.
*
@@ -779,7 +769,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false)
* @brief xml2array() will convert the given XML text to an array in the XML structure.
*
* Link: http://www.bin-co.com/php/scripts/xml2array/
- * Portions significantly re-written by mike@macgirvin.com for Friendica
+ * Portions significantly re-written by mike@macgirvin.com
* (namespaces, lowercase tags, get_attribute default changed, more...)
*
* Examples: $array = xml2array(file_get_contents('feed.xml'));
@@ -1160,8 +1150,6 @@ function discover_by_webbie($webbie, $protocol = '') {
$network = null;
-// $webbie = strtolower($webbie);
-
$x = webfinger_rfc7033($webbie, true);
if($x && array_key_exists('links',$x) && $x['links']) {
foreach($x['links'] as $link) {
@@ -1192,9 +1180,10 @@ function discover_by_webbie($webbie, $protocol = '') {
logger('webfinger: ' . print_r($x,true), LOGGER_DATA, LOG_INFO);
$arr = [
- 'address' => $webbie,
- 'protocol' => $protocol,
- 'success' => false,
+ 'address' => $webbie,
+ 'protocol' => $protocol,
+ 'success' => false,
+ 'xchan' => '',
'webfinger' => $x
];
/**
@@ -1207,7 +1196,7 @@ function discover_by_webbie($webbie, $protocol = '') {
*/
call_hooks('discover_channel_webfinger', $arr);
if($arr['success'])
- return true;
+ return $arr['xchan'];
return false;
}
@@ -1240,16 +1229,9 @@ function webfinger_rfc7033($webbie, $zot = false) {
}
logger('fetching url from resource: ' . $rhs . ':' . $webbie);
- // The default curl Accept: header is */*, which is incorrectly handled by Mastodon servers
- // and results in a 406 (Not Acceptable) response, and will also incorrectly produce an XML
- // document if you use 'application/jrd+json, */*'. We could set this to application/jrd+json,
- // but some test webfinger servers may not explicitly set the content type and they would be
- // blocked. The best compromise until Mastodon is fixed is to remove the Accept header which is
- // accomplished by setting it to nothing.
-
$counter = 0;
$s = z_fetch_url('https://' . $rhs . '/.well-known/webfinger?f=&resource=' . $resource . (($zot) ? '&zot=1' : ''),
- false, $counter, [ 'headers' => [ 'Accept:' ] ]);
+ false, $counter, [ 'headers' => [ 'Accept: application/jrd+json, */*' ] ]);
if($s['success']) {
$j = json_decode($s['body'], true);
@@ -1607,6 +1589,7 @@ function get_site_info() {
'register_policy' => $register_policy[get_config('system','register_policy')],
'invitation_only' => (bool) intval(get_config('system','invitation_only')),
'directory_mode' => $directory_mode[get_config('system','directory_mode')],
+ 'directory_server' => get_config('system','directory_server'),
'language' => get_config('system','language'),
'rss_connections' => (bool) intval(get_config('system','feed_contacts')),
'expiration' => $site_expire,
@@ -1844,7 +1827,8 @@ function z_mail($params) {
$messageHeader =
$params['additionalMailHeader'] .
"From: $fromName <{$params['fromEmail']}>\n" .
- "Reply-To: $fromName <{$params['replyTo']}>";
+ "Reply-To: $fromName <{$params['replyTo']}>\n" .
+ "Content-Type: text/plain; charset=UTF-8";
// send the message
$res = mail(
diff --git a/include/oembed.php b/include/oembed.php
index c2bf0a0ed..e677087a2 100755
--- a/include/oembed.php
+++ b/include/oembed.php
@@ -32,6 +32,7 @@ function oembed_action($embedurl) {
$action = 'block';
}
}
+
if(strpos($embedurl,'.well-known') !== false)
$action = 'block';
@@ -233,9 +234,11 @@ function oembed_fetch_url($embedurl){
if(preg_match('#\<iframe(.*?)src\=[\'\"](.*?)[\'\"]#',$j['html'],$matches)) {
$x = z_fetch_url($matches[2]);
- $j['html'] = $x['body'];
+ $orig = $j['html'] = $x['body'];
}
-
+
+ logger('frame src: ' . $j['html'], LOGGER_DATA);
+
$j['html'] = purify_html($j['html'],$allow_position);
if($j['html'] != $orig) {
logger('oembed html was purified. original: ' . $orig . ' purified: ' . $j['html'], LOGGER_DEBUG, LOG_INFO);
diff --git a/include/permissions.php b/include/permissions.php
index f97142fab..185d37b6a 100644
--- a/include/permissions.php
+++ b/include/permissions.php
@@ -46,7 +46,7 @@ function get_all_perms($uid, $observer_xchan, $internal_use = true) {
// First find out what the channel owner declared permissions to be.
- $channel_perm = \Zotlabs\Access\PermissionLimits::Get($uid,$perm_name);
+ $channel_perm = intval(\Zotlabs\Access\PermissionLimits::Get($uid,$perm_name));
if(! $channel_checked) {
$r = q("select * from channel where channel_id = %d limit 1",
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php
index 6af753195..2e2f5a758 100644
--- a/include/photo/photo_driver.php
+++ b/include/photo/photo_driver.php
@@ -75,6 +75,7 @@ abstract class photo_driver {
abstract function imageString();
+ abstract function clearexif();
public function __construct($data, $type='') {
$this->types = $this->supportedTypes();
@@ -273,7 +274,7 @@ abstract class photo_driver {
}
if($f) {
- return @exif_read_data($f);
+ return @exif_read_data($f,null,true);
}
return false;
@@ -289,12 +290,12 @@ abstract class photo_driver {
return false;
}
- $ort = $exif['IFD0']['Orientation'];
+ $ort = ((array_key_exists('IFD0',$exif)) ? $exif['IFD0']['Orientation'] : $exif['Orientation']);
if(! $ort) {
return false;
}
-
+
switch($ort) {
case 1: // nothing
break;
diff --git a/include/photo/photo_gd.php b/include/photo/photo_gd.php
index 24bdc204f..e98ac2827 100644
--- a/include/photo/photo_gd.php
+++ b/include/photo/photo_gd.php
@@ -35,6 +35,11 @@ class photo_gd extends photo_driver {
}
+ public function clearexif() {
+ return;
+ }
+
+
public function destroy() {
if($this->is_valid()) {
imagedestroy($this->image);
diff --git a/include/photo/photo_imagick.php b/include/photo/photo_imagick.php
index 32bb61342..89577e71e 100644
--- a/include/photo/photo_imagick.php
+++ b/include/photo/photo_imagick.php
@@ -96,6 +96,19 @@ class photo_imagick extends photo_driver {
}
+ public function clearexif() {
+
+ $profiles = $this->image->getImageProfiles("icc", true);
+
+ $this->image->stripImage();
+
+ if(!empty($profiles)) {
+ $this->image->profileImage("icc", $profiles['icc']);
+ }
+ }
+
+
+
public function getImage() {
if(!$this->is_valid())
return FALSE;
diff --git a/include/photos.php b/include/photos.php
index b1391f284..9ae0e6874 100644
--- a/include/photos.php
+++ b/include/photos.php
@@ -211,6 +211,10 @@ function photo_upload($channel, $observer, $args) {
$ph->orient($exif);
}
+
+ $ph->clearexif();
+
+
@unlink($src);
$max_length = get_config('system','max_image_length');
@@ -333,10 +337,17 @@ function photo_upload($channel, $observer, $args) {
$lat = $lon = null;
- if($exif && $exif['GPS']) {
- if(feature_enabled($channel_id,'photo_location')) {
- $lat = getGps($exif['GPS']['GPSLatitude'], $exif['GPS']['GPSLatitudeRef']);
- $lon = getGps($exif['GPS']['GPSLongitude'], $exif['GPS']['GPSLongitudeRef']);
+ if($exif && feature_enabled($channel_id,'photo_location')) {
+ $gps = null;
+ if(array_key_exists('GPS',$exif)) {
+ $gps = $exif['GPS'];
+ }
+ elseif(array_key_exists('GPSLatitude',$exif)) {
+ $gps = $exif;
+ }
+ if($gps) {
+ $lat = getGps($gps['GPSLatitude'], $gps['GPSLatitudeRef']);
+ $lon = getGps($gps['GPSLongitude'], $gps['GPSLongitudeRef']);
}
}
diff --git a/include/plugin.php b/include/plugin.php
index 62d443ab8..4545e1e8d 100755
--- a/include/plugin.php
+++ b/include/plugin.php
@@ -7,6 +7,27 @@
/**
+ * @brief Handle errors in plugin calls
+ *
+ * @param string $plugin name of the addon
+ * @param string $error_text text of error
+ * @param bool $uninstall uninstall plugin
+ */
+function handleerrors_plugin($plugin,$notice,$log,$uninstall=false){
+ logger("Addons: [" . $plugin . "] Error: ".$log, LOGGER_ERROR);
+ if ($notice != '') {
+ notice("[" . $plugin . "] Error: ".$notice, LOGGER_ERROR);
+ }
+
+ if ($uninstall) {
+ $idx = array_search($plugin, \App::$plugins);
+ unset(\App::$plugins[$idx]);
+ uninstall_plugin($plugin);
+ set_config("system","addon", implode(", ",\App::$plugins));
+ }
+}
+
+/**
* @brief Unloads an addon.
*
* @param string $plugin name of the addon
@@ -17,7 +38,11 @@ function unload_plugin($plugin){
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_unload')) {
$func = $plugin . '_unload';
- $func();
+ try {
+ $func();
+ } catch (Exception $e) {
+ handleerrors_plugin($plugin,"Unable to unload.",$e->getMessage());
+ }
}
}
@@ -38,7 +63,11 @@ function uninstall_plugin($plugin) {
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_uninstall')) {
$func = $plugin . '_uninstall';
- $func();
+ try {
+ $func();
+ } catch (Exception $e) {
+ handleerrors_plugin($plugin,"Unable to uninstall.","Unable to run _uninstall : ".$e->getMessage());
+ }
}
q("DELETE FROM addon WHERE aname = '%s' ",
@@ -64,7 +93,12 @@ function install_plugin($plugin) {
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_install')) {
$func = $plugin . '_install';
- $func();
+ try {
+ $func();
+ } catch (Exception $e) {
+ handleerrors_plugin($plugin,"Install failed.","Install failed : ".$e->getMessage());
+ return;
+ }
}
$plugin_admin = (function_exists($plugin . '_plugin_admin') ? 1 : 0);
@@ -94,7 +128,12 @@ function load_plugin($plugin) {
@include_once('addon/' . $plugin . '/' . $plugin . '.php');
if(function_exists($plugin . '_load')) {
$func = $plugin . '_load';
- $func();
+ try {
+ $func();
+ } catch (Exception $e) {
+ handleerrors_plugin($plugin,"Unable to load.","FAILED loading : ".$e->getMessage(),true);
+ return;
+ }
// we can add the following with the previous SQL
// once most site tables have been updated.
@@ -108,7 +147,7 @@ function load_plugin($plugin) {
return true;
}
else {
- logger("Addons: FAILED loading " . $plugin);
+ logger("Addons: FAILED loading " . $plugin . " (missing _load function)");
return false;
}
}
@@ -160,11 +199,21 @@ function reload_plugins() {
if(function_exists($pl . '_unload')) {
$func = $pl . '_unload';
- $func();
+ try {
+ $func();
+ } catch (Exception $e) {
+ handleerrors_plugin($plugin,"","UNLOAD FAILED (uninstalling) : ".$e->getMessage(),true);
+ continue;
+ }
}
if(function_exists($pl . '_load')) {
$func = $pl . '_load';
- $func();
+ try {
+ $func();
+ } catch (Exception $e) {
+ handleerrors_plugin($plugin,"","LOAD FAILED (uninstalling): ".$e->getMessage(),true);
+ continue;
+ }
}
q("UPDATE addon SET tstamp = %d WHERE id = %d",
intval($t),
diff --git a/include/queue_fn.php b/include/queue_fn.php
index 798ac36db..f05bac5b0 100644
--- a/include/queue_fn.php
+++ b/include/queue_fn.php
@@ -95,6 +95,12 @@ function queue_set_delivered($id,$channel = 0) {
function queue_insert($arr) {
+ // do not queue anything with no destination
+
+ if(! (array_key_exists('posturl',$arr) && trim($arr['posturl']))) {
+ return false;
+ }
+
$x = q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_priority,
outq_created, outq_updated, outq_scheduled, outq_notify, outq_msg )
values ( '%s', %d, %d, '%s', '%s', %d, %d, '%s', '%s', '%s', '%s', '%s' )",
diff --git a/include/security.php b/include/security.php
index 8b7e7d076..19278d5cb 100644
--- a/include/security.php
+++ b/include/security.php
@@ -266,6 +266,15 @@ function change_channel($change_channel) {
$_SESSION['mobile_theme'] = get_pconfig(local_channel(),'system', 'mobile_theme');
$_SESSION['cloud_tiles'] = get_pconfig(local_channel(),'system', 'cloud_tiles');
date_default_timezone_set($r[0]['channel_timezone']);
+
+ // Update the active timestamp at most once a day
+
+ if(substr($r[0]['channel_active'],0,10) !== substr(datetime_convert(),0,10)) {
+ $z = q("UPDATE channel SET channel_active = '%s' WHERE channel_id = %d",
+ dbesc(datetime_convert()),
+ intval($r[0]['channel_id'])
+ );
+ }
$ret = $r[0];
}
$x = q("select * from xchan where xchan_hash = '%s' limit 1",
diff --git a/include/statistics_fns.php b/include/statistics_fns.php
index d213485bf..98b0efd41 100644
--- a/include/statistics_fns.php
+++ b/include/statistics_fns.php
@@ -17,23 +17,10 @@ function update_channels_active_halfyear_stat() {
db_utcnow(), db_quoteinterval('6 MONTH')
);
if($r) {
- $s = '';
- foreach($r as $rr) {
- if($s)
- $s .= ',';
- $s .= intval($rr['channel_id']);
- }
- $x = q("select uid from item where uid in ( $s ) and item_wall = 1 and created > %s - INTERVAL %s group by uid",
- db_utcnow(), db_quoteinterval('6 MONTH')
- );
- if($x) {
- $channels_active_halfyear_stat = count($x);
- set_config('system','channels_active_halfyear_stat',$channels_active_halfyear_stat);
- } else {
- set_config('system','channels_active_halfyear_stat',0);
- }
- } else {
- set_config('system','channels_active_halfyear_stat',0);
+ set_config('system','channels_active_halfyear_stat',count($r));
+ }
+ else {
+ set_config('system','channels_active_halfyear_stat','0');
}
}
@@ -43,28 +30,15 @@ function update_channels_active_monthly_stat() {
db_utcnow(), db_quoteinterval('1 MONTH')
);
if($r) {
- $s = '';
- foreach($r as $rr) {
- if($s)
- $s .= ',';
- $s .= intval($rr['channel_id']);
- }
- $x = q("select uid from item where uid in ( $s ) and item_wall = 1 and created > %s - INTERVAL %s group by uid",
- db_utcnow(), db_quoteinterval('1 MONTH')
- );
- if($x) {
- $channels_active_monthly_stat = count($x);
- set_config('system','channels_active_monthly_stat',$channels_active_monthly_stat);
- } else {
- set_config('system','channels_active_monthly_stat',0);
- }
- } else {
- set_config('system','channels_active_monthly_stat',0);
+ set_config('system','channels_active_monthly_stat',count($r));
+ }
+ else {
+ set_config('system','channels_active_monthly_stat','0');
}
}
function update_local_posts_stat() {
- $posts = q("SELECT COUNT(*) AS local_posts FROM item WHERE item_wall = 1 ");
+ $posts = q("SELECT COUNT(*) AS local_posts FROM item WHERE item_wall = 1 and id = parent");
if (is_array($posts)) {
$local_posts_stat = intval($posts[0]["local_posts"]);
set_config('system','local_posts_stat',$local_posts_stat);
diff --git a/include/taxonomy.php b/include/taxonomy.php
index 4a3818096..46d95458c 100644
--- a/include/taxonomy.php
+++ b/include/taxonomy.php
@@ -174,8 +174,7 @@ function tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags = 0, $re
if(! is_array($authors))
$authors = array($authors);
- stringify_array_elms($authors,true);
- $sql_options .= " and author_xchan in (" . implode(',',$authors) . ") ";
+ $sql_options .= " and author_xchan in (" . stringify_array($authors,true) . ") ";
}
if($owner) {
@@ -212,8 +211,9 @@ function card_tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags = 0
if(! perm_is_allowed($uid,get_observer_hash(),'view_pages'))
return array();
+ $item_normal = " and item.item_hidden = 0 and item.item_deleted = 0 and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0
+ and item.item_blocked = 0 and item.obj_type != 'http://purl.org/zot/activity/file' ";
- $item_normal = item_normal();
$sql_options = item_permissions_sql($uid);
$count = intval($count);
@@ -226,8 +226,7 @@ function card_tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags = 0
if(! is_array($authors))
$authors = array($authors);
- stringify_array_elms($authors,true);
- $sql_options .= " and author_xchan in (" . implode(',',$authors) . ") ";
+ $sql_options .= " and author_xchan in (" . stringify_array($authors,true) . ") ";
}
if($owner) {
@@ -236,15 +235,16 @@ function card_tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags = 0
// Fetch tags
+
$r = q("select term, count(term) as total from term left join item on term.oid = item.id
where term.uid = %d and term.ttype = %d
- and otype = %d and item_type = %d and item_private = 0
+ and otype = %d and item_type = %d
$sql_options $item_normal
group by term order by total desc %s",
intval($uid),
intval($type),
intval(TERM_OBJ_POST),
- intval($restrict),
+ intval(ITEM_TYPE_CARD),
((intval($count)) ? "limit $count" : '')
);
@@ -263,7 +263,9 @@ function article_tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags
return array();
- $item_normal = item_normal();
+ $item_normal = " and item.item_hidden = 0 and item.item_deleted = 0 and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0
+ and item.item_blocked = 0 and item.obj_type != 'http://purl.org/zot/activity/file' ";
+
$sql_options = item_permissions_sql($uid);
$count = intval($count);
@@ -276,8 +278,7 @@ function article_tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags
if(! is_array($authors))
$authors = array($authors);
- stringify_array_elms($authors,true);
- $sql_options .= " and author_xchan in (" . implode(',',$authors) . ") ";
+ $sql_options .= " and author_xchan in (" . stringify_array($authors,true) . ") ";
}
if($owner) {
@@ -288,13 +289,13 @@ function article_tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags
// Fetch tags
$r = q("select term, count(term) as total from term left join item on term.oid = item.id
where term.uid = %d and term.ttype = %d
- and otype = %d and item_type = %d and item_private = 0
+ and otype = %d and item_type = %d
$sql_options $item_normal
group by term order by total desc %s",
intval($uid),
intval($type),
intval(TERM_OBJ_POST),
- intval($restrict),
+ intval(ITEM_TYPE_ARTICLE),
((intval($count)) ? "limit $count" : '')
);
@@ -308,6 +309,70 @@ function article_tagadelic($uid, $count = 0, $authors = '', $owner = '', $flags
+function pubtagblock($net,$site,$limit,$recent = 0,$safemode = 1, $type = TERM_HASHTAG) {
+ $o = '';
+
+ $r = pub_tagadelic($net,$site,$limit,$recent,$safemode,$type);
+
+ $link = z_root() . '/pubstream';
+
+ if($r) {
+ $o = '<div class="tagblock widget"><h3>' . (($recent) ? t('Trending') : t('Tags')) . '</h3><div class="tags" align="center">';
+ foreach($r as $rr) {
+ $o .= '<span class="tag'.$rr[2].'">#</span><a href="'.$link .'/' . '?f=&tag=' . urlencode($rr[0]).'" class="tag'.$rr[2].'">'.$rr[0].'</a> ' . "\r\n";
+ }
+ $o .= '</div></div>';
+ }
+
+ return $o;
+}
+
+function pub_tagadelic($net,$site,$limit,$recent,$safemode,$type) {
+
+
+ $item_normal = item_normal();
+ $count = intval($limit);
+
+ if($site) {
+ $uids = " and item.uid in ( " . stream_perms_api_uids(PERMS_PUBLIC) . " ) and item_private = 0 and item_wall = 1 ";
+ }
+ else {
+ $sys = get_sys_channel();
+ $uids = " and item.uid = " . intval($sys['channel_id']) . " ";
+ $sql_extra = " and item_private = 0 ";
+ }
+
+ if($recent)
+ $sql_extra .= " and item.created > '" . datetime_convert('UTC','UTC', 'now - ' . intval($recent) . ' days ') . "' ";
+
+
+ if($safemode) {
+ $unsafetags = get_config('system','unsafepubtags', [ 'boobs', 'bot', 'rss', 'girl','girls', 'nsfw', 'sexy', 'nude' ]);
+ if($unsafetags) {
+ $sql_extra .= " and not term.term in ( " . stringify_array($unsafetags,true) . ") ";
+ }
+ }
+
+
+ // Fetch tags
+ $r = q("select term, count(term) as total from term left join item on term.oid = item.id
+ where term.ttype = %d
+ and otype = %d and item_type = %d
+ $sql_extra $uids $item_normal
+ group by term order by total desc %s",
+ intval($type),
+ intval(TERM_OBJ_POST),
+ intval(ITEM_TYPE_POST),
+ ((intval($count)) ? "limit $count" : '')
+ );
+
+ if(! $r)
+ return array();
+
+ return Zotlabs\Text\Tagadelic::calc($r);
+
+}
+
function dir_tagadelic($count = 0, $hub = '') {
@@ -553,9 +618,8 @@ function get_things($profile_hash,$uid) {
if(! in_array($rr['obj_obj'],$profile_hashes))
$profile_hashes[] = $rr['obj_obj'];
}
- stringify_array_elms($profile_hashes);
if(! $profile_hash) {
- $exp = explode(',',$profile_hashes);
+ $exp = stringify_array($profile_hashes,true);
$p = q("select profile_guid as hash, profile_name as name from profile where profile_guid in ( $exp ) ");
if($p) {
foreach($r as $rr) {
diff --git a/include/text.php b/include/text.php
index 086d507af..af88c9f9c 100644
--- a/include/text.php
+++ b/include/text.php
@@ -531,7 +531,7 @@ function paginate(&$a) {
}
-function alt_pager(&$a, $i, $more = '', $less = '') {
+function alt_pager($i, $more = '', $less = '') {
if(! $more)
$more = t('older');
@@ -1588,7 +1588,7 @@ function generate_named_map($location) {
}
-function prepare_body(&$item,$attach = false) {
+function prepare_body(&$item,$attach = false,$opts = false) {
call_hooks('prepare_body_init', $item);
@@ -1616,7 +1616,7 @@ function prepare_body(&$item,$attach = false) {
$s .= prepare_binary($item);
}
else {
- $s .= prepare_text($item['body'],$item['mimetype'], false);
+ $s .= prepare_text($item['body'],$item['mimetype'], $opts);
}
$event = (($item['obj_type'] === ACTIVITY_OBJ_EVENT) ? format_event_obj($item['obj']) : false);
@@ -1698,7 +1698,8 @@ function prepare_binary($item) {
*
* @return string
*/
-function prepare_text($text, $content_type = 'text/bbcode', $cache = false) {
+function prepare_text($text, $content_type = 'text/bbcode', $opts = false) {
+
switch($content_type) {
case 'text/plain':
@@ -1742,7 +1743,7 @@ function prepare_text($text, $content_type = 'text/bbcode', $cache = false) {
if(stristr($text,'[nosmile]'))
$s = bbcode($text, [ 'cache' => $cache ]);
else
- $s = smilies(bbcode($text, [ 'cache' => $cache ]));
+ $s = smilies(bbcode($text, ((is_array($opts)) ? $opts : [] )));
$s = zidify_links($s);
@@ -2189,13 +2190,13 @@ function ids_to_querystr($arr,$idx = 'id',$quote = false) {
* @returns string
*/
-function array_elm_to_str($arr,$elm,$delim = ',') {
+function array_elm_to_str($arr,$elm,$delim = ',',$each = 'trim') {
$tmp = [];
if($arr && is_array($arr)) {
foreach($arr as $x) {
if(is_array($x) && array_key_exists($elm,$x)) {
- $z = trim($x[$elm]);
+ $z = $each($x[$elm]);
if(($z) && (! in_array($z,$tmp))) {
$tmp[] = $z;
}
@@ -2205,7 +2206,9 @@ function array_elm_to_str($arr,$elm,$delim = ',') {
return implode($delim,$tmp);
}
-
+function trim_and_unpunify($s) {
+ return unpunify(trim($s));
+}
/**
@@ -2248,7 +2251,7 @@ function xchan_query(&$items, $abook = true, $effective_uid = 0) {
$chans = q("select xchan.*,hubloc.* from xchan left join hubloc on hubloc_hash = xchan_hash
where xchan_hash in (" . protect_sprintf(implode(',', $arr)) . ") and hubloc_primary = 1");
}
- $xchans = q("select * from xchan where xchan_hash in (" . protect_sprintf(implode(',',$arr)) . ") and xchan_network in ('rss','unknown')");
+ $xchans = q("select * from xchan where xchan_hash in (" . protect_sprintf(implode(',',$arr)) . ") and xchan_network in ('rss','unknown', 'anon')");
if(! $chans)
$chans = $xchans;
else
@@ -2321,6 +2324,23 @@ function stringify_array_elms(&$arr, $escape = false) {
$arr[$x] = "'" . (($escape) ? dbesc($arr[$x]) : $arr[$x]) . "'";
}
+
+/**
+ * @brief Similar to stringify_array_elms but returns a string. If $escape is true, dbesc() each element before adding quotes.
+ *
+ * @param array $arr
+ * @param boolean $escape (optional) default false
+ * @return string
+ */
+function stringify_array($arr, $escape = false) {
+ if($arr) {
+ stringify_array_elms($arr);
+ return(implode(',',$arr));
+ }
+ return EMPTY_STR;
+}
+
+
/**
* @brief Indents a flat JSON string to make it more human-readable.
*
@@ -2384,7 +2404,7 @@ function jindent($json) {
*/
function design_tools() {
- $channel = App::get_channel();
+ $channel = channelx_by_n(App::$profile['profile_uid']);
$sys = false;
if(App::$is_sys && is_site_admin()) {
@@ -2574,6 +2594,9 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $d
// The @! tag will alter permissions
$exclusive = (((! $grouptag) && (strpos($tag,'!') === 1) && (! $diaspora)) ? true : false);
+ if(($grouptag) && (strpos($tag,'!!') === 0)) {
+ $exclusive = true;
+ }
//is it already replaced?
if(strpos($tag,'[zrl='))
@@ -2746,8 +2769,8 @@ function handle_tag($a, &$body, &$access_tag, &$str_tags, $profile_uid, $tag, $d
$profile = str_replace(',','%2c',$profile);
$url = $profile;
if($grouptag) {
- $newtag = '!' . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
- $body = str_replace('!' . $name, $newtag, $body);
+ $newtag = '!' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . '[/zrl]';
+ $body = str_replace('!' . (($exclusive) ? '!' : '') . $name, $newtag, $body);
}
else {
$newtag = '@' . (($exclusive) ? '!' : '') . '[zrl=' . $profile . ']' . $newname . (($forum && ! $trailing_plus_name) ? '+' : '') . '[/zrl]';
@@ -2797,6 +2820,7 @@ function linkify_tags($a, &$body, $uid, $diaspora = false) {
continue;
$success = handle_tag($a, $body, $access_tag, $str_tags, ($uid) ? $uid : App::$profile_uid , $tag, $diaspora);
+
$results[] = array('success' => $success, 'access_tag' => $access_tag);
if($success['replaced']) $tagged[] = $tag;
}
@@ -3243,6 +3267,7 @@ function cleanup_bbcode($body) {
* First protect any url inside certain bbcode tags so we don't double link it.
*/
+
$body = preg_replace_callback('/\[code(.*?)\[\/(code)\]/ism','\red_escape_codeblock',$body);
$body = preg_replace_callback('/\[url(.*?)\[\/(url)\]/ism','\red_escape_codeblock',$body);
$body = preg_replace_callback('/\[zrl(.*?)\[\/(zrl)\]/ism','\red_escape_codeblock',$body);
@@ -3272,7 +3297,6 @@ function cleanup_bbcode($body) {
$body = scale_external_images($body,false);
-
return $body;
}
@@ -3311,4 +3335,26 @@ function purify_filename($s) {
return $s;
}
+// callback for sorting the settings/featured entries.
+
+function featured_sort($a,$b) {
+ $s1 = substr($a,strpos($a,'id='),20);
+ $s2 = substr($b,strpos($b,'id='),20);
+ return(strcmp($s1,$s2));
+}
+
+
+function punify($s) {
+ require_once('vendor/simplepie/simplepie/idn/idna_convert.class.php');
+ $x = new idna_convert(['encoding' => 'utf8']);
+ return $x->encode($s);
+
+}
+
+function unpunify($s) {
+ require_once('vendor/simplepie/simplepie/idn/idna_convert.class.php');
+ $x = new idna_convert(['encoding' => 'utf8']);
+ return $x->decode($s);
+
+}
diff --git a/include/zid.php b/include/zid.php
index 67c1d9f6c..fe06948ba 100644
--- a/include/zid.php
+++ b/include/zid.php
@@ -53,14 +53,14 @@ function zid($s, $address = '') {
$mine = get_my_url();
$myaddr = (($address) ? $address : get_my_address());
- /**
- * @FIXME checking against our own channel url is no longer reliable. We may have a lot
- * of urls attached to our channel. Should probably match against our site, since we
- * will not need to remote authenticate on our own site anyway.
- */
+ $mine_parsed = parse_url($mine);
+ $s_parsed = parse_url($s);
+
+ if($mine_parsed['host'] === $s_parsed['host'])
+ $url_match = true;
- if ($mine && $myaddr && (! link_compare($mine,$s)))
- $zurl = $s . (($num_slashes >= 3) ? '' : '/') . $achar . 'zid=' . urlencode($myaddr);
+ if ($mine && $myaddr && (! $url_match))
+ $zurl = $s . (($num_slashes >= 3) ? '' : '/') . (($achar === '?') ? '?f=&' : '&') . 'zid=' . urlencode($myaddr);
else
$zurl = $s;
@@ -103,12 +103,17 @@ function strip_zats($s) {
return preg_replace('/[\?&]zat=(.*?)(&|$)/ism','$2',$s);
}
+function strip_escaped_zids($s) {
+ $x = preg_replace('/&amp\;zid=(.*?)(&|$)/ism','$2',$s);
+ return strip_query_param($x,'f');
+}
function clean_query_string($s = '') {
$x = strip_zids(($s) ? $s : \App::$query_string);
$x = strip_owt($x);
$x = strip_zats($x);
+ $x = strip_query_param($x,'sort');
return strip_query_param($x,'f');
}
@@ -346,4 +351,4 @@ function owt_init($token) {
info(sprintf( t('OpenWebAuth: %1$s welcomes %2$s'),\App::get_hostname(), $hubloc['xchan_name']));
logger('OpenWebAuth: auth success from ' . $hubloc['xchan_addr']);
-} \ No newline at end of file
+}
diff --git a/include/zot.php b/include/zot.php
index 87f449fb1..fd8247234 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -171,6 +171,8 @@ function zot_build_packet($channel, $type = 'notify', $recipients = null, $remot
* packet type: one of 'ping', 'pickup', 'purge', 'refresh', 'keychange', 'force_refresh', 'notify', 'auth_check'
* @param array $recipients
* envelope information, array ( 'guid' => string, 'guid_sig' => string ); empty for public posts
+ * @param string msg
+ * optional message
* @param string $remote_key
* optional public site key of target hub used to encrypt entire packet
* NOTE: remote_key and encrypted packets are required for 'auth_check' packets, optional for all others
@@ -299,7 +301,7 @@ function zot_zot($url, $data, $channel = null,$crypto = null) {
if($channel) {
$headers['X-Zot-Token'] = random_string();
$hash = \Zotlabs\Web\HTTPSig::generate_digest($data,false);
- $headers['X-Zot-Digest'] = 'SHA-256=' . $hash;
+ $headers['X-Zot-Digest'] = 'SHA-256=' . $hash;
$h = \Zotlabs\Web\HTTPSig::create_sig('',$headers,$channel['channel_prvkey'],'acct:' . $channel['channel_address'] . '@' . \App::get_hostname(),false,false,'sha512',(($crypto) ? $crypto['hubloc_sitekey'] : ''), (($crypto) ? zot_best_algorithm($crypto['site_crypto']) : ''));
}
@@ -393,7 +395,7 @@ function zot_refresh($them, $channel = null, $force = false) {
if($s && intval($s[0]['site_dead']) && (! $force)) {
logger('zot_refresh: site ' . $url . ' is marked dead and force flag is not set. Cancelling operation.');
return false;
- }
+ }
$token = random_string();
@@ -1159,7 +1161,7 @@ function zot_process_response($hub, $arr, $outq) {
* and also that the signer and the sender match.
* If that happens, we do not need to fetch/pickup the message - we have it already and it is verified.
* Translate it into the form we need for zot_import() and import it.
- *
+ *
* Otherwise send back a pickup message, using our message tracking ID ($arr['secret']), which we will sign with our site
* private key.
* The entire pickup message is encrypted with the remote site's public key.
@@ -2283,13 +2285,31 @@ function process_mail_delivery($sender, $arr, $deliveries) {
continue;
}
+
if(! perm_is_allowed($channel['channel_id'],$sender['hash'],'post_mail')) {
- logger("permission denied for mail delivery {$channel['channel_id']}");
- $DR->update('permission denied');
- $result[] = $DR->get();
- continue;
+
+ /*
+ * Always allow somebody to reply if you initiated the conversation. It's anti-social
+ * and a bit rude to send a private message to somebody and block their ability to respond.
+ * If you are being harrassed and want to put an end to it, delete the conversation.
+ */
+
+ $return = false;
+ if($arr['parent_mid']) {
+ $return = q("select * from mail where mid = '%s' and channel_id = %d limit 1",
+ dbesc($arr['parent_mid']),
+ intval($channel['channel_id'])
+ );
+ }
+ if(! $return) {
+ logger("permission denied for mail delivery {$channel['channel_id']}");
+ $DR->update('permission denied');
+ $result[] = $DR->get();
+ continue;
+ }
}
+
$r = q("select id from mail where mid = '%s' and channel_id = %d limit 1",
dbesc($arr['mid']),
intval($channel['channel_id'])
@@ -3188,6 +3208,9 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) {
$channel = $r[0];
+ // don't provide these in the export
+
+ unset($channel['channel_active']);
unset($channel['channel_password']);
unset($channel['channel_salt']);
@@ -3454,6 +3477,14 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
continue;
}
+ // if the clone is active, so are we
+
+ if(substr($channel['channel_active'],0,10) !== substr(datetime_convert(),0,10)) {
+ q("UPDATE channel set channel_active = '%s' where channel_id = %d",
+ dbesc(datetime_convert()),
+ intval($channel['channel_id'])
+ );
+ }
if(array_key_exists('config',$arr) && is_array($arr['config']) && count($arr['config'])) {
foreach($arr['config'] as $cat => $k) {
@@ -3780,25 +3811,27 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
foreach($x as $y) {
// for each group, loop on members list we just received
- foreach($members[$y['hash']] as $member) {
- $found = false;
- $z = q("select xchan from group_member where gid = %d and uid = %d and xchan = '%s' limit 1",
- intval($y['id']),
- intval($channel['channel_id']),
- dbesc($member)
- );
- if($z)
- $found = true;
-
- // if somebody is in the group that wasn't before - add them
-
- if(! $found) {
- q("INSERT INTO group_member (uid, gid, xchan)
- VALUES( %d, %d, '%s' ) ",
- intval($channel['channel_id']),
+ if(isset($y['hash']) && isset($members[$y['hash']])) {
+ foreach($members[$y['hash']] as $member) {
+ $found = false;
+ $z = q("select xchan from group_member where gid = %d and uid = %d and xchan = '%s' limit 1",
intval($y['id']),
+ intval($channel['channel_id']),
dbesc($member)
);
+ if($z)
+ $found = true;
+
+ // if somebody is in the group that wasn't before - add them
+
+ if(! $found) {
+ q("INSERT INTO group_member (uid, gid, xchan)
+ VALUES( %d, %d, '%s' ) ",
+ intval($channel['channel_id']),
+ intval($y['id']),
+ dbesc($member)
+ );
+ }
}
}
@@ -3835,11 +3868,14 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) {
intval($channel['channel_id'])
);
if(! $x) {
- q("insert into profile ( profile_guid, aid, uid ) values ('%s', %d, %d)",
- dbesc($profile['profile_guid']),
- intval($channel['channel_account_id']),
- intval($channel['channel_id'])
+ profile_store_lowlevel(
+ [
+ 'aid' => $channel['channel_account_id'],
+ 'uid' => $channel['channel_id'],
+ 'profile_guid' => $profile['profile_guid'],
+ ]
);
+
$x = q("select * from profile where profile_guid = '%s' and uid = %d limit 1",
dbesc($profile['profile_guid']),
intval($channel['channel_id'])
@@ -5093,7 +5129,7 @@ function zot_reply_refresh($sender, $recipients) {
function zot6_check_sig() {
$ret = [ 'success' => false ];
-
+
logger('server: ' . print_r($_SERVER,true), LOGGER_DATA);
if(array_key_exists('HTTP_SIGNATURE',$_SERVER)) {
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql
index 1195d5845..1e91619e3 100644
--- a/install/schema_mysql.sql
+++ b/install/schema_mysql.sql
@@ -259,6 +259,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
`channel_dirdate` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`channel_lastpost` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`channel_deleted` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
+ `channel_active` datetime NOT NULL DEFAULT '0001-01-01 00:00:00',
`channel_max_anon_mail` int(10) unsigned NOT NULL DEFAULT 10,
`channel_max_friend_req` int(10) unsigned NOT NULL DEFAULT 10,
`channel_expire_days` int(11) NOT NULL DEFAULT 0 ,
@@ -308,6 +309,7 @@ CREATE TABLE IF NOT EXISTS `channel` (
KEY `channel_hash` (`channel_hash`),
KEY `channel_expire_days` (`channel_expire_days`),
KEY `channel_deleted` (`channel_deleted`),
+ KEY `channel_active` (`channel_active`),
KEY `channel_dirdate` (`channel_dirdate`),
KEY `channel_removed` (`channel_removed`),
KEY `channel_system` (`channel_system`),
@@ -966,12 +968,14 @@ CREATE TABLE IF NOT EXISTS `poll` (
`poll_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`poll_guid` varchar(191) NOT NULL,
`poll_channel` int(10) unsigned NOT NULL DEFAULT 0 ,
+ `poll_author` varchar(191) NOT NULL,
`poll_desc` text NOT NULL,
`poll_flags` int(11) NOT NULL DEFAULT 0 ,
`poll_votes` int(11) NOT NULL DEFAULT 0 ,
PRIMARY KEY (`poll_id`),
KEY `poll_guid` (`poll_guid`),
KEY `poll_channel` (`poll_channel`),
+ KEY `poll_author` (`poll_author`),
KEY `poll_flags` (`poll_flags`),
KEY `poll_votes` (`poll_votes`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
@@ -983,10 +987,12 @@ CREATE TABLE IF NOT EXISTS `poll_elm` (
`pelm_desc` text NOT NULL,
`pelm_flags` int(11) NOT NULL DEFAULT 0 ,
`pelm_result` float NOT NULL DEFAULT 0 ,
+ `pelm_order` int(11) NOT NULL DEFAULT 0 ,
PRIMARY KEY (`pelm_id`),
KEY `pelm_guid` (`pelm_guid`),
KEY `pelm_poll` (`pelm_poll`),
- KEY `pelm_result` (`pelm_result`)
+ KEY `pelm_result` (`pelm_result`),
+ KEY `pelm_order` (`pelm_order`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE IF NOT EXISTS `profdef` (
@@ -1593,3 +1599,55 @@ CREATE TABLE if not exists calendarinstances (
UNIQUE(calendarid, principaluri),
UNIQUE(calendarid, share_href)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE if not exists oauth_clients (
+ client_id VARCHAR(80) NOT NULL,
+ client_secret VARCHAR(80),
+ redirect_uri VARCHAR(2000),
+ grant_types VARCHAR(80),
+ scope VARCHAR(4000),
+ user_id VARCHAR(80),
+ PRIMARY KEY (client_id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE if not exists oauth_access_tokens (
+ access_token VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ PRIMARY KEY (access_token)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE if not exists oauth_authorization_codes (
+ authorization_code VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ redirect_uri VARCHAR(2000),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ id_token VARCHAR(1000),
+ PRIMARY KEY (authorization_code)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE if not exists oauth_refresh_tokens (
+ refresh_token VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ PRIMARY KEY (refresh_token)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE if not exists oauth_scopes (
+ scope VARCHAR(191) NOT NULL,
+ is_default TINYINT(1),
+ PRIMARY KEY (scope)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE if not exists oauth_jwt (
+ client_id VARCHAR(80) NOT NULL,
+ subject VARCHAR(80),
+ public_key VARCHAR(2000) NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
index 2a0f08bde..3fba5b546 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -252,9 +252,10 @@ CREATE TABLE "channel" (
"channel_dirdate" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"channel_lastpost" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"channel_deleted" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
- "channel_max_anon_mail" bigint NOT NULL DEFAULT 10,
- "channel_max_friend_req" bigint NOT NULL DEFAULT 10,
- "channel_expire_days" bigint NOT NULL DEFAULT 0 ,
+ "channel_active" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
+ "channel_max_anon_mail" bigint NOT NULL DEFAULT '10',
+ "channel_max_friend_req" bigint NOT NULL DEFAULT '10',
+ "channel_expire_days" bigint NOT NULL DEFAULT '0',
"channel_passwd_reset" text NOT NULL DEFAULT '',
"channel_default_group" text NOT NULL DEFAULT '',
"channel_allow_cid" text ,
@@ -284,6 +285,7 @@ create index "channel_guid" on channel ("channel_guid");
create index "channel_hash" on channel ("channel_hash");
create index "channel_expire_days" on channel ("channel_expire_days");
create index "channel_deleted" on channel ("channel_deleted");
+create index "channel_active" on channel ("channel_active");
create index "channel_dirdate" on channel ("channel_dirdate");
create index "channel_lastpost" on channel ("channel_lastpost");
create index "channel_removed" on channel ("channel_removed");
@@ -944,6 +946,7 @@ CREATE TABLE "poll" (
"poll_id" serial NOT NULL,
"poll_guid" text NOT NULL,
"poll_channel" bigint NOT NULL DEFAULT '0',
+ "poll_author" text NOT NULL,
"poll_desc" text NOT NULL,
"poll_flags" bigint NOT NULL DEFAULT 0 ,
"poll_votes" bigint NOT NULL DEFAULT 0 ,
@@ -952,6 +955,7 @@ CREATE TABLE "poll" (
);
create index "poll_guid" on poll ("poll_guid");
create index "poll_channel" on poll ("poll_channel");
+create index "poll_author" on poll ("poll_author");
create index "poll_flags" on poll ("poll_flags");
create index "poll_votes" on poll ("poll_votes");
CREATE TABLE "poll_elm" (
@@ -959,13 +963,15 @@ CREATE TABLE "poll_elm" (
"pelm_guid" text NOT NULL,
"pelm_poll" bigint NOT NULL DEFAULT '0',
"pelm_desc" text NOT NULL,
- "pelm_flags" bigint NOT NULL DEFAULT 0 ,
- "pelm_result" float NOT NULL DEFAULT 0 ,
+ "pelm_flags" bigint NOT NULL DEFAULT '0',
+ "pelm_result" float NOT NULL DEFAULT '0',
+ "pelm_order" numeric(6) NOT NULL DEFAULT '0',
PRIMARY KEY ("pelm_id")
);
create index "pelm_guid" on poll_elm ("pelm_guid");
create index "pelm_poll" on poll_elm ("pelm_poll");
create index "pelm_result" on poll_elm ("pelm_result");
+create index "pelm_order" on poll_elm ("pelm_order");
CREATE TABLE "profdef" (
"id" serial NOT NULL,
@@ -1606,3 +1612,57 @@ ALTER TABLE ONLY users
CREATE UNIQUE INDEX users_ukey
ON users USING btree (username);
+
+
+CREATE TABLE oauth_clients (
+ client_id VARCHAR(80) NOT NULL,
+ client_secret VARCHAR(80),
+ redirect_uri VARCHAR(2000),
+ grant_types VARCHAR(80),
+ scope VARCHAR(4000),
+ user_id VARCHAR(80),
+ PRIMARY KEY (client_id)
+);
+
+CREATE TABLE oauth_access_tokens (
+ access_token VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ PRIMARY KEY (access_token)
+);
+
+CREATE TABLE oauth_authorization_codes (
+ authorization_code VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ redirect_uri VARCHAR(2000),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ id_token VARCHAR(1000),
+ PRIMARY KEY (authorization_code)
+);
+
+CREATE TABLE oauth_refresh_tokens (
+ refresh_token VARCHAR(40) NOT NULL,
+ client_id VARCHAR(80) NOT NULL,
+ user_id VARCHAR(255),
+ expires TIMESTAMP NOT NULL,
+ scope VARCHAR(4000),
+ PRIMARY KEY (refresh_token)
+);
+
+CREATE TABLE oauth_scopes (
+ scope VARCHAR(191) NOT NULL,
+ is_default SMALLINT,
+ PRIMARY KEY (scope)
+);
+
+CREATE TABLE oauth_jwt (
+ client_id VARCHAR(80) NOT NULL,
+ subject VARCHAR(80),
+ public_key VARCHAR(2000) NOT NULL
+);
+
+
diff --git a/library/IXR_Library.php b/library/IXR_Library.php
index c249c4845..cb27973bb 100644
--- a/library/IXR_Library.php
+++ b/library/IXR_Library.php
@@ -606,7 +606,7 @@ class IXR_Client
if (!$path) {
// Assume we have been given a URL instead
$bits = parse_url($server);
- $this->server = $bits['host'];
+ $this->server = $server;
$this->port = isset($bits['port']) ? $bits['port'] : 80;
$this->path = isset($bits['path']) ? $bits['path'] : '/';
@@ -634,64 +634,39 @@ class IXR_Client
$request = "POST {$this->path} HTTP/1.0$r";
// Merged from WP #8145 - allow custom headers
- $this->headers['Host'] = $this->server;
$this->headers['Content-Type'] = 'text/xml';
$this->headers['User-Agent'] = $this->useragent;
$this->headers['Content-Length']= $length;
+
+ $headers = [];
+
foreach( $this->headers as $header => $value ) {
- $request .= "{$header}: {$value}{$r}";
+ $headers[] .= "{$header}: {$value}";
}
- $request .= $r;
- $request .= $xml;
- // Now send the request
- if ($this->debug) {
- echo '<pre class="ixr_request">'.htmlspecialchars($request)."\n</pre>\n\n";
- }
+ //logger('server: ' . $this->server);
+ //logger('xml: ' . $xml);
+ //logger('headers: ' . print_r($headers,true));
- if ($this->timeout) {
- $fp = @fsockopen($this->server, $this->port, $errno, $errstr, $this->timeout);
- } else {
- $fp = @fsockopen($this->server, $this->port, $errno, $errstr);
- }
- if (!$fp) {
+
+ $retries = 0;
+ $result = z_post_url($this->server,$xml,$retries, [ 'headers' => $headers] );
+
+ // logger('result: ' . print_r($result,true));
+
+ if (! $result['success']) {
$this->error = new IXR_Error(-32300, 'transport error - could not open socket');
return false;
}
- fputs($fp, $request);
- $contents = '';
- $debugContents = '';
- $gotFirstLine = false;
- $gettingHeaders = true;
- while (!feof($fp)) {
- $line = fgets($fp, 4096);
- if (!$gotFirstLine) {
- // Check line for '200'
- if (strstr($line, '200') === false) {
- $this->error = new IXR_Error(-32300, 'transport error - HTTP status code was not 200');
- return false;
- }
- $gotFirstLine = true;
- }
- if (trim($line) == '') {
- $gettingHeaders = false;
- }
- if (!$gettingHeaders) {
- // merged from WP #12559 - remove trim
- $contents .= $line;
- }
- if ($this->debug) {
- $debugContents .= $line;
- }
- }
+
if ($this->debug) {
- echo '<pre class="ixr_response">'.htmlspecialchars($debugContents)."\n</pre>\n\n";
+ echo '<pre class="ixr_response">'.htmlspecialchars($result['header'] . "\n\n" . $result['body'])."\n</pre>\n\n";
}
// Now parse what we've got back
- $this->message = new IXR_Message($contents);
+ $this->message = new IXR_Message($result['body']);
if (!$this->message->parse()) {
// XML error
$this->error = new IXR_Error(-32700, 'parse error. not well formed');
diff --git a/library/bootstrap/css/bootstrap-grid.css b/library/bootstrap/css/bootstrap-grid.css
index 5a71a41aa..6798f23d2 100644
--- a/library/bootstrap/css/bootstrap-grid.css
+++ b/library/bootstrap/css/bootstrap-grid.css
@@ -1,5 +1,5 @@
/*!
- * Bootstrap Grid v4.0.0 (https://getbootstrap.com)
+ * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -60,7 +60,6 @@ html {
}
.row {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
@@ -96,14 +95,12 @@ html {
.col {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
@@ -111,175 +108,148 @@ html {
}
.col-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -332,162 +302,133 @@ html {
.col-sm {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-sm-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-sm-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-sm-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-sm-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-sm-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-sm-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-sm-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-sm-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-sm-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-sm-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-sm-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-sm-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-sm-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-sm-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-sm-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-sm-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-sm-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-sm-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-sm-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-sm-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-sm-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-sm-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-sm-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-sm-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-sm-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-sm-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-sm-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-sm-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -533,162 +474,133 @@ html {
.col-md {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-md-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-md-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-md-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-md-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-md-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-md-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-md-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-md-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-md-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-md-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-md-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-md-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-md-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-md-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-md-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-md-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-md-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-md-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-md-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-md-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-md-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-md-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-md-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-md-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-md-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-md-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-md-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-md-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -734,162 +646,133 @@ html {
.col-lg {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-lg-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-lg-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-lg-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-lg-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-lg-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-lg-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-lg-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-lg-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-lg-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-lg-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-lg-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-lg-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-lg-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-lg-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-lg-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-lg-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-lg-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-lg-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-lg-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-lg-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-lg-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-lg-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-lg-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-lg-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-lg-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-lg-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-lg-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-lg-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -935,162 +818,133 @@ html {
.col-xl {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-xl-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-xl-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-xl-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-xl-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-xl-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-xl-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-xl-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-xl-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-xl-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-xl-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-xl-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-xl-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-xl-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-xl-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-xl-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-xl-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-xl-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-xl-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-xl-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-xl-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-xl-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-xl-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-xl-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-xl-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-xl-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-xl-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-xl-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-xl-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -1161,13 +1015,11 @@ html {
}
.d-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -1195,12 +1047,10 @@ html {
display: table-cell !important;
}
.d-sm-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-sm-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -1229,12 +1079,10 @@ html {
display: table-cell !important;
}
.d-md-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-md-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -1263,12 +1111,10 @@ html {
display: table-cell !important;
}
.d-lg-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-lg-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -1297,12 +1143,10 @@ html {
display: table-cell !important;
}
.d-xl-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-xl-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -1331,41 +1175,31 @@ html {
display: table-cell !important;
}
.d-print-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-print-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
}
.flex-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -1385,26 +1219,47 @@ html {
flex-wrap: wrap-reverse !important;
}
+.flex-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+}
+
+.flex-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+}
+
+.flex-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+}
+
+.flex-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+}
+
+.flex-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+}
+
.justify-content-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -1415,31 +1270,26 @@ html {
}
.align-items-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -1506,26 +1356,18 @@ html {
@media (min-width: 576px) {
.flex-sm-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-sm-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-sm-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-sm-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -1541,23 +1383,39 @@ html {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important;
}
+ .flex-sm-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+ }
+ .flex-sm-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+ }
+ .flex-sm-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+ }
+ .flex-sm-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+ }
+ .flex-sm-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+ }
.justify-content-sm-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-sm-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-sm-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-sm-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -1566,27 +1424,22 @@ html {
justify-content: space-around !important;
}
.align-items-sm-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-sm-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-sm-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-sm-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-sm-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -1642,26 +1495,18 @@ html {
@media (min-width: 768px) {
.flex-md-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-md-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-md-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-md-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -1677,23 +1522,39 @@ html {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important;
}
+ .flex-md-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+ }
+ .flex-md-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+ }
+ .flex-md-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+ }
+ .flex-md-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+ }
+ .flex-md-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+ }
.justify-content-md-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-md-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-md-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-md-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -1702,27 +1563,22 @@ html {
justify-content: space-around !important;
}
.align-items-md-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-md-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-md-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-md-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-md-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -1778,26 +1634,18 @@ html {
@media (min-width: 992px) {
.flex-lg-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-lg-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-lg-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-lg-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -1813,23 +1661,39 @@ html {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important;
}
+ .flex-lg-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+ }
+ .flex-lg-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+ }
+ .flex-lg-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+ }
+ .flex-lg-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+ }
+ .flex-lg-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+ }
.justify-content-lg-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-lg-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-lg-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-lg-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -1838,27 +1702,22 @@ html {
justify-content: space-around !important;
}
.align-items-lg-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-lg-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-lg-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-lg-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-lg-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -1914,26 +1773,18 @@ html {
@media (min-width: 1200px) {
.flex-xl-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-xl-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-xl-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-xl-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -1949,23 +1800,39 @@ html {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important;
}
+ .flex-xl-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+ }
+ .flex-xl-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+ }
+ .flex-xl-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+ }
+ .flex-xl-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+ }
+ .flex-xl-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+ }
.justify-content-xl-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-xl-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-xl-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-xl-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -1974,27 +1841,22 @@ html {
justify-content: space-around !important;
}
.align-items-xl-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-xl-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-xl-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-xl-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-xl-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
diff --git a/library/bootstrap/css/bootstrap-grid.css.map b/library/bootstrap/css/bootstrap-grid.css.map
index c62a598a4..8922d4ce7 100644
--- a/library/bootstrap/css/bootstrap-grid.css.map
+++ b/library/bootstrap/css/bootstrap-grid.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@at-root {\n @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n","/*!\n * Bootstrap Grid v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $white !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap-grid.scss","bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/_variables.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","file":"bootstrap-grid.css","sourcesContent":["/*!\n * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@at-root {\n @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n","/*!\n * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: ($spacer / 2) !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default; // Define transform transition first if using multiple transitons (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap-grid.min.css b/library/bootstrap/css/bootstrap-grid.min.css
index ea073e98a..79c746da5 100644
--- a/library/bootstrap/css/bootstrap-grid.min.css
+++ b/library/bootstrap/css/bootstrap-grid.min.css
@@ -1,7 +1,7 @@
/*!
- * Bootstrap Grid v4.0.0 (https://getbootstrap.com)
+ * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}
+ */@-ms-viewport{width:device-width}html{box-sizing:border-box;-ms-overflow-style:scrollbar}*,::after,::before{box-sizing:inherit}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}
/*# sourceMappingURL=bootstrap-grid.min.css.map */ \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap-grid.min.css.map b/library/bootstrap/css/bootstrap-grid.min.css.map
index ed4a87d42..62f971ad3 100644
--- a/library/bootstrap/css/bootstrap-grid.min.css.map
+++ b/library/bootstrap/css/bootstrap-grid.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@at-root {\n @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n","/*!\n * Bootstrap Grid v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap-grid.scss","dist/css/bootstrap-grid.css","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/utilities/_display.scss","../../scss/utilities/_flex.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@at-root {\n @-ms-viewport { width: device-width; } // stylelint-disable-line at-rule-no-vendor-prefix\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n@import \"functions\";\n@import \"variables\";\n\n@import \"mixins/breakpoints\";\n@import \"mixins/grid-framework\";\n@import \"mixins/grid\";\n\n@import \"grid\";\n@import \"utilities/display\";\n@import \"utilities/flex\";\n","/*!\n * Bootstrap Grid v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n@-ms-viewport {\n width: device-width;\n}\n\nhtml {\n box-sizing: border-box;\n -ms-overflow-style: scrollbar;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: inherit;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n/*# sourceMappingURL=bootstrap-grid.css.map */","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap-reboot.css b/library/bootstrap/css/bootstrap-reboot.css
index 5a75a62b6..9f0f40ff1 100644
--- a/library/bootstrap/css/bootstrap-reboot.css
+++ b/library/bootstrap/css/bootstrap-reboot.css
@@ -1,5 +1,5 @@
/*!
- * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
+ * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -202,7 +202,7 @@ th {
label {
display: inline-block;
- margin-bottom: .5rem;
+ margin-bottom: 0.5rem;
}
button {
diff --git a/library/bootstrap/css/bootstrap-reboot.css.map b/library/bootstrap/css/bootstrap-reboot.css.map
index 3f1840671..ee4c73925 100644
--- a/library/bootstrap/css/bootstrap-reboot.css.map
+++ b/library/bootstrap/css/bootstrap-reboot.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","bootstrap-reboot.css","../../scss/_variables.scss","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $text-muted;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: .5rem;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $white !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable indentation\n\n// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS—an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","../../scss/_variables.scss","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"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","file":"bootstrap-reboot.css","sourcesContent":["/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba($black, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: ($spacer / 2) !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default; // Define transform transition first if using multiple transitons (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap-reboot.min.css b/library/bootstrap/css/bootstrap-reboot.min.css
index ced046825..eb965cc50 100644
--- a/library/bootstrap/css/bootstrap-reboot.min.css
+++ b/library/bootstrap/css/bootstrap-reboot.min.css
@@ -1,5 +1,5 @@
/*!
- * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
+ * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
diff --git a/library/bootstrap/css/bootstrap-reboot.min.css.map b/library/bootstrap/css/bootstrap-reboot.min.css.map
index 7212ab675..e5a961ac4 100644
--- a/library/bootstrap/css/bootstrap-reboot.min.css.map
+++ b/library/bootstrap/css/bootstrap-reboot.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAAA;;;;;;ACoBA,ECXA,QADA,SDeE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAKA,cACE,MAAA,aAMJ,QAAA,MAAA,OAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAWF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,kBACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KEvBF,sBFgCE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAQF,EACE,WAAA,EACA,cAAA,KChDF,0BD0DA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QCrDF,GDwDA,GCzDA,GD4DE,WAAA,EACA,cAAA,KAGF,MCxDA,MACA,MAFA,MD6DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAIF,EC1DA,OD4DE,YAAA,OAIF,MACE,UAAA,IAQF,IChEA,IDkEE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QG3LA,QH8LE,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGvMA,oCAAA,oCH0ME,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EClEJ,KACA,ID2EA,IC1EA,KD8EE,YAAA,SAAA,CAAA,UACA,UAAA,IAIF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAGA,mBAAA,UAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OACE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC9GF,ODiHA,MC/GA,SADA,OAEA,SDmHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OCjHA,MDmHE,SAAA,QAGF,OCjHA,ODmHE,eAAA,KC7GF,aACA,cDkHA,OCpHA,mBDwHE,mBAAA,OCjHF,gCACA,+BACA,gCDmHA,yBAIE,QAAA,EACA,aAAA,KClHF,qBDqHA,kBAEE,WAAA,WACA,QAAA,EAIF,iBCrHA,2BACA,kBAFA,iBD+HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDEA,yCDuIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDEA,yCD+IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UACA,OAAA,QAGF,SACE,QAAA,KErJF,SF2JE,QAAA","sourcesContent":["/*!\n * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $text-muted;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: .5rem;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","/*!\n * Bootstrap Reboot v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// stylelint-disable indentation\n\n// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS—an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap-reboot.scss","../../scss/_reboot.scss","dist/css/bootstrap-reboot.css","bootstrap-reboot.css","../../scss/mixins/_hover.scss"],"names":[],"mappings":"AAAA;;;;;;ACoBA,ECXA,QADA,SDeE,WAAA,WAGF,KACE,YAAA,WACA,YAAA,KACA,yBAAA,KACA,qBAAA,KACA,mBAAA,UACA,4BAAA,YAKA,cACE,MAAA,aAMJ,QAAA,MAAA,OAAA,WAAA,OAAA,OAAA,OAAA,OAAA,KAAA,IAAA,QACE,QAAA,MAWF,KACE,OAAA,EACA,YAAA,aAAA,CAAA,kBAAA,CAAA,UAAA,CAAA,MAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,gBAAA,CAAA,kBACA,UAAA,KACA,YAAA,IACA,YAAA,IACA,MAAA,QACA,WAAA,KACA,iBAAA,KEvBF,sBFgCE,QAAA,YASF,GACE,WAAA,YACA,OAAA,EACA,SAAA,QAaF,GAAA,GAAA,GAAA,GAAA,GAAA,GACE,WAAA,EACA,cAAA,MAQF,EACE,WAAA,EACA,cAAA,KChDF,0BD0DA,YAEE,gBAAA,UACA,wBAAA,UAAA,OAAA,gBAAA,UAAA,OACA,OAAA,KACA,cAAA,EAGF,QACE,cAAA,KACA,WAAA,OACA,YAAA,QCrDF,GDwDA,GCzDA,GD4DE,WAAA,EACA,cAAA,KAGF,MCxDA,MACA,MAFA,MD6DE,cAAA,EAGF,GACE,YAAA,IAGF,GACE,cAAA,MACA,YAAA,EAGF,WACE,OAAA,EAAA,EAAA,KAGF,IACE,WAAA,OAIF,EC1DA,OD4DE,YAAA,OAIF,MACE,UAAA,IAQF,IChEA,IDkEE,SAAA,SACA,UAAA,IACA,YAAA,EACA,eAAA,SAGF,IAAM,OAAA,OACN,IAAM,IAAA,MAON,EACE,MAAA,QACA,gBAAA,KACA,iBAAA,YACA,6BAAA,QG7LA,QHgME,MAAA,QACA,gBAAA,UAUJ,8BACE,MAAA,QACA,gBAAA,KGzMA,oCAAA,oCH4ME,MAAA,QACA,gBAAA,KANJ,oCAUI,QAAA,EClEJ,KACA,ID2EA,IC1EA,KD8EE,YAAA,SAAA,CAAA,UACA,UAAA,IAIF,IAEE,WAAA,EAEA,cAAA,KAEA,SAAA,KAGA,mBAAA,UAQF,OAEE,OAAA,EAAA,EAAA,KAQF,IACE,eAAA,OACA,aAAA,KAGF,eACE,SAAA,OAQF,MACE,gBAAA,SAGF,QACE,YAAA,OACA,eAAA,OACA,MAAA,QACA,WAAA,KACA,aAAA,OAGF,GAGE,WAAA,QAQF,MAEE,QAAA,aACA,cAAA,MAMF,OACE,cAAA,EAOF,aACE,QAAA,IAAA,OACA,QAAA,IAAA,KAAA,yBC9GF,ODiHA,MC/GA,SADA,OAEA,SDmHE,OAAA,EACA,YAAA,QACA,UAAA,QACA,YAAA,QAGF,OCjHA,MDmHE,SAAA,QAGF,OCjHA,ODmHE,eAAA,KC7GF,aACA,cDkHA,OCpHA,mBDwHE,mBAAA,OCjHF,gCACA,+BACA,gCDmHA,yBAIE,QAAA,EACA,aAAA,KClHF,qBDqHA,kBAEE,WAAA,WACA,QAAA,EAIF,iBCrHA,2BACA,kBAFA,iBD+HE,mBAAA,QAGF,SACE,SAAA,KAEA,OAAA,SAGF,SAME,UAAA,EAEA,QAAA,EACA,OAAA,EACA,OAAA,EAKF,OACE,QAAA,MACA,MAAA,KACA,UAAA,KACA,QAAA,EACA,cAAA,MACA,UAAA,OACA,YAAA,QACA,MAAA,QACA,YAAA,OAGF,SACE,eAAA,SEnIF,yCDEA,yCDuIE,OAAA,KEpIF,cF4IE,eAAA,KACA,mBAAA,KExIF,4CDEA,yCD+IE,mBAAA,KAQF,6BACE,KAAA,QACA,mBAAA,OAOF,OACE,QAAA,aAGF,QACE,QAAA,UACA,OAAA,QAGF,SACE,QAAA,KErJF,SF2JE,QAAA","sourcesContent":["/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"reboot\";\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba($black, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n/*# sourceMappingURL=bootstrap-reboot.css.map */","/*!\n * Bootstrap Reboot v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)\n */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\n/*# sourceMappingURL=bootstrap-reboot.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap.css b/library/bootstrap/css/bootstrap.css
index aa497136c..7220f3c05 100644
--- a/library/bootstrap/css/bootstrap.css
+++ b/library/bootstrap/css/bootstrap.css
@@ -1,5 +1,5 @@
/*!
- * Bootstrap v4.0.0 (https://getbootstrap.com)
+ * Bootstrap v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
@@ -232,7 +232,7 @@ th {
label {
display: inline-block;
- margin-bottom: .5rem;
+ margin-bottom: 0.5rem;
}
button {
@@ -594,7 +594,6 @@ pre code {
}
.row {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
@@ -630,14 +629,12 @@ pre code {
.col {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
@@ -645,175 +642,148 @@ pre code {
}
.col-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -866,162 +836,133 @@ pre code {
.col-sm {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-sm-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-sm-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-sm-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-sm-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-sm-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-sm-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-sm-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-sm-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-sm-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-sm-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-sm-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-sm-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-sm-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-sm-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-sm-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-sm-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-sm-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-sm-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-sm-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-sm-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-sm-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-sm-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-sm-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-sm-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-sm-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-sm-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-sm-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-sm-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -1067,162 +1008,133 @@ pre code {
.col-md {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-md-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-md-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-md-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-md-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-md-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-md-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-md-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-md-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-md-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-md-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-md-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-md-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-md-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-md-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-md-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-md-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-md-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-md-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-md-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-md-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-md-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-md-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-md-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-md-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-md-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-md-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-md-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-md-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -1268,162 +1180,133 @@ pre code {
.col-lg {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-lg-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-lg-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-lg-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-lg-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-lg-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-lg-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-lg-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-lg-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-lg-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-lg-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-lg-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-lg-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-lg-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-lg-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-lg-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-lg-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-lg-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-lg-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-lg-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-lg-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-lg-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-lg-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-lg-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-lg-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-lg-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-lg-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-lg-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-lg-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -1469,162 +1352,133 @@ pre code {
.col-xl {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
max-width: 100%;
}
.col-xl-auto {
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
width: auto;
max-width: none;
}
.col-xl-1 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 8.333333%;
flex: 0 0 8.333333%;
max-width: 8.333333%;
}
.col-xl-2 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 16.666667%;
flex: 0 0 16.666667%;
max-width: 16.666667%;
}
.col-xl-3 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
max-width: 25%;
}
.col-xl-4 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 33.333333%;
flex: 0 0 33.333333%;
max-width: 33.333333%;
}
.col-xl-5 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 41.666667%;
flex: 0 0 41.666667%;
max-width: 41.666667%;
}
.col-xl-6 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 50%;
flex: 0 0 50%;
max-width: 50%;
}
.col-xl-7 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 58.333333%;
flex: 0 0 58.333333%;
max-width: 58.333333%;
}
.col-xl-8 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 66.666667%;
flex: 0 0 66.666667%;
max-width: 66.666667%;
}
.col-xl-9 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 75%;
flex: 0 0 75%;
max-width: 75%;
}
.col-xl-10 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 83.333333%;
flex: 0 0 83.333333%;
max-width: 83.333333%;
}
.col-xl-11 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 91.666667%;
flex: 0 0 91.666667%;
max-width: 91.666667%;
}
.col-xl-12 {
- -webkit-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
max-width: 100%;
}
.order-xl-first {
- -webkit-box-ordinal-group: 0;
-ms-flex-order: -1;
order: -1;
}
.order-xl-last {
- -webkit-box-ordinal-group: 14;
-ms-flex-order: 13;
order: 13;
}
.order-xl-0 {
- -webkit-box-ordinal-group: 1;
-ms-flex-order: 0;
order: 0;
}
.order-xl-1 {
- -webkit-box-ordinal-group: 2;
-ms-flex-order: 1;
order: 1;
}
.order-xl-2 {
- -webkit-box-ordinal-group: 3;
-ms-flex-order: 2;
order: 2;
}
.order-xl-3 {
- -webkit-box-ordinal-group: 4;
-ms-flex-order: 3;
order: 3;
}
.order-xl-4 {
- -webkit-box-ordinal-group: 5;
-ms-flex-order: 4;
order: 4;
}
.order-xl-5 {
- -webkit-box-ordinal-group: 6;
-ms-flex-order: 5;
order: 5;
}
.order-xl-6 {
- -webkit-box-ordinal-group: 7;
-ms-flex-order: 6;
order: 6;
}
.order-xl-7 {
- -webkit-box-ordinal-group: 8;
-ms-flex-order: 7;
order: 7;
}
.order-xl-8 {
- -webkit-box-ordinal-group: 9;
-ms-flex-order: 8;
order: 8;
}
.order-xl-9 {
- -webkit-box-ordinal-group: 10;
-ms-flex-order: 9;
order: 9;
}
.order-xl-10 {
- -webkit-box-ordinal-group: 11;
-ms-flex-order: 10;
order: 10;
}
.order-xl-11 {
- -webkit-box-ordinal-group: 12;
-ms-flex-order: 11;
order: 11;
}
.order-xl-12 {
- -webkit-box-ordinal-group: 13;
-ms-flex-order: 12;
order: 12;
}
@@ -1712,6 +1566,13 @@ pre code {
border-bottom-width: 2px;
}
+.table-borderless th,
+.table-borderless td,
+.table-borderless thead th,
+.table-borderless tbody + tbody {
+ border: 0;
+}
+
.table-striped tbody tr:nth-of-type(odd) {
background-color: rgba(0, 0, 0, 0.05);
}
@@ -1968,6 +1829,12 @@ pre code {
transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
+@media screen and (prefers-reduced-motion: reduce) {
+ .form-control {
+ transition: none;
+ }
+}
+
.form-control::-ms-expand {
background-color: transparent;
border: 0;
@@ -2055,6 +1922,7 @@ select.form-control:focus::-ms-value {
padding-bottom: 0.375rem;
margin-bottom: 0;
line-height: 1.5;
+ color: #212529;
background-color: transparent;
border: solid transparent;
border-width: 1px 0;
@@ -2121,7 +1989,6 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
}
.form-row {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
@@ -2157,10 +2024,8 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
}
.form-check-inline {
- display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding-left: 0;
@@ -2369,14 +2234,10 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
}
.form-inline {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
@@ -2387,29 +2248,21 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
@media (min-width: 576px) {
.form-inline label {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
- -webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
margin-bottom: 0;
}
.form-inline .form-group {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-flex: 0;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-bottom: 0;
@@ -2422,17 +2275,15 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
.form-inline .form-control-plaintext {
display: inline-block;
}
- .form-inline .input-group {
+ .form-inline .input-group,
+ .form-inline .custom-select {
width: auto;
}
.form-inline .form-check {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
- -webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
width: auto;
@@ -2445,10 +2296,8 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
margin-left: 0;
}
.form-inline .custom-control {
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
- -webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
@@ -2475,6 +2324,12 @@ select.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.for
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}
+@media screen and (prefers-reduced-motion: reduce) {
+ .btn {
+ transition: none;
+ }
+}
+
.btn:hover, .btn:focus {
text-decoration: none;
}
@@ -3066,6 +2921,7 @@ fieldset:disabled a.btn {
.btn-link:disabled, .btn-link.disabled {
color: #6c757d;
+ pointer-events: none;
}
.btn-lg, .btn-group-lg > .btn {
@@ -3098,28 +2954,21 @@ input[type="button"].btn-block {
}
.fade {
- opacity: 0;
transition: opacity 0.15s linear;
}
-.fade.show {
- opacity: 1;
-}
-
-.collapse {
- display: none;
-}
-
-.collapse.show {
- display: block;
+@media screen and (prefers-reduced-motion: reduce) {
+ .fade {
+ transition: none;
+ }
}
-tr.collapse.show {
- display: table-row;
+.fade:not(.show) {
+ opacity: 0;
}
-tbody.collapse.show {
- display: table-row-group;
+.collapse:not(.show) {
+ display: none;
}
.collapsing {
@@ -3129,8 +2978,16 @@ tbody.collapse.show {
transition: height 0.35s ease;
}
+@media screen and (prefers-reduced-motion: reduce) {
+ .collapsing {
+ transition: none;
+ }
+}
+
.dropup,
-.dropdown {
+.dropright,
+.dropdown,
+.dropleft {
position: relative;
}
@@ -3171,7 +3028,14 @@ tbody.collapse.show {
border-radius: 0.25rem;
}
+.dropdown-menu-right {
+ right: 0;
+ left: auto;
+}
+
.dropup .dropdown-menu {
+ top: auto;
+ bottom: 100%;
margin-top: 0;
margin-bottom: 0.125rem;
}
@@ -3194,6 +3058,9 @@ tbody.collapse.show {
}
.dropright .dropdown-menu {
+ top: 0;
+ right: auto;
+ left: 100%;
margin-top: 0;
margin-left: 0.125rem;
}
@@ -3206,6 +3073,7 @@ tbody.collapse.show {
vertical-align: 0.255em;
content: "";
border-top: 0.3em solid transparent;
+ border-right: 0;
border-bottom: 0.3em solid transparent;
border-left: 0.3em solid;
}
@@ -3219,6 +3087,9 @@ tbody.collapse.show {
}
.dropleft .dropdown-menu {
+ top: 0;
+ right: 100%;
+ left: auto;
margin-top: 0;
margin-right: 0.125rem;
}
@@ -3256,6 +3127,11 @@ tbody.collapse.show {
vertical-align: 0;
}
+.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] {
+ right: auto;
+ bottom: auto;
+}
+
.dropdown-divider {
height: 0;
margin: 0.5rem 0;
@@ -3306,10 +3182,15 @@ tbody.collapse.show {
white-space: nowrap;
}
+.dropdown-item-text {
+ display: block;
+ padding: 0.25rem 1.5rem;
+ color: #212529;
+}
+
.btn-group,
.btn-group-vertical {
position: relative;
- display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
vertical-align: middle;
@@ -3318,7 +3199,6 @@ tbody.collapse.show {
.btn-group > .btn,
.btn-group-vertical > .btn {
position: relative;
- -webkit-box-flex: 0;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
}
@@ -3347,12 +3227,10 @@ tbody.collapse.show {
}
.btn-toolbar {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
- -webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
@@ -3382,10 +3260,16 @@ tbody.collapse.show {
padding-left: 0.5625rem;
}
-.dropdown-toggle-split::after {
+.dropdown-toggle-split::after,
+.dropup .dropdown-toggle-split::after,
+.dropright .dropdown-toggle-split::after {
margin-left: 0;
}
+.dropleft .dropdown-toggle-split::before {
+ margin-right: 0;
+}
+
.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {
padding-right: 0.375rem;
padding-left: 0.375rem;
@@ -3397,14 +3281,10 @@ tbody.collapse.show {
}
.btn-group-vertical {
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
- -webkit-box-align: start;
-ms-flex-align: start;
align-items: flex-start;
- -webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
@@ -3450,12 +3330,10 @@ tbody.collapse.show {
.input-group {
position: relative;
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
- -webkit-box-align: stretch;
-ms-flex-align: stretch;
align-items: stretch;
width: 100%;
@@ -3465,7 +3343,6 @@ tbody.collapse.show {
.input-group > .custom-select,
.input-group > .custom-file {
position: relative;
- -webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
width: 1%;
@@ -3503,29 +3380,26 @@ tbody.collapse.show {
}
.input-group > .custom-file {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
.input-group > .custom-file:not(:last-child) .custom-file-label,
-.input-group > .custom-file:not(:last-child) .custom-file-label::before {
+.input-group > .custom-file:not(:last-child) .custom-file-label::after {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.input-group > .custom-file:not(:first-child) .custom-file-label,
-.input-group > .custom-file:not(:first-child) .custom-file-label::before {
+.input-group > .custom-file:not(:first-child) .custom-file-label::after {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.input-group-prepend,
.input-group-append {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
@@ -3556,10 +3430,8 @@ tbody.collapse.show {
}
.input-group-text {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
padding: 0.375rem 0.75rem;
@@ -3608,7 +3480,6 @@ tbody.collapse.show {
}
.custom-control-inline {
- display: -webkit-inline-box;
display: -ms-inline-flexbox;
display: inline-flex;
margin-right: 1rem;
@@ -3793,12 +3664,12 @@ tbody.collapse.show {
opacity: 0;
}
-.custom-file-input:focus ~ .custom-file-control {
+.custom-file-input:focus ~ .custom-file-label {
border-color: #80bdff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
-.custom-file-input:focus ~ .custom-file-control::before {
+.custom-file-input:focus ~ .custom-file-label::after {
border-color: #80bdff;
}
@@ -3838,8 +3709,122 @@ tbody.collapse.show {
border-radius: 0 0.25rem 0.25rem 0;
}
+.custom-range {
+ width: 100%;
+ padding-left: 0;
+ background-color: transparent;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ appearance: none;
+}
+
+.custom-range:focus {
+ outline: none;
+}
+
+.custom-range::-moz-focus-outer {
+ border: 0;
+}
+
+.custom-range::-webkit-slider-thumb {
+ width: 1rem;
+ height: 1rem;
+ margin-top: -0.25rem;
+ background-color: #007bff;
+ border: 0;
+ border-radius: 1rem;
+ -webkit-appearance: none;
+ appearance: none;
+}
+
+.custom-range::-webkit-slider-thumb:focus {
+ outline: none;
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.custom-range::-webkit-slider-thumb:active {
+ background-color: #b3d7ff;
+}
+
+.custom-range::-webkit-slider-runnable-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: #dee2e6;
+ border-color: transparent;
+ border-radius: 1rem;
+}
+
+.custom-range::-moz-range-thumb {
+ width: 1rem;
+ height: 1rem;
+ background-color: #007bff;
+ border: 0;
+ border-radius: 1rem;
+ -moz-appearance: none;
+ appearance: none;
+}
+
+.custom-range::-moz-range-thumb:focus {
+ outline: none;
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.custom-range::-moz-range-thumb:active {
+ background-color: #b3d7ff;
+}
+
+.custom-range::-moz-range-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: #dee2e6;
+ border-color: transparent;
+ border-radius: 1rem;
+}
+
+.custom-range::-ms-thumb {
+ width: 1rem;
+ height: 1rem;
+ background-color: #007bff;
+ border: 0;
+ border-radius: 1rem;
+ appearance: none;
+}
+
+.custom-range::-ms-thumb:focus {
+ outline: none;
+ box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
+}
+
+.custom-range::-ms-thumb:active {
+ background-color: #b3d7ff;
+}
+
+.custom-range::-ms-track {
+ width: 100%;
+ height: 0.5rem;
+ color: transparent;
+ cursor: pointer;
+ background-color: transparent;
+ border-color: transparent;
+ border-width: 0.5rem;
+}
+
+.custom-range::-ms-fill-lower {
+ background-color: #dee2e6;
+ border-radius: 1rem;
+}
+
+.custom-range::-ms-fill-upper {
+ margin-right: 15px;
+ background-color: #dee2e6;
+ border-radius: 1rem;
+}
+
.nav {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
@@ -3910,7 +3895,6 @@ tbody.collapse.show {
}
.nav-fill .nav-item {
- -webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
text-align: center;
@@ -3919,7 +3903,6 @@ tbody.collapse.show {
.nav-justified .nav-item {
-ms-flex-preferred-size: 0;
flex-basis: 0;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
text-align: center;
@@ -3935,15 +3918,12 @@ tbody.collapse.show {
.navbar {
position: relative;
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
- -webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 0.5rem 1rem;
@@ -3951,15 +3931,12 @@ tbody.collapse.show {
.navbar > .container,
.navbar > .container-fluid {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
- -webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
}
@@ -3979,11 +3956,8 @@ tbody.collapse.show {
}
.navbar-nav {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
padding-left: 0;
@@ -4010,10 +3984,8 @@ tbody.collapse.show {
.navbar-collapse {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
- -webkit-box-flex: 1;
-ms-flex-positive: 1;
flex-grow: 1;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
}
@@ -4055,27 +4027,18 @@ tbody.collapse.show {
@media (min-width: 576px) {
.navbar-expand-sm {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
- -webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.navbar-expand-sm .navbar-nav {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
.navbar-expand-sm .navbar-nav .dropdown-menu {
position: absolute;
}
- .navbar-expand-sm .navbar-nav .dropdown-menu-right {
- right: 0;
- left: auto;
- }
.navbar-expand-sm .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
@@ -4086,7 +4049,6 @@ tbody.collapse.show {
flex-wrap: nowrap;
}
.navbar-expand-sm .navbar-collapse {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
@@ -4095,10 +4057,6 @@ tbody.collapse.show {
.navbar-expand-sm .navbar-toggler {
display: none;
}
- .navbar-expand-sm .dropup .dropdown-menu {
- top: auto;
- bottom: 100%;
- }
}
@media (max-width: 767.98px) {
@@ -4111,27 +4069,18 @@ tbody.collapse.show {
@media (min-width: 768px) {
.navbar-expand-md {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
- -webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.navbar-expand-md .navbar-nav {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
.navbar-expand-md .navbar-nav .dropdown-menu {
position: absolute;
}
- .navbar-expand-md .navbar-nav .dropdown-menu-right {
- right: 0;
- left: auto;
- }
.navbar-expand-md .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
@@ -4142,7 +4091,6 @@ tbody.collapse.show {
flex-wrap: nowrap;
}
.navbar-expand-md .navbar-collapse {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
@@ -4151,10 +4099,6 @@ tbody.collapse.show {
.navbar-expand-md .navbar-toggler {
display: none;
}
- .navbar-expand-md .dropup .dropdown-menu {
- top: auto;
- bottom: 100%;
- }
}
@media (max-width: 991.98px) {
@@ -4167,27 +4111,18 @@ tbody.collapse.show {
@media (min-width: 992px) {
.navbar-expand-lg {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
- -webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.navbar-expand-lg .navbar-nav {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
.navbar-expand-lg .navbar-nav .dropdown-menu {
position: absolute;
}
- .navbar-expand-lg .navbar-nav .dropdown-menu-right {
- right: 0;
- left: auto;
- }
.navbar-expand-lg .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
@@ -4198,7 +4133,6 @@ tbody.collapse.show {
flex-wrap: nowrap;
}
.navbar-expand-lg .navbar-collapse {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
@@ -4207,10 +4141,6 @@ tbody.collapse.show {
.navbar-expand-lg .navbar-toggler {
display: none;
}
- .navbar-expand-lg .dropup .dropdown-menu {
- top: auto;
- bottom: 100%;
- }
}
@media (max-width: 1199.98px) {
@@ -4223,27 +4153,18 @@ tbody.collapse.show {
@media (min-width: 1200px) {
.navbar-expand-xl {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
- -webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
.navbar-expand-xl .navbar-nav {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
.navbar-expand-xl .navbar-nav .dropdown-menu {
position: absolute;
}
- .navbar-expand-xl .navbar-nav .dropdown-menu-right {
- right: 0;
- left: auto;
- }
.navbar-expand-xl .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
@@ -4254,7 +4175,6 @@ tbody.collapse.show {
flex-wrap: nowrap;
}
.navbar-expand-xl .navbar-collapse {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
@@ -4263,18 +4183,11 @@ tbody.collapse.show {
.navbar-expand-xl .navbar-toggler {
display: none;
}
- .navbar-expand-xl .dropup .dropdown-menu {
- top: auto;
- bottom: 100%;
- }
}
.navbar-expand {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row nowrap;
flex-flow: row nowrap;
- -webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
}
@@ -4286,8 +4199,6 @@ tbody.collapse.show {
}
.navbar-expand .navbar-nav {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
@@ -4296,11 +4207,6 @@ tbody.collapse.show {
position: absolute;
}
-.navbar-expand .navbar-nav .dropdown-menu-right {
- right: 0;
- left: auto;
-}
-
.navbar-expand .navbar-nav .nav-link {
padding-right: 0.5rem;
padding-left: 0.5rem;
@@ -4313,7 +4219,6 @@ tbody.collapse.show {
}
.navbar-expand .navbar-collapse {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
-ms-flex-preferred-size: auto;
@@ -4324,11 +4229,6 @@ tbody.collapse.show {
display: none;
}
-.navbar-expand .dropup .dropdown-menu {
- top: auto;
- bottom: 100%;
-}
-
.navbar-light .navbar-brand {
color: rgba(0, 0, 0, 0.9);
}
@@ -4427,11 +4327,8 @@ tbody.collapse.show {
.card {
position: relative;
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
min-width: 0;
@@ -4458,7 +4355,6 @@ tbody.collapse.show {
}
.card-body {
- -webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
padding: 1.25rem;
@@ -4549,11 +4445,8 @@ tbody.collapse.show {
}
.card-deck {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
@@ -4564,22 +4457,16 @@ tbody.collapse.show {
@media (min-width: 576px) {
.card-deck {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
margin-right: -15px;
margin-left: -15px;
}
.card-deck .card {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-flex: 1;
-ms-flex: 1 0 0%;
flex: 1 0 0%;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
margin-right: 15px;
@@ -4589,11 +4476,8 @@ tbody.collapse.show {
}
.card-group {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
@@ -4604,13 +4488,10 @@ tbody.collapse.show {
@media (min-width: 576px) {
.card-group {
- -webkit-box-orient: horizontal;
- -webkit-box-direction: normal;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
}
.card-group > .card {
- -webkit-box-flex: 1;
-ms-flex: 1 0 0%;
flex: 1 0 0%;
margin-bottom: 0;
@@ -4679,6 +4560,8 @@ tbody.collapse.show {
-webkit-column-gap: 1.25rem;
-moz-column-gap: 1.25rem;
column-gap: 1.25rem;
+ orphans: 1;
+ widows: 1;
}
.card-columns .card {
display: inline-block;
@@ -4686,8 +4569,27 @@ tbody.collapse.show {
}
}
+.accordion .card:not(:first-of-type):not(:last-of-type) {
+ border-bottom: 0;
+ border-radius: 0;
+}
+
+.accordion .card:not(:first-of-type) .card-header:first-child {
+ border-radius: 0;
+}
+
+.accordion .card:first-of-type {
+ border-bottom: 0;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.accordion .card:last-of-type {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+
.breadcrumb {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
@@ -4699,10 +4601,13 @@ tbody.collapse.show {
border-radius: 0.25rem;
}
+.breadcrumb-item + .breadcrumb-item {
+ padding-left: 0.5rem;
+}
+
.breadcrumb-item + .breadcrumb-item::before {
display: inline-block;
padding-right: 0.5rem;
- padding-left: 0.5rem;
color: #6c757d;
content: "/";
}
@@ -4720,7 +4625,6 @@ tbody.collapse.show {
}
.pagination {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
padding-left: 0;
@@ -4740,6 +4644,7 @@ tbody.collapse.show {
}
.page-link:hover {
+ z-index: 2;
color: #0056b3;
text-decoration: none;
background-color: #e9ecef;
@@ -5107,7 +5012,6 @@ tbody.collapse.show {
}
.progress {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
height: 1rem;
@@ -5118,22 +5022,25 @@ tbody.collapse.show {
}
.progress-bar {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
- -webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
color: #fff;
text-align: center;
+ white-space: nowrap;
background-color: #007bff;
transition: width 0.6s ease;
}
+@media screen and (prefers-reduced-motion: reduce) {
+ .progress-bar {
+ transition: none;
+ }
+}
+
.progress-bar-striped {
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
background-size: 1rem 1rem;
@@ -5145,26 +5052,20 @@ tbody.collapse.show {
}
.media {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: start;
-ms-flex-align: start;
align-items: flex-start;
}
.media-body {
- -webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.list-group {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
padding-left: 0;
@@ -5430,16 +5331,20 @@ button.close {
transform: translate(0, -25%);
}
+@media screen and (prefers-reduced-motion: reduce) {
+ .modal.fade .modal-dialog {
+ transition: none;
+ }
+}
+
.modal.show .modal-dialog {
-webkit-transform: translate(0, 0);
transform: translate(0, 0);
}
.modal-dialog-centered {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
min-height: calc(100% - (0.5rem * 2));
@@ -5447,11 +5352,8 @@ button.close {
.modal-content {
position: relative;
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-orient: vertical;
- -webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
width: 100%;
@@ -5482,13 +5384,10 @@ button.close {
}
.modal-header {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: start;
-ms-flex-align: start;
align-items: flex-start;
- -webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding: 1rem;
@@ -5509,20 +5408,16 @@ button.close {
.modal-body {
position: relative;
- -webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
padding: 1rem;
}
.modal-footer {
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
- -webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
padding: 1rem;
@@ -5862,7 +5757,6 @@ button.close {
.carousel-item {
position: relative;
display: none;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
width: 100%;
@@ -5875,6 +5769,12 @@ button.close {
perspective: 1000px;
}
+@media screen and (prefers-reduced-motion: reduce) {
+ .carousel-item {
+ transition: none;
+ }
+}
+
.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
@@ -5929,18 +5829,52 @@ button.close {
}
}
+.carousel-fade .carousel-item {
+ opacity: 0;
+ transition-duration: .6s;
+ transition-property: opacity;
+}
+
+.carousel-fade .carousel-item.active,
+.carousel-fade .carousel-item-next.carousel-item-left,
+.carousel-fade .carousel-item-prev.carousel-item-right {
+ opacity: 1;
+}
+
+.carousel-fade .active.carousel-item-left,
+.carousel-fade .active.carousel-item-right {
+ opacity: 0;
+}
+
+.carousel-fade .carousel-item-next,
+.carousel-fade .carousel-item-prev,
+.carousel-fade .carousel-item.active,
+.carousel-fade .active.carousel-item-left,
+.carousel-fade .active.carousel-item-prev {
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+}
+
+@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {
+ .carousel-fade .carousel-item-next,
+ .carousel-fade .carousel-item-prev,
+ .carousel-fade .carousel-item.active,
+ .carousel-fade .active.carousel-item-left,
+ .carousel-fade .active.carousel-item-prev {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+}
+
.carousel-control-prev,
.carousel-control-next {
position: absolute;
top: 0;
bottom: 0;
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
- -webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
width: 15%;
@@ -5989,10 +5923,8 @@ button.close {
bottom: 10px;
left: 0;
z-index: 15;
- display: -webkit-box;
display: -ms-flexbox;
display: flex;
- -webkit-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
padding-left: 0;
@@ -6003,7 +5935,6 @@ button.close {
.carousel-indicators li {
position: relative;
- -webkit-box-flex: 0;
-ms-flex: 0 1 auto;
flex: 0 1 auto;
width: 30px;
@@ -6305,13 +6236,11 @@ button.bg-dark:focus {
}
.d-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -6339,12 +6268,10 @@ button.bg-dark:focus {
display: table-cell !important;
}
.d-sm-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-sm-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -6373,12 +6300,10 @@ button.bg-dark:focus {
display: table-cell !important;
}
.d-md-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-md-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -6407,12 +6332,10 @@ button.bg-dark:focus {
display: table-cell !important;
}
.d-lg-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-lg-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -6441,12 +6364,10 @@ button.bg-dark:focus {
display: table-cell !important;
}
.d-xl-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-xl-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -6475,12 +6396,10 @@ button.bg-dark:focus {
display: table-cell !important;
}
.d-print-flex {
- display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.d-print-inline-flex {
- display: -webkit-inline-box !important;
display: -ms-inline-flexbox !important;
display: inline-flex !important;
}
@@ -6530,29 +6449,21 @@ button.bg-dark:focus {
}
.flex-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -6572,26 +6483,47 @@ button.bg-dark:focus {
flex-wrap: wrap-reverse !important;
}
+.flex-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+}
+
+.flex-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+}
+
+.flex-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+}
+
+.flex-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+}
+
+.flex-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+}
+
.justify-content-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -6602,31 +6534,26 @@ button.bg-dark:focus {
}
.align-items-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -6693,26 +6620,18 @@ button.bg-dark:focus {
@media (min-width: 576px) {
.flex-sm-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-sm-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-sm-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-sm-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -6728,23 +6647,39 @@ button.bg-dark:focus {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important;
}
+ .flex-sm-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+ }
+ .flex-sm-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+ }
+ .flex-sm-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+ }
+ .flex-sm-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+ }
+ .flex-sm-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+ }
.justify-content-sm-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-sm-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-sm-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-sm-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -6753,27 +6688,22 @@ button.bg-dark:focus {
justify-content: space-around !important;
}
.align-items-sm-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-sm-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-sm-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-sm-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-sm-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -6829,26 +6759,18 @@ button.bg-dark:focus {
@media (min-width: 768px) {
.flex-md-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-md-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-md-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-md-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -6864,23 +6786,39 @@ button.bg-dark:focus {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important;
}
+ .flex-md-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+ }
+ .flex-md-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+ }
+ .flex-md-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+ }
+ .flex-md-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+ }
+ .flex-md-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+ }
.justify-content-md-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-md-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-md-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-md-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -6889,27 +6827,22 @@ button.bg-dark:focus {
justify-content: space-around !important;
}
.align-items-md-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-md-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-md-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-md-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-md-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -6965,26 +6898,18 @@ button.bg-dark:focus {
@media (min-width: 992px) {
.flex-lg-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-lg-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-lg-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-lg-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -7000,23 +6925,39 @@ button.bg-dark:focus {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important;
}
+ .flex-lg-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+ }
+ .flex-lg-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+ }
+ .flex-lg-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+ }
+ .flex-lg-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+ }
+ .flex-lg-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+ }
.justify-content-lg-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-lg-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-lg-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-lg-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -7025,27 +6966,22 @@ button.bg-dark:focus {
justify-content: space-around !important;
}
.align-items-lg-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-lg-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-lg-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-lg-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-lg-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -7101,26 +7037,18 @@ button.bg-dark:focus {
@media (min-width: 1200px) {
.flex-xl-row {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: row !important;
flex-direction: row !important;
}
.flex-xl-column {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: normal !important;
-ms-flex-direction: column !important;
flex-direction: column !important;
}
.flex-xl-row-reverse {
- -webkit-box-orient: horizontal !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: row-reverse !important;
flex-direction: row-reverse !important;
}
.flex-xl-column-reverse {
- -webkit-box-orient: vertical !important;
- -webkit-box-direction: reverse !important;
-ms-flex-direction: column-reverse !important;
flex-direction: column-reverse !important;
}
@@ -7136,23 +7064,39 @@ button.bg-dark:focus {
-ms-flex-wrap: wrap-reverse !important;
flex-wrap: wrap-reverse !important;
}
+ .flex-xl-fill {
+ -ms-flex: 1 1 auto !important;
+ flex: 1 1 auto !important;
+ }
+ .flex-xl-grow-0 {
+ -ms-flex-positive: 0 !important;
+ flex-grow: 0 !important;
+ }
+ .flex-xl-grow-1 {
+ -ms-flex-positive: 1 !important;
+ flex-grow: 1 !important;
+ }
+ .flex-xl-shrink-0 {
+ -ms-flex-negative: 0 !important;
+ flex-shrink: 0 !important;
+ }
+ .flex-xl-shrink-1 {
+ -ms-flex-negative: 1 !important;
+ flex-shrink: 1 !important;
+ }
.justify-content-xl-start {
- -webkit-box-pack: start !important;
-ms-flex-pack: start !important;
justify-content: flex-start !important;
}
.justify-content-xl-end {
- -webkit-box-pack: end !important;
-ms-flex-pack: end !important;
justify-content: flex-end !important;
}
.justify-content-xl-center {
- -webkit-box-pack: center !important;
-ms-flex-pack: center !important;
justify-content: center !important;
}
.justify-content-xl-between {
- -webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
@@ -7161,27 +7105,22 @@ button.bg-dark:focus {
justify-content: space-around !important;
}
.align-items-xl-start {
- -webkit-box-align: start !important;
-ms-flex-align: start !important;
align-items: flex-start !important;
}
.align-items-xl-end {
- -webkit-box-align: end !important;
-ms-flex-align: end !important;
align-items: flex-end !important;
}
.align-items-xl-center {
- -webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
.align-items-xl-baseline {
- -webkit-box-align: baseline !important;
-ms-flex-align: baseline !important;
align-items: baseline !important;
}
.align-items-xl-stretch {
- -webkit-box-align: stretch !important;
-ms-flex-align: stretch !important;
align-items: stretch !important;
}
@@ -7349,8 +7288,6 @@ button.bg-dark:focus {
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
- -webkit-clip-path: inset(50%);
- clip-path: inset(50%);
border: 0;
}
@@ -7361,8 +7298,22 @@ button.bg-dark:focus {
overflow: visible;
clip: auto;
white-space: normal;
- -webkit-clip-path: none;
- clip-path: none;
+}
+
+.shadow-sm {
+ box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
+}
+
+.shadow {
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
+}
+
+.shadow-lg {
+ box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
+}
+
+.shadow-none {
+ box-shadow: none !important;
}
.w-25 {
@@ -7381,6 +7332,10 @@ button.bg-dark:focus {
width: 100% !important;
}
+.w-auto {
+ width: auto !important;
+}
+
.h-25 {
height: 25% !important;
}
@@ -7397,6 +7352,10 @@ button.bg-dark:focus {
height: 100% !important;
}
+.h-auto {
+ height: auto !important;
+}
+
.mw-100 {
max-width: 100% !important;
}
@@ -8717,6 +8676,10 @@ button.bg-dark:focus {
}
}
+.text-monospace {
+ font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+}
+
.text-justify {
text-align: justify !important;
}
@@ -8887,10 +8850,22 @@ a.text-dark:hover, a.text-dark:focus {
color: #1d2124 !important;
}
+.text-body {
+ color: #212529 !important;
+}
+
.text-muted {
color: #6c757d !important;
}
+.text-black-50 {
+ color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.text-white-50 {
+ color: rgba(255, 255, 255, 0.5) !important;
+}
+
.text-hide {
font: 0/0 a;
color: transparent;
@@ -8925,7 +8900,7 @@ a.text-dark:hover, a.text-dark:focus {
}
pre,
blockquote {
- border: 1px solid #999;
+ border: 1px solid #adb5bd;
page-break-inside: avoid;
}
thead {
@@ -8969,7 +8944,7 @@ a.text-dark:hover, a.text-dark:focus {
}
.table-bordered th,
.table-bordered td {
- border: 1px solid #ddd !important;
+ border: 1px solid #dee2e6 !important;
}
}
/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap.css.map b/library/bootstrap/css/bootstrap.css.map
index a4532ecc7..e75d56a9c 100644
--- a/library/bootstrap/css/bootstrap.css.map
+++ b/library/bootstrap/css/bootstrap.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","bootstrap.css","../../scss/_variables.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/mixins/_clearfix.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/mixins/_float.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/mixins/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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AAkB;IAClB,cAAa;IACb,sBf+GwC;Ie9GxC,eAAc;GACf;EA5DL;IA+DM,0BAAmB;IAAnB,uBAAmB;IAAnB,oBAAmB;IACnB,yBAAuB;IAAvB,sBAAuB;IAAvB,wBAAuB;GACxB;EAjEL;IAmEM,iBAAgB;GACjB;ChByuDJ;;AoB7iED;EACE,sBAAqB;EACrB,iBnBsO+B;EmBrO/B,mBAAkB;EAClB,oBAAmB;EACnB,uBAAsB;EACtB,0BAAiB;EAAjB,uBAAiB;EAAjB,sBAAiB;EAAjB,kBAAiB;EACjB,8BAA2C;ECsF3C,0BpBkOkC;EoBjOlC,gBpBqIgC;EoBpIhC,iBpB6I+B;EoB1I7B,uBpByGgC;EgB5M9B,sIhBoX6I;CmBxUlJ;;AlB/BC;EkBCE,sBAAqB;ClBEtB;;AkBfH;EAkBI,WAAU;EACV,iDnBWa;CmBVd;;AApBH;EAyBI,cnB8U6B;CmB5U9B;;AA3BH;EA+BI,gBAAe;CAChB;;AAhCH;EAoCI,uBAAsB;CAMvB;;AAIH;;EAEE,qBAAoB;CACrB;;AAQC;ECzDA,YpBKa;EkBLX,0BlB8Ba;EoB5Bf,sBpB4Be;CmB6Bd;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,gDpBaW;CoBXd;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBKa;EoBJb,sBpBIa;CoBHd;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDpBdS;CoBgBZ;;ADWH;ECzDA,YpBKa;EkBLX,0BlBWc;EoBThB,sBpBSgB;CmBgDf;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,kDpBNY;CoBQf;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBdc;EoBed,sBpBfc;CoBgBf;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,kDpBjCU;CoBmCb;;ADWH;ECzDA,YpBKa;EkBLX,0BlBqCa;EoBnCf,sBpBmCe;CmBsBd;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,gDpBoBW;CoBlBd;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBYa;EoBXb,sBpBWa;CoBVd;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDpBPS;CoBSZ;;ADWH;ECzDA,YpBKa;EkBLX,0BlBuCa;EoBrCf,sBpBqCe;CmBoBd;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,iDpBsBW;CoBpBd;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBca;EoBbb,sBpBaa;CoBZd;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,iDpBLS;CoBOZ;;ADWH;ECzDA,epBcgB;EkBdd,0BlBoCa;EoBlCf,sBpBkCe;CmBuBd;;AlBnDD;EmBFE,epBQc;EkBdd,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,gDpBmBW;CoBjBd;;AAGD;EAEE,epBVc;EoBWd,0BpBWa;EoBVb,sBpBUa;CoBTd;;AAED;;EAGE,epBlBc;EoBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDpBRS;CoBUZ;;ADWH;ECzDA,YpBKa;EkBLX,0BlBkCa;EoBhCf,sBpBgCe;CmByBd;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,gDpBiBW;CoBfd;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBSa;EoBRb,sBpBQa;CoBPd;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDpBVS;CoBYZ;;ADWH;ECzDA,epBcgB;EkBdd,0BlBMc;EoBJhB,sBpBIgB;CmBqDf;;AlBnDD;EmBFE,epBQc;EkBdd,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,kDpBXY;CoBaf;;AAGD;EAEE,epBVc;EoBWd,0BpBnBc;EoBoBd,sBpBpBc;CoBqBf;;AAED;;EAGE,epBlBc;EoBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,kDpBtCU;CoBwCb;;ADWH;ECzDA,YpBKa;EkBLX,0BlBac;EoBXhB,sBpBWgB;CmB8Cf;;AlBnDD;EmBFE,YpBDW;EkBLX,0BEDoF;EASpF,sBATyH;CnBSrG;;AmBGtB;EAMI,+CpBJY;CoBMf;;AAGD;EAEE,YpBnBW;EoBoBX,0BpBZc;EoBad,sBpBbc;CoBcf;;AAED;;EAGE,YpB3BW;EoB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,+CpB/BU;CoBiCb;;ADiBH;ECZA,epBrBe;EoBsBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBxBe;CmBmCd;;ACTD;EACE,YpBpDW;EoBqDX,0BpB5Ba;EoB6Bb,sBpB7Ba;CoB8Bd;;AAED;EAEE,gDpBlCa;CoBmCd;;AAED;EAEE,epBvCa;EoBwCb,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpB/Ca;EoBgDb,sBpBhDa;CoB0Dd;;AARC;;EAKI,gDpBvDS;CoByDZ;;ADxBH;ECZA,epBxCgB;EoByChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBpB3CgB;CmBsDf;;ACTD;EACE,YpBpDW;EoBqDX,0BpB/Cc;EoBgDd,sBpBhDc;CoBiDf;;AAED;EAEE,kDpBrDc;CoBsDf;;AAED;EAEE,epB1Dc;EoB2Dd,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpBlEc;EoBmEd,sBpBnEc;CoB6Ef;;AARC;;EAKI,kDpB1EU;CoB4Eb;;ADxBH;ECZA,epBde;EoBef,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBjBe;CmB4Bd;;ACTD;EACE,YpBpDW;EoBqDX,0BpBrBa;EoBsBb,sBpBtBa;CoBuBd;;AAED;EAEE,gDpB3Ba;CoB4Bd;;AAED;EAEE,epBhCa;EoBiCb,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpBxCa;EoByCb,sBpBzCa;CoBmDd;;AARC;;EAKI,gDpBhDS;CoBkDZ;;ADxBH;ECZA,epBZe;EoBaf,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBfe;CmB0Bd;;ACTD;EACE,YpBpDW;EoBqDX,0BpBnBa;EoBoBb,sBpBpBa;CoBqBd;;AAED;EAEE,iDpBzBa;CoB0Bd;;AAED;EAEE,epB9Ba;EoB+Bb,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpBtCa;EoBuCb,sBpBvCa;CoBiDd;;AARC;;EAKI,iDpB9CS;CoBgDZ;;ADxBH;ECZA,epBfe;EoBgBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBlBe;CmB6Bd;;ACTD;EACE,epB3Cc;EoB4Cd,0BpBtBa;EoBuBb,sBpBvBa;CoBwBd;;AAED;EAEE,gDpB5Ba;CoB6Bd;;AAED;EAEE,epBjCa;EoBkCb,8BAA6B;CAC9B;;AAED;;EAGE,epB9Dc;EoB+Dd,0BpBzCa;EoB0Cb,sBpB1Ca;CoBoDd;;AARC;;EAKI,gDpBjDS;CoBmDZ;;ADxBH;ECZA,epBjBe;EoBkBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBpBe;CmB+Bd;;ACTD;EACE,YpBpDW;EoBqDX,0BpBxBa;EoByBb,sBpBzBa;CoB0Bd;;AAED;EAEE,gDpB9Ba;CoB+Bd;;AAED;EAEE,epBnCa;EoBoCb,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoBwEX,0BpB3Ca;EoB4Cb,sBpB5Ca;CoBsDd;;AARC;;EAKI,gDpBnDS;CoBqDZ;;ADxBH;ECZA,epB7CgB;EoB8ChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBhDgB;CmB2Df;;ACTD;EACE,epB3Cc;EoB4Cd,0BpBpDc;EoBqDd,sBpBrDc;CoBsDf;;AAED;EAEE,kDpB1Dc;CoB2Df;;AAED;EAEE,epB/Dc;EoBgEd,8BAA6B;CAC9B;;AAED;;EAGE,epB9Dc;EoB+Dd,0BpBvEc;EoBwEd,sBpBxEc;CoBkFf;;AARC;;EAKI,kDpB/EU;CoBiFb;;ADxBH;ECZA,epBtCgB;EoBuChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBpBzCgB;CmBoDf;;ACTD;EACE,YpBpDW;EoBqDX,0BpB7Cc;EoB8Cd,sBpB9Cc;CoB+Cf;;AAED;EAEE,+CpBnDc;CoBoDf;;AAED;EAEE,epBxDc;EoByDd,8BAA6B;CAC9B;;AAED;;EAGE,YpBvEW;EoB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wBhCqmBwC;EgCpmBxC,kBhCoM+B;EgCnM/B,kBhCwmBsC;EgCvmBtC,ehCwBe;EgCvBf,uBhCFa;EgCGb,0BhCAgB;CgCmBjB;;AA3BD;EAWI,ehCsIgD;EgCrIhD,sBAAqB;EACrB,0BhCNc;EgCOd,sBhCNc;CgCOf;;AAfH;EAkBI,WAAU;EACV,WAAU;EACV,iDhCUa;CgCTd;;AArBH;EAyBI,gBAAe;CAChB;;AAGH;EAGM,eAAc;E1BPhB,gCNkLgC;EMjLhC,mCNiLgC;CgCzK/B;;AALL;E1BlBI,iCNgMgC;EM/LhC,oCN+LgC;CgCpK/B;;AAVL;EAcI,WAAU;EACV,YhCvCW;EgCwCX,0BhCfa;EgCgBb,sBhChBa;CgCiBd;;AAlBH;EAqBI,ehCvCc;EgCwCd,qBAAoB;EAEpB,aAAY;EACZ,uBhCjDW;EgCkDX,sBhC/Cc;CgCgDf;;AC3DD;EACE,wBjC8mBsC;EiC7mBtC,mBjCqOkD;EiCpOlD,iBjCqM6B;CiCpM9B;;AAIG;E3BoBF,+BNmL+B;EMlL/B,kCNkL+B;CiCrM5B;;AAGD;E3BCF,gCNiM+B;EMhM/B,mCNgM+B;CiChM5B;;AAfL;EACE,wBjC4mBqC;EiC3mBrC,oBjCsOkD;EiCrOlD,iBjCsM6B;CiCrM9B;;AAIG;E3BoBF,+BNoL+B;EMnL/B,kCNmL+B;CiCtM5B;;AAGD;E3BCF,gCNkM+B;EMjM/B,mCNiM+B;CiCjM5B;;ACbP;EACE,sBAAqB;EACrB,sBlC6sBsC;EkC5sBtC,elCysBqC;EkCxsBrC,iBlCsO+B;EkCrO/B,eAAc;EACd,mBAAkB;EAClB,oBAAmB;EACnB,yBAAwB;E5BTtB,uBN6MgC;CkC7LnC;;AAfD;EAaI,cAAa;CACd;;AAIH;EACE,mBAAkB;EAClB,UAAS;CACV;;AAMD;EACE,qBlCsrBsC;EkCrrBtC,oBlCqrBsC;EMntBpC,qBNstBqC;CkCtrBxC;;AAOC;EC1CA,YnCUa;EmCTb,0BnCkCe;CkCSd;;AjC3BD;EkCZI,YnCKS;EmCJT,sBAAqB;EACrB,0BAAkC;ClCarC;;AiCsBD;EC1CA,YnCUa;EmCTb,0BnCegB;CkC4Bf;;AjC3BD;EkCZI,YnCKS;EmCJT,sBAAqB;EACrB,0BAAkC;ClCarC;;AiCsBD;EC1CA,YnCUa;EmCTb,0BnCyCe;CkCEd;;AjC3BD;EkCZI,YnCKS;EmCJT,sBAAqB;EACrB,0BAAkC;ClCarC;;AiCsBD;EC1CA,YnCUa;EmCTb,0BnC2Ce;CkCAd;;AjC3BD;EkCZI,YnCKS;EmCJT,sBAAqB;EACrB,0BAAkC;ClCarC;;AiCsBD;EC1CA,enCmBgB;EmClBhB,0BnCwCe;CkCGd;;AjC3BD;EkCZI,enCcY;EmCbZ,sBAAqB;EACrB,0BAAkC;ClCarC;;AiCsBD;EC1CA,YnCUa;EmCTb,0BnCsCe;CkCKd;;AjC3BD;EkCZI,YnCKS;EmCJT,sBAAqB;EACrB,0BAAkC;ClCarC;;AiCsBD;EC1CA,enCmBgB;EmClBhB,0BnCUgB;CkCiCf;;AjC3BD;EkCZI,enCcY;EmCbZ,sBAAqB;EACrB,0BAAkC;ClCarC;;AiCsBD;EC1CA,YnCUa;EmCTb,0BnCiBgB;CkC0Bf;;AjC3BD;EkCZI,YnCKS;EmCJT,sBAAqB;EACrB,0BAAkC;ClCarC;;AmCrBH;EACE,mBAAoD;EACpD,oBpCyoBsC;EoCxoBtC,0BpCUgB;EMTd,sBN8M+B;CoCzMlC;;A1BmDG;E0B5DJ;IAOI,mBpCooBoC;GoCloBvC;CrC+yIA;;AqC7yID;EACE,iBAAgB;EAChB,gBAAe;E9BTb,iB8BUsB;CACzB;;ACXD;EACE,mBAAkB;EAClB,yBrC2vByC;EqC1vBzC,oBrC2vBsC;EqC1vBtC,8BAA6C;E/BJ3C,uBN6MgC;CqCvMnC;;AAGD;EAEE,eAAc;CACf;;AAGD;EACE,iBrC2N+B;CqC1NhC;;AAOD;EACE,oBAAwD;CAUzD;;AAXD;EAKI,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,yBrC6tBuC;EqC5tBvC,eAAc;CACf;;AASD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;C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yCTM,e5B2E0D;E4B1E1D,0BAAyC;CzCW9C;;AyClBD;EAWM,YAAW;EACX,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCDD;EyCTM,e5B2E0D;E4B1E1D,0BAAyC;CzCW9C;;AyClBD;EAWM,YAAW;EACX,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCDD;EyCTM,e5B2E0D;E4B1E1D,0BAAyC;CzCW9C;;AyClBD;EAWM,YAAW;EACX,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCDD;EyCTM,e5B2E0D;E4B1E1D,0BAAyC;CzCW9C;;AyClBD;EAWM,YAAW;EACX,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCDD;EyCTM,e5B2E0D;E4B1E1D,0BAAyC;CzCW9C;;AyClBD;EAWM,YAAW;EACX,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCDD;EyCTM,e5B2E0D;E4B1E1D,0BAAyC;CzCW9C;;AyClBD;EAWM,YAAW;EACX,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;ACjBP;EACE,aAAY;EACZ,kB3Cq2BuD;E2Cp2BvD,iB3C4O+B;E2C3O/B,eAAc;EACd,Y3CgBa;E2Cfb,0B3CKa;E2CJb,YAAW;CAYZ;;A1CDC;E0CRE,Y3CWW;E2CVX,sBAAqB;EACrB,aAAY;C1CSb;;A0CrBH;EAiBI,gBAAe;CAChB;;AASH;EACE,WAAU;EACV,8BAA6B;EAC7B,UAAS;EACT,yBAAwB;CACzB;;ACzBD;EACE,iBAAgB;CACjB;;AAGD;EACE,gBAAe;EACf,OAAM;EACN,SAAQ;EACR,UAAS;EACT,QAAO;EACP,c5CmiBsC;E4CliBtC,cAAa;EACb,iBAAgB;EAGhB,WAAU;CASX;;AAJC;EACE,mBA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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $text-muted;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: .5rem;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n background-color: transparent;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #212529;\n border-color: #32383e;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(2.875rem + 2px);\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.btn:hover, .btn:focus {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n background-color: transparent;\n background-image: none;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n background-color: transparent;\n background-image: none;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n background-color: transparent;\n background-image: none;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n background-color: transparent;\n background-image: none;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n background-color: transparent;\n background-image: none;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n background-color: transparent;\n background-image: none;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n background-color: transparent;\n background-image: none;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n background-color: transparent;\n background-image: none;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n opacity: 0;\n transition: opacity 0.15s linear;\n}\n\n.fade.show {\n opacity: 1;\n}\n\n.collapse {\n display: none;\n}\n\n.collapse.show {\n display: block;\n}\n\ntr.collapse.show {\n display: table-row;\n}\n\ntbody.collapse.show {\n display: table-row-group;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n.dropup,\n.dropdown {\n position: relative;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropup .dropdown-menu {\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::before {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::before {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n margin-bottom: 0;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n user-select: none;\n background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n opacity: 0;\n}\n\n.custom-select-sm {\n height: calc(1.8125rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%;\n}\n\n.custom-select-lg {\n height: calc(2.875rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 125%;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-control {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-control::before {\n border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(calc(2.25rem + 2px) - 1px * 2);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: 1px solid #ced4da;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n .navbar-expand-sm .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n .navbar-expand-md .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n .navbar-expand-lg .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xl .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-expand .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #545b62;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n z-index: 1;\n text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover, .close:focus {\n color: #000;\n text-decoration: none;\n opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -25%);\n}\n\n.modal.show .modal-dialog {\n transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid #e9ecef;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-centered {\n min-height: calc(100% - (1.75rem * 2));\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n bottom: 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n bottom: 1px;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n left: 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n left: 1px;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n top: 0;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n top: 1px;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n right: 0;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n right: 1px;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n color: inherit;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n transition: transform 0.6s ease;\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next,\n .active.carousel-item-right {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-prev,\n .active.carousel-item-left {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n position: relative;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators .active {\n background-color: #fff;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n clip-path: inset(50%);\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n clip-path: none;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #545b62 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #1d2124 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $white !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: \"/\" !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable indentation\n\n// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS—an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n font-size: $lead-font-size;\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n font-size: $display1-size;\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n font-size: $display2-size;\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n font-size: $display3-size;\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n font-size: $display4-size;\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n font-size: $small-font-size;\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%; // back to default font-size\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: ($spacer / 2);\n line-height: 1;\n}\n\n.figure-caption {\n font-size: $figure-caption-font-size;\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n// stylelint-disable indentation, media-query-list-comma-newline-after\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n}\n","// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n font-size: $code-font-size;\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n font-size: $kbd-font-size;\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n font-size: $code-font-size;\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: $spacer;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n\n .table {\n background-color: $body-bg;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: (2 * $table-border-width);\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, -9));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map) {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $yiq-text-dark;\n } @else {\n @return $yiq-text-light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, #000, #fff);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n padding: $input-padding-y $input-padding-x;\n font-size: $font-size-base;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @if $enable-rounded {\n // Manually use the if/else instead of the mixin to account for iOS override\n border-radius: $input-border-radius;\n } @else {\n // Otherwise undo the iOS default\n border-radius: 0;\n }\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus();\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:not([size]):not([multiple]) {\n height: $input-height;\n }\n\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `<label>/<legend>` default\n font-size: inherit; // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n font-size: $font-size-lg;\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n font-size: $font-size-sm;\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: $input-padding-y;\n padding-bottom: $input-padding-y;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.form-control-sm {\n padding: $input-padding-y-sm $input-padding-x-sm;\n font-size: $font-size-sm;\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\nselect.form-control-sm {\n &:not([size]):not([multiple]) {\n height: $input-height-sm;\n }\n}\n\n.form-control-lg {\n padding: $input-padding-y-lg $input-padding-x-lg;\n font-size: $font-size-lg;\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\nselect.form-control-lg {\n &:not([size]):not([multiple]) {\n height: $input-height-lg;\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@include form-validation-state(\"valid\", $form-feedback-valid-color);\n@include form-validation-state(\"invalid\", $form-feedback-invalid-color);\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus() {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n}\n\n\n@mixin form-validation-state($state, $color) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n font-size: $form-feedback-font-size;\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba($color, .8);\n border-radius: .2rem;\n }\n\n .form-control,\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n background-color: lighten($color, 25%);\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n\n &::before { border-color: inherit; }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: #555, $outer-color: #333) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-weight: $btn-font-weight;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n // Share hover and focus styles\n @include hover-focus {\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .btn elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n background-image: none;\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n background-color: transparent;\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n background-color: transparent;\n border-color: transparent;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n border-color: transparent;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n background-color: transparent;\n background-image: none;\n border-color: $color;\n\n &:hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @if $enable-rounded {\n border-radius: $border-radius;\n } @else {\n border-radius: 0;\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n.fade {\n opacity: 0;\n @include transition($transition-fade);\n\n &.show {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n &.show {\n display: block;\n }\n}\n\ntr {\n &.collapse.show {\n display: table-row;\n }\n}\n\ntbody {\n &.collapse.show {\n display: table-row-group;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n.dropdown-toggle {\n // Generate the caret automatically\n @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues\n color: $body-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n @include hover-focus {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n font-size: $font-size-sm;\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: #e5e5e5) {\n height: 0;\n margin: ($spacer / 2) 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 0 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n\n // Prevent double borders when buttons are next to each other\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -$btn-border-width;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n > .btn:first-child {\n margin-left: 0;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after {\n margin-left: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n .btn,\n .btn-group {\n width: 100%;\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -$btn-border-width;\n margin-left: 0;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n // Add width 1% and flex-basis auto to ensure that button will not wrap out\n // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n width: 1%;\n margin-bottom: 0;\n\n // Bring the \"active\" form control to the top of surrounding elements\n &:focus {\n z-index: 3;\n }\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::before { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label,\n &:not(:first-child) .custom-file-label::before { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n font-size: $font-size-base; // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n @extend .form-control-lg;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n @extend .form-control-sm;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: (1rem * $line-height-base);\n padding-left: $custom-control-gutter;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n\n &:active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of psuedo-elements.\n\n.custom-control-label {\n margin-bottom: 0;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: (($line-height-base - $custom-control-indicator-size) / 2);\n left: 0;\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n user-select: none;\n background-color: $custom-control-indicator-bg;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: (($line-height-base - $custom-control-indicator-size) / 2);\n left: 0;\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: $custom-control-indicator-bg-size;\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-control-indicator-checked-bg);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-checked;\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-indeterminate;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-control-indicator-checked-bg);\n }\n &::after {\n background-image: $custom-radio-indicator-icon-checked;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// http://primercss.io.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;\n background-size: $custom-select-bg-size;\n border: $custom-select-border-width solid $custom-select-border-color;\n @if $enable-rounded {\n border-radius: $custom-select-border-radius;\n } @else {\n border-radius: 0;\n }\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n box-shadow: $custom-select-focus-box-shadow;\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n opacity: 0;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y;\n padding-bottom: $custom-select-padding-y;\n font-size: $custom-select-font-size-sm;\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y;\n padding-bottom: $custom-select-padding-y;\n font-size: $custom-select-font-size-lg;\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-control {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n\n &::before {\n border-color: $custom-file-focus-border-color;\n }\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(#{$custom-file-height} - #{$custom-file-border-width} * 2);\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s or `<ul>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properities so that content nested within behave properly.\n > .container,\n > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n font-size: $navbar-brand-font-size;\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orienation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n font-size: $navbar-toggler-font-size;\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .navbar-toggler elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n > .container,\n > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .dropdown-menu-right {\n right: 0;\n left: auto; // Reset the default from `.dropdown-menu`\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n > .container,\n > .container-fluid {\n flex-wrap: nowrap;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n\n .dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-light-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-dark-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-x;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -($card-spacer-y / 2);\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -($card-spacer-x / 2);\n margin-bottom: -$card-spacer-y;\n margin-left: -($card-spacer-x / 2);\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -($card-spacer-x / 2);\n margin-left: -($card-spacer-x / 2);\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n display: flex;\n flex-direction: column;\n\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n display: flex;\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n display: flex;\n flex-direction: column;\n\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:first-child {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n border-bottom-right-radius: 0;\n }\n }\n\n &:last-child {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n border-bottom-left-radius: 0;\n }\n }\n\n &:only-child {\n @include border-radius($card-border-radius);\n\n .card-img-top,\n .card-header {\n @include border-top-radius($card-border-radius);\n }\n .card-img-bottom,\n .card-footer {\n @include border-bottom-radius($card-border-radius);\n }\n }\n\n &:not(:first-child):not(:last-child):not(:only-child) {\n @include border-radius(0);\n\n .card-img-top,\n .card-img-bottom,\n .card-header,\n .card-footer {\n @include border-radius(0);\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n padding-left: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: \"#{$breadcrumb-divider}\";\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 2;\n outline: 0;\n box-shadow: $pagination-focus-box-shadow;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .page-link elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 1;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n font-size: $badge-font-size;\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n &[href] {\n @include hover-focus {\n color: color-yiq($bg);\n text-decoration: none;\n background-color: darken($bg, 10%);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: ($close-font-size + $alert-padding-x * 2);\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","@keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n font-size: $progress-font-size;\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: $progress-bar-color;\n text-align: center;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus {\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -$list-group-border-width;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n margin-bottom: 0;\n @include border-bottom-radius($list-group-border-radius);\n }\n\n @include hover-focus {\n z-index: 1; // Place hover/active items above their siblings for proper border styling\n text-decoration: none;\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right: 0;\n border-left: 0;\n @include border-radius(0);\n }\n\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: #fff;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n font-size: $close-font-size;\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n @include hover-focus {\n color: $close-color;\n text-decoration: none;\n opacity: .75;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .close elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n// stylelint-enable\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n\n .modal-open & {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: translate(0, -25%);\n }\n .modal.show & {\n transform: translate(0, 0);\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (#{$modal-dialog-margin} * 2));\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($border-radius-lg);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($border-radius-lg);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when should there be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n\n // Easily place margin between footer elements\n > :not(:first-child) { margin-left: .25rem; }\n > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2));\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg { max-width: $modal-lg; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: $tooltip-font-size;\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: $popover-font-size;\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $border-radius-lg;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n .arrow {\n bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n }\n\n .arrow::before,\n .arrow::after {\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n }\n\n .arrow::before {\n bottom: 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n bottom: $popover-border-width;\n border-top-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n .arrow {\n left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n }\n\n .arrow::before,\n .arrow::after {\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n }\n\n .arrow::before {\n left: 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n left: $popover-border-width;\n border-right-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n .arrow {\n top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n }\n\n .arrow::before,\n .arrow::after {\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n }\n\n .arrow::before {\n top: 0;\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n top: $popover-border-width;\n border-bottom-color: $popover-arrow-color;\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: ($popover-arrow-width / -2);\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n .arrow {\n right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n }\n\n .arrow::before,\n .arrow::after {\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n }\n\n .arrow::before {\n right: 0;\n border-left-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n right: $popover-border-width;\n border-left-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n font-size: $font-size-base;\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n @include border-top-radius($offset-border-width);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n @include transition($carousel-transition);\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n// CSS3 transforms when supported by the browser\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n // We can't have a transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Hover/focus state\n @include hover-focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background: linear-gradient(90deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background: linear-gradient(270deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n position: relative;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n background-color: rgba($carousel-indicator-active-bg, .5);\n\n // Use pseudo classes to increase the hit area by 10px on top and bottom.\n &::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n }\n &::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n }\n }\n\n .active {\n background-color: $carousel-indicator-active-bg;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: ((100% - $carousel-caption-width) / 2);\n bottom: 20px;\n left: ((100% - $carousel-caption-width) / 2);\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus {\n background-color: darken($color, 10%) !important;\n }\n }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded {\n border-radius: $border-radius !important;\n}\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n.embed-responsive-21by9 {\n &::before {\n padding-top: percentage(9 / 21);\n }\n}\n\n.embed-responsive-16by9 {\n &::before {\n padding-top: percentage(9 / 16);\n }\n}\n\n.embed-responsive-4by3 {\n &::before {\n padding-top: percentage(3 / 4);\n }\n}\n\n.embed-responsive-1by1 {\n &::before {\n padding-top: percentage(1 / 1);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { @include float-left; }\n .float#{$infix}-right { @include float-right; }\n .float#{$infix}-none { @include float-none; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@mixin float-left {\n float: left !important;\n}\n@mixin float-right {\n float: right !important;\n}\n@mixin float-none {\n float: none !important;\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n\n// Sass list not in variables since it's not intended for customization.\n$positions: static, relative, absolute, fixed, sticky;\n\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n clip-path: inset(50%);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n clip-path: none;\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: #fff !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-muted { color: $text-muted !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide();\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n a#{$parent} {\n @include hover-focus {\n color: darken($color, 10%) !important;\n }\n }\n}\n","// CSS image replacement\n@mixin text-hide() {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n","//\n// Visibility utilities\n//\n\n.visible {\n @include invisible(visible);\n}\n\n.invisible {\n @include invisible(hidden);\n}\n","// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n visibility: $visibility !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// http://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: #000 !important; // Black prints faster: http://www.sanbeiji.com/archives/953\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid #999; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/mixins/_clearfix.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/mixins/_float.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/mixins/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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C;ECzDA,YrBKa;EmBLX,0BnB8Ba;EqB5Bf,sBrB4Be;CoB6Bd;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDrBaW;CqBXd;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBKa;EqBJb,sBrBIa;CqBHd;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDrBdS;CqBgBZ;;ADWH;ECzDA,YrBKa;EmBLX,0BnBWc;EqBThB,sBrBSgB;CoBgDf;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,kDrBNY;CqBQf;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBdc;EqBed,sBrBfc;CqBgBf;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,kDrBjCU;CqBmCb;;ADWH;ECzDA,YrBKa;EmBLX,0BnBqCa;EqBnCf,sBrBmCe;CoBsBd;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDrBoBW;CqBlBd;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBYa;EqBXb,sBrBWa;CqBVd;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDrBPS;CqBSZ;;ADWH;ECzDA,YrBKa;EmBLX,0BnBuCa;EqBrCf,sBrBqCe;CoBoBd;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,iDrBsBW;CqBpBd;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBca;EqBbb,sBrBaa;CqBZd;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,iDrBLS;CqBOZ;;ADWH;ECzDA,erBcgB;EmBdd,0BnBoCa;EqBlCf,sBrBkCe;CoBuBd;;AlBrDD;EmBAE,erBQc;EmBdd,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDrBmBW;CqBjBd;;AAGD;EAEE,erBVc;EqBWd,0BrBWa;EqBVb,sBrBUa;CqBTd;;AAED;;EAGE,erBlBc;EqBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDrBRS;CqBUZ;;ADWH;ECzDA,YrBKa;EmBLX,0BnBkCa;EqBhCf,sBrBgCe;CoByBd;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,gDrBiBW;CqBfd;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBSa;EqBRb,sBrBQa;CqBPd;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,gDrBVS;CqBYZ;;ADWH;ECzDA,erBcgB;EmBdd,0BnBMc;EqBJhB,sBrBIgB;CoBqDf;;AlBrDD;EmBAE,erBQc;EmBdd,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,kDrBXY;CqBaf;;AAGD;EAEE,erBVc;EqBWd,0BrBnBc;EqBoBd,sBrBpBc;CqBqBf;;AAED;;EAGE,erBlBc;EqBmBd,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,kDrBtCU;CqBwCb;;ADWH;ECzDA,YrBKa;EmBLX,0BnBac;EqBXhB,sBrBWgB;CoB8Cf;;AlBrDD;EmBAE,YrBDW;EmBLX,0BEDoF;EASpF,sBATyH;CnBOrG;;AmBKtB;EAMI,+CrBJY;CqBMf;;AAGD;EAEE,YrBnBW;EqBoBX,0BrBZc;EqBad,sBrBbc;CqBcf;;AAED;;EAGE,YrB3BW;EqB4BX,0BAlCuK;EAsCvK,sBAtC+M;CAgDhN;;AARC;;EAKI,+CrB/BU;CqBiCb;;ADiBH;ECZA,erBrBe;EqBsBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBxBe;CoBmCd;;ACTD;EACE,YrBpDW;EqBqDX,0BrB5Ba;EqB6Bb,sBrB7Ba;CqB8Bd;;AAED;EAEE,gDrBlCa;CqBmCd;;AAED;EAEE,erBvCa;EqBwCb,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrB/Ca;EqBgDb,sBrBhDa;CqB0Dd;;AARC;;EAKI,gDrBvDS;CqByDZ;;ADxBH;ECZA,erBxCgB;EqByChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBrB3CgB;CoBsDf;;ACTD;EACE,YrBpDW;EqBqDX,0BrB/Cc;EqBgDd,sBrBhDc;CqBiDf;;AAED;EAEE,kDrBrDc;CqBsDf;;AAED;EAEE,erB1Dc;EqB2Dd,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrBlEc;EqBmEd,sBrBnEc;CqB6Ef;;AARC;;EAKI,kDrB1EU;CqB4Eb;;ADxBH;ECZA,erBde;EqBef,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBjBe;CoB4Bd;;ACTD;EACE,YrBpDW;EqBqDX,0BrBrBa;EqBsBb,sBrBtBa;CqBuBd;;AAED;EAEE,gDrB3Ba;CqB4Bd;;AAED;EAEE,erBhCa;EqBiCb,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrBxCa;EqByCb,sBrBzCa;CqBmDd;;AARC;;EAKI,gDrBhDS;CqBkDZ;;ADxBH;ECZA,erBZe;EqBaf,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBfe;CoB0Bd;;ACTD;EACE,YrBpDW;EqBqDX,0BrBnBa;EqBoBb,sBrBpBa;CqBqBd;;AAED;EAEE,iDrBzBa;CqB0Bd;;AAED;EAEE,erB9Ba;EqB+Bb,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrBtCa;EqBuCb,sBrBvCa;CqBiDd;;AARC;;EAKI,iDrB9CS;CqBgDZ;;ADxBH;ECZA,erBfe;EqBgBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBlBe;CoB6Bd;;ACTD;EACE,erB3Cc;EqB4Cd,0BrBtBa;EqBuBb,sBrBvBa;CqBwBd;;AAED;EAEE,gDrB5Ba;CqB6Bd;;AAED;EAEE,erBjCa;EqBkCb,8BAA6B;CAC9B;;AAED;;EAGE,erB9Dc;EqB+Dd,0BrBzCa;EqB0Cb,sBrB1Ca;CqBoDd;;AARC;;EAKI,gDrBjDS;CqBmDZ;;ADxBH;ECZA,erBjBe;EqBkBf,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBpBe;CoB+Bd;;ACTD;EACE,YrBpDW;EqBqDX,0BrBxBa;EqByBb,sBrBzBa;CqB0Bd;;AAED;EAEE,gDrB9Ba;CqB+Bd;;AAED;EAEE,erBnCa;EqBoCb,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrB3Ca;EqB4Cb,sBrB5Ca;CqBsDd;;AARC;;EAKI,gDrBnDS;CqBqDZ;;ADxBH;ECZA,erB7CgB;EqB8ChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBhDgB;CoB2Df;;ACTD;EACE,erB3Cc;EqB4Cd,0BrBpDc;EqBqDd,sBrBrDc;CqBsDf;;AAED;EAEE,kDrB1Dc;CqB2Df;;AAED;EAEE,erB/Dc;EqBgEd,8BAA6B;CAC9B;;AAED;;EAGE,erB9Dc;EqB+Dd,0BrBvEc;EqBwEd,sBrBxEc;CqBkFf;;AARC;;EAKI,kDrB/EU;CqBiFb;;ADxBH;ECZA,erBtCgB;EqBuChB,8BAA6B;EAC7B,uBAAsB;EACtB,sBrBzCgB;CoBoDf;;ACTD;EACE,YrBpDW;EqBqDX,0BrB7Cc;EqB8Cd,sBrB9Cc;CqB+Cf;;AAED;EAEE,+CrBnDc;CqBoDf;;AAED;EAEE,erBxDc;EqByDd,8BAA6B;CAC9B;;AAED;;EAGE,YrBvEW;EqBwEX,0BrBhEc;EqBiEd,sBrBjEc;CqB2Ef;;AARC;;EAKI,+CrBxEU;CqB0Eb;;ADbL;EACE,iBpBkK+B;EoBjK/B,epB9Ce;EoB+Cf,8BAA6B;CAuB9B;;AlB9FC;EkB0EE,epBkEgD;EoBjEhD,2BpBkEiC;EoBjEjC,8BAA6B;EAC7B,0BAAyB;ClB7EL;;AkBoExB;EAcI,2BpB2DiC;EoB1DjC,0BAAyB;EACzB,iBAAgB;CACjB;;AAjBH;EAqBI,epBpFc;EoBqFd,qBAAoB;CACrB;;AAUH;ECdE,qBrBsPgC;EqBrPhC,mBrB2IoD;EqB1IpD,iBrBuG+B;EqBpG7B,sBrB2G+B;CoBhGlC;;AAED;EClBE,wBrBkPiC;EqBjPjC,oBrB4IoD;EqB3IpD,iBrBwG+B;EqBrG7B,sBrB4G+B;CoB7FlC;;AAOD;EACE,eAAc;EACd,YAAW;CAMZ;;AARD;EAMI,mBpBsP+B;CoBrPhC;;AAIH;;;EAII,YAAW;CACZ;;AE5IH;ELGM,iCjB2N2C;CsBxNhD;;ALCC;EKPF;ILQI,i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B2C7B,e5BhRc;E4BiRd,kBAAiB;ET7RjB,0BnBOc;E4BwRd,+B5BtRc;EOXd,mCqBkSgF;CACjF;;AASH;EACE,YAAW;EACX,gBAAe;EACf,8BAA6B;EAC7B,yBAAgB;EAAhB,sBAAgB;EAAhB,iBAAgB;CA+GjB;;AAnHD;EAOI,cAAa;CACd;;AARH;EAWI,UAAS;CACV;;AAZH;EAeI,Y5BuMsC;E4BtMtC,a5BsMsC;E4BrMtC,qBAA6C;ET3T7C,0BnB8Ba;E4B+Rb,U5BsMmC;EOrgBnC,oBPsgBsC;E4BpMtC,yBAAgB;EAAhB,iBAAgB;CAUjB;;AAhCH;EAyBM,cAAa;EACb,iE5BtSW;C4BuSZ;;AA3BL;ET1SI,0BnBugBoE;C4B9LnE;;AA/BL;EAmCI,Y5B4KoC;E4B3KpC,e5B4KqC;E4B3KrC,mBAAkB;EAClB,gB5B2KuC;E4B1KvC,0B5BzUc;E4B0Ud,0BAAyB;ErBpVzB,oBP+foC;C4BxKrC;;AA3CH;EA8CI,Y5BwKsC;E4BvKtC,a5BuKsC;EmBhgBtC,0BnB8Ba;E4B6Tb,U5BwKmC;EOrgBnC,oBPsgBsC;E4BtKtC,sBAAgB;EAAhB,iBAAgB;CAUjB;;AA9DH;EAuDM,cAAa;EACb,iE5BpUW;C4BqUZ;;AAzDL;ET1SI,0BnBugBoE;C4BhKnE;;AA7DL;EAiEI,Y5B8IoC;E4B7IpC,e5B8IqC;E4B7IrC,mBAAkB;EAClB,gB5B6IuC;E4B5IvC,0B5BvWc;E4BwWd,0BAAyB;ErBlXzB,oBP+foC;C4B1IrC;;AAzEH;EA4EI,Y5B0IsC;E4BzItC,a5ByIsC;EmBhgBtC,0BnB8Ba;E4B2Vb,U5B0ImC;EOrgBnC,oBPsgBsC;E4BxItC,iBAAgB;CAUjB;;AA5FH;EAqFM,cAAa;EACb,iE5BlWW;C4BmWZ;;AAvFL;ET1SI,0BnBugBoE;C4BlInE;;AA3FL;EA+FI,Y5BgHoC;E4B/GpC,e5BgHqC;E4B/GrC,mBAAkB;EAClB,gB5B+GuC;E4B9GvC,8BAA6B;EAC7B,0BAAyB;EACzB,qBAA+C;CAEhD;;AAvGH;EA0GI,0B5B5Yc;EOVd,oBP+foC;C4BvGrC;;AA5GH;EA+GI,mBAAkB;EAClB,0B5BlZc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iCPiMgC;EOhMhC,oCPgMgC;CiCpK/B;;AAVL;EAcI,WAAU;EACV,YjCxCW;EiCyCX,0BjChBa;EiCiBb,sBjCjBa;CiCkBd;;AAlBH;EAqBI,ejCxCc;EiCyCd,qBAAoB;EAEpB,aAAY;EACZ,uBjClDW;EiCmDX,sBjChDc;CiCiDf;;AC5DD;EACE,wBlC4oBsC;EkC3oBtC,mBlC0OkD;EkCzOlD,iBlCsM6B;CkCrM9B;;AAIG;E3BoBF,+BPoL+B;EOnL/B,kCPmL+B;CkCtM5B;;AAGD;E3BCF,gCPkM+B;EOjM/B,mCPiM+B;CkCjM5B;;AAfL;EACE,wBlC0oBqC;EkCzoBrC,oBlC2OkD;EkC1OlD,iBlCuM6B;CkCtM9B;;AAIG;E3BoBF,+BPqL+B;EOpL/B,kCPoL+B;CkCvM5B;;AAGD;E3BCF,gCPmM+B;EOlM/B,mCPkM+B;CkClM5B;;ACbP;EACE,sBAAqB;EACrB,sBnC4uBsC;EmC3uBtC,enCwuBqC;EmCvuBrC,iBnC2O+B;EmC1O/B,eAAc;EACd,mBAAkB;EAClB,oBAAmB;EACnB,yBAAwB;E5BTtB,uBP8MgC;CmC9LnC;;AAfD;EAaI,cAAa;CACd;;AAIH;EACE,mBAAkB;EAClB,UAAS;CACV;;AAMD;EACE,qBnCqtBsC;EmCptBtC,oBnCotBsC;EOlvBpC,qBPqvBqC;CmCrtBxC;;AAOC;EC1CA,YpCUa;EoCTb,0BpCkCe;CmCSd;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpCegB;CmC4Bf;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpCyCe;CmCEd;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpC2Ce;CmCAd;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,epCmBgB;EoClBhB,0BpCwCe;CmCGd;;AjC7BD;EkCVI,epCcY;EoCbZ,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpCsCe;CmCKd;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,epCmBgB;EoClBhB,0BpCUgB;CmCiCf;;AjC7BD;EkCVI,epCcY;EoCbZ,sBAAqB;EACrB,0BAAkC;ClCWrC;;AiCwBD;EC1CA,YpCUa;EoCTb,0BpCiBgB;CmC0Bf;;AjC7BD;EkCVI,YpCKS;EoCJT,sBAAqB;EACrB,0BAAkC;ClCWrC;;AmCnBH;EACE,mBAAoD;EACpD,oBrCwqBsC;EqCvqBtC,0BrCUgB;EOTd,sBP+M+B;CqC1MlC;;A1BmDG;E0B5DJ;IAOI,mBrCmqBoC;GqCjqBvC;CpCo8IA;;AoCl8ID;EACE,iBAAgB;EAChB,gBAAe;E9BTb,iB8BUsB;CACzB;;ACXD;EACE,mBAAkB;EAClB,yBtC2xByC;EsC1xBzC,oBtC2xBsC;EsC1xBtC,8BAA6C;E/BJ3C,uBP8MgC;CsCxMnC;;AAGD;EAEE,eAAc;CACf;;AAGD;EACE,iBtCgO+B;CsC/NhC;;AAOD;EACE,oBAAwD;CAUzD;;AAXD;EAKI,mBAAkB;EAClB,OAAM;EACN,SAAQ;EACR,yBtC6vBuC;EsC5vBvC,eAAc;CACf;;AASD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ADoCD;EC9CA,exBmFgE;EI9E9D,0BJ8E8D;EwBjFhE,sBxBiFgE;CuBnC/D;;AC5CD;EACE,0BAAqC;CACtC;;AAED;EACE,eAA0B;CAC3B;;ACXH;EACE;IAAO,4BAAuC;GvCmmJ7C;EuClmJD;IAAK,yBAAwB;GvCqmJ5B;CACF;;AuCxmJD;EACE;IAAO,4BAAuC;GvCmmJ7C;EuClmJD;IAAK,yBAAwB;GvCqmJ5B;CACF;;AuCnmJD;EACE,qBAAa;EAAb,cAAa;EACb,axCuyBsC;EwCtyBtC,iBAAgB;EAChB,mBxCsyByD;EwCryBzD,0BxCGgB;EOTd,uBP8MgC;CwCrMnC;;AAED;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;EACtB,sBAAuB;EAAvB,wBAAuB;EACvB,YxCRa;EwCSb,mBAAkB;EAClB,oBAAmB;EACnB,0BxCce;EiB/BX,4BjBizB4C;CwC9xBjD;;AvBfC;EuBMF;IvBLI,iBAAgB;GuBcnB;CvC0mJA;;AuCxmJD;ErBiBE,sMAA6I;EqBf7I,2BxCkxBsC;CwCjxBvC;;AAED;EACE,2DxCqxBoD;EwCrxBpD,mDxCqxBoD;CwCpxBrD;;ACjCD;EACE,qBAAa;EAAb,cAAa;EACb,sBAAuB;EAAvB,wBAAuB;CACxB;;AAED;EACE,YAAO;EAAP,QAAO;CACR;;ACHD;EACE,qBAAa;EAAb,cAAa;EACb,2BAAsB;EAAtB,uBAAsB;EAGtB,gBAAe;EACf,iBAAgB;CACjB;;AAQD;EACE,YAAW;EACX,e1CHgB;E0CIhB,oBAAmB;CAapB;;AxCnBC;EwCUE,e1CRc;E0CSd,sBAAqB;EACrB,0B1ChBc;CEOf;;AwCAH;EAaI,e1CZc;E0Cad,0B1CpBc;C0CqBf;;AAQH;EACE,mBAAkB;EAClB,eAAc;EACd,yB1CmxByC;E0CjxBzC,oB1CgK+B;E0C/J/B,uB1CrCa;E0CsCb,uC1C5Ba;C0CyDd;;AApCD;EnChCI,gCPwMgC;EOvMhC,iCPuMgC;C0C7JjC;;AAXH;EAcI,iBAAgB;EnChChB,oCP0LgC;EOzLhC,mCPyLgC;C0CxJjC;;AxC1CD;EwC6CE,WAAU;EACV,sBAAqB;CxC3CtB;;AwCuBH;EAyBI,e1ClDc;E0CmDd,uB1CzDW;C0C0DZ;;AA3BH;EA+BI,WAAU;EACV,Y1C/DW;E0CgEX,0B1CvCa;E0CwCb,sB1CxCa;C0CyCd;;AASH;EAEI,gBAAe;EACf,eAAc;EnCrFd,iBmCsFwB;CACzB;;AALH;EASM,cAAa;CACd;;AAVL;EAeM,iBAAgB;CACjB;;ACnGH;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5BoE0D;C4BnE3D;;AAdL;EACE,e5BgF8D;E4B/E9D,0B5B+E8D;C4BjE/D;;AzCHD;EyCPM,e5B2E0D;E4B1E1D,0BAAyC;CzCS9C;;AyChBD;EAWM,Y3CHO;E2CIP,0B5BqE0D;E4BpE1D,sB5Bo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","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba($black, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n\n//\n// Color system\n//\n\n// stylelint-disable\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n$grays: map-merge((\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n), $grays);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n$colors: map-merge((\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n), $colors);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n$theme-colors: map-merge((\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n), $theme-colors);\n// stylelint-enable\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-print-styles: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n// stylelint-disable\n$spacer: 1rem !default;\n$spacers: () !default;\n$spacers: map-merge((\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n), $spacers);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n$sizes: map-merge((\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n), $sizes);\n// stylelint-enable\n\n// Body\n//\n// Settings for the `<body>` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints);\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n\n// Fonts\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: ($font-size-base * 1.25) !default;\n$font-size-sm: ($font-size-base * .875) !default;\n\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: ($spacer / 2) !default;\n$headings-font-family: inherit !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: inherit !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: ($font-size-base * 1.25) !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-font-size: ($font-size-base * 1.25) !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-bg: transparent !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $gray-300 !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-bg: $gray-900 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($gray-900, 7.5%) !default;\n$table-dark-color: $body-bg !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-line-height: $input-btn-line-height !default;\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;\n$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;\n\n$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;\n$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;\n\n$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;\n$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-control-gutter: 1.5rem !default;\n$custom-control-spacer-x: 1rem !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $gray-300 !default;\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-control-indicator-disabled-bg: $gray-200 !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n\n$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$custom-select-padding-y: .375rem !default;\n$custom-select-padding-x: .75rem !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-line-height: $input-btn-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$custom-select-border-width: $input-btn-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-box-shadow: inset 0 1px 2px rgba($black, .075), 0 0 5px rgba($custom-select-focus-border-color, .5) !default;\n\n$custom-select-font-size-sm: 75% !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-font-size-lg: 125% !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$custom-file-padding-y: $input-btn-padding-y !default;\n$custom-file-padding-x: $input-btn-padding-x !default;\n$custom-file-line-height: $input-btn-line-height !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-btn-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: ($spacer / 2) !default;\n\n// Navbar\n\n$navbar-padding-y: ($spacer / 2) !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: ($grid-gutter-width / 2) !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $gray-200 !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding: 1rem !default;\n\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-transition: transform .3s ease-out !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: ($font-size-base * .75) !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n// List group\n\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n$carousel-control-next-icon-bg: str-replace(url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\"), \"#\", \"%23\") !default;\n\n$carousel-transition: transform .6s ease !default; // Define transform transition first if using multiple transitons (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Printing\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n background-color: transparent;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #212529;\n border-color: #32383e;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(2.875rem + 2px);\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover, .btn:focus {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n background-color: transparent;\n background-image: none;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n background-color: transparent;\n background-image: none;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n background-color: transparent;\n background-image: none;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n background-color: transparent;\n background-image: none;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n background-color: transparent;\n background-image: none;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n background-color: transparent;\n background-image: none;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n background-color: transparent;\n background-image: none;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n background-color: transparent;\n background-image: none;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::after {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n margin-bottom: 0;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n user-select: none;\n background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n opacity: 0;\n}\n\n.custom-select-sm {\n height: calc(1.8125rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%;\n}\n\n.custom-select-lg {\n height: calc(2.875rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 125%;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-label::after {\n border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(calc(2.25rem + 2px) - 1px * 2);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: 1px solid #ced4da;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n padding-left: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n appearance: none;\n}\n\n.custom-range::-webkit-slider-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n appearance: none;\n}\n\n.custom-range::-moz-range-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n appearance: none;\n}\n\n.custom-range::-ms-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #545b62;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n z-index: 1;\n text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover, .close:focus {\n color: #000;\n text-decoration: none;\n opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -25%);\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid #e9ecef;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-centered {\n min-height: calc(100% - (1.75rem * 2));\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n bottom: 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n bottom: 1px;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n left: 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n left: 1px;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n top: 0;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n top: 1px;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n right: 0;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n right: 1px;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n color: inherit;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n transition: transform 0.6s ease;\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next,\n .active.carousel-item-right {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-prev,\n .active.carousel-item-left {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-duration: .6s;\n transition-property: opacity;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n opacity: 0;\n}\n\n.carousel-fade .carousel-item-next,\n.carousel-fade .carousel-item-prev,\n.carousel-fade .carousel-item.active,\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-prev {\n transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-fade .carousel-item-next,\n .carousel-fade .carousel-item-prev,\n .carousel-fade .carousel-item.active,\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-prev {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n position: relative;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators .active {\n background-color: #fff;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #545b62 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #1d2124 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n font-size: $lead-font-size;\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n font-size: $display1-size;\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n font-size: $display2-size;\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n font-size: $display3-size;\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n font-size: $display4-size;\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n font-size: $small-font-size;\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%; // back to default font-size\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: ($spacer / 2);\n line-height: 1;\n}\n\n.figure-caption {\n font-size: $figure-caption-font-size;\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n// stylelint-disable indentation, media-query-list-comma-newline-after\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n}\n","// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n font-size: $code-font-size;\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n font-size: $kbd-font-size;\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n font-size: $code-font-size;\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: $spacer;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n\n .table {\n background-color: $body-bg;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: (2 * $table-border-width);\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, -9));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map) {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $yiq-text-dark;\n } @else {\n @return $yiq-text-light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n padding: $input-padding-y $input-padding-x;\n font-size: $font-size-base;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @if $enable-rounded {\n // Manually use the if/else instead of the mixin to account for iOS override\n border-radius: $input-border-radius;\n } @else {\n // Otherwise undo the iOS default\n border-radius: 0;\n }\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus();\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:not([size]):not([multiple]) {\n height: $input-height;\n }\n\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `<label>/<legend>` default\n font-size: inherit; // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n font-size: $font-size-lg;\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n font-size: $font-size-sm;\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: $input-padding-y;\n padding-bottom: $input-padding-y;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.form-control-sm {\n padding: $input-padding-y-sm $input-padding-x-sm;\n font-size: $font-size-sm;\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\nselect.form-control-sm {\n &:not([size]):not([multiple]) {\n height: $input-height-sm;\n }\n}\n\n.form-control-lg {\n padding: $input-padding-y-lg $input-padding-x-lg;\n font-size: $font-size-lg;\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\nselect.form-control-lg {\n &:not([size]):not([multiple]) {\n height: $input-height-lg;\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@include form-validation-state(\"valid\", $form-feedback-valid-color);\n@include form-validation-state(\"invalid\", $form-feedback-invalid-color);\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus() {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n}\n\n\n@mixin form-validation-state($state, $color) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n font-size: $form-feedback-font-size;\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: $white;\n background-color: rgba($color, .8);\n border-radius: .2rem;\n }\n\n .form-control,\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n background-color: lighten($color, 25%);\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n\n &::before { border-color: inherit; }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-weight: $btn-font-weight;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n // Share hover and focus styles\n @include hover-focus {\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .btn elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n background-image: none;\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n background-color: transparent;\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n background-color: transparent;\n border-color: transparent;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n border-color: transparent;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n background-color: transparent;\n background-image: none;\n border-color: $color;\n\n &:hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @if $enable-rounded {\n border-radius: $border-radius;\n } @else {\n border-radius: 0;\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n.fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n // Generate the caret automatically\n @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues\n color: $body-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n// stylelint-enable no-duplicate-selectors\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n @include hover-focus {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n font-size: $font-size-sm;\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 0 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n\n // Prevent double borders when buttons are next to each other\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -$btn-border-width;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n > .btn:first-child {\n margin-left: 0;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n .btn,\n .btn-group {\n width: 100%;\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -$btn-border-width;\n margin-left: 0;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n // Add width 1% and flex-basis auto to ensure that button will not wrap out\n // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n width: 1%;\n margin-bottom: 0;\n\n // Bring the \"active\" form control to the top of surrounding elements\n &:focus {\n z-index: 3;\n }\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label,\n &:not(:first-child) .custom-file-label::after { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n font-size: $font-size-base; // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n @extend .form-control-lg;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n @extend .form-control-sm;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: (1rem * $line-height-base);\n padding-left: $custom-control-gutter;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n\n &:active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of psuedo-elements.\n\n.custom-control-label {\n margin-bottom: 0;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: (($line-height-base - $custom-control-indicator-size) / 2);\n left: 0;\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n user-select: none;\n background-color: $custom-control-indicator-bg;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: (($line-height-base - $custom-control-indicator-size) / 2);\n left: 0;\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: $custom-control-indicator-bg-size;\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-control-indicator-checked-bg);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-checked;\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-indeterminate;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-control-indicator-checked-bg);\n }\n &::after {\n background-image: $custom-radio-indicator-icon-checked;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;\n background-size: $custom-select-bg-size;\n border: $custom-select-border-width solid $custom-select-border-color;\n @if $enable-rounded {\n border-radius: $custom-select-border-radius;\n } @else {\n border-radius: 0;\n }\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n box-shadow: $custom-select-focus-box-shadow;\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n opacity: 0;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y;\n padding-bottom: $custom-select-padding-y;\n font-size: $custom-select-font-size-sm;\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y;\n padding-bottom: $custom-select-padding-y;\n font-size: $custom-select-font-size-lg;\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n\n &::after {\n border-color: $custom-file-focus-border-color;\n }\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(#{$custom-file-height} - #{$custom-file-border-width} * 2);\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for psuedo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n padding-left: 0; // Firefox specific\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: -($custom-range-thumb-width * .25); // Webkit specific?\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n appearance: none;\n\n &:focus {\n outline: none;\n box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n }\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n appearance: none;\n\n &:focus {\n outline: none;\n box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n }\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n appearance: none;\n\n &:focus {\n outline: none;\n box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n }\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: ($custom-range-thumb-height * .5);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s or `<ul>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properities so that content nested within behave properly.\n > .container,\n > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n font-size: $navbar-brand-font-size;\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orienation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n font-size: $navbar-toggler-font-size;\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .navbar-toggler elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n > .container,\n > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n > .container,\n > .container-fluid {\n flex-wrap: nowrap;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-light-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-dark-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-x;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -($card-spacer-y / 2);\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -($card-spacer-x / 2);\n margin-bottom: -$card-spacer-y;\n margin-left: -($card-spacer-x / 2);\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -($card-spacer-x / 2);\n margin-left: -($card-spacer-x / 2);\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n display: flex;\n flex-direction: column;\n\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n display: flex;\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n display: flex;\n flex-direction: column;\n\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:first-child {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n border-bottom-right-radius: 0;\n }\n }\n\n &:last-child {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n border-bottom-left-radius: 0;\n }\n }\n\n &:only-child {\n @include border-radius($card-border-radius);\n\n .card-img-top,\n .card-header {\n @include border-top-radius($card-border-radius);\n }\n .card-img-bottom,\n .card-footer {\n @include border-bottom-radius($card-border-radius);\n }\n }\n\n &:not(:first-child):not(:last-child):not(:only-child) {\n @include border-radius(0);\n\n .card-img-top,\n .card-img-bottom,\n .card-header,\n .card-footer {\n @include border-radius(0);\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n }\n\n .card:not(:first-of-type) {\n .card-header:first-child {\n border-radius: 0;\n }\n }\n\n .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: $breadcrumb-divider;\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 2;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .page-link elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 1;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n font-size: $badge-font-size;\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n &[href] {\n @include hover-focus {\n color: color-yiq($bg);\n text-decoration: none;\n background-color: darken($bg, 10%);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: ($close-font-size + $alert-padding-x * 2);\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","@keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n font-size: $progress-font-size;\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus {\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -$list-group-border-width;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n margin-bottom: 0;\n @include border-bottom-radius($list-group-border-radius);\n }\n\n @include hover-focus {\n z-index: 1; // Place hover/active items above their siblings for proper border styling\n text-decoration: none;\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right: 0;\n border-left: 0;\n @include border-radius(0);\n }\n\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n font-size: $close-font-size;\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n @include hover-focus {\n color: $close-color;\n text-decoration: none;\n opacity: .75;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .close elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n// stylelint-enable\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n\n .modal-open & {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: translate(0, -25%);\n }\n .modal.show & {\n transform: translate(0, 0);\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (#{$modal-dialog-margin} * 2));\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when should there be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n\n // Easily place margin between footer elements\n > :not(:first-child) { margin-left: .25rem; }\n > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2));\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg { max-width: $modal-lg; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: $tooltip-font-size;\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: $popover-font-size;\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $border-radius-lg;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n .arrow {\n bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n }\n\n .arrow::before,\n .arrow::after {\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n }\n\n .arrow::before {\n bottom: 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n bottom: $popover-border-width;\n border-top-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n .arrow {\n left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n }\n\n .arrow::before,\n .arrow::after {\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n }\n\n .arrow::before {\n left: 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n left: $popover-border-width;\n border-right-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n .arrow {\n top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n }\n\n .arrow::before,\n .arrow::after {\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n }\n\n .arrow::before {\n top: 0;\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n top: $popover-border-width;\n border-bottom-color: $popover-arrow-color;\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: ($popover-arrow-width / -2);\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n .arrow {\n right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n }\n\n .arrow::before,\n .arrow::after {\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n }\n\n .arrow::before {\n right: 0;\n border-left-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n right: $popover-border-width;\n border-left-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n font-size: $font-size-base;\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n @include border-top-radius($offset-border-width);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 2. .active.carousel-item is the current slide.\n// 3. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 4. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n @include transition($carousel-transition);\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-duration: .6s;\n transition-property: opacity;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n opacity: 0;\n }\n\n .carousel-item-next,\n .carousel-item-prev,\n .carousel-item.active,\n .active.carousel-item-left,\n .active.carousel-item-prev {\n transform: translateX(0);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(0, 0, 0);\n }\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n // We can't have a transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Hover/focus state\n @include hover-focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n position: relative;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n background-color: rgba($carousel-indicator-active-bg, .5);\n\n // Use pseudo classes to increase the hit area by 10px on top and bottom.\n &::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n }\n &::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n }\n }\n\n .active {\n background-color: $carousel-indicator-active-bg;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: ((100% - $carousel-caption-width) / 2);\n bottom: 20px;\n left: ((100% - $carousel-caption-width) / 2);\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus {\n background-color: darken($color, 10%) !important;\n }\n }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded {\n border-radius: $border-radius !important;\n}\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n.embed-responsive-21by9 {\n &::before {\n padding-top: percentage(9 / 21);\n }\n}\n\n.embed-responsive-16by9 {\n &::before {\n padding-top: percentage(9 / 16);\n }\n}\n\n.embed-responsive-4by3 {\n &::before {\n padding-top: percentage(3 / 4);\n }\n}\n\n.embed-responsive-1by1 {\n &::before {\n padding-top: percentage(1 / 1);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { @include float-left; }\n .float#{$infix}-right { @include float-right; }\n .float#{$infix}-none { @include float-none; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@mixin float-left {\n float: left !important;\n}\n@mixin float-right {\n float: right !important;\n}\n@mixin float-none {\n float: none !important;\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n\n// Sass list not in variables since it's not intended for customization.\n// stylelint-disable-next-line scss/dollar-variable-default\n$positions: static, relative, absolute, fixed, sticky;\n\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide();\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n a#{$parent} {\n @include hover-focus {\n color: darken($color, 10%) !important;\n }\n }\n}\n","// CSS image replacement\n@mixin text-hide() {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @warn \"The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.\";\n}\n","//\n// Visibility utilities\n//\n\n.visible {\n @include invisible(visible);\n}\n\n.invisible {\n @include invisible(hidden);\n}\n","// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n visibility: $visibility !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap.min.css b/library/bootstrap/css/bootstrap.min.css
index 6561b6f4c..e490fd02e 100644
--- a/library/bootstrap/css/bootstrap.min.css
+++ b/library/bootstrap/css/bootstrap.min.css
@@ -1,7 +1,7 @@
/*!
- * Bootstrap v4.0.0 (https://getbootstrap.com)
+ * Bootstrap v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors
* Copyright 2011-2018 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-sm-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-sm-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-sm-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-sm-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-sm-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-sm-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-sm-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-sm-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-sm-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-sm-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-sm-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-sm-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-sm-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-sm-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-md-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-md-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-md-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-md-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-md-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-md-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-md-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-md-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-md-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-md-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-md-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-md-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-md-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-md-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-lg-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-lg-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-lg-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-lg-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-lg-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-lg-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-lg-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-lg-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-lg-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-lg-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-lg-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-lg-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-lg-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-lg-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-webkit-box-flex:0;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-webkit-box-flex:0;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-webkit-box-flex:0;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-webkit-box-flex:0;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-webkit-box-flex:0;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-webkit-box-flex:0;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-webkit-box-flex:0;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-webkit-box-flex:0;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-webkit-box-flex:0;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-webkit-box-flex:0;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-webkit-box-flex:0;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-webkit-box-ordinal-group:0;-ms-flex-order:-1;order:-1}.order-xl-last{-webkit-box-ordinal-group:14;-ms-flex-order:13;order:13}.order-xl-0{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.order-xl-1{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.order-xl-2{-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2}.order-xl-3{-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3}.order-xl-4{-webkit-box-ordinal-group:5;-ms-flex-order:4;order:4}.order-xl-5{-webkit-box-ordinal-group:6;-ms-flex-order:5;order:5}.order-xl-6{-webkit-box-ordinal-group:7;-ms-flex-order:6;order:6}.order-xl-7{-webkit-box-ordinal-group:8;-ms-flex-order:7;order:7}.order-xl-8{-webkit-box-ordinal-group:9;-ms-flex-order:8;order:8}.order-xl-9{-webkit-box-ordinal-group:10;-ms-flex-order:9;order:9}.order-xl-10{-webkit-box-ordinal-group:11;-ms-flex-order:10;order:10}.order-xl-11{-webkit-box-ordinal-group:12;-ms-flex-order:11;order:11}.order-xl-12{-webkit-box-ordinal-group:13;-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .input-group{width:auto}.form-inline .form-check{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;transition:opacity .15s linear}.fade.show{opacity:1}.collapse{display:none}.collapse.show{display:block}tr.collapse.show{display:table-row}tbody.collapse.show{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}.dropdown,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropup .dropdown-menu{margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.btn-group,.btn-group-vertical{position:relative;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after{margin-left:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::before{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::before{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-webkit-box;display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-control{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-control::before{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem + 2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.nav{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .dropup .dropdown-menu{top:auto;bottom:100%}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .dropup .dropdown-menu{top:auto;bottom:100%}}.navbar-expand{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .dropdown-menu-right{right:0;left:auto}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .dropup .dropdown-menu{top:auto;bottom:100%}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-webkit-box-flex:1;-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;padding-left:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-webkit-box;display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-webkit-box;display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;background-color:#007bff;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.media-body{-webkit-box-flex:1;-ms-flex:1;flex:1}.list-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-webkit-inline-box!important;display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-sm-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-md-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-lg-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-webkit-box-orient:horizontal!important;-webkit-box-direction:normal!important;-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-webkit-box-orient:vertical!important;-webkit-box-direction:normal!important;-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-webkit-box-orient:horizontal!important;-webkit-box-direction:reverse!important;-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-webkit-box-orient:vertical!important;-webkit-box-direction:reverse!important;-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.justify-content-xl-start{-webkit-box-pack:start!important;-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-webkit-box-pack:end!important;-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-webkit-box-pack:center!important;-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-webkit-box-pack:justify!important;-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-webkit-box-align:start!important;-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-webkit-box-align:end!important;-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-webkit-box-align:baseline!important;-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-webkit-box-align:stretch!important;-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;-webkit-clip-path:inset(50%);clip-path:inset(50%);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;-webkit-clip-path:none;clip-path:none}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-muted{color:#6c757d!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::after{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem + 2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}}
/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file
diff --git a/library/bootstrap/css/bootstrap.min.css.map b/library/bootstrap/css/bootstrap.min.css.map
index ee5c523cd..2d5a1494c 100644
--- a/library/bootstrap/css/bootstrap.min.css.map
+++ b/library/bootstrap/css/bootstrap.min.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/mixins/_clearfix.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/mixins/_float.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/mixins/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $text-muted;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: .5rem;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -webkit-box-ordinal-group: 0;\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -webkit-box-ordinal-group: 14;\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -webkit-box-ordinal-group: 1;\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -webkit-box-ordinal-group: 2;\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -webkit-box-ordinal-group: 3;\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -webkit-box-ordinal-group: 4;\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -webkit-box-ordinal-group: 5;\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -webkit-box-ordinal-group: 6;\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -webkit-box-ordinal-group: 7;\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -webkit-box-ordinal-group: 8;\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -webkit-box-ordinal-group: 9;\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -webkit-box-ordinal-group: 10;\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -webkit-box-ordinal-group: 11;\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -webkit-box-ordinal-group: 12;\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -webkit-box-ordinal-group: 13;\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n background-color: transparent;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #212529;\n border-color: #32383e;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(2.875rem + 2px);\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group {\n width: auto;\n }\n .form-inline .form-check {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.btn:hover, .btn:focus {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n background-color: transparent;\n background-image: none;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n background-color: transparent;\n background-image: none;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n background-color: transparent;\n background-image: none;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n background-color: transparent;\n background-image: none;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n background-color: transparent;\n background-image: none;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n background-color: transparent;\n background-image: none;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n background-color: transparent;\n background-image: none;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n background-color: transparent;\n background-image: none;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n opacity: 0;\n transition: opacity 0.15s linear;\n}\n\n.fade.show {\n opacity: 1;\n}\n\n.collapse {\n display: none;\n}\n\n.collapse.show {\n display: block;\n}\n\ntr.collapse.show {\n display: table-row;\n}\n\ntbody.collapse.show {\n display: table-row-group;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n.dropup,\n.dropdown {\n position: relative;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropup .dropdown-menu {\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -webkit-box-flex: 0;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px;\n}\n\n.btn-toolbar {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-align: stretch;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::before {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::before {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n margin-bottom: 0;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n opacity: 0;\n}\n\n.custom-select-sm {\n height: calc(1.8125rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%;\n}\n\n.custom-select-lg {\n height: calc(2.875rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 125%;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-control {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-control::before {\n border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(calc(2.25rem + 2px) - 1px * 2);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: 1px solid #ced4da;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.nav {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -webkit-box-flex: 1;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n .navbar-expand-sm .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n .navbar-expand-md .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n .navbar-expand-lg .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xl .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n.navbar-expand {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-expand .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -webkit-box-flex: 1;\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.breadcrumb {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #545b62;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n color: #fff;\n text-align: center;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n z-index: 1;\n text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover, .close:focus {\n color: #000;\n text-decoration: none;\n opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -25%);\n transform: translate(0, -25%);\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid #e9ecef;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-centered {\n min-height: calc(100% - (1.75rem * 2));\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n bottom: 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n bottom: 1px;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n left: 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n left: 1px;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n top: 0;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n top: 1px;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n right: 0;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n right: 1px;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n color: inherit;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n width: 100%;\n transition: -webkit-transform 0.6s ease;\n transition: transform 0.6s ease;\n transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n .carousel-item-next,\n .active.carousel-item-right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n .carousel-item-prev,\n .active.carousel-item-left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n position: relative;\n -webkit-box-flex: 0;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators .active {\n background-color: #fff;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -webkit-box !important;\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -webkit-inline-box !important;\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: normal !important;\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -webkit-box-orient: horizontal !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -webkit-box-orient: vertical !important;\n -webkit-box-direction: reverse !important;\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n -webkit-box-pack: start !important;\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -webkit-box-pack: end !important;\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -webkit-box-pack: center !important;\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -webkit-box-pack: justify !important;\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -webkit-box-align: start !important;\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -webkit-box-align: end !important;\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -webkit-box-align: center !important;\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -webkit-box-align: baseline !important;\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -webkit-box-align: stretch !important;\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n -webkit-clip-path: inset(50%);\n clip-path: inset(50%);\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n -webkit-clip-path: none;\n clip-path: none;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #545b62 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #1d2124 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*!\n * Bootstrap v4.0.0 (https://getbootstrap.com)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: .5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n background-color: transparent;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #212529;\n border-color: #32383e;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(2.875rem + 2px);\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n.btn:hover, .btn:focus {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n background-color: transparent;\n background-image: none;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n background-color: transparent;\n background-image: none;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n background-color: transparent;\n background-image: none;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n background-color: transparent;\n background-image: none;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n background-color: transparent;\n background-image: none;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n background-color: transparent;\n background-image: none;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n background-color: transparent;\n background-image: none;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n background-color: transparent;\n background-image: none;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n opacity: 0;\n transition: opacity 0.15s linear;\n}\n\n.fade.show {\n opacity: 1;\n}\n\n.collapse {\n display: none;\n}\n\n.collapse.show {\n display: block;\n}\n\ntr.collapse.show {\n display: table-row;\n}\n\ntbody.collapse.show {\n display: table-row-group;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n.dropup,\n.dropdown {\n position: relative;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropup .dropdown-menu {\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::before {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::before {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n margin-bottom: 0;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n user-select: none;\n background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n opacity: 0;\n}\n\n.custom-select-sm {\n height: calc(1.8125rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%;\n}\n\n.custom-select-lg {\n height: calc(2.875rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 125%;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-control {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-control::before {\n border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(calc(2.25rem + 2px) - 1px * 2);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: 1px solid #ced4da;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n .navbar-expand-sm .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n .navbar-expand-md .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n .navbar-expand-lg .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n .navbar-expand-xl .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-expand .dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #545b62;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n z-index: 1;\n text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover, .close:focus {\n color: #000;\n text-decoration: none;\n opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -25%);\n}\n\n.modal.show .modal-dialog {\n transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid #e9ecef;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-centered {\n min-height: calc(100% - (1.75rem * 2));\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n bottom: 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n bottom: 1px;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n left: 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n left: 1px;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n top: 0;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n top: 1px;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n right: 0;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n right: 1px;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n color: inherit;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n transition: transform 0.6s ease;\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next,\n .active.carousel-item-right {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-prev,\n .active.carousel-item-left {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n position: relative;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators .active {\n background-color: #fff;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n clip-path: inset(50%);\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n clip-path: none;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #545b62 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #1d2124 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #999;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #ddd !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// stylelint-disable indentation\n\n// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS—an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n font-size: $lead-font-size;\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n font-size: $display1-size;\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n font-size: $display2-size;\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n font-size: $display3-size;\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n font-size: $display4-size;\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n font-size: $small-font-size;\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%; // back to default font-size\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: ($spacer / 2);\n line-height: 1;\n}\n\n.figure-caption {\n font-size: $figure-caption-font-size;\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n// stylelint-disable indentation, media-query-list-comma-newline-after\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n}\n","// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n font-size: $code-font-size;\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n font-size: $kbd-font-size;\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n font-size: $code-font-size;\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: $spacer;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n\n .table {\n background-color: $body-bg;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: (2 * $table-border-width);\n }\n }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, -9));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n padding: $input-padding-y $input-padding-x;\n font-size: $font-size-base;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @if $enable-rounded {\n // Manually use the if/else instead of the mixin to account for iOS override\n border-radius: $input-border-radius;\n } @else {\n // Otherwise undo the iOS default\n border-radius: 0;\n }\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus();\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:not([size]):not([multiple]) {\n height: $input-height;\n }\n\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `<label>/<legend>` default\n font-size: inherit; // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n font-size: $font-size-lg;\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n font-size: $font-size-sm;\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: $input-padding-y;\n padding-bottom: $input-padding-y;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.form-control-sm {\n padding: $input-padding-y-sm $input-padding-x-sm;\n font-size: $font-size-sm;\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\nselect.form-control-sm {\n &:not([size]):not([multiple]) {\n height: $input-height-sm;\n }\n}\n\n.form-control-lg {\n padding: $input-padding-y-lg $input-padding-x-lg;\n font-size: $font-size-lg;\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\nselect.form-control-lg {\n &:not([size]):not([multiple]) {\n height: $input-height-lg;\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@include form-validation-state(\"valid\", $form-feedback-valid-color);\n@include form-validation-state(\"invalid\", $form-feedback-invalid-color);\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus() {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n}\n\n\n@mixin form-validation-state($state, $color) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n font-size: $form-feedback-font-size;\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba($color, .8);\n border-radius: .2rem;\n }\n\n .form-control,\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n background-color: lighten($color, 25%);\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n\n &::before { border-color: inherit; }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: #555, $outer-color: #333) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-weight: $btn-font-weight;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n // Share hover and focus styles\n @include hover-focus {\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .btn elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n background-image: none;\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n background-color: transparent;\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n background-color: transparent;\n border-color: transparent;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n border-color: transparent;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n background-color: transparent;\n background-image: none;\n border-color: $color;\n\n &:hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @if $enable-rounded {\n border-radius: $border-radius;\n } @else {\n border-radius: 0;\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n.fade {\n opacity: 0;\n @include transition($transition-fade);\n\n &.show {\n opacity: 1;\n }\n}\n\n.collapse {\n display: none;\n &.show {\n display: block;\n }\n}\n\ntr {\n &.collapse.show {\n display: table-row;\n }\n}\n\ntbody {\n &.collapse.show {\n display: table-row-group;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropdown {\n position: relative;\n}\n\n.dropdown-toggle {\n // Generate the caret automatically\n @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues\n color: $body-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n @include hover-focus {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n font-size: $font-size-sm;\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: #e5e5e5) {\n height: 0;\n margin: ($spacer / 2) 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 0 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n\n // Prevent double borders when buttons are next to each other\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -$btn-border-width;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n > .btn:first-child {\n margin-left: 0;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after {\n margin-left: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n .btn,\n .btn-group {\n width: 100%;\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -$btn-border-width;\n margin-left: 0;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n // Add width 1% and flex-basis auto to ensure that button will not wrap out\n // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n width: 1%;\n margin-bottom: 0;\n\n // Bring the \"active\" form control to the top of surrounding elements\n &:focus {\n z-index: 3;\n }\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::before { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label,\n &:not(:first-child) .custom-file-label::before { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n font-size: $font-size-base; // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n @extend .form-control-lg;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n @extend .form-control-sm;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: (1rem * $line-height-base);\n padding-left: $custom-control-gutter;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n\n &:active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of psuedo-elements.\n\n.custom-control-label {\n margin-bottom: 0;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: (($line-height-base - $custom-control-indicator-size) / 2);\n left: 0;\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n user-select: none;\n background-color: $custom-control-indicator-bg;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: (($line-height-base - $custom-control-indicator-size) / 2);\n left: 0;\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: $custom-control-indicator-bg-size;\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-control-indicator-checked-bg);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-checked;\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-indeterminate;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-control-indicator-checked-bg);\n }\n &::after {\n background-image: $custom-radio-indicator-icon-checked;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// http://primercss.io.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;\n background-size: $custom-select-bg-size;\n border: $custom-select-border-width solid $custom-select-border-color;\n @if $enable-rounded {\n border-radius: $custom-select-border-radius;\n } @else {\n border-radius: 0;\n }\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n box-shadow: $custom-select-focus-box-shadow;\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n opacity: 0;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y;\n padding-bottom: $custom-select-padding-y;\n font-size: $custom-select-font-size-sm;\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y;\n padding-bottom: $custom-select-padding-y;\n font-size: $custom-select-font-size-lg;\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-control {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n\n &::before {\n border-color: $custom-file-focus-border-color;\n }\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(#{$custom-file-height} - #{$custom-file-border-width} * 2);\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s or `<ul>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properities so that content nested within behave properly.\n > .container,\n > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n font-size: $navbar-brand-font-size;\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orienation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n font-size: $navbar-toggler-font-size;\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .navbar-toggler elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n > .container,\n > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .dropdown-menu-right {\n right: 0;\n left: auto; // Reset the default from `.dropdown-menu`\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n > .container,\n > .container-fluid {\n flex-wrap: nowrap;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n\n .dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n }\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-light-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-dark-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-x;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -($card-spacer-y / 2);\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -($card-spacer-x / 2);\n margin-bottom: -$card-spacer-y;\n margin-left: -($card-spacer-x / 2);\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -($card-spacer-x / 2);\n margin-left: -($card-spacer-x / 2);\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n display: flex;\n flex-direction: column;\n\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n display: flex;\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n display: flex;\n flex-direction: column;\n\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:first-child {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n border-bottom-right-radius: 0;\n }\n }\n\n &:last-child {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n border-bottom-left-radius: 0;\n }\n }\n\n &:only-child {\n @include border-radius($card-border-radius);\n\n .card-img-top,\n .card-header {\n @include border-top-radius($card-border-radius);\n }\n .card-img-bottom,\n .card-footer {\n @include border-bottom-radius($card-border-radius);\n }\n }\n\n &:not(:first-child):not(:last-child):not(:only-child) {\n @include border-radius(0);\n\n .card-img-top,\n .card-img-bottom,\n .card-header,\n .card-footer {\n @include border-radius(0);\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n padding-left: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: \"#{$breadcrumb-divider}\";\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 2;\n outline: 0;\n box-shadow: $pagination-focus-box-shadow;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .page-link elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 1;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n font-size: $badge-font-size;\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n &[href] {\n @include hover-focus {\n color: color-yiq($bg);\n text-decoration: none;\n background-color: darken($bg, 10%);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: ($close-font-size + $alert-padding-x * 2);\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","@keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n font-size: $progress-font-size;\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: $progress-bar-color;\n text-align: center;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus {\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -$list-group-border-width;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n margin-bottom: 0;\n @include border-bottom-radius($list-group-border-radius);\n }\n\n @include hover-focus {\n z-index: 1; // Place hover/active items above their siblings for proper border styling\n text-decoration: none;\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right: 0;\n border-left: 0;\n @include border-radius(0);\n }\n\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: #fff;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n font-size: $close-font-size;\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n @include hover-focus {\n color: $close-color;\n text-decoration: none;\n opacity: .75;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .close elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n// stylelint-enable\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n\n .modal-open & {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: translate(0, -25%);\n }\n .modal.show & {\n transform: translate(0, 0);\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (#{$modal-dialog-margin} * 2));\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($border-radius-lg);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($border-radius-lg);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when should there be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n\n // Easily place margin between footer elements\n > :not(:first-child) { margin-left: .25rem; }\n > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2));\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg { max-width: $modal-lg; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: $tooltip-font-size;\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: $popover-font-size;\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $border-radius-lg;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n .arrow {\n bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n }\n\n .arrow::before,\n .arrow::after {\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n }\n\n .arrow::before {\n bottom: 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n bottom: $popover-border-width;\n border-top-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n .arrow {\n left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n }\n\n .arrow::before,\n .arrow::after {\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n }\n\n .arrow::before {\n left: 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n left: $popover-border-width;\n border-right-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n .arrow {\n top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n }\n\n .arrow::before,\n .arrow::after {\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n }\n\n .arrow::before {\n top: 0;\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n top: $popover-border-width;\n border-bottom-color: $popover-arrow-color;\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: ($popover-arrow-width / -2);\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n .arrow {\n right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n }\n\n .arrow::before,\n .arrow::after {\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n }\n\n .arrow::before {\n right: 0;\n border-left-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n right: $popover-border-width;\n border-left-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n font-size: $font-size-base;\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n @include border-top-radius($offset-border-width);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Wrapper for the slide container and indicators\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n @include transition($carousel-transition);\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n// CSS3 transforms when supported by the browser\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n // We can't have a transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Hover/focus state\n @include hover-focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background: linear-gradient(90deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background: linear-gradient(270deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n position: relative;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n background-color: rgba($carousel-indicator-active-bg, .5);\n\n // Use pseudo classes to increase the hit area by 10px on top and bottom.\n &::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n }\n &::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n }\n }\n\n .active {\n background-color: $carousel-indicator-active-bg;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: ((100% - $carousel-caption-width) / 2);\n bottom: 20px;\n left: ((100% - $carousel-caption-width) / 2);\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus {\n background-color: darken($color, 10%) !important;\n }\n }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded {\n border-radius: $border-radius !important;\n}\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n.embed-responsive-21by9 {\n &::before {\n padding-top: percentage(9 / 21);\n }\n}\n\n.embed-responsive-16by9 {\n &::before {\n padding-top: percentage(9 / 16);\n }\n}\n\n.embed-responsive-4by3 {\n &::before {\n padding-top: percentage(3 / 4);\n }\n}\n\n.embed-responsive-1by1 {\n &::before {\n padding-top: percentage(1 / 1);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { @include float-left; }\n .float#{$infix}-right { @include float-right; }\n .float#{$infix}-none { @include float-none; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@mixin float-left {\n float: left !important;\n}\n@mixin float-right {\n float: right !important;\n}\n@mixin float-none {\n float: none !important;\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n\n// Sass list not in variables since it's not intended for customization.\n$positions: static, relative, absolute, fixed, sticky;\n\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n clip-path: inset(50%);\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n clip-path: none;\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: #fff !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-muted { color: $text-muted !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide();\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n a#{$parent} {\n @include hover-focus {\n color: darken($color, 10%) !important;\n }\n }\n}\n","// CSS image replacement\n@mixin text-hide() {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n","//\n// Visibility utilities\n//\n\n.visible {\n @include invisible(visible);\n}\n\n.invisible {\n @include invisible(hidden);\n}\n","// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n visibility: $visibility !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// http://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: #000 !important; // Black prints faster: http://www.sanbeiji.com/archives/953\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid #999; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid #000;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: #fff !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid #ddd !important;\n }\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","bootstrap.css","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/mixins/_clearfix.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/mixins/_float.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/mixins/_visibility.scss","../../scss/_print.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"code\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"input-group\";\n@import \"custom-forms\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"jumbotron\";\n@import \"alert\";\n@import \"progress\";\n@import \"media\";\n@import \"list-group\";\n@import \"close\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"utilities\";\n@import \"print\";\n",":root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so\n// we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n// 6. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -ms-text-size-adjust: 100%; // 4\n -ms-overflow-style: scrollbar; // 5\n -webkit-tap-highlight-color: rgba($black, 0); // 6\n}\n\n// IE10+ doesn't honor `<meta name=\"viewport\">` in some cases.\n@at-root {\n @-ms-viewport {\n width: device-width;\n }\n}\n\n// stylelint-disable selector-list-comma-newline-after\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use the\n// the `inherit` value on things like `<th>` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n font-size: $font-size-base;\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Suppress the focus outline on elements that cannot be accessed via keyboard.\n// This prevents an unwanted focus outline from appearing around elements that\n// might still respond to pointer events.\n//\n// Credit: https://github.com/suitcss/base\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n// stylelint-enable selector-list-comma-newline-after\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `<p>`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Remove the bottom border in Firefox 39-.\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Duplicate behavior to the data-* attribute for our tooltip plugin\n\nabbr[title],\nabbr[data-original-title] { // 4\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 1\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic; // Add the correct font style in Android 4.3-\n}\n\n// stylelint-disable font-weight-notation\nb,\nstrong {\n font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n// stylelint-enable font-weight-notation\n\nsmall {\n font-size: 80%; // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href)\n// which have not been made explicitly keyboard-focusable (without tabindex).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n\n @include hover-focus {\n color: inherit;\n text-decoration: none;\n }\n\n &:focus {\n outline: 0;\n }\n}\n\n\n//\n// Code\n//\n\n// stylelint-disable font-family-no-duplicate-names\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.\n font-size: 1em; // Correct the odd `em` font sizing in all browsers.\n}\n// stylelint-enable font-family-no-duplicate-names\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so\n // we force a non-overlapping, non-auto-hiding scrollbar to counteract.\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg:not(:root) {\n overflow: hidden; // Hide the overflow in IE\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `<td>` alignment by inheriting from the `<body>`, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\nhtml [type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `<div>`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n -ms-flex-order: -1;\n order: -1;\n}\n\n.order-last {\n -ms-flex-order: 13;\n order: 13;\n}\n\n.order-0 {\n -ms-flex-order: 0;\n order: 0;\n}\n\n.order-1 {\n -ms-flex-order: 1;\n order: 1;\n}\n\n.order-2 {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.order-3 {\n -ms-flex-order: 3;\n order: 3;\n}\n\n.order-4 {\n -ms-flex-order: 4;\n order: 4;\n}\n\n.order-5 {\n -ms-flex-order: 5;\n order: 5;\n}\n\n.order-6 {\n -ms-flex-order: 6;\n order: 6;\n}\n\n.order-7 {\n -ms-flex-order: 7;\n order: 7;\n}\n\n.order-8 {\n -ms-flex-order: 8;\n order: 8;\n}\n\n.order-9 {\n -ms-flex-order: 9;\n order: 9;\n}\n\n.order-10 {\n -ms-flex-order: 10;\n order: 10;\n}\n\n.order-11 {\n -ms-flex-order: 11;\n order: 11;\n}\n\n.order-12 {\n -ms-flex-order: 12;\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-sm-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-sm-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-sm-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-sm-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-sm-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-sm-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-sm-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-sm-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-sm-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-sm-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-sm-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-sm-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-sm-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-sm-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-md-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-md-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-md-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-md-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-md-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-md-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-md-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-md-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-md-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-md-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-md-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-md-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-md-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-md-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-lg-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-lg-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-lg-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-lg-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-lg-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-lg-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-lg-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-lg-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-lg-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-lg-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-lg-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-lg-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-lg-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-lg-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n -ms-flex: 0 0 8.333333%;\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n -ms-flex: 0 0 16.666667%;\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n -ms-flex: 0 0 25%;\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n -ms-flex: 0 0 33.333333%;\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n -ms-flex: 0 0 41.666667%;\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n -ms-flex: 0 0 50%;\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n -ms-flex: 0 0 58.333333%;\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n -ms-flex: 0 0 66.666667%;\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n -ms-flex: 0 0 75%;\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n -ms-flex: 0 0 83.333333%;\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n -ms-flex: 0 0 91.666667%;\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n -ms-flex: 0 0 100%;\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n -ms-flex-order: -1;\n order: -1;\n }\n .order-xl-last {\n -ms-flex-order: 13;\n order: 13;\n }\n .order-xl-0 {\n -ms-flex-order: 0;\n order: 0;\n }\n .order-xl-1 {\n -ms-flex-order: 1;\n order: 1;\n }\n .order-xl-2 {\n -ms-flex-order: 2;\n order: 2;\n }\n .order-xl-3 {\n -ms-flex-order: 3;\n order: 3;\n }\n .order-xl-4 {\n -ms-flex-order: 4;\n order: 4;\n }\n .order-xl-5 {\n -ms-flex-order: 5;\n order: 5;\n }\n .order-xl-6 {\n -ms-flex-order: 6;\n order: 6;\n }\n .order-xl-7 {\n -ms-flex-order: 7;\n order: 7;\n }\n .order-xl-8 {\n -ms-flex-order: 8;\n order: 8;\n }\n .order-xl-9 {\n -ms-flex-order: 9;\n order: 9;\n }\n .order-xl-10 {\n -ms-flex-order: 10;\n order: 10;\n }\n .order-xl-11 {\n -ms-flex-order: 11;\n order: 11;\n }\n .order-xl-12 {\n -ms-flex-order: 12;\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n background-color: transparent;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #212529;\n border-color: #32383e;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::-webkit-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-moz-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::-ms-input-placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(2.875rem + 2px);\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n -ms-flex-align: center;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover, .btn:focus {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n background-color: transparent;\n background-image: none;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n background-color: transparent;\n background-image: none;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n background-color: transparent;\n background-image: none;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n background-color: transparent;\n background-image: none;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n background-color: transparent;\n background-image: none;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n background-color: transparent;\n background-image: none;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n background-color: transparent;\n background-image: none;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n background-color: transparent;\n background-image: none;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: -ms-inline-flexbox;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px;\n}\n\n.btn-toolbar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: stretch;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::after {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: -ms-flexbox;\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: -ms-inline-flexbox;\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n margin-bottom: 0;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n opacity: 0;\n}\n\n.custom-select-sm {\n height: calc(1.8125rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%;\n}\n\n.custom-select-lg {\n height: calc(2.875rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 125%;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-label::after {\n border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(calc(2.25rem + 2px) - 1px * 2);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: 1px solid #ced4da;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n padding-left: 0;\n background-color: transparent;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.custom-range::-webkit-slider-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n -moz-appearance: none;\n appearance: none;\n}\n\n.custom-range::-moz-range-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n appearance: none;\n}\n\n.custom-range::-ms-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n -ms-flex-positive: 1;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%;\n -ms-flex-positive: 1;\n flex-grow: 1;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n -ms-flex-flow: row nowrap;\n flex-flow: row nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: -ms-flexbox !important;\n display: flex !important;\n -ms-flex-preferred-size: auto;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n -ms-flex-direction: column;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n -ms-flex-flow: row wrap;\n flex-flow: row wrap;\n }\n .card-group > .card {\n -ms-flex: 1 0 0%;\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n -webkit-column-count: 3;\n -moz-column-count: 3;\n column-count: 3;\n -webkit-column-gap: 1.25rem;\n -moz-column-gap: 1.25rem;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.breadcrumb {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: -ms-flexbox;\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #545b62;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@-webkit-keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: -ms-flexbox;\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n -webkit-animation: progress-bar-stripes 1s linear infinite;\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.media-body {\n -ms-flex: 1;\n flex: 1;\n}\n\n.list-group {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n z-index: 1;\n text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover, .close:focus {\n color: #000;\n text-decoration: none;\n opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: -webkit-transform 0.3s ease-out;\n transition: transform 0.3s ease-out;\n transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;\n -webkit-transform: translate(0, -25%);\n transform: translate(0, -25%);\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n -webkit-transform: translate(0, 0);\n transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n position: relative;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: justify;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid #e9ecef;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: end;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-centered {\n min-height: calc(100% - (1.75rem * 2));\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n bottom: 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n bottom: 1px;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n left: 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n left: 1px;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n top: 0;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n top: 1px;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n right: 0;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n right: 1px;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n color: inherit;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n -ms-flex-align: center;\n align-items: center;\n width: 100%;\n transition: -webkit-transform 0.6s ease;\n transition: transform 0.6s ease;\n transition: transform 0.6s ease, -webkit-transform 0.6s ease;\n -webkit-backface-visibility: hidden;\n backface-visibility: hidden;\n -webkit-perspective: 1000px;\n perspective: 1000px;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n -webkit-transform: translateX(100%);\n transform: translateX(100%);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n .carousel-item-next,\n .active.carousel-item-right {\n -webkit-transform: translate3d(100%, 0, 0);\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n -webkit-transform: translateX(-100%);\n transform: translateX(-100%);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n .carousel-item-prev,\n .active.carousel-item-left {\n -webkit-transform: translate3d(-100%, 0, 0);\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-duration: .6s;\n transition-property: opacity;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n opacity: 0;\n}\n\n.carousel-fade .carousel-item-next,\n.carousel-fade .carousel-item-prev,\n.carousel-fade .carousel-item.active,\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-prev {\n -webkit-transform: translateX(0);\n transform: translateX(0);\n}\n\n@supports ((-webkit-transform-style: preserve-3d) or (transform-style: preserve-3d)) {\n .carousel-fade .carousel-item-next,\n .carousel-fade .carousel-item-prev,\n .carousel-fade .carousel-item.active,\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-prev {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n position: relative;\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators .active {\n background-color: #fff;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n}\n\n.d-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-md-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: -ms-flexbox !important;\n display: flex !important;\n }\n .d-print-inline-flex {\n display: -ms-inline-flexbox !important;\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n}\n\n.flex-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n}\n\n.justify-content-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n}\n\n.align-items-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n}\n\n.align-items-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n}\n\n.align-items-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n}\n\n.align-items-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n}\n\n.align-content-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n}\n\n.align-content-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n}\n\n.align-content-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n}\n\n.align-content-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n}\n\n.align-content-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n}\n\n.align-self-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n}\n\n.align-self-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n}\n\n.align-self-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n}\n\n.align-self-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n}\n\n.align-self-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-sm-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-sm-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-sm-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-sm-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-sm-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-sm-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-sm-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-sm-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-md-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-md-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-md-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-md-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-md-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-md-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-md-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-md-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-md-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-md-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-md-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-md-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-md-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-md-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-md-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-md-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-lg-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-lg-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-lg-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-lg-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-lg-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-lg-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-lg-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-lg-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n -ms-flex-direction: row !important;\n flex-direction: row !important;\n }\n .flex-xl-column {\n -ms-flex-direction: column !important;\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n -ms-flex-direction: row-reverse !important;\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n -ms-flex-direction: column-reverse !important;\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n -ms-flex-wrap: wrap !important;\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n -ms-flex-wrap: nowrap !important;\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n -ms-flex-wrap: wrap-reverse !important;\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n -ms-flex: 1 1 auto !important;\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n -ms-flex-positive: 0 !important;\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n -ms-flex-positive: 1 !important;\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n -ms-flex-negative: 0 !important;\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n -ms-flex-negative: 1 !important;\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n -ms-flex-pack: start !important;\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n -ms-flex-pack: end !important;\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n -ms-flex-pack: center !important;\n justify-content: center !important;\n }\n .justify-content-xl-between {\n -ms-flex-pack: justify !important;\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n -ms-flex-pack: distribute !important;\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n -ms-flex-align: start !important;\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n -ms-flex-align: end !important;\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n -ms-flex-align: center !important;\n align-items: center !important;\n }\n .align-items-xl-baseline {\n -ms-flex-align: baseline !important;\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n -ms-flex-align: stretch !important;\n align-items: stretch !important;\n }\n .align-content-xl-start {\n -ms-flex-line-pack: start !important;\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n -ms-flex-line-pack: end !important;\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n -ms-flex-line-pack: center !important;\n align-content: center !important;\n }\n .align-content-xl-between {\n -ms-flex-line-pack: justify !important;\n align-content: space-between !important;\n }\n .align-content-xl-around {\n -ms-flex-line-pack: distribute !important;\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n -ms-flex-line-pack: stretch !important;\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n -ms-flex-item-align: auto !important;\n align-self: auto !important;\n }\n .align-self-xl-start {\n -ms-flex-item-align: start !important;\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n -ms-flex-item-align: end !important;\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n -ms-flex-item-align: center !important;\n align-self: center !important;\n }\n .align-self-xl-baseline {\n -ms-flex-item-align: baseline !important;\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n -ms-flex-item-align: stretch !important;\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: -webkit-sticky !important;\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports ((position: -webkit-sticky) or (position: sticky)) {\n .sticky-top {\n position: -webkit-sticky;\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #545b62 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #1d2124 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*!\n * Bootstrap v4.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2018 The Bootstrap Authors\n * Copyright 2011-2018 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -ms-text-size-adjust: 100%;\n -ms-overflow-style: scrollbar;\n -webkit-tap-highlight-color: transparent;\n}\n\n@-ms-viewport {\n width: device-width;\n}\n\narticle, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\ndfn {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n -webkit-text-decoration-skip: objects;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]):not([tabindex]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):not([tabindex]):focus {\n outline: 0;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n -ms-overflow-style: scrollbar;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nbutton,\nhtml [type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-cancel-button,\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-family: inherit;\n font-weight: 500;\n line-height: 1.2;\n color: inherit;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014 \\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode,\nkbd,\npre,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-break: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n min-height: 1px;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-left: 8.333333%;\n}\n\n.offset-2 {\n margin-left: 16.666667%;\n}\n\n.offset-3 {\n margin-left: 25%;\n}\n\n.offset-4 {\n margin-left: 33.333333%;\n}\n\n.offset-5 {\n margin-left: 41.666667%;\n}\n\n.offset-6 {\n margin-left: 50%;\n}\n\n.offset-7 {\n margin-left: 58.333333%;\n}\n\n.offset-8 {\n margin-left: 66.666667%;\n}\n\n.offset-9 {\n margin-left: 75%;\n}\n\n.offset-10 {\n margin-left: 83.333333%;\n}\n\n.offset-11 {\n margin-left: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-left: 0;\n }\n .offset-sm-1 {\n margin-left: 8.333333%;\n }\n .offset-sm-2 {\n margin-left: 16.666667%;\n }\n .offset-sm-3 {\n margin-left: 25%;\n }\n .offset-sm-4 {\n margin-left: 33.333333%;\n }\n .offset-sm-5 {\n margin-left: 41.666667%;\n }\n .offset-sm-6 {\n margin-left: 50%;\n }\n .offset-sm-7 {\n margin-left: 58.333333%;\n }\n .offset-sm-8 {\n margin-left: 66.666667%;\n }\n .offset-sm-9 {\n margin-left: 75%;\n }\n .offset-sm-10 {\n margin-left: 83.333333%;\n }\n .offset-sm-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-left: 0;\n }\n .offset-md-1 {\n margin-left: 8.333333%;\n }\n .offset-md-2 {\n margin-left: 16.666667%;\n }\n .offset-md-3 {\n margin-left: 25%;\n }\n .offset-md-4 {\n margin-left: 33.333333%;\n }\n .offset-md-5 {\n margin-left: 41.666667%;\n }\n .offset-md-6 {\n margin-left: 50%;\n }\n .offset-md-7 {\n margin-left: 58.333333%;\n }\n .offset-md-8 {\n margin-left: 66.666667%;\n }\n .offset-md-9 {\n margin-left: 75%;\n }\n .offset-md-10 {\n margin-left: 83.333333%;\n }\n .offset-md-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-left: 0;\n }\n .offset-lg-1 {\n margin-left: 8.333333%;\n }\n .offset-lg-2 {\n margin-left: 16.666667%;\n }\n .offset-lg-3 {\n margin-left: 25%;\n }\n .offset-lg-4 {\n margin-left: 33.333333%;\n }\n .offset-lg-5 {\n margin-left: 41.666667%;\n }\n .offset-lg-6 {\n margin-left: 50%;\n }\n .offset-lg-7 {\n margin-left: 58.333333%;\n }\n .offset-lg-8 {\n margin-left: 66.666667%;\n }\n .offset-lg-9 {\n margin-left: 75%;\n }\n .offset-lg-10 {\n margin-left: 83.333333%;\n }\n .offset-lg-11 {\n margin-left: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-left: 0;\n }\n .offset-xl-1 {\n margin-left: 8.333333%;\n }\n .offset-xl-2 {\n margin-left: 16.666667%;\n }\n .offset-xl-3 {\n margin-left: 25%;\n }\n .offset-xl-4 {\n margin-left: 33.333333%;\n }\n .offset-xl-5 {\n margin-left: 41.666667%;\n }\n .offset-xl-6 {\n margin-left: 50%;\n }\n .offset-xl-7 {\n margin-left: 58.333333%;\n }\n .offset-xl-8 {\n margin-left: 66.666667%;\n }\n .offset-xl-9 {\n margin-left: 75%;\n }\n .offset-xl-10 {\n margin-left: 83.333333%;\n }\n .offset-xl-11 {\n margin-left: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: 1rem;\n background-color: transparent;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table .table {\n background-color: #fff;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #212529;\n border-color: #32383e;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #212529;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #32383e;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:not([size]):not([multiple]) {\n height: calc(2.25rem + 2px);\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n margin-bottom: 0;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .input-group-sm > .form-control-plaintext.form-control,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-sm > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-sm > .input-group-append > .form-control-plaintext.btn, .form-control-plaintext.form-control-lg, .input-group-lg > .form-control-plaintext.form-control,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-append > .form-control-plaintext.input-group-text,\n.input-group-lg > .input-group-prepend > .form-control-plaintext.btn,\n.input-group-lg > .input-group-append > .form-control-plaintext.btn {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm, .input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\nselect.form-control-sm:not([size]):not([multiple]), .input-group-sm > select.form-control:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-sm > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-sm > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(1.8125rem + 2px);\n}\n\n.form-control-lg, .input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control-lg:not([size]):not([multiple]), .input-group-lg > select.form-control:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.input-group-text:not([size]):not([multiple]),\n.input-group-lg > .input-group-prepend > select.btn:not([size]):not([multiple]),\n.input-group-lg > .input-group-append > select.btn:not([size]):not([multiple]) {\n height: calc(2.875rem + 2px);\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid, .was-validated\n.custom-select:valid,\n.custom-select.is-valid {\n border-color: #28a745;\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus, .was-validated\n.custom-select:valid:focus,\n.custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-control:valid ~ .valid-feedback,\n.was-validated .form-control:valid ~ .valid-tooltip, .form-control.is-valid ~ .valid-feedback,\n.form-control.is-valid ~ .valid-tooltip, .was-validated\n.custom-select:valid ~ .valid-feedback,\n.was-validated\n.custom-select:valid ~ .valid-tooltip,\n.custom-select.is-valid ~ .valid-feedback,\n.custom-select.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n background-color: #71dd8a;\n}\n\n.was-validated .custom-control-input:valid ~ .valid-feedback,\n.was-validated .custom-control-input:valid ~ .valid-tooltip, .custom-control-input.is-valid ~ .valid-feedback,\n.custom-control-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label::before, .custom-file-input.is-valid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:valid ~ .valid-feedback,\n.was-validated .custom-file-input:valid ~ .valid-tooltip, .custom-file-input.is-valid ~ .valid-feedback,\n.custom-file-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.8);\n border-radius: .2rem;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated\n.custom-select:invalid,\n.custom-select.is-invalid {\n border-color: #dc3545;\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus, .was-validated\n.custom-select:invalid:focus,\n.custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-control:invalid ~ .invalid-feedback,\n.was-validated .form-control:invalid ~ .invalid-tooltip, .form-control.is-invalid ~ .invalid-feedback,\n.form-control.is-invalid ~ .invalid-tooltip, .was-validated\n.custom-select:invalid ~ .invalid-feedback,\n.was-validated\n.custom-select:invalid ~ .invalid-tooltip,\n.custom-select.is-invalid ~ .invalid-feedback,\n.custom-select.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n background-color: #efa2a9;\n}\n\n.was-validated .custom-control-input:invalid ~ .invalid-feedback,\n.was-validated .custom-control-input:invalid ~ .invalid-tooltip, .custom-control-input.is-invalid ~ .invalid-feedback,\n.custom-control-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label::before, .custom-file-input.is-invalid ~ .custom-file-label::before {\n border-color: inherit;\n}\n\n.was-validated .custom-file-input:invalid ~ .invalid-feedback,\n.was-validated .custom-file-input:invalid ~ .invalid-tooltip, .custom-file-input.is-invalid ~ .invalid-feedback,\n.custom-file-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover, .btn:focus {\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\n.btn:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {\n background-image: none;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n background-color: transparent;\n background-image: none;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n background-color: transparent;\n background-image: none;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n background-color: transparent;\n background-image: none;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n background-color: transparent;\n background-image: none;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n background-color: transparent;\n background-image: none;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n background-color: transparent;\n background-image: none;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n background-color: transparent;\n background-image: none;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n background-color: transparent;\n background-image: none;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n background-color: transparent;\n border-color: transparent;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n border-color: transparent;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 0 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group,\n.btn-group-vertical .btn + .btn,\n.btn-group-vertical .btn + .btn-group,\n.btn-group-vertical .btn-group + .btn,\n.btn-group-vertical .btn-group + .btn-group {\n margin-left: -1px;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:first-child {\n margin-left: 0;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical .btn,\n.btn-group-vertical .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n margin-top: -1px;\n margin-left: 0;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 auto;\n width: 1%;\n margin-bottom: 0;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file:focus {\n z-index: 3;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label,\n.input-group > .custom-file:not(:first-child) .custom-file-label::after {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n}\n\n.custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n margin-bottom: 0;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n user-select: none;\n background-color: #dee2e6;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: 0;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::before {\n background-color: #007bff;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\") no-repeat right 0.75rem center;\n background-size: 8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.075), 0 0 5px rgba(128, 189, 255, 0.5);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n opacity: 0;\n}\n\n.custom-select-sm {\n height: calc(1.8125rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 75%;\n}\n\n.custom-select-lg {\n height: calc(2.875rem + 2px);\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 125%;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(2.25rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input:focus ~ .custom-file-label::after {\n border-color: #80bdff;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(2.25rem + 2px);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(calc(2.25rem + 2px) - 1px * 2);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: 1px solid #ced4da;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n padding-left: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n appearance: none;\n}\n\n.custom-range::-webkit-slider-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n appearance: none;\n}\n\n.custom-range::-moz-range-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n appearance: none;\n}\n\n.custom-range::-ms-thumb:focus {\n outline: none;\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar > .container,\n.navbar > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img {\n width: 100%;\n border-radius: calc(0.25rem - 1px);\n}\n\n.card-img-top {\n width: 100%;\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img-bottom {\n width: 100%;\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck {\n display: flex;\n flex-direction: column;\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n display: flex;\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group {\n display: flex;\n flex-direction: column;\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:first-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-top,\n .card-group > .card:first-child .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:first-child .card-img-bottom,\n .card-group > .card:first-child .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:last-child {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-top,\n .card-group > .card:last-child .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:last-child .card-img-bottom,\n .card-group > .card:last-child .card-footer {\n border-bottom-left-radius: 0;\n }\n .card-group > .card:only-child {\n border-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-top,\n .card-group > .card:only-child .card-header {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n }\n .card-group > .card:only-child .card-img-bottom,\n .card-group > .card:only-child .card-footer {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {\n border-radius: 0;\n }\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,\n .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {\n border-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n}\n\n.accordion .card:not(:first-of-type) .card-header:first-child {\n border-radius: 0;\n}\n\n.accordion .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 2;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-link:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 1;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\n.badge-primary[href]:hover, .badge-primary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #0062cc;\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\n.badge-secondary[href]:hover, .badge-secondary[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #545b62;\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\n.badge-success[href]:hover, .badge-success[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1e7e34;\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\n.badge-info[href]:hover, .badge-info[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #117a8b;\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\n.badge-warning[href]:hover, .badge-warning[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #d39e00;\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\n.badge-danger[href]:hover, .badge-danger[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #bd2130;\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\n.badge-light[href]:hover, .badge-light[href]:focus {\n color: #212529;\n text-decoration: none;\n background-color: #dae0e5;\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.badge-dark[href]:hover, .badge-dark[href]:focus {\n color: #fff;\n text-decoration: none;\n background-color: #1d2124;\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n margin-bottom: -1px;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n margin-bottom: 0;\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item:hover, .list-group-item:focus {\n z-index: 1;\n text-decoration: none;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-flush .list-group-item {\n border-right: 0;\n border-left: 0;\n border-radius: 0;\n}\n\n.list-group-flush:first-child .list-group-item:first-child {\n border-top: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover, .close:focus {\n color: #000;\n text-decoration: none;\n opacity: .75;\n}\n\n.close:not(:disabled):not(.disabled) {\n cursor: pointer;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1050;\n display: none;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -25%);\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: translate(0, 0);\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (0.5rem * 2));\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1040;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem;\n border-bottom: 1px solid #e9ecef;\n border-top-left-radius: 0.3rem;\n border-top-right-radius: 0.3rem;\n}\n\n.modal-header .close {\n padding: 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 1rem;\n border-top: 1px solid #e9ecef;\n}\n\n.modal-footer > :not(:first-child) {\n margin-left: .25rem;\n}\n\n.modal-footer > :not(:last-child) {\n margin-right: .25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-centered {\n min-height: calc(100% - (1.75rem * 2));\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg {\n max-width: 800px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top .arrow, .bs-popover-auto[x-placement^=\"top\"] .arrow {\n bottom: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before,\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0;\n}\n\n.bs-popover-top .arrow::before, .bs-popover-auto[x-placement^=\"top\"] .arrow::before {\n bottom: 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top .arrow::after, .bs-popover-auto[x-placement^=\"top\"] .arrow::after {\n bottom: 1px;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right .arrow, .bs-popover-auto[x-placement^=\"right\"] .arrow {\n left: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before,\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n border-width: 0.5rem 0.5rem 0.5rem 0;\n}\n\n.bs-popover-right .arrow::before, .bs-popover-auto[x-placement^=\"right\"] .arrow::before {\n left: 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right .arrow::after, .bs-popover-auto[x-placement^=\"right\"] .arrow::after {\n left: 1px;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom .arrow, .bs-popover-auto[x-placement^=\"bottom\"] .arrow {\n top: calc((0.5rem + 1px) * -1);\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before,\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n border-width: 0 0.5rem 0.5rem 0.5rem;\n}\n\n.bs-popover-bottom .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::before {\n top: 0;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] .arrow::after {\n top: 1px;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left .arrow, .bs-popover-auto[x-placement^=\"left\"] .arrow {\n right: calc((0.5rem + 1px) * -1);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before,\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n border-width: 0.5rem 0 0.5rem 0.5rem;\n}\n\n.bs-popover-left .arrow::before, .bs-popover-auto[x-placement^=\"left\"] .arrow::before {\n right: 0;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left .arrow::after, .bs-popover-auto[x-placement^=\"left\"] .arrow::after {\n right: 1px;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n color: inherit;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n transition: transform 0.6s ease;\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n@media screen and (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-next,\n .active.carousel-item-right {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-item-prev,\n .active.carousel-item-left {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-duration: .6s;\n transition-property: opacity;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n opacity: 0;\n}\n\n.carousel-fade .carousel-item-next,\n.carousel-fade .carousel-item-prev,\n.carousel-fade .carousel-item.active,\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-prev {\n transform: translateX(0);\n}\n\n@supports (transform-style: preserve-3d) {\n .carousel-fade .carousel-item-next,\n .carousel-fade .carousel-item-prev,\n .carousel-fade .carousel-item.active,\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-prev {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n position: relative;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.carousel-indicators li::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators li::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n}\n\n.carousel-indicators .active {\n background-color: #fff;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0062cc !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #545b62 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #1e7e34 !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #117a8b !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #d39e00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #bd2130 !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #dae0e5 !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #1d2124 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap.css.map */","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Origally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular psuedo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover {\n &:hover { @content; }\n}\n\n@mixin hover-focus {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { font-size: $h1-font-size; }\nh2, .h2 { font-size: $h2-font-size; }\nh3, .h3 { font-size: $h3-font-size; }\nh4, .h4 { font-size: $h4-font-size; }\nh5, .h5 { font-size: $h5-font-size; }\nh6, .h6 { font-size: $h6-font-size; }\n\n.lead {\n font-size: $lead-font-size;\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n font-size: $display1-size;\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n font-size: $display2-size;\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n font-size: $display3-size;\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n font-size: $display4-size;\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n font-size: $small-font-size;\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled;\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n font-size: $blockquote-font-size;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%; // back to default font-size\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014 \\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all `<img>`s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid;\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid;\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: ($spacer / 2);\n line-height: 1;\n}\n\n.figure-caption {\n font-size: $figure-caption-font-size;\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n// stylelint-disable indentation, media-query-list-comma-newline-after\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n}\n","// Single side border-radius\n\n@mixin border-radius($radius: $border-radius) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n font-family: $font-family-monospace;\n}\n\n// Inline code\ncode {\n font-size: $code-font-size;\n color: $code-color;\n word-break: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n font-size: $kbd-font-size;\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n font-size: 100%;\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n font-size: $code-font-size;\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n}\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but with 100% width for\n// fluid, full width layouts.\n\n@if $enable-grid-classes {\n .container-fluid {\n @include make-container();\n }\n}\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container() {\n width: 100%;\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n margin-right: auto;\n margin-left: auto;\n}\n\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row() {\n display: flex;\n flex-wrap: wrap;\n margin-right: ($grid-gutter-width / -2);\n margin-left: ($grid-gutter-width / -2);\n}\n\n@mixin make-col-ready() {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n min-height: 1px; // Prevent collapsing\n padding-right: ($grid-gutter-width / 2);\n padding-left: ($grid-gutter-width / 2);\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-left: if($num == 0, 0, percentage($num));\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash infront.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n min-height: 1px; // Prevent columns from collapsing when empty\n padding-right: ($gutter / 2);\n padding-left: ($gutter / 2);\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .col#{$infix}-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: none; // Reset earlier grid tiers\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n max-width: 100%;\n margin-bottom: $spacer;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n\n .table {\n background-color: $body-bg;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: (2 * $table-border-width);\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, -9));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(odd) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover {\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n padding: $input-padding-y $input-padding-x;\n font-size: $font-size-base;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on <select>s in some browsers, due to the limited stylability of `<select>`s in CSS.\n @if $enable-rounded {\n // Manually use the if/else instead of the mixin to account for iOS override\n border-radius: $input-border-radius;\n } @else {\n // Otherwise undo the iOS default\n border-radius: 0;\n }\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on `<select>`s in IE10+.\n &::-ms-expand {\n background-color: transparent;\n border: 0;\n }\n\n // Customize the `:focus` state to imitate native WebKit styles.\n @include form-control-focus();\n\n // Placeholder\n &::placeholder {\n color: $input-placeholder-color;\n // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526.\n opacity: 1;\n }\n\n // Disabled and read-only inputs\n //\n // HTML5 says that controls under a fieldset > legend:first-child won't be\n // disabled if the fieldset is disabled. Due to implementation difficulty, we\n // don't honor that edge case; we style them as disabled anyway.\n &:disabled,\n &[readonly] {\n background-color: $input-disabled-bg;\n // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655.\n opacity: 1;\n }\n}\n\nselect.form-control {\n &:not([size]):not([multiple]) {\n height: $input-height;\n }\n\n &:focus::-ms-value {\n // Suppress the nested default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: calc(#{$input-padding-y} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y} + #{$input-border-width});\n margin-bottom: 0; // Override the `<label>/<legend>` default\n font-size: inherit; // Override the `<legend>` default\n line-height: $input-line-height;\n}\n\n.col-form-label-lg {\n padding-top: calc(#{$input-padding-y-lg} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-lg} + #{$input-border-width});\n font-size: $font-size-lg;\n line-height: $input-line-height-lg;\n}\n\n.col-form-label-sm {\n padding-top: calc(#{$input-padding-y-sm} + #{$input-border-width});\n padding-bottom: calc(#{$input-padding-y-sm} + #{$input-border-width});\n font-size: $font-size-sm;\n line-height: $input-line-height-sm;\n}\n\n\n// Readonly controls as plain text\n//\n// Apply class to a readonly input to make it appear like regular plain\n// text (without any border, background color, focus indicator)\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding-top: $input-padding-y;\n padding-bottom: $input-padding-y;\n margin-bottom: 0; // match inputs if this class comes on inputs with default margins\n line-height: $input-line-height;\n color: $input-plaintext-color;\n background-color: transparent;\n border: solid transparent;\n border-width: $input-border-width 0;\n\n &.form-control-sm,\n &.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.form-control-sm {\n padding: $input-padding-y-sm $input-padding-x-sm;\n font-size: $font-size-sm;\n line-height: $input-line-height-sm;\n @include border-radius($input-border-radius-sm);\n}\n\nselect.form-control-sm {\n &:not([size]):not([multiple]) {\n height: $input-height-sm;\n }\n}\n\n.form-control-lg {\n padding: $input-padding-y-lg $input-padding-x-lg;\n font-size: $font-size-lg;\n line-height: $input-line-height-lg;\n @include border-radius($input-border-radius-lg);\n}\n\nselect.form-control-lg {\n &:not([size]):not([multiple]) {\n height: $input-height-lg;\n }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n margin-bottom: $form-group-margin-bottom;\n}\n\n.form-text {\n display: block;\n margin-top: $form-text-margin-top;\n}\n\n\n// Form grid\n//\n// Special replacement for our grid system's `.row` for tighter form layouts.\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n }\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.form-check {\n position: relative;\n display: block;\n padding-left: $form-check-input-gutter;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: $form-check-input-margin-y;\n margin-left: -$form-check-input-gutter;\n\n &:disabled ~ .form-check-label {\n color: $text-muted;\n }\n}\n\n.form-check-label {\n margin-bottom: 0; // Override default `<label>` bottom margin\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0; // Override base .form-check\n margin-right: $form-check-inline-margin-x;\n\n // Undo .form-check-input defaults and add some `margin-right`.\n .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: $form-check-inline-input-margin-x;\n margin-left: 0;\n }\n}\n\n\n// Form validation\n//\n// Provide feedback to users when form field values are valid or invalid. Works\n// primarily for client-side validation via scoped `:invalid` and `:valid`\n// pseudo-classes but also includes `.is-invalid` and `.is-valid` classes for\n// server side validation.\n\n@include form-validation-state(\"valid\", $form-feedback-valid-color);\n@include form-validation-state(\"invalid\", $form-feedback-invalid-color);\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center; // Prevent shorter elements from growing to same height as others (e.g., small buttons growing to normal sized button height)\n\n // Because we use flex, the initial sizing of checkboxes is collapsed and\n // doesn't occupy the full-width (which is what we want for xs grid tier),\n // so we force that here.\n .form-check {\n width: 100%;\n }\n\n // Kick in the inline\n @include media-breakpoint-up(sm) {\n label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n\n // Inline-block all the things for \"inline\"\n .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n\n // Allow folks to *not* use `.form-group`\n .form-control {\n display: inline-block;\n width: auto; // Prevent labels from stacking above inputs in `.form-group`\n vertical-align: middle;\n }\n\n // Make static controls behave like regular ones\n .form-control-plaintext {\n display: inline-block;\n }\n\n .input-group,\n .custom-select {\n width: auto;\n }\n\n // Remove default margin on radios/checkboxes that were used for stacking, and\n // then undo the floating of radios and checkboxes to match.\n .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-check-input {\n position: relative;\n margin-top: 0;\n margin-right: $form-check-input-margin-x;\n margin-left: 0;\n }\n\n .custom-control {\n align-items: center;\n justify-content: center;\n }\n .custom-control-label {\n margin-bottom: 0;\n }\n }\n}\n","@mixin transition($transition...) {\n @if $enable-transitions {\n @if length($transition) == 0 {\n transition: $transition-base;\n } @else {\n transition: $transition;\n }\n }\n\n @media screen and (prefers-reduced-motion: reduce) {\n transition: none;\n }\n}\n","// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `$input-focus-border-color` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n@mixin form-control-focus() {\n &:focus {\n color: $input-focus-color;\n background-color: $input-focus-bg;\n border-color: $input-focus-border-color;\n outline: 0;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $input-box-shadow, $input-focus-box-shadow;\n } @else {\n box-shadow: $input-focus-box-shadow;\n }\n }\n}\n\n\n@mixin form-validation-state($state, $color) {\n .#{$state}-feedback {\n display: none;\n width: 100%;\n margin-top: $form-feedback-margin-top;\n font-size: $form-feedback-font-size;\n color: $color;\n }\n\n .#{$state}-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%; // Contain to parent when possible\n padding: .5rem;\n margin-top: .1rem;\n font-size: .875rem;\n line-height: 1;\n color: $white;\n background-color: rgba($color, .8);\n border-radius: .2rem;\n }\n\n .form-control,\n .custom-select {\n .was-validated &:#{$state},\n &.is-#{$state} {\n border-color: $color;\n\n &:focus {\n border-color: $color;\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .form-check-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .form-check-label {\n color: $color;\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n }\n }\n\n .custom-control-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-control-label {\n color: $color;\n\n &::before {\n background-color: lighten($color, 25%);\n }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:checked {\n ~ .custom-control-label::before {\n @include gradient-bg(lighten($color, 10%));\n }\n }\n\n &:focus {\n ~ .custom-control-label::before {\n box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n\n // custom file\n .custom-file-input {\n .was-validated &:#{$state},\n &.is-#{$state} {\n ~ .custom-file-label {\n border-color: $color;\n\n &::before { border-color: inherit; }\n }\n\n ~ .#{$state}-feedback,\n ~ .#{$state}-tooltip {\n display: block;\n }\n\n &:focus {\n ~ .custom-file-label {\n box-shadow: 0 0 0 $input-focus-width rgba($color, .25);\n }\n }\n }\n }\n}\n","// Gradients\n\n@mixin gradient-bg($color) {\n @if $enable-gradients {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;\n } @else {\n background-color: $color;\n }\n}\n\n// Horizontal gradient, from left to right\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n// Vertical gradient, from top to bottom\n//\n// Creates two color stops, start and end, by specifying a color and position for each color stop.\n@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {\n background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);\n background-repeat: repeat-x;\n}\n\n@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {\n background-image: linear-gradient($deg, $start-color, $end-color);\n background-repeat: repeat-x;\n}\n@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {\n background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {\n background-image: radial-gradient(circle, $inner-color, $outer-color);\n background-repeat: no-repeat;\n}\n@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {\n background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.btn {\n display: inline-block;\n font-weight: $btn-font-weight;\n text-align: center;\n white-space: nowrap;\n vertical-align: middle;\n user-select: none;\n border: $btn-border-width solid transparent;\n @include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius);\n @include transition($btn-transition);\n\n // Share hover and focus styles\n @include hover-focus {\n text-decoration: none;\n }\n\n &:focus,\n &.focus {\n outline: 0;\n box-shadow: $btn-focus-box-shadow;\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n opacity: $btn-disabled-opacity;\n @include box-shadow(none);\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .btn elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active {\n background-image: none;\n @include box-shadow($btn-active-box-shadow);\n\n &:focus {\n @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);\n }\n }\n}\n\n// Future-proof disabling of clicks on `<a>` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n background-color: transparent;\n\n @include hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n background-color: transparent;\n border-color: transparent;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n border-color: transparent;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n background-color: transparent;\n background-image: none;\n border-color: $color;\n\n &:hover {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @if $enable-rounded {\n border-radius: $border-radius;\n } @else {\n border-radius: 0;\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n.fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`<div>`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n // Generate the caret automatically\n @include caret;\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n font-size: $font-size-base; // Redeclare because nesting can cause inheritance issues\n color: $body-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n// stylelint-enable no-duplicate-selectors\n\n// Dividers (basically an `<hr>`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `<button>`-specific styles are denoted with `// For <button>s`\n.dropdown-item {\n display: block;\n width: 100%; // For `<button>`s\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n clear: both;\n font-weight: $font-weight-normal;\n color: $dropdown-link-color;\n text-align: inherit; // For `<button>`s\n white-space: nowrap; // prevent links from randomly breaking onto new lines\n background-color: transparent; // For `<button>`s\n border: 0; // For `<button>`s\n\n @include hover-focus {\n color: $dropdown-link-hover-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-hover-bg);\n }\n\n &.active,\n &:active {\n color: $dropdown-link-active-color;\n text-decoration: none;\n @include gradient-bg($dropdown-link-active-bg);\n }\n\n &.disabled,\n &:disabled {\n color: $dropdown-link-disabled-color;\n background-color: transparent;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n// Dropdown section headers\n.dropdown-header {\n display: block;\n padding: $dropdown-padding-y $dropdown-item-padding-x;\n margin-bottom: 0; // for use with heading elements\n font-size: $font-size-sm;\n color: $dropdown-header-color;\n white-space: nowrap; // as with > li > a\n}\n\n// Dropdown text\n.dropdown-item-text {\n display: block;\n padding: $dropdown-item-padding-y $dropdown-item-padding-x;\n color: $dropdown-link-color;\n}\n","@mixin caret-down {\n border-top: $caret-width solid;\n border-right: $caret-width solid transparent;\n border-bottom: 0;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-up {\n border-top: 0;\n border-right: $caret-width solid transparent;\n border-bottom: $caret-width solid;\n border-left: $caret-width solid transparent;\n}\n\n@mixin caret-right {\n border-top: $caret-width solid transparent;\n border-right: 0;\n border-bottom: $caret-width solid transparent;\n border-left: $caret-width solid;\n}\n\n@mixin caret-left {\n border-top: $caret-width solid transparent;\n border-right: $caret-width solid;\n border-bottom: $caret-width solid transparent;\n}\n\n@mixin caret($direction: down) {\n @if $enable-caret {\n &::after {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @if $direction == down {\n @include caret-down;\n } @else if $direction == up {\n @include caret-up;\n } @else if $direction == right {\n @include caret-right;\n }\n }\n\n @if $direction == left {\n &::after {\n display: none;\n }\n\n &::before {\n display: inline-block;\n width: 0;\n height: 0;\n margin-right: $caret-width * .85;\n vertical-align: $caret-width * .85;\n content: \"\";\n @include caret-left;\n }\n }\n\n &:empty::after {\n margin-left: 0;\n }\n }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {\n height: 0;\n margin: $margin-y 0;\n overflow: hidden;\n border-top: 1px solid $color;\n}\n","// stylelint-disable selector-no-qualifying-type\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle; // match .btn alignment given font-size hack above\n\n > .btn {\n position: relative;\n flex: 0 1 auto;\n\n // Bring the hover, focused, and \"active\" buttons to the front to overlay\n // the borders properly\n @include hover {\n z-index: 1;\n }\n &:focus,\n &:active,\n &.active {\n z-index: 1;\n }\n }\n\n // Prevent double borders when buttons are next to each other\n .btn + .btn,\n .btn + .btn-group,\n .btn-group + .btn,\n .btn-group + .btn-group {\n margin-left: -$btn-border-width;\n }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n\n .input-group {\n width: auto;\n }\n}\n\n.btn-group {\n > .btn:first-child {\n margin-left: 0;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-right-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-left-radius(0);\n }\n}\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-sm > .btn { @extend .btn-sm; }\n.btn-group-lg > .btn { @extend .btn-lg; }\n\n\n//\n// Split button dropdowns\n//\n\n.dropdown-toggle-split {\n padding-right: $btn-padding-x * .75;\n padding-left: $btn-padding-x * .75;\n\n &::after,\n .dropup &::after,\n .dropright &::after {\n margin-left: 0;\n }\n\n .dropleft &::before {\n margin-right: 0;\n }\n}\n\n.btn-sm + .dropdown-toggle-split {\n padding-right: $btn-padding-x-sm * .75;\n padding-left: $btn-padding-x-sm * .75;\n}\n\n.btn-lg + .dropdown-toggle-split {\n padding-right: $btn-padding-x-lg * .75;\n padding-left: $btn-padding-x-lg * .75;\n}\n\n\n// The clickable button for toggling the menu\n// Set the same inset shadow as the :active state\n.btn-group.show .dropdown-toggle {\n @include box-shadow($btn-active-box-shadow);\n\n // Show no shadow for `.btn-link` since it has no other button styles.\n &.btn-link {\n @include box-shadow(none);\n }\n}\n\n\n//\n// Vertical button groups\n//\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n\n .btn,\n .btn-group {\n width: 100%;\n }\n\n > .btn + .btn,\n > .btn + .btn-group,\n > .btn-group + .btn,\n > .btn-group + .btn-group {\n margin-top: -$btn-border-width;\n margin-left: 0;\n }\n\n // Reset rounded corners\n > .btn:not(:last-child):not(.dropdown-toggle),\n > .btn-group:not(:last-child) > .btn {\n @include border-bottom-radius(0);\n }\n\n > .btn:not(:first-child),\n > .btn-group:not(:first-child) > .btn {\n @include border-top-radius(0);\n }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n.btn-group-toggle {\n > .btn,\n > .btn-group > .btn {\n margin-bottom: 0; // Override default `<label>` value\n\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n }\n }\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Base styles\n//\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap; // For form validation feedback\n align-items: stretch;\n width: 100%;\n\n > .form-control,\n > .custom-select,\n > .custom-file {\n position: relative; // For focus state's z-index\n flex: 1 1 auto;\n // Add width 1% and flex-basis auto to ensure that button will not wrap out\n // the column. Applies to IE Edge+ and Firefox. Chrome does not require this.\n width: 1%;\n margin-bottom: 0;\n\n // Bring the \"active\" form control to the top of surrounding elements\n &:focus {\n z-index: 3;\n }\n\n + .form-control,\n + .custom-select,\n + .custom-file {\n margin-left: -$input-border-width;\n }\n }\n\n > .form-control,\n > .custom-select {\n &:not(:last-child) { @include border-right-radius(0); }\n &:not(:first-child) { @include border-left-radius(0); }\n }\n\n // Custom file inputs have more complex markup, thus requiring different\n // border-radius overrides.\n > .custom-file {\n display: flex;\n align-items: center;\n\n &:not(:last-child) .custom-file-label,\n &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }\n &:not(:first-child) .custom-file-label,\n &:not(:first-child) .custom-file-label::after { @include border-left-radius(0); }\n }\n}\n\n\n// Prepend and append\n//\n// While it requires one extra layer of HTML for each, dedicated prepend and\n// append elements allow us to 1) be less clever, 2) simplify our selectors, and\n// 3) support HTML5 form validation.\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n\n // Ensure buttons are always above inputs for more visually pleasing borders.\n // This isn't needed for `.input-group-text` since it shares the same border-color\n // as our inputs.\n .btn {\n position: relative;\n z-index: 2;\n }\n\n .btn + .btn,\n .btn + .input-group-text,\n .input-group-text + .input-group-text,\n .input-group-text + .btn {\n margin-left: -$input-border-width;\n }\n}\n\n.input-group-prepend { margin-right: -$input-border-width; }\n.input-group-append { margin-left: -$input-border-width; }\n\n\n// Textual addons\n//\n// Serves as a catch-all element for any text or radio/checkbox input you wish\n// to prepend or append to an input.\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: $input-padding-y $input-padding-x;\n margin-bottom: 0; // Allow use of <label> elements by overriding our default margin-bottom\n font-size: $font-size-base; // Match inputs\n font-weight: $font-weight-normal;\n line-height: $input-line-height;\n color: $input-group-addon-color;\n text-align: center;\n white-space: nowrap;\n background-color: $input-group-addon-bg;\n border: $input-border-width solid $input-group-addon-border-color;\n @include border-radius($input-border-radius);\n\n // Nuke default margins from checkboxes and radios to vertically center within.\n input[type=\"radio\"],\n input[type=\"checkbox\"] {\n margin-top: 0;\n }\n}\n\n\n// Sizing\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n @extend .form-control-lg;\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n @extend .form-control-sm;\n}\n\n\n// Prepend and append rounded corners\n//\n// These rulesets must come after the sizing ones to properly override sm and lg\n// border-radius values when extending. They're more specific than we'd like\n// with the `.input-group >` part, but without it, we cannot override the sizing.\n\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n @include border-right-radius(0);\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n @include border-left-radius(0);\n}\n","// Embedded icons from Open Iconic.\n// Released under MIT and copyright 2014 Waybury.\n// https://useiconic.com/open\n\n\n// Checkboxes and radios\n//\n// Base class takes care of all the key behavioral aspects.\n\n.custom-control {\n position: relative;\n display: block;\n min-height: (1rem * $line-height-base);\n padding-left: $custom-control-gutter;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: $custom-control-spacer-x;\n}\n\n.custom-control-input {\n position: absolute;\n z-index: -1; // Put the input behind the label so it doesn't overlay text\n opacity: 0;\n\n &:checked ~ .custom-control-label::before {\n color: $custom-control-indicator-checked-color;\n @include gradient-bg($custom-control-indicator-checked-bg);\n @include box-shadow($custom-control-indicator-checked-box-shadow);\n }\n\n &:focus ~ .custom-control-label::before {\n // the mixin is not used here to make sure there is feedback\n box-shadow: $custom-control-indicator-focus-box-shadow;\n }\n\n &:active ~ .custom-control-label::before {\n color: $custom-control-indicator-active-color;\n background-color: $custom-control-indicator-active-bg;\n @include box-shadow($custom-control-indicator-active-box-shadow);\n }\n\n &:disabled {\n ~ .custom-control-label {\n color: $custom-control-label-disabled-color;\n\n &::before {\n background-color: $custom-control-indicator-disabled-bg;\n }\n }\n }\n}\n\n// Custom control indicators\n//\n// Build the custom controls out of psuedo-elements.\n\n.custom-control-label {\n margin-bottom: 0;\n\n // Background-color and (when enabled) gradient\n &::before {\n position: absolute;\n top: (($line-height-base - $custom-control-indicator-size) / 2);\n left: 0;\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n pointer-events: none;\n content: \"\";\n user-select: none;\n background-color: $custom-control-indicator-bg;\n @include box-shadow($custom-control-indicator-box-shadow);\n }\n\n // Foreground (icon)\n &::after {\n position: absolute;\n top: (($line-height-base - $custom-control-indicator-size) / 2);\n left: 0;\n display: block;\n width: $custom-control-indicator-size;\n height: $custom-control-indicator-size;\n content: \"\";\n background-repeat: no-repeat;\n background-position: center center;\n background-size: $custom-control-indicator-bg-size;\n }\n}\n\n\n// Checkboxes\n//\n// Tweak just a few things for checkboxes.\n\n.custom-checkbox {\n .custom-control-label::before {\n @include border-radius($custom-checkbox-indicator-border-radius);\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-control-indicator-checked-bg);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-checked;\n }\n }\n\n .custom-control-input:indeterminate ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);\n @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);\n }\n &::after {\n background-image: $custom-checkbox-indicator-icon-indeterminate;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n &:indeterminate ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n// Radios\n//\n// Tweak just a few things for radios.\n\n.custom-radio {\n .custom-control-label::before {\n border-radius: $custom-radio-indicator-border-radius;\n }\n\n .custom-control-input:checked ~ .custom-control-label {\n &::before {\n @include gradient-bg($custom-control-indicator-checked-bg);\n }\n &::after {\n background-image: $custom-radio-indicator-icon-checked;\n }\n }\n\n .custom-control-input:disabled {\n &:checked ~ .custom-control-label::before {\n background-color: $custom-control-indicator-checked-disabled-bg;\n }\n }\n}\n\n\n// Select\n//\n// Replaces the browser default select with a custom one, mostly pulled from\n// https://primer.github.io/.\n//\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: $custom-select-height;\n padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;\n line-height: $custom-select-line-height;\n color: $custom-select-color;\n vertical-align: middle;\n background: $custom-select-bg $custom-select-indicator no-repeat right $custom-select-padding-x center;\n background-size: $custom-select-bg-size;\n border: $custom-select-border-width solid $custom-select-border-color;\n @if $enable-rounded {\n border-radius: $custom-select-border-radius;\n } @else {\n border-radius: 0;\n }\n appearance: none;\n\n &:focus {\n border-color: $custom-select-focus-border-color;\n outline: 0;\n box-shadow: $custom-select-focus-box-shadow;\n\n &::-ms-value {\n // For visual consistency with other platforms/browsers,\n // suppress the default white text on blue background highlight given to\n // the selected option text when the (still closed) <select> receives focus\n // in IE and (under certain conditions) Edge.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n }\n\n &[multiple],\n &[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: $custom-select-padding-x;\n background-image: none;\n }\n\n &:disabled {\n color: $custom-select-disabled-color;\n background-color: $custom-select-disabled-bg;\n }\n\n // Hides the default caret in IE11\n &::-ms-expand {\n opacity: 0;\n }\n}\n\n.custom-select-sm {\n height: $custom-select-height-sm;\n padding-top: $custom-select-padding-y;\n padding-bottom: $custom-select-padding-y;\n font-size: $custom-select-font-size-sm;\n}\n\n.custom-select-lg {\n height: $custom-select-height-lg;\n padding-top: $custom-select-padding-y;\n padding-bottom: $custom-select-padding-y;\n font-size: $custom-select-font-size-lg;\n}\n\n\n// File\n//\n// Custom file input.\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: $custom-file-height;\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: $custom-file-height;\n margin: 0;\n opacity: 0;\n\n &:focus ~ .custom-file-label {\n border-color: $custom-file-focus-border-color;\n box-shadow: $custom-file-focus-box-shadow;\n\n &::after {\n border-color: $custom-file-focus-border-color;\n }\n }\n\n @each $lang, $value in $custom-file-text {\n &:lang(#{$lang}) ~ .custom-file-label::after {\n content: $value;\n }\n }\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: $custom-file-height;\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-color;\n background-color: $custom-file-bg;\n border: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius($custom-file-border-radius);\n @include box-shadow($custom-file-box-shadow);\n\n &::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(#{$custom-file-height} - #{$custom-file-border-width} * 2);\n padding: $custom-file-padding-y $custom-file-padding-x;\n line-height: $custom-file-line-height;\n color: $custom-file-button-color;\n content: \"Browse\";\n @include gradient-bg($custom-file-button-bg);\n border-left: $custom-file-border-width solid $custom-file-border-color;\n @include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);\n }\n}\n\n// Range\n//\n// Style range inputs the same across browsers. Vendor-specific rules for psuedo\n// elements cannot be mixed. As such, there are no shared styles for focus or\n// active states on prefixed selectors.\n\n.custom-range {\n width: 100%;\n padding-left: 0; // Firefox specific\n background-color: transparent;\n appearance: none;\n\n &:focus {\n outline: none;\n }\n\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-webkit-slider-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n margin-top: -($custom-range-thumb-width * .25); // Webkit specific?\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n appearance: none;\n\n &:focus {\n outline: none;\n box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n }\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-webkit-slider-runnable-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent; // Why?\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent;\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-moz-range-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n appearance: none;\n\n &:focus {\n outline: none;\n box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n }\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-moz-range-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: $custom-range-track-bg;\n border-color: transparent; // Firefox specific?\n @include border-radius($custom-range-track-border-radius);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-thumb {\n width: $custom-range-thumb-width;\n height: $custom-range-thumb-height;\n @include gradient-bg($custom-range-thumb-bg);\n border: $custom-range-thumb-border;\n @include border-radius($custom-range-thumb-border-radius);\n @include box-shadow($custom-range-thumb-box-shadow);\n appearance: none;\n\n &:focus {\n outline: none;\n box-shadow: $custom-range-thumb-focus-box-shadow; // No mixin for focus accessibility\n }\n\n &:active {\n @include gradient-bg($custom-range-thumb-active-bg);\n }\n }\n\n &::-ms-track {\n width: $custom-range-track-width;\n height: $custom-range-track-height;\n color: transparent;\n cursor: $custom-range-track-cursor;\n background-color: transparent;\n border-color: transparent;\n border-width: ($custom-range-thumb-height * .5);\n @include box-shadow($custom-range-track-box-shadow);\n }\n\n &::-ms-fill-lower {\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n\n &::-ms-fill-upper {\n margin-right: 15px; // arbitrary?\n background-color: $custom-range-track-bg;\n @include border-radius($custom-range-track-border-radius);\n }\n}\n","// Base class\n//\n// Kickstart any navigation component with a set of style resets. Works with\n// `<nav>`s or `<ul>`s.\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: $nav-link-padding-y $nav-link-padding-x;\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Disabled state lightens text\n &.disabled {\n color: $nav-link-disabled-color;\n }\n}\n\n//\n// Tabs\n//\n\n.nav-tabs {\n border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;\n\n .nav-item {\n margin-bottom: -$nav-tabs-border-width;\n }\n\n .nav-link {\n border: $nav-tabs-border-width solid transparent;\n @include border-top-radius($nav-tabs-border-radius);\n\n @include hover-focus {\n border-color: $nav-tabs-link-hover-border-color;\n }\n\n &.disabled {\n color: $nav-link-disabled-color;\n background-color: transparent;\n border-color: transparent;\n }\n }\n\n .nav-link.active,\n .nav-item.show .nav-link {\n color: $nav-tabs-link-active-color;\n background-color: $nav-tabs-link-active-bg;\n border-color: $nav-tabs-link-active-border-color;\n }\n\n .dropdown-menu {\n // Make dropdown border overlap tab border\n margin-top: -$nav-tabs-border-width;\n // Remove the top rounded corners here since there is a hard edge above the menu\n @include border-top-radius(0);\n }\n}\n\n\n//\n// Pills\n//\n\n.nav-pills {\n .nav-link {\n @include border-radius($nav-pills-border-radius);\n }\n\n .nav-link.active,\n .show > .nav-link {\n color: $nav-pills-link-active-color;\n background-color: $nav-pills-link-active-bg;\n }\n}\n\n\n//\n// Justified variants\n//\n\n.nav-fill {\n .nav-item {\n flex: 1 1 auto;\n text-align: center;\n }\n}\n\n.nav-justified {\n .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n }\n}\n\n\n// Tabbable tabs\n//\n// Hide tabbable panes to start, show them when `.active`\n\n.tab-content {\n > .tab-pane {\n display: none;\n }\n > .active {\n display: block;\n }\n}\n","// Contents\n//\n// Navbar\n// Navbar brand\n// Navbar nav\n// Navbar text\n// Navbar divider\n// Responsive navbar\n// Navbar position\n// Navbar themes\n\n\n// Navbar\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap; // allow us to do the line break for collapsing content\n align-items: center;\n justify-content: space-between; // space out brand from logo\n padding: $navbar-padding-y $navbar-padding-x;\n\n // Because flex properties aren't inherited, we need to redeclare these first\n // few properities so that content nested within behave properly.\n > .container,\n > .container-fluid {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n }\n}\n\n\n// Navbar brand\n//\n// Used for brand, project, or site names.\n\n.navbar-brand {\n display: inline-block;\n padding-top: $navbar-brand-padding-y;\n padding-bottom: $navbar-brand-padding-y;\n margin-right: $navbar-padding-x;\n font-size: $navbar-brand-font-size;\n line-height: inherit;\n white-space: nowrap;\n\n @include hover-focus {\n text-decoration: none;\n }\n}\n\n\n// Navbar nav\n//\n// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).\n\n.navbar-nav {\n display: flex;\n flex-direction: column; // cannot use `inherit` to get the `.navbar`s value\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n\n .nav-link {\n padding-right: 0;\n padding-left: 0;\n }\n\n .dropdown-menu {\n position: static;\n float: none;\n }\n}\n\n\n// Navbar text\n//\n//\n\n.navbar-text {\n display: inline-block;\n padding-top: $nav-link-padding-y;\n padding-bottom: $nav-link-padding-y;\n}\n\n\n// Responsive navbar\n//\n// Custom styles for responsive collapsing and toggling of navbar contents.\n// Powered by the collapse Bootstrap JavaScript plugin.\n\n// When collapsed, prevent the toggleable navbar contents from appearing in\n// the default flexbox row orienation. Requires the use of `flex-wrap: wrap`\n// on the `.navbar` parent.\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n // For always expanded or extra full navbars, ensure content aligns itself\n // properly vertically. Can be easily overridden with flex utilities.\n align-items: center;\n}\n\n// Button for toggling the navbar when in its collapsed state\n.navbar-toggler {\n padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;\n font-size: $navbar-toggler-font-size;\n line-height: 1;\n background-color: transparent; // remove default button style\n border: $border-width solid transparent; // remove default button style\n @include border-radius($navbar-toggler-border-radius);\n\n @include hover-focus {\n text-decoration: none;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .navbar-toggler elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n// Keep as a separate element so folks can easily override it with another icon\n// or image file as needed.\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n// Generate series of `.navbar-expand-*` responsive classes for configuring\n// where your navbar collapses.\n.navbar-expand {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n > .container,\n > .container-fluid {\n padding-right: 0;\n padding-left: 0;\n }\n }\n\n @include media-breakpoint-up($next) {\n flex-flow: row nowrap;\n justify-content: flex-start;\n\n .navbar-nav {\n flex-direction: row;\n\n .dropdown-menu {\n position: absolute;\n }\n\n .nav-link {\n padding-right: $navbar-nav-link-padding-x;\n padding-left: $navbar-nav-link-padding-x;\n }\n }\n\n // For nesting containers, have to redeclare for alignment purposes\n > .container,\n > .container-fluid {\n flex-wrap: nowrap;\n }\n\n .navbar-collapse {\n display: flex !important; // stylelint-disable-line declaration-no-important\n\n // Changes flex-bases to auto because of an IE10 bug\n flex-basis: auto;\n }\n\n .navbar-toggler {\n display: none;\n }\n }\n }\n }\n}\n\n\n// Navbar themes\n//\n// Styles for switching between navbars with light or dark background.\n\n// Dark links against a light background\n.navbar-light {\n .navbar-brand {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-light-color;\n\n @include hover-focus {\n color: $navbar-light-hover-color;\n }\n\n &.disabled {\n color: $navbar-light-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-light-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-light-color;\n border-color: $navbar-light-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-light-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-light-color;\n a {\n color: $navbar-light-active-color;\n\n @include hover-focus {\n color: $navbar-light-active-color;\n }\n }\n }\n}\n\n// White links against a dark background\n.navbar-dark {\n .navbar-brand {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-nav {\n .nav-link {\n color: $navbar-dark-color;\n\n @include hover-focus {\n color: $navbar-dark-hover-color;\n }\n\n &.disabled {\n color: $navbar-dark-disabled-color;\n }\n }\n\n .show > .nav-link,\n .active > .nav-link,\n .nav-link.show,\n .nav-link.active {\n color: $navbar-dark-active-color;\n }\n }\n\n .navbar-toggler {\n color: $navbar-dark-color;\n border-color: $navbar-dark-toggler-border-color;\n }\n\n .navbar-toggler-icon {\n background-image: $navbar-dark-toggler-icon-bg;\n }\n\n .navbar-text {\n color: $navbar-dark-color;\n a {\n color: $navbar-dark-active-color;\n\n @include hover-focus {\n color: $navbar-dark-active-color;\n }\n }\n }\n}\n","//\n// Base styles\n//\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: $card-bg;\n background-clip: border-box;\n border: $card-border-width solid $card-border-color;\n @include border-radius($card-border-radius);\n\n > hr {\n margin-right: 0;\n margin-left: 0;\n }\n\n > .list-group:first-child {\n .list-group-item:first-child {\n @include border-top-radius($card-border-radius);\n }\n }\n\n > .list-group:last-child {\n .list-group-item:last-child {\n @include border-bottom-radius($card-border-radius);\n }\n }\n}\n\n.card-body {\n // Enable `flex-grow: 1` for decks and groups so that card blocks take up\n // as much space as possible, ensuring footers are aligned to the bottom.\n flex: 1 1 auto;\n padding: $card-spacer-x;\n}\n\n.card-title {\n margin-bottom: $card-spacer-y;\n}\n\n.card-subtitle {\n margin-top: -($card-spacer-y / 2);\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link {\n @include hover {\n text-decoration: none;\n }\n\n + .card-link {\n margin-left: $card-spacer-x;\n }\n}\n\n//\n// Optional textual caps\n//\n\n.card-header {\n padding: $card-spacer-y $card-spacer-x;\n margin-bottom: 0; // Removes the default margin-bottom of <hN>\n background-color: $card-cap-bg;\n border-bottom: $card-border-width solid $card-border-color;\n\n &:first-child {\n @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);\n }\n\n + .list-group {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n}\n\n.card-footer {\n padding: $card-spacer-y $card-spacer-x;\n background-color: $card-cap-bg;\n border-top: $card-border-width solid $card-border-color;\n\n &:last-child {\n @include border-radius(0 0 $card-inner-border-radius $card-inner-border-radius);\n }\n}\n\n\n//\n// Header navs\n//\n\n.card-header-tabs {\n margin-right: -($card-spacer-x / 2);\n margin-bottom: -$card-spacer-y;\n margin-left: -($card-spacer-x / 2);\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -($card-spacer-x / 2);\n margin-left: -($card-spacer-x / 2);\n}\n\n// Card image\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: $card-img-overlay-padding;\n}\n\n.card-img {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-radius($card-inner-border-radius);\n}\n\n// Card image caps\n.card-img-top {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-top-radius($card-inner-border-radius);\n}\n\n.card-img-bottom {\n width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch\n @include border-bottom-radius($card-inner-border-radius);\n}\n\n\n// Card deck\n\n.card-deck {\n display: flex;\n flex-direction: column;\n\n .card {\n margin-bottom: $card-deck-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n margin-right: -$card-deck-margin;\n margin-left: -$card-deck-margin;\n\n .card {\n display: flex;\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n flex-direction: column;\n margin-right: $card-deck-margin;\n margin-bottom: 0; // Override the default\n margin-left: $card-deck-margin;\n }\n }\n}\n\n\n//\n// Card groups\n//\n\n.card-group {\n display: flex;\n flex-direction: column;\n\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n margin-bottom: $card-group-margin;\n }\n\n @include media-breakpoint-up(sm) {\n flex-flow: row wrap;\n // The child selector allows nested `.card` within `.card-group`\n // to display properly.\n > .card {\n // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4\n flex: 1 0 0%;\n margin-bottom: 0;\n\n + .card {\n margin-left: 0;\n border-left: 0;\n }\n\n // Handle rounded corners\n @if $enable-rounded {\n &:first-child {\n @include border-right-radius(0);\n\n .card-img-top,\n .card-header {\n border-top-right-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n border-bottom-right-radius: 0;\n }\n }\n\n &:last-child {\n @include border-left-radius(0);\n\n .card-img-top,\n .card-header {\n border-top-left-radius: 0;\n }\n .card-img-bottom,\n .card-footer {\n border-bottom-left-radius: 0;\n }\n }\n\n &:only-child {\n @include border-radius($card-border-radius);\n\n .card-img-top,\n .card-header {\n @include border-top-radius($card-border-radius);\n }\n .card-img-bottom,\n .card-footer {\n @include border-bottom-radius($card-border-radius);\n }\n }\n\n &:not(:first-child):not(:last-child):not(:only-child) {\n @include border-radius(0);\n\n .card-img-top,\n .card-img-bottom,\n .card-header,\n .card-footer {\n @include border-radius(0);\n }\n }\n }\n }\n }\n}\n\n\n//\n// Columns\n//\n\n.card-columns {\n .card {\n margin-bottom: $card-columns-margin;\n }\n\n @include media-breakpoint-up(sm) {\n column-count: $card-columns-count;\n column-gap: $card-columns-gap;\n orphans: 1;\n widows: 1;\n\n .card {\n display: inline-block; // Don't let them vertically span multiple columns\n width: 100%; // Don't let their width change\n }\n }\n}\n\n\n//\n// Accordion\n//\n\n.accordion {\n .card:not(:first-of-type):not(:last-of-type) {\n border-bottom: 0;\n border-radius: 0;\n }\n\n .card:not(:first-of-type) {\n .card-header:first-child {\n border-radius: 0;\n }\n }\n\n .card:first-of-type {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .card:last-of-type {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n",".breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: $breadcrumb-padding-y $breadcrumb-padding-x;\n margin-bottom: $breadcrumb-margin-bottom;\n list-style: none;\n background-color: $breadcrumb-bg;\n @include border-radius($breadcrumb-border-radius);\n}\n\n.breadcrumb-item {\n // The separator between breadcrumbs (by default, a forward-slash: \"/\")\n + .breadcrumb-item {\n padding-left: $breadcrumb-item-padding;\n\n &::before {\n display: inline-block; // Suppress underlining of the separator in modern browsers\n padding-right: $breadcrumb-item-padding;\n color: $breadcrumb-divider-color;\n content: $breadcrumb-divider;\n }\n }\n\n // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built\n // without `<ul>`s. The `::before` pseudo-element generates an element\n // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.\n //\n // To trick IE into suppressing the underline, we give the pseudo-element an\n // underline and then immediately remove it.\n + .breadcrumb-item:hover::before {\n text-decoration: underline;\n }\n // stylelint-disable-next-line no-duplicate-selectors\n + .breadcrumb-item:hover::before {\n text-decoration: none;\n }\n\n &.active {\n color: $breadcrumb-active-color;\n }\n}\n",".pagination {\n display: flex;\n @include list-unstyled();\n @include border-radius();\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: $pagination-padding-y $pagination-padding-x;\n margin-left: -$pagination-border-width;\n line-height: $pagination-line-height;\n color: $pagination-color;\n background-color: $pagination-bg;\n border: $pagination-border-width solid $pagination-border-color;\n\n &:hover {\n z-index: 2;\n color: $pagination-hover-color;\n text-decoration: none;\n background-color: $pagination-hover-bg;\n border-color: $pagination-hover-border-color;\n }\n\n &:focus {\n z-index: 2;\n outline: $pagination-focus-outline;\n box-shadow: $pagination-focus-box-shadow;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .page-link elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n.page-item {\n &:first-child {\n .page-link {\n margin-left: 0;\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n\n &.active .page-link {\n z-index: 1;\n color: $pagination-active-color;\n background-color: $pagination-active-bg;\n border-color: $pagination-active-border-color;\n }\n\n &.disabled .page-link {\n color: $pagination-disabled-color;\n pointer-events: none;\n // Opinionated: remove the \"hand\" cursor set previously for .page-link\n cursor: auto;\n background-color: $pagination-disabled-bg;\n border-color: $pagination-disabled-border-color;\n }\n}\n\n\n//\n// Sizing\n//\n\n.pagination-lg {\n @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);\n}\n\n.pagination-sm {\n @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);\n}\n","// Pagination\n\n@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n .page-link {\n padding: $padding-y $padding-x;\n font-size: $font-size;\n line-height: $line-height;\n }\n\n .page-item {\n &:first-child {\n .page-link {\n @include border-left-radius($border-radius);\n }\n }\n &:last-child {\n .page-link {\n @include border-right-radius($border-radius);\n }\n }\n }\n}\n","// Base class\n//\n// Requires one of the contextual, color modifier classes for `color` and\n// `background-color`.\n\n.badge {\n display: inline-block;\n padding: $badge-padding-y $badge-padding-x;\n font-size: $badge-font-size;\n font-weight: $badge-font-weight;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n @include border-radius($badge-border-radius);\n\n // Empty badges collapse automatically\n &:empty {\n display: none;\n }\n}\n\n// Quick fix for badges in buttons\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n// Pill badges\n//\n// Make them extra rounded with a modifier to replace v3's badges.\n\n.badge-pill {\n padding-right: $badge-pill-padding-x;\n padding-left: $badge-pill-padding-x;\n @include border-radius($badge-pill-border-radius);\n}\n\n// Colors\n//\n// Contextual variations (linked badges get darker on :hover).\n\n@each $color, $value in $theme-colors {\n .badge-#{$color} {\n @include badge-variant($value);\n }\n}\n","@mixin badge-variant($bg) {\n color: color-yiq($bg);\n background-color: $bg;\n\n &[href] {\n @include hover-focus {\n color: color-yiq($bg);\n text-decoration: none;\n background-color: darken($bg, 10%);\n }\n }\n}\n",".jumbotron {\n padding: $jumbotron-padding ($jumbotron-padding / 2);\n margin-bottom: $jumbotron-padding;\n background-color: $jumbotron-bg;\n @include border-radius($border-radius-lg);\n\n @include media-breakpoint-up(sm) {\n padding: ($jumbotron-padding * 2) $jumbotron-padding;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n @include border-radius(0);\n}\n","//\n// Base styles\n//\n\n.alert {\n position: relative;\n padding: $alert-padding-y $alert-padding-x;\n margin-bottom: $alert-margin-bottom;\n border: $alert-border-width solid transparent;\n @include border-radius($alert-border-radius);\n}\n\n// Headings for larger alerts\n.alert-heading {\n // Specified to prevent conflicts of changing $headings-color\n color: inherit;\n}\n\n// Provide class for links that match alerts\n.alert-link {\n font-weight: $alert-link-font-weight;\n}\n\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissible {\n padding-right: ($close-font-size + $alert-padding-x * 2);\n\n // Adjust close link position\n .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: $alert-padding-y $alert-padding-x;\n color: inherit;\n }\n}\n\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n@each $color, $value in $theme-colors {\n .alert-#{$color} {\n @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));\n }\n}\n","@mixin alert-variant($background, $border, $color) {\n color: $color;\n @include gradient-bg($background);\n border-color: $border;\n\n hr {\n border-top-color: darken($border, 5%);\n }\n\n .alert-link {\n color: darken($color, 10%);\n }\n}\n","@keyframes progress-bar-stripes {\n from { background-position: $progress-height 0; }\n to { background-position: 0 0; }\n}\n\n.progress {\n display: flex;\n height: $progress-height;\n overflow: hidden; // force rounded corners by cropping it\n font-size: $progress-font-size;\n background-color: $progress-bg;\n @include border-radius($progress-border-radius);\n @include box-shadow($progress-box-shadow);\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n color: $progress-bar-color;\n text-align: center;\n white-space: nowrap;\n background-color: $progress-bar-bg;\n @include transition($progress-bar-transition);\n}\n\n.progress-bar-striped {\n @include gradient-striped();\n background-size: $progress-height $progress-height;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes $progress-bar-animation-timing;\n}\n",".media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n","// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n display: flex;\n flex-direction: column;\n\n // No need to set list-style: none; since .list-group-item is block level\n padding-left: 0; // reset padding because ul and ol\n margin-bottom: 0;\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive\n// list items. Includes an extra `.active` modifier class for selected items.\n\n.list-group-item-action {\n width: 100%; // For `<button>`s (anchors become 100% by default though)\n color: $list-group-action-color;\n text-align: inherit; // For `<button>`s (anchors inherit)\n\n // Hover state\n @include hover-focus {\n color: $list-group-action-hover-color;\n text-decoration: none;\n background-color: $list-group-hover-bg;\n }\n\n &:active {\n color: $list-group-action-active-color;\n background-color: $list-group-action-active-bg;\n }\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n position: relative;\n display: block;\n padding: $list-group-item-padding-y $list-group-item-padding-x;\n // Place the border on the list items and negative margin up for better styling\n margin-bottom: -$list-group-border-width;\n background-color: $list-group-bg;\n border: $list-group-border-width solid $list-group-border-color;\n\n &:first-child {\n @include border-top-radius($list-group-border-radius);\n }\n\n &:last-child {\n margin-bottom: 0;\n @include border-bottom-radius($list-group-border-radius);\n }\n\n @include hover-focus {\n z-index: 1; // Place hover/active items above their siblings for proper border styling\n text-decoration: none;\n }\n\n &.disabled,\n &:disabled {\n color: $list-group-disabled-color;\n background-color: $list-group-disabled-bg;\n }\n\n // Include both here for `<a>`s and `<button>`s\n &.active {\n z-index: 2; // Place active items above their siblings for proper border styling\n color: $list-group-active-color;\n background-color: $list-group-active-bg;\n border-color: $list-group-active-border-color;\n }\n}\n\n\n// Flush list items\n//\n// Remove borders and border-radius to keep list group items edge-to-edge. Most\n// useful within other components (e.g., cards).\n\n.list-group-flush {\n .list-group-item {\n border-right: 0;\n border-left: 0;\n @include border-radius(0);\n }\n\n &:first-child {\n .list-group-item:first-child {\n border-top: 0;\n }\n }\n\n &:last-child {\n .list-group-item:last-child {\n border-bottom: 0;\n }\n }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n@each $color, $value in $theme-colors {\n @include list-group-item-variant($color, theme-color-level($color, -9), theme-color-level($color, 6));\n}\n","// List Groups\n\n@mixin list-group-item-variant($state, $background, $color) {\n .list-group-item-#{$state} {\n color: $color;\n background-color: $background;\n\n &.list-group-item-action {\n @include hover-focus {\n color: $color;\n background-color: darken($background, 5%);\n }\n\n &.active {\n color: $white;\n background-color: $color;\n border-color: $color;\n }\n }\n }\n}\n",".close {\n float: right;\n font-size: $close-font-size;\n font-weight: $close-font-weight;\n line-height: 1;\n color: $close-color;\n text-shadow: $close-text-shadow;\n opacity: .5;\n\n @include hover-focus {\n color: $close-color;\n text-decoration: none;\n opacity: .75;\n }\n\n // Opinionated: add \"hand\" cursor to non-disabled .close elements\n &:not(:disabled):not(.disabled) {\n cursor: pointer;\n }\n}\n\n// Additional properties for button version\n// iOS requires the button element instead of an anchor tag.\n// If you want the anchor version, it requires `href=\"#\"`.\n// See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n// stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n -webkit-appearance: none;\n}\n// stylelint-enable\n","// .modal-open - body class for killing the scroll\n// .modal - container to scroll within\n// .modal-dialog - positioning shell for the actual modal\n// .modal-content - actual modal w/ bg and corners and stuff\n\n\n// Kill the scroll on the body\n.modal-open {\n overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-modal;\n display: none;\n overflow: hidden;\n // Prevent Chrome on Windows from adding a focus outline. For details, see\n // https://github.com/twbs/bootstrap/pull/10951.\n outline: 0;\n // We deliberately don't use `-webkit-overflow-scrolling: touch;` due to a\n // gnarly iOS Safari bug: https://bugs.webkit.org/show_bug.cgi?id=158342\n // See also https://github.com/twbs/bootstrap/issues/17695\n\n .modal-open & {\n overflow-x: hidden;\n overflow-y: auto;\n }\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n position: relative;\n width: auto;\n margin: $modal-dialog-margin;\n // allow clicks to pass through for custom click handling to close modal\n pointer-events: none;\n\n // When fading in the modal, animate it to slide down\n .modal.fade & {\n @include transition($modal-transition);\n transform: translate(0, -25%);\n }\n .modal.show & {\n transform: translate(0, 0);\n }\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - (#{$modal-dialog-margin} * 2));\n}\n\n// Actual modal\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%; // Ensure `.modal-content` extends the full width of the parent `.modal-dialog`\n // counteract the pointer-events: none; in the .modal-dialog\n pointer-events: auto;\n background-color: $modal-content-bg;\n background-clip: padding-box;\n border: $modal-content-border-width solid $modal-content-border-color;\n @include border-radius($modal-content-border-radius);\n @include box-shadow($modal-content-box-shadow-xs);\n // Remove focus outline from opened modal\n outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-modal-backdrop;\n background-color: $modal-backdrop-bg;\n\n // Fade for backdrop\n &.fade { opacity: 0; }\n &.show { opacity: $modal-backdrop-opacity; }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n display: flex;\n align-items: flex-start; // so the close btn always stays on the upper right corner\n justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends\n padding: $modal-header-padding;\n border-bottom: $modal-header-border-width solid $modal-header-border-color;\n @include border-top-radius($modal-content-border-radius);\n\n .close {\n padding: $modal-header-padding;\n // auto on the left force icon to the right even when there is no .modal-title\n margin: (-$modal-header-padding) (-$modal-header-padding) (-$modal-header-padding) auto;\n }\n}\n\n// Title text within header\n.modal-title {\n margin-bottom: 0;\n line-height: $modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n position: relative;\n // Enable `flex-grow: 1` so that the body take up as much space as possible\n // when should there be a fixed height on `.modal-dialog`.\n flex: 1 1 auto;\n padding: $modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n display: flex;\n align-items: center; // vertically center\n justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items\n padding: $modal-inner-padding;\n border-top: $modal-footer-border-width solid $modal-footer-border-color;\n\n // Easily place margin between footer elements\n > :not(:first-child) { margin-left: .25rem; }\n > :not(:last-child) { margin-right: .25rem; }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n// Scale up the modal\n@include media-breakpoint-up(sm) {\n // Automatically set modal's width for larger viewports\n .modal-dialog {\n max-width: $modal-md;\n margin: $modal-dialog-margin-y-sm-up auto;\n }\n\n .modal-dialog-centered {\n min-height: calc(100% - (#{$modal-dialog-margin-y-sm-up} * 2));\n }\n\n .modal-content {\n @include box-shadow($modal-content-box-shadow-sm-up);\n }\n\n .modal-sm { max-width: $modal-sm; }\n\n}\n\n@include media-breakpoint-up(lg) {\n .modal-lg { max-width: $modal-lg; }\n}\n","// Base class\n.tooltip {\n position: absolute;\n z-index: $zindex-tooltip;\n display: block;\n margin: $tooltip-margin;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: $tooltip-font-size;\n // Allow breaking very long words so they don't overflow the tooltip's bounds\n word-wrap: break-word;\n opacity: 0;\n\n &.show { opacity: $tooltip-opacity; }\n\n .arrow {\n position: absolute;\n display: block;\n width: $tooltip-arrow-width;\n height: $tooltip-arrow-height;\n\n &::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-tooltip-top {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n bottom: 0;\n\n &::before {\n top: 0;\n border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-top-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-right {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n left: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n right: 0;\n border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;\n border-right-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-bottom {\n padding: $tooltip-arrow-height 0;\n\n .arrow {\n top: 0;\n\n &::before {\n bottom: 0;\n border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-bottom-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-left {\n padding: 0 $tooltip-arrow-height;\n\n .arrow {\n right: 0;\n width: $tooltip-arrow-height;\n height: $tooltip-arrow-width;\n\n &::before {\n left: 0;\n border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;\n border-left-color: $tooltip-arrow-color;\n }\n }\n}\n\n.bs-tooltip-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-tooltip-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-tooltip-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-tooltip-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-tooltip-left;\n }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n max-width: $tooltip-max-width;\n padding: $tooltip-padding-y $tooltip-padding-x;\n color: $tooltip-color;\n text-align: center;\n background-color: $tooltip-bg;\n @include border-radius($tooltip-border-radius);\n}\n","@mixin reset-text {\n font-family: $font-family-base;\n // We deliberately do NOT reset font-size or word-wrap.\n font-style: normal;\n font-weight: $font-weight-normal;\n line-height: $line-height-base;\n text-align: left; // Fallback for where `start` is not supported\n text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n}\n",".popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: $zindex-popover;\n display: block;\n max-width: $popover-max-width;\n // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n // So reset our font and text properties to avoid inheriting weird values.\n @include reset-text();\n font-size: $popover-font-size;\n // Allow breaking very long words so they don't overflow the popover's bounds\n word-wrap: break-word;\n background-color: $popover-bg;\n background-clip: padding-box;\n border: $popover-border-width solid $popover-border-color;\n @include border-radius($popover-border-radius);\n @include box-shadow($popover-box-shadow);\n\n .arrow {\n position: absolute;\n display: block;\n width: $popover-arrow-width;\n height: $popover-arrow-height;\n margin: 0 $border-radius-lg;\n\n &::before,\n &::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n }\n }\n}\n\n.bs-popover-top {\n margin-bottom: $popover-arrow-height;\n\n .arrow {\n bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n }\n\n .arrow::before,\n .arrow::after {\n border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;\n }\n\n .arrow::before {\n bottom: 0;\n border-top-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n bottom: $popover-border-width;\n border-top-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-right {\n margin-left: $popover-arrow-height;\n\n .arrow {\n left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n }\n\n .arrow::before,\n .arrow::after {\n border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;\n }\n\n .arrow::before {\n left: 0;\n border-right-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n left: $popover-border-width;\n border-right-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-bottom {\n margin-top: $popover-arrow-height;\n\n .arrow {\n top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n }\n\n .arrow::before,\n .arrow::after {\n border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);\n }\n\n .arrow::before {\n top: 0;\n border-bottom-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n top: $popover-border-width;\n border-bottom-color: $popover-arrow-color;\n }\n\n // This will remove the popover-header's border just below the arrow\n .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: $popover-arrow-width;\n margin-left: ($popover-arrow-width / -2);\n content: \"\";\n border-bottom: $popover-border-width solid $popover-header-bg;\n }\n}\n\n.bs-popover-left {\n margin-right: $popover-arrow-height;\n\n .arrow {\n right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);\n width: $popover-arrow-height;\n height: $popover-arrow-width;\n margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners\n }\n\n .arrow::before,\n .arrow::after {\n border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;\n }\n\n .arrow::before {\n right: 0;\n border-left-color: $popover-arrow-outer-color;\n }\n\n .arrow::after {\n right: $popover-border-width;\n border-left-color: $popover-arrow-color;\n }\n}\n\n.bs-popover-auto {\n &[x-placement^=\"top\"] {\n @extend .bs-popover-top;\n }\n &[x-placement^=\"right\"] {\n @extend .bs-popover-right;\n }\n &[x-placement^=\"bottom\"] {\n @extend .bs-popover-bottom;\n }\n &[x-placement^=\"left\"] {\n @extend .bs-popover-left;\n }\n}\n\n\n// Offset the popover to account for the popover arrow\n.popover-header {\n padding: $popover-header-padding-y $popover-header-padding-x;\n margin-bottom: 0; // Reset the default from Reboot\n font-size: $font-size-base;\n color: $popover-header-color;\n background-color: $popover-header-bg;\n border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);\n $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});\n @include border-top-radius($offset-border-width);\n\n &:empty {\n display: none;\n }\n}\n\n.popover-body {\n padding: $popover-body-padding-y $popover-body-padding-x;\n color: $popover-body-color;\n}\n","// Notes on the classes:\n//\n// 1. The .carousel-item-left and .carousel-item-right is used to indicate where\n// the active slide is heading.\n// 2. .active.carousel-item is the current slide.\n// 3. .active.carousel-item-left and .active.carousel-item-right is the current\n// slide in its in-transition state. Only one of these occurs at a time.\n// 4. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right\n// is the upcoming slide in transition.\n\n.carousel {\n position: relative;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-item {\n position: relative;\n display: none;\n align-items: center;\n width: 100%;\n @include transition($carousel-transition);\n backface-visibility: hidden;\n perspective: 1000px;\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next,\n.carousel-item-prev {\n position: absolute;\n top: 0;\n}\n\n.carousel-item-next.carousel-item-left,\n.carousel-item-prev.carousel-item-right {\n transform: translateX(0);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(0, 0, 0);\n }\n}\n\n.carousel-item-next,\n.active.carousel-item-right {\n transform: translateX(100%);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(100%, 0, 0);\n }\n}\n\n.carousel-item-prev,\n.active.carousel-item-left {\n transform: translateX(-100%);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(-100%, 0, 0);\n }\n}\n\n\n//\n// Alternate transitions\n//\n\n.carousel-fade {\n .carousel-item {\n opacity: 0;\n transition-duration: .6s;\n transition-property: opacity;\n }\n\n .carousel-item.active,\n .carousel-item-next.carousel-item-left,\n .carousel-item-prev.carousel-item-right {\n opacity: 1;\n }\n\n .active.carousel-item-left,\n .active.carousel-item-right {\n opacity: 0;\n }\n\n .carousel-item-next,\n .carousel-item-prev,\n .carousel-item.active,\n .active.carousel-item-left,\n .active.carousel-item-prev {\n transform: translateX(0);\n\n @supports (transform-style: preserve-3d) {\n transform: translate3d(0, 0, 0);\n }\n }\n}\n\n\n//\n// Left/right controls for nav\n//\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n // Use flex for alignment (1-3)\n display: flex; // 1. allow flex styles\n align-items: center; // 2. vertically center contents\n justify-content: center; // 3. horizontally center contents\n width: $carousel-control-width;\n color: $carousel-control-color;\n text-align: center;\n opacity: $carousel-control-opacity;\n // We can't have a transition here because WebKit cancels the carousel\n // animation if you trip this while in the middle of another animation.\n\n // Hover/focus state\n @include hover-focus {\n color: $carousel-control-color;\n text-decoration: none;\n outline: 0;\n opacity: .9;\n }\n}\n.carousel-control-prev {\n left: 0;\n @if $enable-gradients {\n background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));\n }\n}\n.carousel-control-next {\n right: 0;\n @if $enable-gradients {\n background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));\n }\n}\n\n// Icons for within\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: $carousel-control-icon-width;\n height: $carousel-control-icon-width;\n background: transparent no-repeat center center;\n background-size: 100% 100%;\n}\n.carousel-control-prev-icon {\n background-image: $carousel-control-prev-icon-bg;\n}\n.carousel-control-next-icon {\n background-image: $carousel-control-next-icon-bg;\n}\n\n\n// Optional indicator pips\n//\n// Add an ordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 10px;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0; // override <ol> default\n // Use the .carousel-control's width as margin so we don't overlay those\n margin-right: $carousel-control-width;\n margin-left: $carousel-control-width;\n list-style: none;\n\n li {\n position: relative;\n flex: 0 1 auto;\n width: $carousel-indicator-width;\n height: $carousel-indicator-height;\n margin-right: $carousel-indicator-spacer;\n margin-left: $carousel-indicator-spacer;\n text-indent: -999px;\n background-color: rgba($carousel-indicator-active-bg, .5);\n\n // Use pseudo classes to increase the hit area by 10px on top and bottom.\n &::before {\n position: absolute;\n top: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n }\n &::after {\n position: absolute;\n bottom: -10px;\n left: 0;\n display: inline-block;\n width: 100%;\n height: 10px;\n content: \"\";\n }\n }\n\n .active {\n background-color: $carousel-indicator-active-bg;\n }\n}\n\n\n// Optional captions\n//\n//\n\n.carousel-caption {\n position: absolute;\n right: ((100% - $carousel-caption-width) / 2);\n bottom: 20px;\n left: ((100% - $carousel-caption-width) / 2);\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: $carousel-caption-color;\n text-align: center;\n}\n","// stylelint-disable declaration-no-important\n\n.align-baseline { vertical-align: baseline !important; } // Browser default\n.align-top { vertical-align: top !important; }\n.align-middle { vertical-align: middle !important; }\n.align-bottom { vertical-align: bottom !important; }\n.align-text-bottom { vertical-align: text-bottom !important; }\n.align-text-top { vertical-align: text-top !important; }\n","// stylelint-disable declaration-no-important\n\n// Contextual backgrounds\n\n@mixin bg-variant($parent, $color) {\n #{$parent} {\n background-color: $color !important;\n }\n a#{$parent},\n button#{$parent} {\n @include hover-focus {\n background-color: darken($color, 10%) !important;\n }\n }\n}\n\n@mixin bg-gradient-variant($parent, $color) {\n #{$parent} {\n background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;\n }\n}\n","// stylelint-disable declaration-no-important\n\n@each $color, $value in $theme-colors {\n @include bg-variant(\".bg-#{$color}\", $value);\n}\n\n@if $enable-gradients {\n @each $color, $value in $theme-colors {\n @include bg-gradient-variant(\".bg-gradient-#{$color}\", $value);\n }\n}\n\n.bg-white {\n background-color: $white !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Border\n//\n\n.border { border: $border-width solid $border-color !important; }\n.border-top { border-top: $border-width solid $border-color !important; }\n.border-right { border-right: $border-width solid $border-color !important; }\n.border-bottom { border-bottom: $border-width solid $border-color !important; }\n.border-left { border-left: $border-width solid $border-color !important; }\n\n.border-0 { border: 0 !important; }\n.border-top-0 { border-top: 0 !important; }\n.border-right-0 { border-right: 0 !important; }\n.border-bottom-0 { border-bottom: 0 !important; }\n.border-left-0 { border-left: 0 !important; }\n\n@each $color, $value in $theme-colors {\n .border-#{$color} {\n border-color: $value !important;\n }\n}\n\n.border-white {\n border-color: $white !important;\n}\n\n//\n// Border-radius\n//\n\n.rounded {\n border-radius: $border-radius !important;\n}\n.rounded-top {\n border-top-left-radius: $border-radius !important;\n border-top-right-radius: $border-radius !important;\n}\n.rounded-right {\n border-top-right-radius: $border-radius !important;\n border-bottom-right-radius: $border-radius !important;\n}\n.rounded-bottom {\n border-bottom-right-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n.rounded-left {\n border-top-left-radius: $border-radius !important;\n border-bottom-left-radius: $border-radius !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n","@mixin clearfix() {\n &::after {\n display: block;\n clear: both;\n content: \"\";\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Utilities for common `display` values\n//\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .d#{$infix}-none { display: none !important; }\n .d#{$infix}-inline { display: inline !important; }\n .d#{$infix}-inline-block { display: inline-block !important; }\n .d#{$infix}-block { display: block !important; }\n .d#{$infix}-table { display: table !important; }\n .d#{$infix}-table-row { display: table-row !important; }\n .d#{$infix}-table-cell { display: table-cell !important; }\n .d#{$infix}-flex { display: flex !important; }\n .d#{$infix}-inline-flex { display: inline-flex !important; }\n }\n}\n\n\n//\n// Utilities for toggling `display` in print\n//\n\n@media print {\n .d-print-none { display: none !important; }\n .d-print-inline { display: inline !important; }\n .d-print-inline-block { display: inline-block !important; }\n .d-print-block { display: block !important; }\n .d-print-table { display: table !important; }\n .d-print-table-row { display: table-row !important; }\n .d-print-table-cell { display: table-cell !important; }\n .d-print-flex { display: flex !important; }\n .d-print-inline-flex { display: inline-flex !important; }\n}\n","// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n\n &::before {\n display: block;\n content: \"\";\n }\n\n .embed-responsive-item,\n iframe,\n embed,\n object,\n video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n }\n}\n\n.embed-responsive-21by9 {\n &::before {\n padding-top: percentage(9 / 21);\n }\n}\n\n.embed-responsive-16by9 {\n &::before {\n padding-top: percentage(9 / 16);\n }\n}\n\n.embed-responsive-4by3 {\n &::before {\n padding-top: percentage(3 / 4);\n }\n}\n\n.embed-responsive-1by1 {\n &::before {\n padding-top: percentage(1 / 1);\n }\n}\n","// stylelint-disable declaration-no-important\n\n// Flex variation\n//\n// Custom styles for additional flex alignment options.\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .flex#{$infix}-row { flex-direction: row !important; }\n .flex#{$infix}-column { flex-direction: column !important; }\n .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }\n .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }\n\n .flex#{$infix}-wrap { flex-wrap: wrap !important; }\n .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }\n .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }\n .flex#{$infix}-fill { flex: 1 1 auto !important; }\n .flex#{$infix}-grow-0 { flex-grow: 0 !important; }\n .flex#{$infix}-grow-1 { flex-grow: 1 !important; }\n .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }\n .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }\n\n .justify-content#{$infix}-start { justify-content: flex-start !important; }\n .justify-content#{$infix}-end { justify-content: flex-end !important; }\n .justify-content#{$infix}-center { justify-content: center !important; }\n .justify-content#{$infix}-between { justify-content: space-between !important; }\n .justify-content#{$infix}-around { justify-content: space-around !important; }\n\n .align-items#{$infix}-start { align-items: flex-start !important; }\n .align-items#{$infix}-end { align-items: flex-end !important; }\n .align-items#{$infix}-center { align-items: center !important; }\n .align-items#{$infix}-baseline { align-items: baseline !important; }\n .align-items#{$infix}-stretch { align-items: stretch !important; }\n\n .align-content#{$infix}-start { align-content: flex-start !important; }\n .align-content#{$infix}-end { align-content: flex-end !important; }\n .align-content#{$infix}-center { align-content: center !important; }\n .align-content#{$infix}-between { align-content: space-between !important; }\n .align-content#{$infix}-around { align-content: space-around !important; }\n .align-content#{$infix}-stretch { align-content: stretch !important; }\n\n .align-self#{$infix}-auto { align-self: auto !important; }\n .align-self#{$infix}-start { align-self: flex-start !important; }\n .align-self#{$infix}-end { align-self: flex-end !important; }\n .align-self#{$infix}-center { align-self: center !important; }\n .align-self#{$infix}-baseline { align-self: baseline !important; }\n .align-self#{$infix}-stretch { align-self: stretch !important; }\n }\n}\n","@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .float#{$infix}-left { @include float-left; }\n .float#{$infix}-right { @include float-right; }\n .float#{$infix}-none { @include float-none; }\n }\n}\n","// stylelint-disable declaration-no-important\n\n@mixin float-left {\n float: left !important;\n}\n@mixin float-right {\n float: right !important;\n}\n@mixin float-none {\n float: none !important;\n}\n","// stylelint-disable declaration-no-important\n\n// Common values\n\n// Sass list not in variables since it's not intended for customization.\n// stylelint-disable-next-line scss/dollar-variable-default\n$positions: static, relative, absolute, fixed, sticky;\n\n@each $position in $positions {\n .position-#{$position} { position: $position !important; }\n}\n\n// Shorthand\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: $zindex-fixed;\n}\n\n.sticky-top {\n @supports (position: sticky) {\n position: sticky;\n top: 0;\n z-index: $zindex-sticky;\n }\n}\n","//\n// Screenreaders\n//\n\n.sr-only {\n @include sr-only();\n}\n\n.sr-only-focusable {\n @include sr-only-focusable();\n}\n","// Only display content to screen readers\n//\n// See: https://a11yproject.com/posts/how-to-hide-content/\n// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/\n\n@mixin sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n//\n// Useful for \"Skip to main content\" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n//\n// Credit: HTML5 Boilerplate\n\n@mixin sr-only-focusable {\n &:active,\n &:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n }\n}\n","// stylelint-disable declaration-no-important\n\n.shadow-sm { box-shadow: $box-shadow-sm !important; }\n.shadow { box-shadow: $box-shadow !important; }\n.shadow-lg { box-shadow: $box-shadow-lg !important; }\n.shadow-none { box-shadow: none !important; }\n","// stylelint-disable declaration-no-important\n\n// Width and height\n\n@each $prop, $abbrev in (width: w, height: h) {\n @each $size, $length in $sizes {\n .#{$abbrev}-#{$size} { #{$prop}: $length !important; }\n }\n}\n\n.mw-100 { max-width: 100% !important; }\n.mh-100 { max-height: 100% !important; }\n","// stylelint-disable declaration-no-important\n\n// Margin and Padding\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n @each $prop, $abbrev in (margin: m, padding: p) {\n @each $size, $length in $spacers {\n\n .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }\n .#{$abbrev}t#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-top: $length !important;\n }\n .#{$abbrev}r#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-right: $length !important;\n }\n .#{$abbrev}b#{$infix}-#{$size},\n .#{$abbrev}y#{$infix}-#{$size} {\n #{$prop}-bottom: $length !important;\n }\n .#{$abbrev}l#{$infix}-#{$size},\n .#{$abbrev}x#{$infix}-#{$size} {\n #{$prop}-left: $length !important;\n }\n }\n }\n\n // Some special margin utils\n .m#{$infix}-auto { margin: auto !important; }\n .mt#{$infix}-auto,\n .my#{$infix}-auto {\n margin-top: auto !important;\n }\n .mr#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-right: auto !important;\n }\n .mb#{$infix}-auto,\n .my#{$infix}-auto {\n margin-bottom: auto !important;\n }\n .ml#{$infix}-auto,\n .mx#{$infix}-auto {\n margin-left: auto !important;\n }\n }\n}\n","// stylelint-disable declaration-no-important\n\n//\n// Text\n//\n\n.text-monospace { font-family: $font-family-monospace; }\n\n// Alignment\n\n.text-justify { text-align: justify !important; }\n.text-nowrap { white-space: nowrap !important; }\n.text-truncate { @include text-truncate; }\n\n// Responsive alignment\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .text#{$infix}-left { text-align: left !important; }\n .text#{$infix}-right { text-align: right !important; }\n .text#{$infix}-center { text-align: center !important; }\n }\n}\n\n// Transformation\n\n.text-lowercase { text-transform: lowercase !important; }\n.text-uppercase { text-transform: uppercase !important; }\n.text-capitalize { text-transform: capitalize !important; }\n\n// Weight and italics\n\n.font-weight-light { font-weight: $font-weight-light !important; }\n.font-weight-normal { font-weight: $font-weight-normal !important; }\n.font-weight-bold { font-weight: $font-weight-bold !important; }\n.font-italic { font-style: italic !important; }\n\n// Contextual colors\n\n.text-white { color: $white !important; }\n\n@each $color, $value in $theme-colors {\n @include text-emphasis-variant(\".text-#{$color}\", $value);\n}\n\n.text-body { color: $body-color !important; }\n.text-muted { color: $text-muted !important; }\n\n.text-black-50 { color: rgba($black, .5) !important; }\n.text-white-50 { color: rgba($white, .5) !important; }\n\n// Misc\n\n.text-hide {\n @include text-hide();\n}\n","// Text truncate\n// Requires inline-block or block for proper styling\n\n@mixin text-truncate() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n","// stylelint-disable declaration-no-important\n\n// Typography\n\n@mixin text-emphasis-variant($parent, $color) {\n #{$parent} {\n color: $color !important;\n }\n a#{$parent} {\n @include hover-focus {\n color: darken($color, 10%) !important;\n }\n }\n}\n","// CSS image replacement\n@mixin text-hide() {\n // stylelint-disable-next-line font-family-no-missing-generic-family-keyword\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n\n @warn \"The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.\";\n}\n","//\n// Visibility utilities\n//\n\n.visible {\n @include invisible(visible);\n}\n\n.invisible {\n @include invisible(hidden);\n}\n","// stylelint-disable declaration-no-important\n\n// Visibility\n\n@mixin invisible($visibility) {\n visibility: $visibility !important;\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type\n\n// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request:\n// https://www.phpied.com/delay-loading-your-print-css/\n// ==========================================================================\n\n@if $enable-print-styles {\n @media print {\n *,\n *::before,\n *::after {\n // Bootstrap specific; comment out `color` and `background`\n //color: $black !important; // Black prints faster\n text-shadow: none !important;\n //background: transparent !important;\n box-shadow: none !important;\n }\n\n a {\n &:not(.btn) {\n text-decoration: underline;\n }\n }\n\n // Bootstrap specific; comment the following selector out\n //a[href]::after {\n // content: \" (\" attr(href) \")\";\n //}\n\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n\n // Bootstrap specific; comment the following selector out\n //\n // Don't show links that are fragment identifiers,\n // or use the `javascript:` pseudo protocol\n //\n\n //a[href^=\"#\"]::after,\n //a[href^=\"javascript:\"]::after {\n // content: \"\";\n //}\n\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px\n page-break-inside: avoid;\n }\n\n //\n // Printing Tables:\n // http://css-discuss.incutio.com/wiki/Printing_Tables\n //\n\n thead {\n display: table-header-group;\n }\n\n tr,\n img {\n page-break-inside: avoid;\n }\n\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n\n h2,\n h3 {\n page-break-after: avoid;\n }\n\n // Bootstrap specific changes start\n\n // Specify a size and min-width to make printing closer across browsers.\n // We don't set margin here because it breaks `size` in Chrome. We also\n // don't use `!important` on `size` as it breaks in Chrome.\n @page {\n size: $print-page-size;\n }\n body {\n min-width: $print-body-min-width !important;\n }\n .container {\n min-width: $print-body-min-width !important;\n }\n\n // Bootstrap components\n .navbar {\n display: none;\n }\n .badge {\n border: $border-width solid $black;\n }\n\n .table {\n border-collapse: collapse !important;\n\n td,\n th {\n background-color: $white !important;\n }\n }\n .table-bordered {\n th,\n td {\n border: 1px solid $gray-300 !important;\n }\n }\n\n // Bootstrap specific changes end\n }\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/js/bootstrap.bundle.js b/library/bootstrap/js/bootstrap.bundle.js
index 45b357d36..9bea2ea30 100644
--- a/library/bootstrap/js/bootstrap.bundle.js
+++ b/library/bootstrap/js/bootstrap.bundle.js
@@ -1,6328 +1,6433 @@
/*!
- * Bootstrap v4.0.0 (https://getbootstrap.com)
+ * Bootstrap v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :
- typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :
- (factory((global.bootstrap = {}),global.jQuery));
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) :
+ typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) :
+ (factory((global.bootstrap = {}),global.jQuery));
}(this, (function (exports,$) { 'use strict';
-$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
+ $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
-function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
}
-}
-function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
- return Constructor;
-}
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
+ }
-function _extends() {
- _extends = Object.assign || function (target) {
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ }
+
+ function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
+ var source = arguments[i] != null ? arguments[i] : {};
+ var ownKeys = Object.keys(source);
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
+ if (typeof Object.getOwnPropertySymbols === 'function') {
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+ }));
}
+
+ ownKeys.forEach(function (key) {
+ _defineProperty(target, key, source[key]);
+ });
}
return target;
- };
-
- return _extends.apply(this, arguments);
-}
-
-function _inheritsLoose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
- subClass.__proto__ = superClass;
-}
+ }
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+ subClass.__proto__ = superClass;
+ }
-var Util = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Private TransitionEnd Helpers
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): util.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var transition = false;
- var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
-
- function toType(obj) {
- return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
- }
-
- function getSpecialTransitionEndEvent() {
- return {
- bindType: transition.end,
- delegateType: transition.end,
- handle: function handle(event) {
- if ($$$1(event.target).is(this)) {
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
- }
- return undefined; // eslint-disable-line no-undefined
- }
- };
- }
+ var Util = function ($$$1) {
+ /**
+ * ------------------------------------------------------------------------
+ * Private TransitionEnd Helpers
+ * ------------------------------------------------------------------------
+ */
+ var TRANSITION_END = 'transitionend';
+ var MAX_UID = 1000000;
+ var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
- function transitionEndTest() {
- if (typeof window !== 'undefined' && window.QUnit) {
- return false;
+ function toType(obj) {
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
}
- return {
- end: 'transitionend'
- };
- }
+ function getSpecialTransitionEndEvent() {
+ return {
+ bindType: TRANSITION_END,
+ delegateType: TRANSITION_END,
+ handle: function handle(event) {
+ if ($$$1(event.target).is(this)) {
+ return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
+ }
- function transitionEndEmulator(duration) {
- var _this = this;
+ return undefined; // eslint-disable-line no-undefined
+ }
+ };
+ }
- var called = false;
- $$$1(this).one(Util.TRANSITION_END, function () {
- called = true;
- });
- setTimeout(function () {
- if (!called) {
- Util.triggerTransitionEnd(_this);
- }
- }, duration);
- return this;
- }
+ function transitionEndEmulator(duration) {
+ var _this = this;
- function setTransitionEndSupport() {
- transition = transitionEndTest();
- $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
+ var called = false;
+ $$$1(this).one(Util.TRANSITION_END, function () {
+ called = true;
+ });
+ setTimeout(function () {
+ if (!called) {
+ Util.triggerTransitionEnd(_this);
+ }
+ }, duration);
+ return this;
+ }
- if (Util.supportsTransitionEnd()) {
+ function setTransitionEndSupport() {
+ $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
$$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
}
- }
-
- function escapeId(selector) {
- // We escape IDs in case of special selectors (selector = '#myId:something')
- // $.escapeSelector does not exist in jQuery < 3
- selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
- return selector;
- }
- /**
- * --------------------------------------------------------------------------
- * Public Util Api
- * --------------------------------------------------------------------------
- */
-
+ /**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
- var Util = {
- TRANSITION_END: 'bsTransitionEnd',
- getUID: function getUID(prefix) {
- do {
- // eslint-disable-next-line no-bitwise
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
- } while (document.getElementById(prefix));
- return prefix;
- },
- getSelectorFromElement: function getSelectorFromElement(element) {
- var selector = element.getAttribute('data-target');
+ var Util = {
+ TRANSITION_END: 'bsTransitionEnd',
+ getUID: function getUID(prefix) {
+ do {
+ // eslint-disable-next-line no-bitwise
+ prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
+ } while (document.getElementById(prefix));
- if (!selector || selector === '#') {
- selector = element.getAttribute('href') || '';
- } // If it's an ID
+ return prefix;
+ },
+ getSelectorFromElement: function getSelectorFromElement(element) {
+ var selector = element.getAttribute('data-target');
+ if (!selector || selector === '#') {
+ selector = element.getAttribute('href') || '';
+ }
- if (selector.charAt(0) === '#') {
- selector = escapeId(selector);
- }
-
- try {
- var $selector = $$$1(document).find(selector);
- return $selector.length > 0 ? selector : null;
- } catch (err) {
- return null;
- }
- },
- reflow: function reflow(element) {
- return element.offsetHeight;
- },
- triggerTransitionEnd: function triggerTransitionEnd(element) {
- $$$1(element).trigger(transition.end);
- },
- supportsTransitionEnd: function supportsTransitionEnd() {
- return Boolean(transition);
- },
- isElement: function isElement(obj) {
- return (obj[0] || obj).nodeType;
- },
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
- for (var property in configTypes) {
- if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
- var expectedTypes = configTypes[property];
- var value = config[property];
- var valueType = value && Util.isElement(value) ? 'element' : toType(value);
-
- if (!new RegExp(expectedTypes).test(valueType)) {
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ try {
+ var $selector = $$$1(document).find(selector);
+ return $selector.length > 0 ? selector : null;
+ } catch (err) {
+ return null;
+ }
+ },
+ getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var transitionDuration = $$$1(element).css('transition-duration');
+ var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
+ },
+ reflow: function reflow(element) {
+ return element.offsetHeight;
+ },
+ triggerTransitionEnd: function triggerTransitionEnd(element) {
+ $$$1(element).trigger(TRANSITION_END);
+ },
+ // TODO: Remove in v5
+ supportsTransitionEnd: function supportsTransitionEnd() {
+ return Boolean(TRANSITION_END);
+ },
+ isElement: function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ },
+ typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
+ for (var property in configTypes) {
+ if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && Util.isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
}
}
}
- }
- };
- setTransitionEndSupport();
- return Util;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): alert.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Alert = function ($$$1) {
+ };
+ setTransitionEndSupport();
+ return Util;
+ }($);
+
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): alert.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'alert';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.alert';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 150;
- var Selector = {
- DISMISS: '[data-dismiss="alert"]'
- };
- var Event = {
- CLOSE: "close" + EVENT_KEY,
- CLOSED: "closed" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- ALERT: 'alert',
- FADE: 'fade',
- SHOW: 'show'
+
+ var Alert = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'alert';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.alert';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var Selector = {
+ DISMISS: '[data-dismiss="alert"]'
+ };
+ var Event = {
+ CLOSE: "close" + EVENT_KEY,
+ CLOSED: "closed" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ ALERT: 'alert',
+ FADE: 'fade',
+ SHOW: 'show'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Alert =
- /*#__PURE__*/
- function () {
- function Alert(element) {
- this._element = element;
- } // Getters
+ var Alert =
+ /*#__PURE__*/
+ function () {
+ function Alert(element) {
+ this._element = element;
+ } // Getters
- var _proto = Alert.prototype;
+ var _proto = Alert.prototype;
- // Public
- _proto.close = function close(element) {
- element = element || this._element;
+ // Public
+ _proto.close = function close(element) {
+ element = element || this._element;
- var rootElement = this._getRootElement(element);
+ var rootElement = this._getRootElement(element);
- var customEvent = this._triggerCloseEvent(rootElement);
+ var customEvent = this._triggerCloseEvent(rootElement);
- if (customEvent.isDefaultPrevented()) {
- return;
- }
+ if (customEvent.isDefaultPrevented()) {
+ return;
+ }
- this._removeElement(rootElement);
- };
+ this._removeElement(rootElement);
+ };
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._element = null;
- }; // Private
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // Private
- _proto._getRootElement = function _getRootElement(element) {
- var selector = Util.getSelectorFromElement(element);
- var parent = false;
+ _proto._getRootElement = function _getRootElement(element) {
+ var selector = Util.getSelectorFromElement(element);
+ var parent = false;
- if (selector) {
- parent = $$$1(selector)[0];
- }
+ if (selector) {
+ parent = $$$1(selector)[0];
+ }
- if (!parent) {
- parent = $$$1(element).closest("." + ClassName.ALERT)[0];
- }
+ if (!parent) {
+ parent = $$$1(element).closest("." + ClassName.ALERT)[0];
+ }
- return parent;
- };
+ return parent;
+ };
- _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
- var closeEvent = $$$1.Event(Event.CLOSE);
- $$$1(element).trigger(closeEvent);
- return closeEvent;
- };
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
+ var closeEvent = $$$1.Event(Event.CLOSE);
+ $$$1(element).trigger(closeEvent);
+ return closeEvent;
+ };
- _proto._removeElement = function _removeElement(element) {
- var _this = this;
+ _proto._removeElement = function _removeElement(element) {
+ var _this = this;
- $$$1(element).removeClass(ClassName.SHOW);
+ $$$1(element).removeClass(ClassName.SHOW);
- if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
- this._destroyElement(element);
+ if (!$$$1(element).hasClass(ClassName.FADE)) {
+ this._destroyElement(element);
- return;
- }
+ return;
+ }
- $$$1(element).one(Util.TRANSITION_END, function (event) {
- return _this._destroyElement(element, event);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- };
+ var transitionDuration = Util.getTransitionDurationFromElement(element);
+ $$$1(element).one(Util.TRANSITION_END, function (event) {
+ return _this._destroyElement(element, event);
+ }).emulateTransitionEnd(transitionDuration);
+ };
- _proto._destroyElement = function _destroyElement(element) {
- $$$1(element).detach().trigger(Event.CLOSED).remove();
- }; // Static
+ _proto._destroyElement = function _destroyElement(element) {
+ $$$1(element).detach().trigger(Event.CLOSED).remove();
+ }; // Static
- Alert._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $element = $$$1(this);
- var data = $element.data(DATA_KEY);
+ Alert._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $element = $$$1(this);
+ var data = $element.data(DATA_KEY);
- if (!data) {
- data = new Alert(this);
- $element.data(DATA_KEY, data);
- }
+ if (!data) {
+ data = new Alert(this);
+ $element.data(DATA_KEY, data);
+ }
- if (config === 'close') {
- data[config](this);
- }
- });
- };
+ if (config === 'close') {
+ data[config](this);
+ }
+ });
+ };
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
- return function (event) {
- if (event) {
- event.preventDefault();
- }
+ Alert._handleDismiss = function _handleDismiss(alertInstance) {
+ return function (event) {
+ if (event) {
+ event.preventDefault();
+ }
- alertInstance.close(this);
+ alertInstance.close(this);
+ };
};
- };
- _createClass(Alert, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }]);
- return Alert;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ _createClass(Alert, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+ return Alert;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $$$1.fn[NAME] = Alert._jQueryInterface;
- $$$1.fn[NAME].Constructor = Alert;
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Alert._jQueryInterface;
- };
+ $$$1.fn[NAME] = Alert._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Alert;
- return Alert;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Alert._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): button.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Alert;
+ }($);
-var Button = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): button.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'button';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.button';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var ClassName = {
- ACTIVE: 'active',
- BUTTON: 'btn',
- FOCUS: 'focus'
- };
- var Selector = {
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
- DATA_TOGGLE: '[data-toggle="buttons"]',
- INPUT: 'input',
- ACTIVE: '.active',
- BUTTON: '.btn'
- };
- var Event = {
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
- FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
+
+ var Button = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'button';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.button';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var ClassName = {
+ ACTIVE: 'active',
+ BUTTON: 'btn',
+ FOCUS: 'focus'
+ };
+ var Selector = {
+ DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
+ DATA_TOGGLE: '[data-toggle="buttons"]',
+ INPUT: 'input',
+ ACTIVE: '.active',
+ BUTTON: '.btn'
+ };
+ var Event = {
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+ FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Button =
- /*#__PURE__*/
- function () {
- function Button(element) {
- this._element = element;
- } // Getters
+ var Button =
+ /*#__PURE__*/
+ function () {
+ function Button(element) {
+ this._element = element;
+ } // Getters
- var _proto = Button.prototype;
+ var _proto = Button.prototype;
- // Public
- _proto.toggle = function toggle() {
- var triggerChangeEvent = true;
- var addAriaPressed = true;
- var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
+ // Public
+ _proto.toggle = function toggle() {
+ var triggerChangeEvent = true;
+ var addAriaPressed = true;
+ var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
- if (rootElement) {
- var input = $$$1(this._element).find(Selector.INPUT)[0];
+ if (rootElement) {
+ var input = $$$1(this._element).find(Selector.INPUT)[0];
- if (input) {
- if (input.type === 'radio') {
- if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
- triggerChangeEvent = false;
- } else {
- var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
+ if (input) {
+ if (input.type === 'radio') {
+ if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
+ triggerChangeEvent = false;
+ } else {
+ var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
- if (activeElement) {
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
+ if (activeElement) {
+ $$$1(activeElement).removeClass(ClassName.ACTIVE);
+ }
}
}
- }
- if (triggerChangeEvent) {
- if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
- return;
+ if (triggerChangeEvent) {
+ if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
+ return;
+ }
+
+ input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
+ $$$1(input).trigger('change');
}
- input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
- $$$1(input).trigger('change');
+ input.focus();
+ addAriaPressed = false;
}
+ }
- input.focus();
- addAriaPressed = false;
+ if (addAriaPressed) {
+ this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
}
- }
- if (addAriaPressed) {
- this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
- }
+ if (triggerChangeEvent) {
+ $$$1(this._element).toggleClass(ClassName.ACTIVE);
+ }
+ };
- if (triggerChangeEvent) {
- $$$1(this._element).toggleClass(ClassName.ACTIVE);
- }
- };
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // Static
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._element = null;
- }; // Static
+ Button._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- Button._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ if (!data) {
+ data = new Button(this);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (!data) {
- data = new Button(this);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (config === 'toggle') {
+ data[config]();
+ }
+ });
+ };
- if (config === 'toggle') {
- data[config]();
+ _createClass(Button, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
-
- _createClass(Button, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }]);
- return Button;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ }]);
+ return Button;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
- event.preventDefault();
- var button = event.target;
- if (!$$$1(button).hasClass(ClassName.BUTTON)) {
- button = $$$1(button).closest(Selector.BUTTON);
- }
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+ event.preventDefault();
+ var button = event.target;
- Button._jQueryInterface.call($$$1(button), 'toggle');
- }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
- var button = $$$1(event.target).closest(Selector.BUTTON)[0];
- $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ if (!$$$1(button).hasClass(ClassName.BUTTON)) {
+ button = $$$1(button).closest(Selector.BUTTON);
+ }
- $$$1.fn[NAME] = Button._jQueryInterface;
- $$$1.fn[NAME].Constructor = Button;
+ Button._jQueryInterface.call($$$1(button), 'toggle');
+ }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+ var button = $$$1(event.target).closest(Selector.BUTTON)[0];
+ $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Button._jQueryInterface;
- };
+ $$$1.fn[NAME] = Button._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Button;
- return Button;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Button._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): carousel.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Button;
+ }($);
-var Carousel = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): carousel.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'carousel';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.carousel';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 600;
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
- var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
- var Default = {
- interval: 5000,
- keyboard: true,
- slide: false,
- pause: 'hover',
- wrap: true
- };
- var DefaultType = {
- interval: '(number|boolean)',
- keyboard: 'boolean',
- slide: '(boolean|string)',
- pause: '(string|boolean)',
- wrap: 'boolean'
- };
- var Direction = {
- NEXT: 'next',
- PREV: 'prev',
- LEFT: 'left',
- RIGHT: 'right'
- };
- var Event = {
- SLIDE: "slide" + EVENT_KEY,
- SLID: "slid" + EVENT_KEY,
- KEYDOWN: "keydown" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY,
- TOUCHEND: "touchend" + EVENT_KEY,
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- CAROUSEL: 'carousel',
- ACTIVE: 'active',
- SLIDE: 'slide',
- RIGHT: 'carousel-item-right',
- LEFT: 'carousel-item-left',
- NEXT: 'carousel-item-next',
- PREV: 'carousel-item-prev',
- ITEM: 'carousel-item'
- };
- var Selector = {
- ACTIVE: '.active',
- ACTIVE_ITEM: '.active.carousel-item',
- ITEM: '.carousel-item',
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
- INDICATORS: '.carousel-indicators',
- DATA_SLIDE: '[data-slide], [data-slide-to]',
- DATA_RIDE: '[data-ride="carousel"]'
+
+ var Carousel = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
-
- };
-
- var Carousel =
- /*#__PURE__*/
- function () {
- function Carousel(element, config) {
- this._items = null;
- this._interval = null;
- this._activeElement = null;
- this._isPaused = false;
- this._isSliding = false;
- this.touchTimeout = null;
- this._config = this._getConfig(config);
- this._element = $$$1(element)[0];
- this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
-
- this._addEventListeners();
- } // Getters
-
-
- var _proto = Carousel.prototype;
-
- // Public
- _proto.next = function next() {
- if (!this._isSliding) {
- this._slide(Direction.NEXT);
- }
+ var NAME = 'carousel';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.carousel';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
+
+ var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
+
+ var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
+
+ var Default = {
+ interval: 5000,
+ keyboard: true,
+ slide: false,
+ pause: 'hover',
+ wrap: true
};
-
- _proto.nextWhenVisible = function nextWhenVisible() {
- // Don't call next when the page isn't visible
- // or the carousel or its parent isn't visible
- if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
- this.next();
- }
+ var DefaultType = {
+ interval: '(number|boolean)',
+ keyboard: 'boolean',
+ slide: '(boolean|string)',
+ pause: '(string|boolean)',
+ wrap: 'boolean'
+ };
+ var Direction = {
+ NEXT: 'next',
+ PREV: 'prev',
+ LEFT: 'left',
+ RIGHT: 'right'
+ };
+ var Event = {
+ SLIDE: "slide" + EVENT_KEY,
+ SLID: "slid" + EVENT_KEY,
+ KEYDOWN: "keydown" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY,
+ TOUCHEND: "touchend" + EVENT_KEY,
+ LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
};
+ var ClassName = {
+ CAROUSEL: 'carousel',
+ ACTIVE: 'active',
+ SLIDE: 'slide',
+ RIGHT: 'carousel-item-right',
+ LEFT: 'carousel-item-left',
+ NEXT: 'carousel-item-next',
+ PREV: 'carousel-item-prev',
+ ITEM: 'carousel-item'
+ };
+ var Selector = {
+ ACTIVE: '.active',
+ ACTIVE_ITEM: '.active.carousel-item',
+ ITEM: '.carousel-item',
+ NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
+ INDICATORS: '.carousel-indicators',
+ DATA_SLIDE: '[data-slide], [data-slide-to]',
+ DATA_RIDE: '[data-ride="carousel"]'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- _proto.prev = function prev() {
- if (!this._isSliding) {
- this._slide(Direction.PREV);
- }
};
- _proto.pause = function pause(event) {
- if (!event) {
- this._isPaused = true;
- }
+ var Carousel =
+ /*#__PURE__*/
+ function () {
+ function Carousel(element, config) {
+ this._items = null;
+ this._interval = null;
+ this._activeElement = null;
+ this._isPaused = false;
+ this._isSliding = false;
+ this.touchTimeout = null;
+ this._config = this._getConfig(config);
+ this._element = $$$1(element)[0];
+ this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
- if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
- Util.triggerTransitionEnd(this._element);
- this.cycle(true);
- }
+ this._addEventListeners();
+ } // Getters
- clearInterval(this._interval);
- this._interval = null;
- };
- _proto.cycle = function cycle(event) {
- if (!event) {
- this._isPaused = false;
- }
+ var _proto = Carousel.prototype;
+
+ // Public
+ _proto.next = function next() {
+ if (!this._isSliding) {
+ this._slide(Direction.NEXT);
+ }
+ };
+
+ _proto.nextWhenVisible = function nextWhenVisible() {
+ // Don't call next when the page isn't visible
+ // or the carousel or its parent isn't visible
+ if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
+ this.next();
+ }
+ };
+
+ _proto.prev = function prev() {
+ if (!this._isSliding) {
+ this._slide(Direction.PREV);
+ }
+ };
+
+ _proto.pause = function pause(event) {
+ if (!event) {
+ this._isPaused = true;
+ }
+
+ if ($$$1(this._element).find(Selector.NEXT_PREV)[0]) {
+ Util.triggerTransitionEnd(this._element);
+ this.cycle(true);
+ }
- if (this._interval) {
clearInterval(this._interval);
this._interval = null;
- }
+ };
- if (this._config.interval && !this._isPaused) {
- this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
- }
- };
+ _proto.cycle = function cycle(event) {
+ if (!event) {
+ this._isPaused = false;
+ }
- _proto.to = function to(index) {
- var _this = this;
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
- this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
+ if (this._config.interval && !this._isPaused) {
+ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
+ }
+ };
- var activeIndex = this._getItemIndex(this._activeElement);
+ _proto.to = function to(index) {
+ var _this = this;
- if (index > this._items.length - 1 || index < 0) {
- return;
- }
+ this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
- if (this._isSliding) {
- $$$1(this._element).one(Event.SLID, function () {
- return _this.to(index);
- });
- return;
- }
+ var activeIndex = this._getItemIndex(this._activeElement);
- if (activeIndex === index) {
- this.pause();
- this.cycle();
- return;
- }
+ if (index > this._items.length - 1 || index < 0) {
+ return;
+ }
+
+ if (this._isSliding) {
+ $$$1(this._element).one(Event.SLID, function () {
+ return _this.to(index);
+ });
+ return;
+ }
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
+ if (activeIndex === index) {
+ this.pause();
+ this.cycle();
+ return;
+ }
- this._slide(direction, this._items[index]);
- };
+ var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
- _proto.dispose = function dispose() {
- $$$1(this._element).off(EVENT_KEY);
- $$$1.removeData(this._element, DATA_KEY);
- this._items = null;
- this._config = null;
- this._element = null;
- this._interval = null;
- this._isPaused = null;
- this._isSliding = null;
- this._activeElement = null;
- this._indicatorsElement = null;
- }; // Private
-
-
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default, config);
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
+ this._slide(direction, this._items[index]);
+ };
- _proto._addEventListeners = function _addEventListeners() {
- var _this2 = this;
+ _proto.dispose = function dispose() {
+ $$$1(this._element).off(EVENT_KEY);
+ $$$1.removeData(this._element, DATA_KEY);
+ this._items = null;
+ this._config = null;
+ this._element = null;
+ this._interval = null;
+ this._isPaused = null;
+ this._isSliding = null;
+ this._activeElement = null;
+ this._indicatorsElement = null;
+ }; // Private
- if (this._config.keyboard) {
- $$$1(this._element).on(Event.KEYDOWN, function (event) {
- return _this2._keydown(event);
- });
- }
- if (this._config.pause === 'hover') {
- $$$1(this._element).on(Event.MOUSEENTER, function (event) {
- return _this2.pause(event);
- }).on(Event.MOUSELEAVE, function (event) {
- return _this2.cycle(event);
- });
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, Default, config);
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
- if ('ontouchstart' in document.documentElement) {
- // If it's a touch-enabled device, mouseenter/leave are fired as
- // part of the mouse compatibility events on first tap - the carousel
- // would stop cycling until user tapped out of it;
- // here, we listen for touchend, explicitly pause the carousel
- // (as if it's the second time we tap on it, mouseenter compat event
- // is NOT fired) and after a timeout (to allow for mouse compatibility
- // events to fire) we explicitly restart cycling
- $$$1(this._element).on(Event.TOUCHEND, function () {
- _this2.pause();
-
- if (_this2.touchTimeout) {
- clearTimeout(_this2.touchTimeout);
- }
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this2 = this;
- _this2.touchTimeout = setTimeout(function (event) {
- return _this2.cycle(event);
- }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
+ if (this._config.keyboard) {
+ $$$1(this._element).on(Event.KEYDOWN, function (event) {
+ return _this2._keydown(event);
});
}
- }
- };
- _proto._keydown = function _keydown(event) {
- if (/input|textarea/i.test(event.target.tagName)) {
- return;
- }
+ if (this._config.pause === 'hover') {
+ $$$1(this._element).on(Event.MOUSEENTER, function (event) {
+ return _this2.pause(event);
+ }).on(Event.MOUSELEAVE, function (event) {
+ return _this2.cycle(event);
+ });
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
- event.preventDefault();
- this.prev();
- break;
+ if ('ontouchstart' in document.documentElement) {
+ // If it's a touch-enabled device, mouseenter/leave are fired as
+ // part of the mouse compatibility events on first tap - the carousel
+ // would stop cycling until user tapped out of it;
+ // here, we listen for touchend, explicitly pause the carousel
+ // (as if it's the second time we tap on it, mouseenter compat event
+ // is NOT fired) and after a timeout (to allow for mouse compatibility
+ // events to fire) we explicitly restart cycling
+ $$$1(this._element).on(Event.TOUCHEND, function () {
+ _this2.pause();
+
+ if (_this2.touchTimeout) {
+ clearTimeout(_this2.touchTimeout);
+ }
- case ARROW_RIGHT_KEYCODE:
- event.preventDefault();
- this.next();
- break;
+ _this2.touchTimeout = setTimeout(function (event) {
+ return _this2.cycle(event);
+ }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
+ });
+ }
+ }
+ };
- default:
- }
- };
+ _proto._keydown = function _keydown(event) {
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
- _proto._getItemIndex = function _getItemIndex(element) {
- this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
- return this._items.indexOf(element);
- };
+ switch (event.which) {
+ case ARROW_LEFT_KEYCODE:
+ event.preventDefault();
+ this.prev();
+ break;
- _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
- var isNextDirection = direction === Direction.NEXT;
- var isPrevDirection = direction === Direction.PREV;
+ case ARROW_RIGHT_KEYCODE:
+ event.preventDefault();
+ this.next();
+ break;
- var activeIndex = this._getItemIndex(activeElement);
+ default:
+ }
+ };
- var lastItemIndex = this._items.length - 1;
- var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+ _proto._getItemIndex = function _getItemIndex(element) {
+ this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
+ return this._items.indexOf(element);
+ };
- if (isGoingToWrap && !this._config.wrap) {
- return activeElement;
- }
+ _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
+ var isNextDirection = direction === Direction.NEXT;
+ var isPrevDirection = direction === Direction.PREV;
- var delta = direction === Direction.PREV ? -1 : 1;
- var itemIndex = (activeIndex + delta) % this._items.length;
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
- };
+ var activeIndex = this._getItemIndex(activeElement);
- _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
- var targetIndex = this._getItemIndex(relatedTarget);
+ var lastItemIndex = this._items.length - 1;
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
- var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
+ if (isGoingToWrap && !this._config.wrap) {
+ return activeElement;
+ }
- var slideEvent = $$$1.Event(Event.SLIDE, {
- relatedTarget: relatedTarget,
- direction: eventDirectionName,
- from: fromIndex,
- to: targetIndex
- });
- $$$1(this._element).trigger(slideEvent);
- return slideEvent;
- };
+ var delta = direction === Direction.PREV ? -1 : 1;
+ var itemIndex = (activeIndex + delta) % this._items.length;
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+ };
+
+ _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
+ var targetIndex = this._getItemIndex(relatedTarget);
+
+ var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
+
+ var slideEvent = $$$1.Event(Event.SLIDE, {
+ relatedTarget: relatedTarget,
+ direction: eventDirectionName,
+ from: fromIndex,
+ to: targetIndex
+ });
+ $$$1(this._element).trigger(slideEvent);
+ return slideEvent;
+ };
- _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
- if (this._indicatorsElement) {
- $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+ _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
+ if (this._indicatorsElement) {
+ $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
+ var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
- if (nextIndicator) {
- $$$1(nextIndicator).addClass(ClassName.ACTIVE);
+ if (nextIndicator) {
+ $$$1(nextIndicator).addClass(ClassName.ACTIVE);
+ }
}
- }
- };
+ };
- _proto._slide = function _slide(direction, element) {
- var _this3 = this;
+ _proto._slide = function _slide(direction, element) {
+ var _this3 = this;
- var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
+ var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
- var activeElementIndex = this._getItemIndex(activeElement);
+ var activeElementIndex = this._getItemIndex(activeElement);
- var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
- var nextElementIndex = this._getItemIndex(nextElement);
+ var nextElementIndex = this._getItemIndex(nextElement);
- var isCycling = Boolean(this._interval);
- var directionalClassName;
- var orderClassName;
- var eventDirectionName;
+ var isCycling = Boolean(this._interval);
+ var directionalClassName;
+ var orderClassName;
+ var eventDirectionName;
- if (direction === Direction.NEXT) {
- directionalClassName = ClassName.LEFT;
- orderClassName = ClassName.NEXT;
- eventDirectionName = Direction.LEFT;
- } else {
- directionalClassName = ClassName.RIGHT;
- orderClassName = ClassName.PREV;
- eventDirectionName = Direction.RIGHT;
- }
+ if (direction === Direction.NEXT) {
+ directionalClassName = ClassName.LEFT;
+ orderClassName = ClassName.NEXT;
+ eventDirectionName = Direction.LEFT;
+ } else {
+ directionalClassName = ClassName.RIGHT;
+ orderClassName = ClassName.PREV;
+ eventDirectionName = Direction.RIGHT;
+ }
- if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
- this._isSliding = false;
- return;
- }
+ if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
+ this._isSliding = false;
+ return;
+ }
- var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
+ var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
- if (slideEvent.isDefaultPrevented()) {
- return;
- }
+ if (slideEvent.isDefaultPrevented()) {
+ return;
+ }
- if (!activeElement || !nextElement) {
- // Some weirdness is happening, so we bail
- return;
- }
+ if (!activeElement || !nextElement) {
+ // Some weirdness is happening, so we bail
+ return;
+ }
- this._isSliding = true;
+ this._isSliding = true;
- if (isCycling) {
- this.pause();
- }
+ if (isCycling) {
+ this.pause();
+ }
- this._setActiveIndicatorElement(nextElement);
+ this._setActiveIndicatorElement(nextElement);
- var slidEvent = $$$1.Event(Event.SLID, {
- relatedTarget: nextElement,
- direction: eventDirectionName,
- from: activeElementIndex,
- to: nextElementIndex
- });
+ var slidEvent = $$$1.Event(Event.SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
- $$$1(nextElement).addClass(orderClassName);
- Util.reflow(nextElement);
- $$$1(activeElement).addClass(directionalClassName);
- $$$1(nextElement).addClass(directionalClassName);
- $$$1(activeElement).one(Util.TRANSITION_END, function () {
- $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
- $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
- _this3._isSliding = false;
- setTimeout(function () {
- return $$$1(_this3._element).trigger(slidEvent);
- }, 0);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
- $$$1(nextElement).addClass(ClassName.ACTIVE);
- this._isSliding = false;
- $$$1(this._element).trigger(slidEvent);
- }
+ if ($$$1(this._element).hasClass(ClassName.SLIDE)) {
+ $$$1(nextElement).addClass(orderClassName);
+ Util.reflow(nextElement);
+ $$$1(activeElement).addClass(directionalClassName);
+ $$$1(nextElement).addClass(directionalClassName);
+ var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
+ $$$1(activeElement).one(Util.TRANSITION_END, function () {
+ $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
+ $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
+ _this3._isSliding = false;
+ setTimeout(function () {
+ return $$$1(_this3._element).trigger(slidEvent);
+ }, 0);
+ }).emulateTransitionEnd(transitionDuration);
+ } else {
+ $$$1(activeElement).removeClass(ClassName.ACTIVE);
+ $$$1(nextElement).addClass(ClassName.ACTIVE);
+ this._isSliding = false;
+ $$$1(this._element).trigger(slidEvent);
+ }
- if (isCycling) {
- this.cycle();
- }
- }; // Static
+ if (isCycling) {
+ this.cycle();
+ }
+ }; // Static
- Carousel._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ Carousel._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- var _config = _extends({}, Default, $$$1(this).data());
+ var _config = _objectSpread({}, Default, $$$1(this).data());
- if (typeof config === 'object') {
- _config = _extends({}, _config, config);
- }
+ if (typeof config === 'object') {
+ _config = _objectSpread({}, _config, config);
+ }
- var action = typeof config === 'string' ? config : _config.slide;
+ var action = typeof config === 'string' ? config : _config.slide;
- if (!data) {
- data = new Carousel(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (!data) {
+ data = new Carousel(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (typeof config === 'number') {
- data.to(config);
- } else if (typeof action === 'string') {
- if (typeof data[action] === 'undefined') {
- throw new TypeError("No method named \"" + action + "\"");
+ if (typeof config === 'number') {
+ data.to(config);
+ } else if (typeof action === 'string') {
+ if (typeof data[action] === 'undefined') {
+ throw new TypeError("No method named \"" + action + "\"");
+ }
+
+ data[action]();
+ } else if (_config.interval) {
+ data.pause();
+ data.cycle();
}
+ });
+ };
+
+ Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
+ var selector = Util.getSelectorFromElement(this);
- data[action]();
- } else if (_config.interval) {
- data.pause();
- data.cycle();
+ if (!selector) {
+ return;
}
- });
- };
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
- var selector = Util.getSelectorFromElement(this);
+ var target = $$$1(selector)[0];
- if (!selector) {
- return;
- }
+ if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
+ return;
+ }
- var target = $$$1(selector)[0];
+ var config = _objectSpread({}, $$$1(target).data(), $$$1(this).data());
- if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
- return;
- }
+ var slideIndex = this.getAttribute('data-slide-to');
- var config = _extends({}, $$$1(target).data(), $$$1(this).data());
- var slideIndex = this.getAttribute('data-slide-to');
+ if (slideIndex) {
+ config.interval = false;
+ }
- if (slideIndex) {
- config.interval = false;
- }
+ Carousel._jQueryInterface.call($$$1(target), config);
- Carousel._jQueryInterface.call($$$1(target), config);
+ if (slideIndex) {
+ $$$1(target).data(DATA_KEY).to(slideIndex);
+ }
- if (slideIndex) {
- $$$1(target).data(DATA_KEY).to(slideIndex);
- }
+ event.preventDefault();
+ };
- event.preventDefault();
- };
+ _createClass(Carousel, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
- _createClass(Carousel, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
- return Carousel;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ return Carousel;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
- $$$1(window).on(Event.LOAD_DATA_API, function () {
- $$$1(Selector.DATA_RIDE).each(function () {
- var $carousel = $$$1(this);
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
+ $$$1(window).on(Event.LOAD_DATA_API, function () {
+ $$$1(Selector.DATA_RIDE).each(function () {
+ var $carousel = $$$1(this);
- Carousel._jQueryInterface.call($carousel, $carousel.data());
+ Carousel._jQueryInterface.call($carousel, $carousel.data());
+ });
});
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Carousel._jQueryInterface;
- $$$1.fn[NAME].Constructor = Carousel;
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Carousel._jQueryInterface;
- };
+ $$$1.fn[NAME] = Carousel._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Carousel;
- return Carousel;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Carousel._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): collapse.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Carousel;
+ }($);
-var Collapse = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): collapse.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'collapse';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.collapse';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 600;
- var Default = {
- toggle: true,
- parent: ''
- };
- var DefaultType = {
- toggle: 'boolean',
- parent: '(string|element)'
- };
- var Event = {
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- SHOW: 'show',
- COLLAPSE: 'collapse',
- COLLAPSING: 'collapsing',
- COLLAPSED: 'collapsed'
- };
- var Dimension = {
- WIDTH: 'width',
- HEIGHT: 'height'
- };
- var Selector = {
- ACTIVES: '.show, .collapsing',
- DATA_TOGGLE: '[data-toggle="collapse"]'
+
+ var Collapse = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'collapse';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.collapse';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var Default = {
+ toggle: true,
+ parent: ''
+ };
+ var DefaultType = {
+ toggle: 'boolean',
+ parent: '(string|element)'
+ };
+ var Event = {
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ SHOW: 'show',
+ COLLAPSE: 'collapse',
+ COLLAPSING: 'collapsing',
+ COLLAPSED: 'collapsed'
+ };
+ var Dimension = {
+ WIDTH: 'width',
+ HEIGHT: 'height'
+ };
+ var Selector = {
+ ACTIVES: '.show, .collapsing',
+ DATA_TOGGLE: '[data-toggle="collapse"]'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Collapse =
- /*#__PURE__*/
- function () {
- function Collapse(element, config) {
- this._isTransitioning = false;
- this._element = element;
- this._config = this._getConfig(config);
- this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
- var tabToggles = $$$1(Selector.DATA_TOGGLE);
+ var Collapse =
+ /*#__PURE__*/
+ function () {
+ function Collapse(element, config) {
+ this._isTransitioning = false;
+ this._element = element;
+ this._config = this._getConfig(config);
+ this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
+ var tabToggles = $$$1(Selector.DATA_TOGGLE);
- for (var i = 0; i < tabToggles.length; i++) {
- var elem = tabToggles[i];
- var selector = Util.getSelectorFromElement(elem);
+ for (var i = 0; i < tabToggles.length; i++) {
+ var elem = tabToggles[i];
+ var selector = Util.getSelectorFromElement(elem);
- if (selector !== null && $$$1(selector).filter(element).length > 0) {
- this._selector = selector;
+ if (selector !== null && $$$1(selector).filter(element).length > 0) {
+ this._selector = selector;
- this._triggerArray.push(elem);
+ this._triggerArray.push(elem);
+ }
}
- }
- this._parent = this._config.parent ? this._getParent() : null;
+ this._parent = this._config.parent ? this._getParent() : null;
- if (!this._config.parent) {
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
- }
+ if (!this._config.parent) {
+ this._addAriaAndCollapsedClass(this._element, this._triggerArray);
+ }
- if (this._config.toggle) {
- this.toggle();
- }
- } // Getters
+ if (this._config.toggle) {
+ this.toggle();
+ }
+ } // Getters
- var _proto = Collapse.prototype;
+ var _proto = Collapse.prototype;
- // Public
- _proto.toggle = function toggle() {
- if ($$$1(this._element).hasClass(ClassName.SHOW)) {
- this.hide();
- } else {
- this.show();
- }
- };
+ // Public
+ _proto.toggle = function toggle() {
+ if ($$$1(this._element).hasClass(ClassName.SHOW)) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ };
- _proto.show = function show() {
- var _this = this;
+ _proto.show = function show() {
+ var _this = this;
- if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
- return;
- }
+ if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
+ return;
+ }
- var actives;
- var activesData;
+ var actives;
+ var activesData;
- if (this._parent) {
- actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
+ if (this._parent) {
+ actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
- if (actives.length === 0) {
- actives = null;
+ if (actives.length === 0) {
+ actives = null;
+ }
}
- }
- if (actives) {
- activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
+ if (actives) {
+ activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
- if (activesData && activesData._isTransitioning) {
- return;
+ if (activesData && activesData._isTransitioning) {
+ return;
+ }
}
- }
- var startEvent = $$$1.Event(Event.SHOW);
- $$$1(this._element).trigger(startEvent);
+ var startEvent = $$$1.Event(Event.SHOW);
+ $$$1(this._element).trigger(startEvent);
- if (startEvent.isDefaultPrevented()) {
- return;
- }
+ if (startEvent.isDefaultPrevented()) {
+ return;
+ }
- if (actives) {
- Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
+ if (actives) {
+ Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
- if (!activesData) {
- $$$1(actives).data(DATA_KEY, null);
+ if (!activesData) {
+ $$$1(actives).data(DATA_KEY, null);
+ }
}
- }
- var dimension = this._getDimension();
+ var dimension = this._getDimension();
- $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
- this._element.style[dimension] = 0;
-
- if (this._triggerArray.length > 0) {
- $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
- }
+ $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
+ this._element.style[dimension] = 0;
- this.setTransitioning(true);
+ if (this._triggerArray.length > 0) {
+ $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
+ }
- var complete = function complete() {
- $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
- _this._element.style[dimension] = '';
+ this.setTransitioning(true);
- _this.setTransitioning(false);
+ var complete = function complete() {
+ $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
+ _this._element.style[dimension] = '';
- $$$1(_this._element).trigger(Event.SHOWN);
- };
+ _this.setTransitioning(false);
- if (!Util.supportsTransitionEnd()) {
- complete();
- return;
- }
+ $$$1(_this._element).trigger(Event.SHOWN);
+ };
- var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
- var scrollSize = "scroll" + capitalizedDimension;
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- this._element.style[dimension] = this._element[scrollSize] + "px";
- };
+ var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ var scrollSize = "scroll" + capitalizedDimension;
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+ $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ this._element.style[dimension] = this._element[scrollSize] + "px";
+ };
- _proto.hide = function hide() {
- var _this2 = this;
+ _proto.hide = function hide() {
+ var _this2 = this;
- if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
- return;
- }
+ if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
+ return;
+ }
- var startEvent = $$$1.Event(Event.HIDE);
- $$$1(this._element).trigger(startEvent);
+ var startEvent = $$$1.Event(Event.HIDE);
+ $$$1(this._element).trigger(startEvent);
- if (startEvent.isDefaultPrevented()) {
- return;
- }
+ if (startEvent.isDefaultPrevented()) {
+ return;
+ }
- var dimension = this._getDimension();
+ var dimension = this._getDimension();
- this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
- Util.reflow(this._element);
- $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
+ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
+ Util.reflow(this._element);
+ $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
- if (this._triggerArray.length > 0) {
- for (var i = 0; i < this._triggerArray.length; i++) {
- var trigger = this._triggerArray[i];
- var selector = Util.getSelectorFromElement(trigger);
+ if (this._triggerArray.length > 0) {
+ for (var i = 0; i < this._triggerArray.length; i++) {
+ var trigger = this._triggerArray[i];
+ var selector = Util.getSelectorFromElement(trigger);
- if (selector !== null) {
- var $elem = $$$1(selector);
+ if (selector !== null) {
+ var $elem = $$$1(selector);
- if (!$elem.hasClass(ClassName.SHOW)) {
- $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+ if (!$elem.hasClass(ClassName.SHOW)) {
+ $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+ }
}
}
}
- }
- this.setTransitioning(true);
+ this.setTransitioning(true);
- var complete = function complete() {
- _this2.setTransitioning(false);
+ var complete = function complete() {
+ _this2.setTransitioning(false);
- $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
+ $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
+ };
+
+ this._element.style[dimension] = '';
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+ $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
};
- this._element.style[dimension] = '';
+ _proto.setTransitioning = function setTransitioning(isTransitioning) {
+ this._isTransitioning = isTransitioning;
+ };
- if (!Util.supportsTransitionEnd()) {
- complete();
- return;
- }
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ this._config = null;
+ this._parent = null;
+ this._element = null;
+ this._triggerArray = null;
+ this._isTransitioning = null;
+ }; // Private
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- };
- _proto.setTransitioning = function setTransitioning(isTransitioning) {
- this._isTransitioning = isTransitioning;
- };
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, Default, config);
+ config.toggle = Boolean(config.toggle); // Coerce string values
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._config = null;
- this._parent = null;
- this._element = null;
- this._triggerArray = null;
- this._isTransitioning = null;
- }; // Private
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+ _proto._getDimension = function _getDimension() {
+ var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
+ return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
+ };
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default, config);
- config.toggle = Boolean(config.toggle); // Coerce string values
+ _proto._getParent = function _getParent() {
+ var _this3 = this;
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
+ var parent = null;
- _proto._getDimension = function _getDimension() {
- var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
- };
+ if (Util.isElement(this._config.parent)) {
+ parent = this._config.parent; // It's a jQuery object
- _proto._getParent = function _getParent() {
- var _this3 = this;
+ if (typeof this._config.parent.jquery !== 'undefined') {
+ parent = this._config.parent[0];
+ }
+ } else {
+ parent = $$$1(this._config.parent)[0];
+ }
- var parent = null;
+ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
+ $$$1(parent).find(selector).each(function (i, element) {
+ _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
+ });
+ return parent;
+ };
- if (Util.isElement(this._config.parent)) {
- parent = this._config.parent; // It's a jQuery object
+ _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
+ if (element) {
+ var isOpen = $$$1(element).hasClass(ClassName.SHOW);
- if (typeof this._config.parent.jquery !== 'undefined') {
- parent = this._config.parent[0];
+ if (triggerArray.length > 0) {
+ $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
+ }
}
- } else {
- parent = $$$1(this._config.parent)[0];
- }
+ }; // Static
- var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
- $$$1(parent).find(selector).each(function (i, element) {
- _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
- });
- return parent;
- };
- _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
- if (element) {
- var isOpen = $$$1(element).hasClass(ClassName.SHOW);
+ Collapse._getTargetFromElement = function _getTargetFromElement(element) {
+ var selector = Util.getSelectorFromElement(element);
+ return selector ? $$$1(selector)[0] : null;
+ };
- if (triggerArray.length > 0) {
- $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
- }
- }
- }; // Static
+ Collapse._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $this = $$$1(this);
+ var data = $this.data(DATA_KEY);
+ var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config);
- Collapse._getTargetFromElement = function _getTargetFromElement(element) {
- var selector = Util.getSelectorFromElement(element);
- return selector ? $$$1(selector)[0] : null;
- };
+ if (!data && _config.toggle && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
- Collapse._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $this = $$$1(this);
- var data = $this.data(DATA_KEY);
+ if (!data) {
+ data = new Collapse(this, _config);
+ $this.data(DATA_KEY, data);
+ }
- var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
- if (!data && _config.toggle && /show|hide/.test(config)) {
- _config.toggle = false;
- }
+ data[config]();
+ }
+ });
+ };
- if (!data) {
- data = new Collapse(this, _config);
- $this.data(DATA_KEY, data);
+ _createClass(Collapse, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
}
+ }]);
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
- }
+ return Collapse;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- data[config]();
- }
+
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
+ if (event.currentTarget.tagName === 'A') {
+ event.preventDefault();
+ }
+
+ var $trigger = $$$1(this);
+ var selector = Util.getSelectorFromElement(this);
+ $$$1(selector).each(function () {
+ var $target = $$$1(this);
+ var data = $target.data(DATA_KEY);
+ var config = data ? 'toggle' : $trigger.data();
+
+ Collapse._jQueryInterface.call($target, config);
});
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $$$1.fn[NAME] = Collapse._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Collapse;
+
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Collapse._jQueryInterface;
};
- _createClass(Collapse, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
+ return Collapse;
+ }($);
+
+ /**!
+ * @fileOverview Kickass library to create and place poppers near their reference elements.
+ * @version 1.14.1
+ * @license
+ * Copyright (c) 2016 Federico Zivolo and contributors
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+ var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
+ var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
+ var timeoutDuration = 0;
+ for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
+ if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
+ timeoutDuration = 1;
+ break;
+ }
+ }
+
+ function microtaskDebounce(fn) {
+ var called = false;
+ return function () {
+ if (called) {
+ return;
}
- }, {
- key: "Default",
- get: function get() {
- return Default;
+ called = true;
+ window.Promise.resolve().then(function () {
+ called = false;
+ fn();
+ });
+ };
+ }
+
+ function taskDebounce(fn) {
+ var scheduled = false;
+ return function () {
+ if (!scheduled) {
+ scheduled = true;
+ setTimeout(function () {
+ scheduled = false;
+ fn();
+ }, timeoutDuration);
}
- }]);
- return Collapse;
- }();
+ };
+ }
+
+ var supportsMicroTasks = isBrowser && window.Promise;
+
/**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ * Create a debounced version of a method, that's asynchronously deferred
+ * but called in the minimum time possible.
+ *
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Function} fn
+ * @returns {Function}
+ */
+ var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
+ /**
+ * Check if the given variable is a function
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Any} functionToCheck - variable to check
+ * @returns {Boolean} answer to: is a function?
+ */
+ function isFunction(functionToCheck) {
+ var getType = {};
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
+ }
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
- if (event.currentTarget.tagName === 'A') {
- event.preventDefault();
+ /**
+ * Get CSS computed property of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Eement} element
+ * @argument {String} property
+ */
+ function getStyleComputedProperty(element, property) {
+ if (element.nodeType !== 1) {
+ return [];
}
+ // NOTE: 1 DOM access here
+ var css = getComputedStyle(element, null);
+ return property ? css[property] : css;
+ }
- var $trigger = $$$1(this);
- var selector = Util.getSelectorFromElement(this);
- $$$1(selector).each(function () {
- var $target = $$$1(this);
- var data = $target.data(DATA_KEY);
- var config = data ? 'toggle' : $trigger.data();
+ /**
+ * Returns the parentNode or the host of the element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} parent
+ */
+ function getParentNode(element) {
+ if (element.nodeName === 'HTML') {
+ return element;
+ }
+ return element.parentNode || element.host;
+ }
- Collapse._jQueryInterface.call($target, config);
- });
- });
/**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
+ * Returns the scrolling parent of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} scroll parent
*/
+ function getScrollParent(element) {
+ // Return body, `getScroll` will take care to get the correct `scrollTop` from it
+ if (!element) {
+ return document.body;
+ }
- $$$1.fn[NAME] = Collapse._jQueryInterface;
- $$$1.fn[NAME].Constructor = Collapse;
+ switch (element.nodeName) {
+ case 'HTML':
+ case 'BODY':
+ return element.ownerDocument.body;
+ case '#document':
+ return element.body;
+ }
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Collapse._jQueryInterface;
- };
+ // Firefox want us to check `-x` and `-y` variations as well
+
+ var _getStyleComputedProp = getStyleComputedProperty(element),
+ overflow = _getStyleComputedProp.overflow,
+ overflowX = _getStyleComputedProp.overflowX,
+ overflowY = _getStyleComputedProp.overflowY;
+
+ if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
+ return element;
+ }
- return Collapse;
-}($);
-
-/**!
- * @fileOverview Kickass library to create and place poppers near their reference elements.
- * @version 1.12.9
- * @license
- * Copyright (c) 2016 Federico Zivolo and contributors
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
-var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
-var timeoutDuration = 0;
-for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {
- if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
- timeoutDuration = 1;
- break;
+ return getScrollParent(getParentNode(element));
}
-}
-function microtaskDebounce(fn) {
- var called = false;
- return function () {
- if (called) {
- return;
+ /**
+ * Tells if you are running Internet Explorer
+ * @method
+ * @memberof Popper.Utils
+ * @argument {number} version to check
+ * @returns {Boolean} isIE
+ */
+ var cache = {};
+
+ var isIE = function () {
+ var version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';
+
+ version = version.toString();
+ if (cache.hasOwnProperty(version)) {
+ return cache[version];
+ }
+ switch (version) {
+ case '11':
+ cache[version] = navigator.userAgent.indexOf('Trident') !== -1;
+ break;
+ case '10':
+ cache[version] = navigator.appVersion.indexOf('MSIE 10') !== -1;
+ break;
+ case 'all':
+ cache[version] = navigator.userAgent.indexOf('Trident') !== -1 || navigator.userAgent.indexOf('MSIE') !== -1;
+ break;
}
- called = true;
- window.Promise.resolve().then(function () {
- called = false;
- fn();
+
+ //Set IE
+ cache.all = cache.all || Object.keys(cache).some(function (key) {
+ return cache[key];
});
+ return cache[version];
};
-}
-function taskDebounce(fn) {
- var scheduled = false;
- return function () {
- if (!scheduled) {
- scheduled = true;
- setTimeout(function () {
- scheduled = false;
- fn();
- }, timeoutDuration);
+ /**
+ * Returns the offset parent of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} offset parent
+ */
+ function getOffsetParent(element) {
+ if (!element) {
+ return document.documentElement;
}
- };
-}
-
-var supportsMicroTasks = isBrowser && window.Promise;
-
-/**
-* Create a debounced version of a method, that's asynchronously deferred
-* but called in the minimum time possible.
-*
-* @method
-* @memberof Popper.Utils
-* @argument {Function} fn
-* @returns {Function}
-*/
-var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
-
-/**
- * Check if the given variable is a function
- * @method
- * @memberof Popper.Utils
- * @argument {Any} functionToCheck - variable to check
- * @returns {Boolean} answer to: is a function?
- */
-function isFunction(functionToCheck) {
- var getType = {};
- return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
-}
-
-/**
- * Get CSS computed property of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Eement} element
- * @argument {String} property
- */
-function getStyleComputedProperty(element, property) {
- if (element.nodeType !== 1) {
- return [];
- }
- // NOTE: 1 DOM access here
- var css = getComputedStyle(element, null);
- return property ? css[property] : css;
-}
-
-/**
- * Returns the parentNode or the host of the element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} parent
- */
-function getParentNode(element) {
- if (element.nodeName === 'HTML') {
- return element;
- }
- return element.parentNode || element.host;
-}
-
-/**
- * Returns the scrolling parent of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} scroll parent
- */
-function getScrollParent(element) {
- // Return body, `getScroll` will take care to get the correct `scrollTop` from it
- if (!element) {
- return document.body;
- }
- switch (element.nodeName) {
- case 'HTML':
- case 'BODY':
- return element.ownerDocument.body;
- case '#document':
- return element.body;
- }
+ var noOffsetParent = isIE(10) ? document.body : null;
- // Firefox want us to check `-x` and `-y` variations as well
+ // NOTE: 1 DOM access here
+ var offsetParent = element.offsetParent;
+ // Skip hidden elements which don't have an offsetParent
+ while (offsetParent === noOffsetParent && element.nextElementSibling) {
+ offsetParent = (element = element.nextElementSibling).offsetParent;
+ }
- var _getStyleComputedProp = getStyleComputedProperty(element),
- overflow = _getStyleComputedProp.overflow,
- overflowX = _getStyleComputedProp.overflowX,
- overflowY = _getStyleComputedProp.overflowY;
+ var nodeName = offsetParent && offsetParent.nodeName;
- if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {
- return element;
- }
+ if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
+ return element ? element.ownerDocument.documentElement : document.documentElement;
+ }
- return getScrollParent(getParentNode(element));
-}
-
-/**
- * Returns the offset parent of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Element} offset parent
- */
-function getOffsetParent(element) {
- // NOTE: 1 DOM access here
- var offsetParent = element && element.offsetParent;
- var nodeName = offsetParent && offsetParent.nodeName;
-
- if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
- if (element) {
- return element.ownerDocument.documentElement;
+ // .offsetParent will return the closest TD or TABLE in case
+ // no offsetParent is present, I hate this job...
+ if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
+ return getOffsetParent(offsetParent);
}
- return document.documentElement;
+ return offsetParent;
}
- // .offsetParent will return the closest TD or TABLE in case
- // no offsetParent is present, I hate this job...
- if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
- return getOffsetParent(offsetParent);
- }
+ function isOffsetContainer(element) {
+ var nodeName = element.nodeName;
- return offsetParent;
-}
+ if (nodeName === 'BODY') {
+ return false;
+ }
+ return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
+ }
-function isOffsetContainer(element) {
- var nodeName = element.nodeName;
+ /**
+ * Finds the root node (document, shadowDOM root) of the given element
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} node
+ * @returns {Element} root node
+ */
+ function getRoot(node) {
+ if (node.parentNode !== null) {
+ return getRoot(node.parentNode);
+ }
- if (nodeName === 'BODY') {
- return false;
- }
- return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
-}
-
-/**
- * Finds the root node (document, shadowDOM root) of the given element
- * @method
- * @memberof Popper.Utils
- * @argument {Element} node
- * @returns {Element} root node
- */
-function getRoot(node) {
- if (node.parentNode !== null) {
- return getRoot(node.parentNode);
+ return node;
}
- return node;
-}
-
-/**
- * Finds the offset parent common to the two provided nodes
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element1
- * @argument {Element} element2
- * @returns {Element} common offset parent
- */
-function findCommonOffsetParent(element1, element2) {
- // This check is needed to avoid errors in case one of the elements isn't defined for any reason
- if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
- return document.documentElement;
- }
+ /**
+ * Finds the offset parent common to the two provided nodes
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element1
+ * @argument {Element} element2
+ * @returns {Element} common offset parent
+ */
+ function findCommonOffsetParent(element1, element2) {
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
+ if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
+ return document.documentElement;
+ }
- // Here we make sure to give as "start" the element that comes first in the DOM
- var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
- var start = order ? element1 : element2;
- var end = order ? element2 : element1;
+ // Here we make sure to give as "start" the element that comes first in the DOM
+ var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
+ var start = order ? element1 : element2;
+ var end = order ? element2 : element1;
- // Get common ancestor container
- var range = document.createRange();
- range.setStart(start, 0);
- range.setEnd(end, 0);
- var commonAncestorContainer = range.commonAncestorContainer;
+ // Get common ancestor container
+ var range = document.createRange();
+ range.setStart(start, 0);
+ range.setEnd(end, 0);
+ var commonAncestorContainer = range.commonAncestorContainer;
- // Both nodes are inside #document
+ // Both nodes are inside #document
- if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
- if (isOffsetContainer(commonAncestorContainer)) {
- return commonAncestorContainer;
+ if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
+ if (isOffsetContainer(commonAncestorContainer)) {
+ return commonAncestorContainer;
+ }
+
+ return getOffsetParent(commonAncestorContainer);
}
- return getOffsetParent(commonAncestorContainer);
+ // one of the nodes is inside shadowDOM, find which one
+ var element1root = getRoot(element1);
+ if (element1root.host) {
+ return findCommonOffsetParent(element1root.host, element2);
+ } else {
+ return findCommonOffsetParent(element1, getRoot(element2).host);
+ }
}
- // one of the nodes is inside shadowDOM, find which one
- var element1root = getRoot(element1);
- if (element1root.host) {
- return findCommonOffsetParent(element1root.host, element2);
- } else {
- return findCommonOffsetParent(element1, getRoot(element2).host);
- }
-}
-
-/**
- * Gets the scroll value of the given element in the given side (top and left)
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @argument {String} side `top` or `left`
- * @returns {number} amount of scrolled pixels
- */
-function getScroll(element) {
- var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
-
- var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
- var nodeName = element.nodeName;
-
- if (nodeName === 'BODY' || nodeName === 'HTML') {
- var html = element.ownerDocument.documentElement;
- var scrollingElement = element.ownerDocument.scrollingElement || html;
- return scrollingElement[upperSide];
+ /**
+ * Gets the scroll value of the given element in the given side (top and left)
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @argument {String} side `top` or `left`
+ * @returns {number} amount of scrolled pixels
+ */
+ function getScroll(element) {
+ var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';
+
+ var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
+ var nodeName = element.nodeName;
+
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
+ var html = element.ownerDocument.documentElement;
+ var scrollingElement = element.ownerDocument.scrollingElement || html;
+ return scrollingElement[upperSide];
+ }
+
+ return element[upperSide];
}
- return element[upperSide];
-}
-
-/*
- * Sum or subtract the element scroll values (left and top) from a given rect object
- * @method
- * @memberof Popper.Utils
- * @param {Object} rect - Rect object you want to change
- * @param {HTMLElement} element - The element from the function reads the scroll values
- * @param {Boolean} subtract - set to true if you want to subtract the scroll values
- * @return {Object} rect - The modifier rect object
- */
-function includeScroll(rect, element) {
- var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
-
- var scrollTop = getScroll(element, 'top');
- var scrollLeft = getScroll(element, 'left');
- var modifier = subtract ? -1 : 1;
- rect.top += scrollTop * modifier;
- rect.bottom += scrollTop * modifier;
- rect.left += scrollLeft * modifier;
- rect.right += scrollLeft * modifier;
- return rect;
-}
-
-/*
- * Helper to detect borders of a given element
- * @method
- * @memberof Popper.Utils
- * @param {CSSStyleDeclaration} styles
- * Result of `getStyleComputedProperty` on the given element
- * @param {String} axis - `x` or `y`
- * @return {number} borders - The borders size of the given axis
- */
-
-function getBordersSize(styles, axis) {
- var sideA = axis === 'x' ? 'Left' : 'Top';
- var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
-
- return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
-}
-
-/**
- * Tells if you are running Internet Explorer 10
- * @method
- * @memberof Popper.Utils
- * @returns {Boolean} isIE10
- */
-var isIE10 = undefined;
-
-var isIE10$1 = function () {
- if (isIE10 === undefined) {
- isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;
+ /*
+ * Sum or subtract the element scroll values (left and top) from a given rect object
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} rect - Rect object you want to change
+ * @param {HTMLElement} element - The element from the function reads the scroll values
+ * @param {Boolean} subtract - set to true if you want to subtract the scroll values
+ * @return {Object} rect - The modifier rect object
+ */
+ function includeScroll(rect, element) {
+ var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+ var scrollTop = getScroll(element, 'top');
+ var scrollLeft = getScroll(element, 'left');
+ var modifier = subtract ? -1 : 1;
+ rect.top += scrollTop * modifier;
+ rect.bottom += scrollTop * modifier;
+ rect.left += scrollLeft * modifier;
+ rect.right += scrollLeft * modifier;
+ return rect;
}
- return isIE10;
-};
-function getSize(axis, body, html, computedStyle) {
- return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
-}
+ /*
+ * Helper to detect borders of a given element
+ * @method
+ * @memberof Popper.Utils
+ * @param {CSSStyleDeclaration} styles
+ * Result of `getStyleComputedProperty` on the given element
+ * @param {String} axis - `x` or `y`
+ * @return {number} borders - The borders size of the given axis
+ */
-function getWindowSizes() {
- var body = document.body;
- var html = document.documentElement;
- var computedStyle = isIE10$1() && getComputedStyle(html);
+ function getBordersSize(styles, axis) {
+ var sideA = axis === 'x' ? 'Left' : 'Top';
+ var sideB = sideA === 'Left' ? 'Right' : 'Bottom';
- return {
- height: getSize('Height', body, html, computedStyle),
- width: getSize('Width', body, html, computedStyle)
- };
-}
+ return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);
+ }
-var classCallCheck = function (instance, Constructor) {
- if (!(instance instanceof Constructor)) {
- throw new TypeError("Cannot call a class as a function");
+ function getSize(axis, body, html, computedStyle) {
+ return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);
}
-};
-var createClass = function () {
- function defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
+ function getWindowSizes() {
+ var body = document.body;
+ var html = document.documentElement;
+ var computedStyle = isIE(10) && getComputedStyle(html);
+
+ return {
+ height: getSize('Height', body, html, computedStyle),
+ width: getSize('Width', body, html, computedStyle)
+ };
}
- return function (Constructor, protoProps, staticProps) {
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
- if (staticProps) defineProperties(Constructor, staticProps);
- return Constructor;
+ var classCallCheck = function (instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
};
-}();
+ var createClass = function () {
+ function defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
+ }
+ }
+ return function (Constructor, protoProps, staticProps) {
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) defineProperties(Constructor, staticProps);
+ return Constructor;
+ };
+ }();
-var defineProperty = function (obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, {
- value: value,
- enumerable: true,
- configurable: true,
- writable: true
- });
- } else {
- obj[key] = value;
- }
- return obj;
-};
-var _extends$1 = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
+ var defineProperty = function (obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
+ }
+
+ return obj;
+ };
+
+ var _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
}
}
+
+ return target;
+ };
+
+ /**
+ * Given element offsets, generate an output similar to getBoundingClientRect
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Object} offsets
+ * @returns {Object} ClientRect like output
+ */
+ function getClientRect(offsets) {
+ return _extends({}, offsets, {
+ right: offsets.left + offsets.width,
+ bottom: offsets.top + offsets.height
+ });
}
- return target;
-};
-
-/**
- * Given element offsets, generate an output similar to getBoundingClientRect
- * @method
- * @memberof Popper.Utils
- * @argument {Object} offsets
- * @returns {Object} ClientRect like output
- */
-function getClientRect(offsets) {
- return _extends$1({}, offsets, {
- right: offsets.left + offsets.width,
- bottom: offsets.top + offsets.height
- });
-}
-
-/**
- * Get bounding client rect of given element
- * @method
- * @memberof Popper.Utils
- * @param {HTMLElement} element
- * @return {Object} client rect
- */
-function getBoundingClientRect(element) {
- var rect = {};
-
- // IE10 10 FIX: Please, don't ask, the element isn't
- // considered in DOM in some circumstances...
- // This isn't reproducible in IE10 compatibility mode of IE11
- if (isIE10$1()) {
+ /**
+ * Get bounding client rect of given element
+ * @method
+ * @memberof Popper.Utils
+ * @param {HTMLElement} element
+ * @return {Object} client rect
+ */
+ function getBoundingClientRect(element) {
+ var rect = {};
+
+ // IE10 10 FIX: Please, don't ask, the element isn't
+ // considered in DOM in some circumstances...
+ // This isn't reproducible in IE10 compatibility mode of IE11
try {
- rect = element.getBoundingClientRect();
- var scrollTop = getScroll(element, 'top');
- var scrollLeft = getScroll(element, 'left');
- rect.top += scrollTop;
- rect.left += scrollLeft;
- rect.bottom += scrollTop;
- rect.right += scrollLeft;
- } catch (err) {}
- } else {
- rect = element.getBoundingClientRect();
+ if (isIE(10)) {
+ rect = element.getBoundingClientRect();
+ var scrollTop = getScroll(element, 'top');
+ var scrollLeft = getScroll(element, 'left');
+ rect.top += scrollTop;
+ rect.left += scrollLeft;
+ rect.bottom += scrollTop;
+ rect.right += scrollLeft;
+ } else {
+ rect = element.getBoundingClientRect();
+ }
+ } catch (e) {}
+
+ var result = {
+ left: rect.left,
+ top: rect.top,
+ width: rect.right - rect.left,
+ height: rect.bottom - rect.top
+ };
+
+ // subtract scrollbar size from sizes
+ var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
+ var width = sizes.width || element.clientWidth || result.right - result.left;
+ var height = sizes.height || element.clientHeight || result.bottom - result.top;
+
+ var horizScrollbar = element.offsetWidth - width;
+ var vertScrollbar = element.offsetHeight - height;
+
+ // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
+ // we make this check conditional for performance reasons
+ if (horizScrollbar || vertScrollbar) {
+ var styles = getStyleComputedProperty(element);
+ horizScrollbar -= getBordersSize(styles, 'x');
+ vertScrollbar -= getBordersSize(styles, 'y');
+
+ result.width -= horizScrollbar;
+ result.height -= vertScrollbar;
+ }
+
+ return getClientRect(result);
}
- var result = {
- left: rect.left,
- top: rect.top,
- width: rect.right - rect.left,
- height: rect.bottom - rect.top
- };
+ function getOffsetRectRelativeToArbitraryNode(children, parent) {
+ var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
+
+ var isIE10 = isIE(10);
+ var isHTML = parent.nodeName === 'HTML';
+ var childrenRect = getBoundingClientRect(children);
+ var parentRect = getBoundingClientRect(parent);
+ var scrollParent = getScrollParent(children);
- // subtract scrollbar size from sizes
- var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
- var width = sizes.width || element.clientWidth || result.right - result.left;
- var height = sizes.height || element.clientHeight || result.bottom - result.top;
+ var styles = getStyleComputedProperty(parent);
+ var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
+ var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
- var horizScrollbar = element.offsetWidth - width;
- var vertScrollbar = element.offsetHeight - height;
+ // In cases where the parent is fixed, we must ignore negative scroll in offset calc
+ if (fixedPosition && parent.nodeName === 'HTML') {
+ parentRect.top = Math.max(parentRect.top, 0);
+ parentRect.left = Math.max(parentRect.left, 0);
+ }
+ var offsets = getClientRect({
+ top: childrenRect.top - parentRect.top - borderTopWidth,
+ left: childrenRect.left - parentRect.left - borderLeftWidth,
+ width: childrenRect.width,
+ height: childrenRect.height
+ });
+ offsets.marginTop = 0;
+ offsets.marginLeft = 0;
+
+ // Subtract margins of documentElement in case it's being used as parent
+ // we do this only on HTML because it's the only element that behaves
+ // differently when margins are applied to it. The margins are included in
+ // the box of the documentElement, in the other cases not.
+ if (!isIE10 && isHTML) {
+ var marginTop = parseFloat(styles.marginTop, 10);
+ var marginLeft = parseFloat(styles.marginLeft, 10);
+
+ offsets.top -= borderTopWidth - marginTop;
+ offsets.bottom -= borderTopWidth - marginTop;
+ offsets.left -= borderLeftWidth - marginLeft;
+ offsets.right -= borderLeftWidth - marginLeft;
+
+ // Attach marginTop and marginLeft because in some circumstances we may need them
+ offsets.marginTop = marginTop;
+ offsets.marginLeft = marginLeft;
+ }
- // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
- // we make this check conditional for performance reasons
- if (horizScrollbar || vertScrollbar) {
- var styles = getStyleComputedProperty(element);
- horizScrollbar -= getBordersSize(styles, 'x');
- vertScrollbar -= getBordersSize(styles, 'y');
+ if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
+ offsets = includeScroll(offsets, parent);
+ }
- result.width -= horizScrollbar;
- result.height -= vertScrollbar;
+ return offsets;
}
- return getClientRect(result);
-}
-
-function getOffsetRectRelativeToArbitraryNode(children, parent) {
- var isIE10 = isIE10$1();
- var isHTML = parent.nodeName === 'HTML';
- var childrenRect = getBoundingClientRect(children);
- var parentRect = getBoundingClientRect(parent);
- var scrollParent = getScrollParent(children);
-
- var styles = getStyleComputedProperty(parent);
- var borderTopWidth = parseFloat(styles.borderTopWidth, 10);
- var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
-
- var offsets = getClientRect({
- top: childrenRect.top - parentRect.top - borderTopWidth,
- left: childrenRect.left - parentRect.left - borderLeftWidth,
- width: childrenRect.width,
- height: childrenRect.height
- });
- offsets.marginTop = 0;
- offsets.marginLeft = 0;
-
- // Subtract margins of documentElement in case it's being used as parent
- // we do this only on HTML because it's the only element that behaves
- // differently when margins are applied to it. The margins are included in
- // the box of the documentElement, in the other cases not.
- if (!isIE10 && isHTML) {
- var marginTop = parseFloat(styles.marginTop, 10);
- var marginLeft = parseFloat(styles.marginLeft, 10);
-
- offsets.top -= borderTopWidth - marginTop;
- offsets.bottom -= borderTopWidth - marginTop;
- offsets.left -= borderLeftWidth - marginLeft;
- offsets.right -= borderLeftWidth - marginLeft;
-
- // Attach marginTop and marginLeft because in some circumstances we may need them
- offsets.marginTop = marginTop;
- offsets.marginLeft = marginLeft;
+ function getViewportOffsetRectRelativeToArtbitraryNode(element) {
+ var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
+
+ var html = element.ownerDocument.documentElement;
+ var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
+ var width = Math.max(html.clientWidth, window.innerWidth || 0);
+ var height = Math.max(html.clientHeight, window.innerHeight || 0);
+
+ var scrollTop = !excludeScroll ? getScroll(html) : 0;
+ var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
+
+ var offset = {
+ top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
+ left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
+ width: width,
+ height: height
+ };
+
+ return getClientRect(offset);
}
- if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
- offsets = includeScroll(offsets, parent);
+ /**
+ * Check if the given element is fixed or is inside a fixed parent
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @argument {Element} customContainer
+ * @returns {Boolean} answer to "isFixed?"
+ */
+ function isFixed(element) {
+ var nodeName = element.nodeName;
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
+ return false;
+ }
+ if (getStyleComputedProperty(element, 'position') === 'fixed') {
+ return true;
+ }
+ return isFixed(getParentNode(element));
}
- return offsets;
-}
+ /**
+ * Finds the first parent of an element that has a transformed property defined
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Element} first transformed parent or documentElement
+ */
-function getViewportOffsetRectRelativeToArtbitraryNode(element) {
- var html = element.ownerDocument.documentElement;
- var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
- var width = Math.max(html.clientWidth, window.innerWidth || 0);
- var height = Math.max(html.clientHeight, window.innerHeight || 0);
+ function getFixedPositionOffsetParent(element) {
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
+ if (!element || !element.parentElement || isIE()) {
+ return document.documentElement;
+ }
+ var el = element.parentElement;
+ while (el && getStyleComputedProperty(el, 'transform') === 'none') {
+ el = el.parentElement;
+ }
+ return el || document.documentElement;
+ }
- var scrollTop = getScroll(html);
- var scrollLeft = getScroll(html, 'left');
+ /**
+ * Computed the boundaries limits and return them
+ * @method
+ * @memberof Popper.Utils
+ * @param {HTMLElement} popper
+ * @param {HTMLElement} reference
+ * @param {number} padding
+ * @param {HTMLElement} boundariesElement - Element used to define the boundaries
+ * @param {Boolean} fixedPosition - Is in fixed position mode
+ * @returns {Object} Coordinates of the boundaries
+ */
+ function getBoundaries(popper, reference, padding, boundariesElement) {
+ var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
- var offset = {
- top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
- left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
- width: width,
- height: height
- };
+ // NOTE: 1 DOM access here
- return getClientRect(offset);
-}
-
-/**
- * Check if the given element is fixed or is inside a fixed parent
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @argument {Element} customContainer
- * @returns {Boolean} answer to "isFixed?"
- */
-function isFixed(element) {
- var nodeName = element.nodeName;
- if (nodeName === 'BODY' || nodeName === 'HTML') {
- return false;
- }
- if (getStyleComputedProperty(element, 'position') === 'fixed') {
- return true;
- }
- return isFixed(getParentNode(element));
-}
-
-/**
- * Computed the boundaries limits and return them
- * @method
- * @memberof Popper.Utils
- * @param {HTMLElement} popper
- * @param {HTMLElement} reference
- * @param {number} padding
- * @param {HTMLElement} boundariesElement - Element used to define the boundaries
- * @returns {Object} Coordinates of the boundaries
- */
-function getBoundaries(popper, reference, padding, boundariesElement) {
- // NOTE: 1 DOM access here
- var boundaries = { top: 0, left: 0 };
- var offsetParent = findCommonOffsetParent(popper, reference);
-
- // Handle viewport case
- if (boundariesElement === 'viewport') {
- boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);
- } else {
- // Handle other cases based on DOM element used as boundaries
- var boundariesNode = void 0;
- if (boundariesElement === 'scrollParent') {
- boundariesNode = getScrollParent(getParentNode(reference));
- if (boundariesNode.nodeName === 'BODY') {
+ var boundaries = { top: 0, left: 0 };
+ var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
+
+ // Handle viewport case
+ if (boundariesElement === 'viewport') {
+ boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
+ } else {
+ // Handle other cases based on DOM element used as boundaries
+ var boundariesNode = void 0;
+ if (boundariesElement === 'scrollParent') {
+ boundariesNode = getScrollParent(getParentNode(reference));
+ if (boundariesNode.nodeName === 'BODY') {
+ boundariesNode = popper.ownerDocument.documentElement;
+ }
+ } else if (boundariesElement === 'window') {
boundariesNode = popper.ownerDocument.documentElement;
+ } else {
+ boundariesNode = boundariesElement;
}
- } else if (boundariesElement === 'window') {
- boundariesNode = popper.ownerDocument.documentElement;
- } else {
- boundariesNode = boundariesElement;
- }
- var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);
+ var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
- // In case of HTML, we need a different computation
- if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
- var _getWindowSizes = getWindowSizes(),
- height = _getWindowSizes.height,
- width = _getWindowSizes.width;
+ // In case of HTML, we need a different computation
+ if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
+ var _getWindowSizes = getWindowSizes(),
+ height = _getWindowSizes.height,
+ width = _getWindowSizes.width;
- boundaries.top += offsets.top - offsets.marginTop;
- boundaries.bottom = height + offsets.top;
- boundaries.left += offsets.left - offsets.marginLeft;
- boundaries.right = width + offsets.left;
- } else {
- // for all the other DOM elements, this one is good
- boundaries = offsets;
+ boundaries.top += offsets.top - offsets.marginTop;
+ boundaries.bottom = height + offsets.top;
+ boundaries.left += offsets.left - offsets.marginLeft;
+ boundaries.right = width + offsets.left;
+ } else {
+ // for all the other DOM elements, this one is good
+ boundaries = offsets;
+ }
}
+
+ // Add paddings
+ boundaries.left += padding;
+ boundaries.top += padding;
+ boundaries.right -= padding;
+ boundaries.bottom -= padding;
+
+ return boundaries;
}
- // Add paddings
- boundaries.left += padding;
- boundaries.top += padding;
- boundaries.right -= padding;
- boundaries.bottom -= padding;
-
- return boundaries;
-}
-
-function getArea(_ref) {
- var width = _ref.width,
- height = _ref.height;
-
- return width * height;
-}
-
-/**
- * Utility used to transform the `auto` placement to the placement with more
- * available space.
- * @method
- * @memberof Popper.Utils
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
- var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
-
- if (placement.indexOf('auto') === -1) {
- return placement;
+ function getArea(_ref) {
+ var width = _ref.width,
+ height = _ref.height;
+
+ return width * height;
}
- var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
+ /**
+ * Utility used to transform the `auto` placement to the placement with more
+ * available space.
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+ function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {
+ var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
- var rects = {
- top: {
- width: boundaries.width,
- height: refRect.top - boundaries.top
- },
- right: {
- width: boundaries.right - refRect.right,
- height: boundaries.height
- },
- bottom: {
- width: boundaries.width,
- height: boundaries.bottom - refRect.bottom
- },
- left: {
- width: refRect.left - boundaries.left,
- height: boundaries.height
+ if (placement.indexOf('auto') === -1) {
+ return placement;
}
- };
- var sortedAreas = Object.keys(rects).map(function (key) {
- return _extends$1({
- key: key
- }, rects[key], {
- area: getArea(rects[key])
+ var boundaries = getBoundaries(popper, reference, padding, boundariesElement);
+
+ var rects = {
+ top: {
+ width: boundaries.width,
+ height: refRect.top - boundaries.top
+ },
+ right: {
+ width: boundaries.right - refRect.right,
+ height: boundaries.height
+ },
+ bottom: {
+ width: boundaries.width,
+ height: boundaries.bottom - refRect.bottom
+ },
+ left: {
+ width: refRect.left - boundaries.left,
+ height: boundaries.height
+ }
+ };
+
+ var sortedAreas = Object.keys(rects).map(function (key) {
+ return _extends({
+ key: key
+ }, rects[key], {
+ area: getArea(rects[key])
+ });
+ }).sort(function (a, b) {
+ return b.area - a.area;
});
- }).sort(function (a, b) {
- return b.area - a.area;
- });
-
- var filteredAreas = sortedAreas.filter(function (_ref2) {
- var width = _ref2.width,
- height = _ref2.height;
- return width >= popper.clientWidth && height >= popper.clientHeight;
- });
-
- var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
-
- var variation = placement.split('-')[1];
-
- return computedPlacement + (variation ? '-' + variation : '');
-}
-
-/**
- * Get offsets to the reference element
- * @method
- * @memberof Popper.Utils
- * @param {Object} state
- * @param {Element} popper - the popper element
- * @param {Element} reference - the reference element (the popper will be relative to this)
- * @returns {Object} An object containing the offsets which will be applied to the popper
- */
-function getReferenceOffsets(state, popper, reference) {
- var commonOffsetParent = findCommonOffsetParent(popper, reference);
- return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);
-}
-
-/**
- * Get the outer sizes of the given element (offset size + margins)
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element
- * @returns {Object} object containing width and height properties
- */
-function getOuterSizes(element) {
- var styles = getComputedStyle(element);
- var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
- var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
- var result = {
- width: element.offsetWidth + y,
- height: element.offsetHeight + x
- };
- return result;
-}
-
-/**
- * Get the opposite placement of the given one
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement
- * @returns {String} flipped placement
- */
-function getOppositePlacement(placement) {
- var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
- return placement.replace(/left|right|bottom|top/g, function (matched) {
- return hash[matched];
- });
-}
-
-/**
- * Get offsets to the popper
- * @method
- * @memberof Popper.Utils
- * @param {Object} position - CSS position the Popper will get applied
- * @param {HTMLElement} popper - the popper element
- * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
- * @param {String} placement - one of the valid placement options
- * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
- */
-function getPopperOffsets(popper, referenceOffsets, placement) {
- placement = placement.split('-')[0];
-
- // Get popper node sizes
- var popperRect = getOuterSizes(popper);
-
- // Add position, width and height to our offsets object
- var popperOffsets = {
- width: popperRect.width,
- height: popperRect.height
- };
- // depending by the popper placement we have to compute its offsets slightly differently
- var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
- var mainSide = isHoriz ? 'top' : 'left';
- var secondarySide = isHoriz ? 'left' : 'top';
- var measurement = isHoriz ? 'height' : 'width';
- var secondaryMeasurement = !isHoriz ? 'height' : 'width';
-
- popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
- if (placement === secondarySide) {
- popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
- } else {
- popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
+ var filteredAreas = sortedAreas.filter(function (_ref2) {
+ var width = _ref2.width,
+ height = _ref2.height;
+ return width >= popper.clientWidth && height >= popper.clientHeight;
+ });
+
+ var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
+
+ var variation = placement.split('-')[1];
+
+ return computedPlacement + (variation ? '-' + variation : '');
+ }
+
+ /**
+ * Get offsets to the reference element
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} state
+ * @param {Element} popper - the popper element
+ * @param {Element} reference - the reference element (the popper will be relative to this)
+ * @param {Element} fixedPosition - is in fixed position mode
+ * @returns {Object} An object containing the offsets which will be applied to the popper
+ */
+ function getReferenceOffsets(state, popper, reference) {
+ var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
+
+ var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
+ return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
}
- return popperOffsets;
-}
-
-/**
- * Mimics the `find` method of Array
- * @method
- * @memberof Popper.Utils
- * @argument {Array} arr
- * @argument prop
- * @argument value
- * @returns index or -1
- */
-function find(arr, check) {
- // use native find if supported
- if (Array.prototype.find) {
- return arr.find(check);
+ /**
+ * Get the outer sizes of the given element (offset size + margins)
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element
+ * @returns {Object} object containing width and height properties
+ */
+ function getOuterSizes(element) {
+ var styles = getComputedStyle(element);
+ var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
+ var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
+ var result = {
+ width: element.offsetWidth + y,
+ height: element.offsetHeight + x
+ };
+ return result;
}
- // use `filter` to obtain the same behavior of `find`
- return arr.filter(check)[0];
-}
-
-/**
- * Return the index of the matching object
- * @method
- * @memberof Popper.Utils
- * @argument {Array} arr
- * @argument prop
- * @argument value
- * @returns index or -1
- */
-function findIndex(arr, prop, value) {
- // use native findIndex if supported
- if (Array.prototype.findIndex) {
- return arr.findIndex(function (cur) {
- return cur[prop] === value;
+ /**
+ * Get the opposite placement of the given one
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement
+ * @returns {String} flipped placement
+ */
+ function getOppositePlacement(placement) {
+ var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
+ return hash[matched];
});
}
- // use `find` + `indexOf` if `findIndex` isn't supported
- var match = find(arr, function (obj) {
- return obj[prop] === value;
- });
- return arr.indexOf(match);
-}
-
-/**
- * Loop trough the list of modifiers and run them in order,
- * each of them will then edit the data object.
- * @method
- * @memberof Popper.Utils
- * @param {dataObject} data
- * @param {Array} modifiers
- * @param {String} ends - Optional modifier name used as stopper
- * @returns {dataObject}
- */
-function runModifiers(modifiers, data, ends) {
- var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
-
- modifiersToRun.forEach(function (modifier) {
- if (modifier['function']) {
- // eslint-disable-line dot-notation
- console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
- }
- var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
- if (modifier.enabled && isFunction(fn)) {
- // Add properties to offsets to make them a complete clientRect object
- // we do this before each modifier to make sure the previous one doesn't
- // mess with these values
- data.offsets.popper = getClientRect(data.offsets.popper);
- data.offsets.reference = getClientRect(data.offsets.reference);
-
- data = fn(data, modifier);
+ /**
+ * Get offsets to the popper
+ * @method
+ * @memberof Popper.Utils
+ * @param {Object} position - CSS position the Popper will get applied
+ * @param {HTMLElement} popper - the popper element
+ * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
+ * @param {String} placement - one of the valid placement options
+ * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
+ */
+ function getPopperOffsets(popper, referenceOffsets, placement) {
+ placement = placement.split('-')[0];
+
+ // Get popper node sizes
+ var popperRect = getOuterSizes(popper);
+
+ // Add position, width and height to our offsets object
+ var popperOffsets = {
+ width: popperRect.width,
+ height: popperRect.height
+ };
+
+ // depending by the popper placement we have to compute its offsets slightly differently
+ var isHoriz = ['right', 'left'].indexOf(placement) !== -1;
+ var mainSide = isHoriz ? 'top' : 'left';
+ var secondarySide = isHoriz ? 'left' : 'top';
+ var measurement = isHoriz ? 'height' : 'width';
+ var secondaryMeasurement = !isHoriz ? 'height' : 'width';
+
+ popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
+ if (placement === secondarySide) {
+ popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
+ } else {
+ popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
}
- });
-
- return data;
-}
-
-/**
- * Updates the position of the popper, computing the new offsets and applying
- * the new style.<br />
- * Prefer `scheduleUpdate` over `update` because of performance reasons.
- * @method
- * @memberof Popper
- */
-function update() {
- // if popper is destroyed, don't perform any further update
- if (this.state.isDestroyed) {
- return;
+
+ return popperOffsets;
}
- var data = {
- instance: this,
- styles: {},
- arrowStyles: {},
- attributes: {},
- flipped: false,
- offsets: {}
- };
+ /**
+ * Mimics the `find` method of Array
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Array} arr
+ * @argument prop
+ * @argument value
+ * @returns index or -1
+ */
+ function find(arr, check) {
+ // use native find if supported
+ if (Array.prototype.find) {
+ return arr.find(check);
+ }
- // compute reference element offsets
- data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);
+ // use `filter` to obtain the same behavior of `find`
+ return arr.filter(check)[0];
+ }
- // compute auto placement, store placement inside the data object,
- // modifiers will be able to edit `placement` if needed
- // and refer to originalPlacement to know the original value
- data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
+ /**
+ * Return the index of the matching object
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Array} arr
+ * @argument prop
+ * @argument value
+ * @returns index or -1
+ */
+ function findIndex(arr, prop, value) {
+ // use native findIndex if supported
+ if (Array.prototype.findIndex) {
+ return arr.findIndex(function (cur) {
+ return cur[prop] === value;
+ });
+ }
- // store the computed placement inside `originalPlacement`
- data.originalPlacement = data.placement;
+ // use `find` + `indexOf` if `findIndex` isn't supported
+ var match = find(arr, function (obj) {
+ return obj[prop] === value;
+ });
+ return arr.indexOf(match);
+ }
+
+ /**
+ * Loop trough the list of modifiers and run them in order,
+ * each of them will then edit the data object.
+ * @method
+ * @memberof Popper.Utils
+ * @param {dataObject} data
+ * @param {Array} modifiers
+ * @param {String} ends - Optional modifier name used as stopper
+ * @returns {dataObject}
+ */
+ function runModifiers(modifiers, data, ends) {
+ var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
- // compute the popper offsets
- data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
- data.offsets.popper.position = 'absolute';
+ modifiersToRun.forEach(function (modifier) {
+ if (modifier['function']) {
+ // eslint-disable-line dot-notation
+ console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
+ }
+ var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
+ if (modifier.enabled && isFunction(fn)) {
+ // Add properties to offsets to make them a complete clientRect object
+ // we do this before each modifier to make sure the previous one doesn't
+ // mess with these values
+ data.offsets.popper = getClientRect(data.offsets.popper);
+ data.offsets.reference = getClientRect(data.offsets.reference);
- // run the modifiers
- data = runModifiers(this.modifiers, data);
+ data = fn(data, modifier);
+ }
+ });
- // the first `update` will call `onCreate` callback
- // the other ones will call `onUpdate` callback
- if (!this.state.isCreated) {
- this.state.isCreated = true;
- this.options.onCreate(data);
- } else {
- this.options.onUpdate(data);
+ return data;
}
-}
-
-/**
- * Helper used to know if the given modifier is enabled.
- * @method
- * @memberof Popper.Utils
- * @returns {Boolean}
- */
-function isModifierEnabled(modifiers, modifierName) {
- return modifiers.some(function (_ref) {
- var name = _ref.name,
- enabled = _ref.enabled;
- return enabled && name === modifierName;
- });
-}
-
-/**
- * Get the prefixed supported property name
- * @method
- * @memberof Popper.Utils
- * @argument {String} property (camelCase)
- * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
- */
-function getSupportedPropertyName(property) {
- var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
- var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
-
- for (var i = 0; i < prefixes.length - 1; i++) {
- var prefix = prefixes[i];
- var toCheck = prefix ? '' + prefix + upperProp : property;
- if (typeof document.body.style[toCheck] !== 'undefined') {
- return toCheck;
+
+ /**
+ * Updates the position of the popper, computing the new offsets and applying
+ * the new style.<br />
+ * Prefer `scheduleUpdate` over `update` because of performance reasons.
+ * @method
+ * @memberof Popper
+ */
+ function update() {
+ // if popper is destroyed, don't perform any further update
+ if (this.state.isDestroyed) {
+ return;
+ }
+
+ var data = {
+ instance: this,
+ styles: {},
+ arrowStyles: {},
+ attributes: {},
+ flipped: false,
+ offsets: {}
+ };
+
+ // compute reference element offsets
+ data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
+
+ // compute auto placement, store placement inside the data object,
+ // modifiers will be able to edit `placement` if needed
+ // and refer to originalPlacement to know the original value
+ data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
+
+ // store the computed placement inside `originalPlacement`
+ data.originalPlacement = data.placement;
+
+ data.positionFixed = this.options.positionFixed;
+
+ // compute the popper offsets
+ data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
+ data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
+
+ // run the modifiers
+ data = runModifiers(this.modifiers, data);
+
+ // the first `update` will call `onCreate` callback
+ // the other ones will call `onUpdate` callback
+ if (!this.state.isCreated) {
+ this.state.isCreated = true;
+ this.options.onCreate(data);
+ } else {
+ this.options.onUpdate(data);
}
}
- return null;
-}
-
-/**
- * Destroy the popper
- * @method
- * @memberof Popper
- */
-function destroy() {
- this.state.isDestroyed = true;
-
- // touch DOM only if `applyStyle` modifier is enabled
- if (isModifierEnabled(this.modifiers, 'applyStyle')) {
- this.popper.removeAttribute('x-placement');
- this.popper.style.left = '';
- this.popper.style.position = '';
- this.popper.style.top = '';
- this.popper.style[getSupportedPropertyName('transform')] = '';
+
+ /**
+ * Helper used to know if the given modifier is enabled.
+ * @method
+ * @memberof Popper.Utils
+ * @returns {Boolean}
+ */
+ function isModifierEnabled(modifiers, modifierName) {
+ return modifiers.some(function (_ref) {
+ var name = _ref.name,
+ enabled = _ref.enabled;
+ return enabled && name === modifierName;
+ });
}
- this.disableEventListeners();
+ /**
+ * Get the prefixed supported property name
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} property (camelCase)
+ * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
+ */
+ function getSupportedPropertyName(property) {
+ var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
+ var upperProp = property.charAt(0).toUpperCase() + property.slice(1);
- // remove the popper if user explicity asked for the deletion on destroy
- // do not use `remove` because IE11 doesn't support it
- if (this.options.removeOnDestroy) {
- this.popper.parentNode.removeChild(this.popper);
- }
- return this;
-}
-
-/**
- * Get the window associated with the element
- * @argument {Element} element
- * @returns {Window}
- */
-function getWindow(element) {
- var ownerDocument = element.ownerDocument;
- return ownerDocument ? ownerDocument.defaultView : window;
-}
-
-function attachToScrollParents(scrollParent, event, callback, scrollParents) {
- var isBody = scrollParent.nodeName === 'BODY';
- var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
- target.addEventListener(event, callback, { passive: true });
-
- if (!isBody) {
- attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
+ for (var i = 0; i < prefixes.length; i++) {
+ var prefix = prefixes[i];
+ var toCheck = prefix ? '' + prefix + upperProp : property;
+ if (typeof document.body.style[toCheck] !== 'undefined') {
+ return toCheck;
+ }
+ }
+ return null;
}
- scrollParents.push(target);
-}
-
-/**
- * Setup needed event listeners used to update the popper position
- * @method
- * @memberof Popper.Utils
- * @private
- */
-function setupEventListeners(reference, options, state, updateBound) {
- // Resize event listener on window
- state.updateBound = updateBound;
- getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
-
- // Scroll event listener on scroll parents
- var scrollElement = getScrollParent(reference);
- attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
- state.scrollElement = scrollElement;
- state.eventsEnabled = true;
-
- return state;
-}
-
-/**
- * It will add resize/scroll events and start recalculating
- * position of the popper element when they are triggered.
- * @method
- * @memberof Popper
- */
-function enableEventListeners() {
- if (!this.state.eventsEnabled) {
- this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
+
+ /**
+ * Destroy the popper
+ * @method
+ * @memberof Popper
+ */
+ function destroy() {
+ this.state.isDestroyed = true;
+
+ // touch DOM only if `applyStyle` modifier is enabled
+ if (isModifierEnabled(this.modifiers, 'applyStyle')) {
+ this.popper.removeAttribute('x-placement');
+ this.popper.style.position = '';
+ this.popper.style.top = '';
+ this.popper.style.left = '';
+ this.popper.style.right = '';
+ this.popper.style.bottom = '';
+ this.popper.style.willChange = '';
+ this.popper.style[getSupportedPropertyName('transform')] = '';
+ }
+
+ this.disableEventListeners();
+
+ // remove the popper if user explicity asked for the deletion on destroy
+ // do not use `remove` because IE11 doesn't support it
+ if (this.options.removeOnDestroy) {
+ this.popper.parentNode.removeChild(this.popper);
+ }
+ return this;
}
-}
-
-/**
- * Remove event listeners used to update the popper position
- * @method
- * @memberof Popper.Utils
- * @private
- */
-function removeEventListeners(reference, state) {
- // Remove resize event listener on window
- getWindow(reference).removeEventListener('resize', state.updateBound);
-
- // Remove scroll event listener on scroll parents
- state.scrollParents.forEach(function (target) {
- target.removeEventListener('scroll', state.updateBound);
- });
-
- // Reset state
- state.updateBound = null;
- state.scrollParents = [];
- state.scrollElement = null;
- state.eventsEnabled = false;
- return state;
-}
-
-/**
- * It will remove resize/scroll events and won't recalculate popper position
- * when they are triggered. It also won't trigger onUpdate callback anymore,
- * unless you call `update` method manually.
- * @method
- * @memberof Popper
- */
-function disableEventListeners() {
- if (this.state.eventsEnabled) {
- cancelAnimationFrame(this.scheduleUpdate);
- this.state = removeEventListeners(this.reference, this.state);
+
+ /**
+ * Get the window associated with the element
+ * @argument {Element} element
+ * @returns {Window}
+ */
+ function getWindow(element) {
+ var ownerDocument = element.ownerDocument;
+ return ownerDocument ? ownerDocument.defaultView : window;
}
-}
-
-/**
- * Tells if a given input is a number
- * @method
- * @memberof Popper.Utils
- * @param {*} input to check
- * @return {Boolean}
- */
-function isNumeric(n) {
- return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
-}
-
-/**
- * Set the style to the given popper
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element - Element to apply the style to
- * @argument {Object} styles
- * Object with a list of properties and values which will be applied to the element
- */
-function setStyles(element, styles) {
- Object.keys(styles).forEach(function (prop) {
- var unit = '';
- // add unit if the value is numeric and is one of the following
- if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
- unit = 'px';
- }
- element.style[prop] = styles[prop] + unit;
- });
-}
-
-/**
- * Set the attributes to the given popper
- * @method
- * @memberof Popper.Utils
- * @argument {Element} element - Element to apply the attributes to
- * @argument {Object} styles
- * Object with a list of properties and values which will be applied to the element
- */
-function setAttributes(element, attributes) {
- Object.keys(attributes).forEach(function (prop) {
- var value = attributes[prop];
- if (value !== false) {
- element.setAttribute(prop, attributes[prop]);
- } else {
- element.removeAttribute(prop);
+
+ function attachToScrollParents(scrollParent, event, callback, scrollParents) {
+ var isBody = scrollParent.nodeName === 'BODY';
+ var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
+ target.addEventListener(event, callback, { passive: true });
+
+ if (!isBody) {
+ attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
}
- });
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} data.styles - List of style properties - values to apply to popper element
- * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The same data object
- */
-function applyStyle(data) {
- // any property present in `data.styles` will be applied to the popper,
- // in this way we can make the 3rd party modifiers add custom styles to it
- // Be aware, modifiers could override the properties defined in the previous
- // lines of this modifier!
- setStyles(data.instance.popper, data.styles);
-
- // any property present in `data.attributes` will be applied to the popper,
- // they will be set as HTML attributes of the element
- setAttributes(data.instance.popper, data.attributes);
-
- // if arrowElement is defined and arrowStyles has some properties
- if (data.arrowElement && Object.keys(data.arrowStyles).length) {
- setStyles(data.arrowElement, data.arrowStyles);
+ scrollParents.push(target);
}
- return data;
-}
-
-/**
- * Set the x-placement attribute before everything else because it could be used
- * to add margins to the popper margins needs to be calculated to get the
- * correct popper offsets.
- * @method
- * @memberof Popper.modifiers
- * @param {HTMLElement} reference - The reference element used to position the popper
- * @param {HTMLElement} popper - The HTML element used as popper.
- * @param {Object} options - Popper.js options
- */
-function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
- // compute reference element offsets
- var referenceOffsets = getReferenceOffsets(state, popper, reference);
-
- // compute auto placement, store placement inside the data object,
- // modifiers will be able to edit `placement` if needed
- // and refer to originalPlacement to know the original value
- var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
-
- popper.setAttribute('x-placement', placement);
-
- // Apply `position` to popper before anything else because
- // without the position applied we can't guarantee correct computations
- setStyles(popper, { position: 'absolute' });
-
- return options;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function computeStyle(data, options) {
- var x = options.x,
- y = options.y;
- var popper = data.offsets.popper;
-
- // Remove this legacy support in Popper.js v2
-
- var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
- return modifier.name === 'applyStyle';
- }).gpuAcceleration;
- if (legacyGpuAccelerationOption !== undefined) {
- console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
+ /**
+ * Setup needed event listeners used to update the popper position
+ * @method
+ * @memberof Popper.Utils
+ * @private
+ */
+ function setupEventListeners(reference, options, state, updateBound) {
+ // Resize event listener on window
+ state.updateBound = updateBound;
+ getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
+
+ // Scroll event listener on scroll parents
+ var scrollElement = getScrollParent(reference);
+ attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
+ state.scrollElement = scrollElement;
+ state.eventsEnabled = true;
+
+ return state;
}
- var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
- var offsetParent = getOffsetParent(data.instance.popper);
- var offsetParentRect = getBoundingClientRect(offsetParent);
+ /**
+ * It will add resize/scroll events and start recalculating
+ * position of the popper element when they are triggered.
+ * @method
+ * @memberof Popper
+ */
+ function enableEventListeners() {
+ if (!this.state.eventsEnabled) {
+ this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
+ }
+ }
- // Styles
- var styles = {
- position: popper.position
- };
+ /**
+ * Remove event listeners used to update the popper position
+ * @method
+ * @memberof Popper.Utils
+ * @private
+ */
+ function removeEventListeners(reference, state) {
+ // Remove resize event listener on window
+ getWindow(reference).removeEventListener('resize', state.updateBound);
- // floor sides to avoid blurry text
- var offsets = {
- left: Math.floor(popper.left),
- top: Math.floor(popper.top),
- bottom: Math.floor(popper.bottom),
- right: Math.floor(popper.right)
- };
+ // Remove scroll event listener on scroll parents
+ state.scrollParents.forEach(function (target) {
+ target.removeEventListener('scroll', state.updateBound);
+ });
- var sideA = x === 'bottom' ? 'top' : 'bottom';
- var sideB = y === 'right' ? 'left' : 'right';
-
- // if gpuAcceleration is set to `true` and transform is supported,
- // we use `translate3d` to apply the position to the popper we
- // automatically use the supported prefixed version if needed
- var prefixedProperty = getSupportedPropertyName('transform');
-
- // now, let's make a step back and look at this code closely (wtf?)
- // If the content of the popper grows once it's been positioned, it
- // may happen that the popper gets misplaced because of the new content
- // overflowing its reference element
- // To avoid this problem, we provide two options (x and y), which allow
- // the consumer to define the offset origin.
- // If we position a popper on top of a reference element, we can set
- // `x` to `top` to make the popper grow towards its top instead of
- // its bottom.
- var left = void 0,
- top = void 0;
- if (sideA === 'bottom') {
- top = -offsetParentRect.height + offsets.bottom;
- } else {
- top = offsets.top;
+ // Reset state
+ state.updateBound = null;
+ state.scrollParents = [];
+ state.scrollElement = null;
+ state.eventsEnabled = false;
+ return state;
}
- if (sideB === 'right') {
- left = -offsetParentRect.width + offsets.right;
- } else {
- left = offsets.left;
+
+ /**
+ * It will remove resize/scroll events and won't recalculate popper position
+ * when they are triggered. It also won't trigger onUpdate callback anymore,
+ * unless you call `update` method manually.
+ * @method
+ * @memberof Popper
+ */
+ function disableEventListeners() {
+ if (this.state.eventsEnabled) {
+ cancelAnimationFrame(this.scheduleUpdate);
+ this.state = removeEventListeners(this.reference, this.state);
+ }
}
- if (gpuAcceleration && prefixedProperty) {
- styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
- styles[sideA] = 0;
- styles[sideB] = 0;
- styles.willChange = 'transform';
- } else {
- // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
- var invertTop = sideA === 'bottom' ? -1 : 1;
- var invertLeft = sideB === 'right' ? -1 : 1;
- styles[sideA] = top * invertTop;
- styles[sideB] = left * invertLeft;
- styles.willChange = sideA + ', ' + sideB;
+
+ /**
+ * Tells if a given input is a number
+ * @method
+ * @memberof Popper.Utils
+ * @param {*} input to check
+ * @return {Boolean}
+ */
+ function isNumeric(n) {
+ return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
}
- // Attributes
- var attributes = {
- 'x-placement': data.placement
- };
+ /**
+ * Set the style to the given popper
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element - Element to apply the style to
+ * @argument {Object} styles
+ * Object with a list of properties and values which will be applied to the element
+ */
+ function setStyles(element, styles) {
+ Object.keys(styles).forEach(function (prop) {
+ var unit = '';
+ // add unit if the value is numeric and is one of the following
+ if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
+ unit = 'px';
+ }
+ element.style[prop] = styles[prop] + unit;
+ });
+ }
- // Update `data` attributes, styles and arrowStyles
- data.attributes = _extends$1({}, attributes, data.attributes);
- data.styles = _extends$1({}, styles, data.styles);
- data.arrowStyles = _extends$1({}, data.offsets.arrow, data.arrowStyles);
-
- return data;
-}
-
-/**
- * Helper used to know if the given modifier depends from another one.<br />
- * It checks if the needed modifier is listed and enabled.
- * @method
- * @memberof Popper.Utils
- * @param {Array} modifiers - list of modifiers
- * @param {String} requestingName - name of requesting modifier
- * @param {String} requestedName - name of requested modifier
- * @returns {Boolean}
- */
-function isModifierRequired(modifiers, requestingName, requestedName) {
- var requesting = find(modifiers, function (_ref) {
- var name = _ref.name;
- return name === requestingName;
- });
-
- var isRequired = !!requesting && modifiers.some(function (modifier) {
- return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
- });
-
- if (!isRequired) {
- var _requesting = '`' + requestingName + '`';
- var requested = '`' + requestedName + '`';
- console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
+ /**
+ * Set the attributes to the given popper
+ * @method
+ * @memberof Popper.Utils
+ * @argument {Element} element - Element to apply the attributes to
+ * @argument {Object} styles
+ * Object with a list of properties and values which will be applied to the element
+ */
+ function setAttributes(element, attributes) {
+ Object.keys(attributes).forEach(function (prop) {
+ var value = attributes[prop];
+ if (value !== false) {
+ element.setAttribute(prop, attributes[prop]);
+ } else {
+ element.removeAttribute(prop);
+ }
+ });
}
- return isRequired;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function arrow(data, options) {
- var _data$offsets$arrow;
-
- // arrow depends on keepTogether in order to work
- if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
+
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} data.styles - List of style properties - values to apply to popper element
+ * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The same data object
+ */
+ function applyStyle(data) {
+ // any property present in `data.styles` will be applied to the popper,
+ // in this way we can make the 3rd party modifiers add custom styles to it
+ // Be aware, modifiers could override the properties defined in the previous
+ // lines of this modifier!
+ setStyles(data.instance.popper, data.styles);
+
+ // any property present in `data.attributes` will be applied to the popper,
+ // they will be set as HTML attributes of the element
+ setAttributes(data.instance.popper, data.attributes);
+
+ // if arrowElement is defined and arrowStyles has some properties
+ if (data.arrowElement && Object.keys(data.arrowStyles).length) {
+ setStyles(data.arrowElement, data.arrowStyles);
+ }
+
return data;
}
- var arrowElement = options.element;
+ /**
+ * Set the x-placement attribute before everything else because it could be used
+ * to add margins to the popper margins needs to be calculated to get the
+ * correct popper offsets.
+ * @method
+ * @memberof Popper.modifiers
+ * @param {HTMLElement} reference - The reference element used to position the popper
+ * @param {HTMLElement} popper - The HTML element used as popper
+ * @param {Object} options - Popper.js options
+ */
+ function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
+ // compute reference element offsets
+ var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
- // if arrowElement is a string, suppose it's a CSS selector
- if (typeof arrowElement === 'string') {
- arrowElement = data.instance.popper.querySelector(arrowElement);
+ // compute auto placement, store placement inside the data object,
+ // modifiers will be able to edit `placement` if needed
+ // and refer to originalPlacement to know the original value
+ var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
- // if arrowElement is not found, don't run the modifier
- if (!arrowElement) {
- return data;
- }
- } else {
- // if the arrowElement isn't a query selector we must check that the
- // provided DOM node is child of its popper node
- if (!data.instance.popper.contains(arrowElement)) {
- console.warn('WARNING: `arrow.element` must be child of its popper element!');
- return data;
- }
+ popper.setAttribute('x-placement', placement);
+
+ // Apply `position` to popper before anything else because
+ // without the position applied we can't guarantee correct computations
+ setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
+
+ return options;
}
- var placement = data.placement.split('-')[0];
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+ function computeStyle(data, options) {
+ var x = options.x,
+ y = options.y;
+ var popper = data.offsets.popper;
+
+ // Remove this legacy support in Popper.js v2
+
+ var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {
+ return modifier.name === 'applyStyle';
+ }).gpuAcceleration;
+ if (legacyGpuAccelerationOption !== undefined) {
+ console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
+ }
+ var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
+
+ var offsetParent = getOffsetParent(data.instance.popper);
+ var offsetParentRect = getBoundingClientRect(offsetParent);
- var isVertical = ['left', 'right'].indexOf(placement) !== -1;
+ // Styles
+ var styles = {
+ position: popper.position
+ };
- var len = isVertical ? 'height' : 'width';
- var sideCapitalized = isVertical ? 'Top' : 'Left';
- var side = sideCapitalized.toLowerCase();
- var altSide = isVertical ? 'left' : 'top';
- var opSide = isVertical ? 'bottom' : 'right';
- var arrowElementSize = getOuterSizes(arrowElement)[len];
+ // floor sides to avoid blurry text
+ var offsets = {
+ left: Math.floor(popper.left),
+ top: Math.floor(popper.top),
+ bottom: Math.floor(popper.bottom),
+ right: Math.floor(popper.right)
+ };
- //
- // extends keepTogether behavior making sure the popper and its
- // reference have enough pixels in conjuction
- //
+ var sideA = x === 'bottom' ? 'top' : 'bottom';
+ var sideB = y === 'right' ? 'left' : 'right';
+
+ // if gpuAcceleration is set to `true` and transform is supported,
+ // we use `translate3d` to apply the position to the popper we
+ // automatically use the supported prefixed version if needed
+ var prefixedProperty = getSupportedPropertyName('transform');
+
+ // now, let's make a step back and look at this code closely (wtf?)
+ // If the content of the popper grows once it's been positioned, it
+ // may happen that the popper gets misplaced because of the new content
+ // overflowing its reference element
+ // To avoid this problem, we provide two options (x and y), which allow
+ // the consumer to define the offset origin.
+ // If we position a popper on top of a reference element, we can set
+ // `x` to `top` to make the popper grow towards its top instead of
+ // its bottom.
+ var left = void 0,
+ top = void 0;
+ if (sideA === 'bottom') {
+ top = -offsetParentRect.height + offsets.bottom;
+ } else {
+ top = offsets.top;
+ }
+ if (sideB === 'right') {
+ left = -offsetParentRect.width + offsets.right;
+ } else {
+ left = offsets.left;
+ }
+ if (gpuAcceleration && prefixedProperty) {
+ styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';
+ styles[sideA] = 0;
+ styles[sideB] = 0;
+ styles.willChange = 'transform';
+ } else {
+ // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
+ var invertTop = sideA === 'bottom' ? -1 : 1;
+ var invertLeft = sideB === 'right' ? -1 : 1;
+ styles[sideA] = top * invertTop;
+ styles[sideB] = left * invertLeft;
+ styles.willChange = sideA + ', ' + sideB;
+ }
- // top/left side
- if (reference[opSide] - arrowElementSize < popper[side]) {
- data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
- }
- // bottom/right side
- if (reference[side] + arrowElementSize > popper[opSide]) {
- data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
+ // Attributes
+ var attributes = {
+ 'x-placement': data.placement
+ };
+
+ // Update `data` attributes, styles and arrowStyles
+ data.attributes = _extends({}, attributes, data.attributes);
+ data.styles = _extends({}, styles, data.styles);
+ data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
+
+ return data;
}
- data.offsets.popper = getClientRect(data.offsets.popper);
-
- // compute center of the popper
- var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
-
- // Compute the sideValue using the updated popper offsets
- // take popper margin in account because we don't have this info available
- var css = getStyleComputedProperty(data.instance.popper);
- var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
- var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
- var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
-
- // prevent arrowElement from being placed not contiguously to its popper
- sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
-
- data.arrowElement = arrowElement;
- data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
-
- return data;
-}
-
-/**
- * Get the opposite placement variation of the given one
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement variation
- * @returns {String} flipped placement variation
- */
-function getOppositeVariation(variation) {
- if (variation === 'end') {
- return 'start';
- } else if (variation === 'start') {
- return 'end';
+
+ /**
+ * Helper used to know if the given modifier depends from another one.<br />
+ * It checks if the needed modifier is listed and enabled.
+ * @method
+ * @memberof Popper.Utils
+ * @param {Array} modifiers - list of modifiers
+ * @param {String} requestingName - name of requesting modifier
+ * @param {String} requestedName - name of requested modifier
+ * @returns {Boolean}
+ */
+ function isModifierRequired(modifiers, requestingName, requestedName) {
+ var requesting = find(modifiers, function (_ref) {
+ var name = _ref.name;
+ return name === requestingName;
+ });
+
+ var isRequired = !!requesting && modifiers.some(function (modifier) {
+ return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
+ });
+
+ if (!isRequired) {
+ var _requesting = '`' + requestingName + '`';
+ var requested = '`' + requestedName + '`';
+ console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');
+ }
+ return isRequired;
}
- return variation;
-}
-
-/**
- * List of accepted placements to use as values of the `placement` option.<br />
- * Valid placements are:
- * - `auto`
- * - `top`
- * - `right`
- * - `bottom`
- * - `left`
- *
- * Each placement can have a variation from this list:
- * - `-start`
- * - `-end`
- *
- * Variations are interpreted easily if you think of them as the left to right
- * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
- * is right.<br />
- * Vertically (`left` and `right`), `start` is top and `end` is bottom.
- *
- * Some valid examples are:
- * - `top-end` (on top of reference, right aligned)
- * - `right-start` (on right of reference, top aligned)
- * - `bottom` (on bottom, centered)
- * - `auto-right` (on the side with more space available, alignment depends by placement)
- *
- * @static
- * @type {Array}
- * @enum {String}
- * @readonly
- * @method placements
- * @memberof Popper
- */
-var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
-
-// Get rid of `auto` `auto-start` and `auto-end`
-var validPlacements = placements.slice(3);
-
-/**
- * Given an initial placement, returns all the subsequent placements
- * clockwise (or counter-clockwise).
- *
- * @method
- * @memberof Popper.Utils
- * @argument {String} placement - A valid placement (it accepts variations)
- * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
- * @returns {Array} placements including their variations
- */
-function clockwise(placement) {
- var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
-
- var index = validPlacements.indexOf(placement);
- var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
- return counter ? arr.reverse() : arr;
-}
-
-var BEHAVIORS = {
- FLIP: 'flip',
- CLOCKWISE: 'clockwise',
- COUNTERCLOCKWISE: 'counterclockwise'
-};
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function flip(data, options) {
- // if `inner` modifier is enabled, we can't use the `flip` modifier
- if (isModifierEnabled(data.instance.modifiers, 'inner')) {
+
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+ function arrow(data, options) {
+ var _data$offsets$arrow;
+
+ // arrow depends on keepTogether in order to work
+ if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
+ return data;
+ }
+
+ var arrowElement = options.element;
+
+ // if arrowElement is a string, suppose it's a CSS selector
+ if (typeof arrowElement === 'string') {
+ arrowElement = data.instance.popper.querySelector(arrowElement);
+
+ // if arrowElement is not found, don't run the modifier
+ if (!arrowElement) {
+ return data;
+ }
+ } else {
+ // if the arrowElement isn't a query selector we must check that the
+ // provided DOM node is child of its popper node
+ if (!data.instance.popper.contains(arrowElement)) {
+ console.warn('WARNING: `arrow.element` must be child of its popper element!');
+ return data;
+ }
+ }
+
+ var placement = data.placement.split('-')[0];
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var isVertical = ['left', 'right'].indexOf(placement) !== -1;
+
+ var len = isVertical ? 'height' : 'width';
+ var sideCapitalized = isVertical ? 'Top' : 'Left';
+ var side = sideCapitalized.toLowerCase();
+ var altSide = isVertical ? 'left' : 'top';
+ var opSide = isVertical ? 'bottom' : 'right';
+ var arrowElementSize = getOuterSizes(arrowElement)[len];
+
+ //
+ // extends keepTogether behavior making sure the popper and its
+ // reference have enough pixels in conjuction
+ //
+
+ // top/left side
+ if (reference[opSide] - arrowElementSize < popper[side]) {
+ data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
+ }
+ // bottom/right side
+ if (reference[side] + arrowElementSize > popper[opSide]) {
+ data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
+ }
+ data.offsets.popper = getClientRect(data.offsets.popper);
+
+ // compute center of the popper
+ var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
+
+ // Compute the sideValue using the updated popper offsets
+ // take popper margin in account because we don't have this info available
+ var css = getStyleComputedProperty(data.instance.popper);
+ var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);
+ var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);
+ var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
+
+ // prevent arrowElement from being placed not contiguously to its popper
+ sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
+
+ data.arrowElement = arrowElement;
+ data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);
+
return data;
}
- if (data.flipped && data.placement === data.originalPlacement) {
- // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
- return data;
+ /**
+ * Get the opposite placement variation of the given one
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement variation
+ * @returns {String} flipped placement variation
+ */
+ function getOppositeVariation(variation) {
+ if (variation === 'end') {
+ return 'start';
+ } else if (variation === 'start') {
+ return 'end';
+ }
+ return variation;
}
- var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);
+ /**
+ * List of accepted placements to use as values of the `placement` option.<br />
+ * Valid placements are:
+ * - `auto`
+ * - `top`
+ * - `right`
+ * - `bottom`
+ * - `left`
+ *
+ * Each placement can have a variation from this list:
+ * - `-start`
+ * - `-end`
+ *
+ * Variations are interpreted easily if you think of them as the left to right
+ * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
+ * is right.<br />
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom.
+ *
+ * Some valid examples are:
+ * - `top-end` (on top of reference, right aligned)
+ * - `right-start` (on right of reference, top aligned)
+ * - `bottom` (on bottom, centered)
+ * - `auto-right` (on the side with more space available, alignment depends by placement)
+ *
+ * @static
+ * @type {Array}
+ * @enum {String}
+ * @readonly
+ * @method placements
+ * @memberof Popper
+ */
+ var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
- var placement = data.placement.split('-')[0];
- var placementOpposite = getOppositePlacement(placement);
- var variation = data.placement.split('-')[1] || '';
+ // Get rid of `auto` `auto-start` and `auto-end`
+ var validPlacements = placements.slice(3);
- var flipOrder = [];
+ /**
+ * Given an initial placement, returns all the subsequent placements
+ * clockwise (or counter-clockwise).
+ *
+ * @method
+ * @memberof Popper.Utils
+ * @argument {String} placement - A valid placement (it accepts variations)
+ * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
+ * @returns {Array} placements including their variations
+ */
+ function clockwise(placement) {
+ var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- switch (options.behavior) {
- case BEHAVIORS.FLIP:
- flipOrder = [placement, placementOpposite];
- break;
- case BEHAVIORS.CLOCKWISE:
- flipOrder = clockwise(placement);
- break;
- case BEHAVIORS.COUNTERCLOCKWISE:
- flipOrder = clockwise(placement, true);
- break;
- default:
- flipOrder = options.behavior;
+ var index = validPlacements.indexOf(placement);
+ var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
+ return counter ? arr.reverse() : arr;
}
- flipOrder.forEach(function (step, index) {
- if (placement !== step || flipOrder.length === index + 1) {
+ var BEHAVIORS = {
+ FLIP: 'flip',
+ CLOCKWISE: 'clockwise',
+ COUNTERCLOCKWISE: 'counterclockwise'
+ };
+
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+ function flip(data, options) {
+ // if `inner` modifier is enabled, we can't use the `flip` modifier
+ if (isModifierEnabled(data.instance.modifiers, 'inner')) {
return data;
}
- placement = data.placement.split('-')[0];
- placementOpposite = getOppositePlacement(placement);
+ if (data.flipped && data.placement === data.originalPlacement) {
+ // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
+ return data;
+ }
- var popperOffsets = data.offsets.popper;
- var refOffsets = data.offsets.reference;
+ var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
- // using floor because the reference offsets may contain decimals we are not going to consider here
- var floor = Math.floor;
- var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
+ var placement = data.placement.split('-')[0];
+ var placementOpposite = getOppositePlacement(placement);
+ var variation = data.placement.split('-')[1] || '';
+
+ var flipOrder = [];
- var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
- var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
- var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
- var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
+ switch (options.behavior) {
+ case BEHAVIORS.FLIP:
+ flipOrder = [placement, placementOpposite];
+ break;
+ case BEHAVIORS.CLOCKWISE:
+ flipOrder = clockwise(placement);
+ break;
+ case BEHAVIORS.COUNTERCLOCKWISE:
+ flipOrder = clockwise(placement, true);
+ break;
+ default:
+ flipOrder = options.behavior;
+ }
- var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
+ flipOrder.forEach(function (step, index) {
+ if (placement !== step || flipOrder.length === index + 1) {
+ return data;
+ }
- // flip the variation if required
- var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
- var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
+ placement = data.placement.split('-')[0];
+ placementOpposite = getOppositePlacement(placement);
- if (overlapsRef || overflowsBoundaries || flippedVariation) {
- // this boolean to detect any flip loop
- data.flipped = true;
+ var popperOffsets = data.offsets.popper;
+ var refOffsets = data.offsets.reference;
- if (overlapsRef || overflowsBoundaries) {
- placement = flipOrder[index + 1];
- }
+ // using floor because the reference offsets may contain decimals we are not going to consider here
+ var floor = Math.floor;
+ var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
+
+ var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
+ var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
+ var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
+ var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
+
+ var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
+
+ // flip the variation if required
+ var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
+ var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
+
+ if (overlapsRef || overflowsBoundaries || flippedVariation) {
+ // this boolean to detect any flip loop
+ data.flipped = true;
+
+ if (overlapsRef || overflowsBoundaries) {
+ placement = flipOrder[index + 1];
+ }
+
+ if (flippedVariation) {
+ variation = getOppositeVariation(variation);
+ }
+
+ data.placement = placement + (variation ? '-' + variation : '');
- if (flippedVariation) {
- variation = getOppositeVariation(variation);
+ // this object contains `position`, we want to preserve it along with
+ // any additional property we may add in the future
+ data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
+
+ data = runModifiers(data.instance.modifiers, data, 'flip');
}
+ });
+ return data;
+ }
- data.placement = placement + (variation ? '-' + variation : '');
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+ function keepTogether(data) {
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
- // this object contains `position`, we want to preserve it along with
- // any additional property we may add in the future
- data.offsets.popper = _extends$1({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
+ var placement = data.placement.split('-')[0];
+ var floor = Math.floor;
+ var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
+ var side = isVertical ? 'right' : 'bottom';
+ var opSide = isVertical ? 'left' : 'top';
+ var measurement = isVertical ? 'width' : 'height';
- data = runModifiers(data.instance.modifiers, data, 'flip');
+ if (popper[side] < floor(reference[opSide])) {
+ data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
+ }
+ if (popper[opSide] > floor(reference[side])) {
+ data.offsets.popper[opSide] = floor(reference[side]);
}
- });
- return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function keepTogether(data) {
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
-
- var placement = data.placement.split('-')[0];
- var floor = Math.floor;
- var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
- var side = isVertical ? 'right' : 'bottom';
- var opSide = isVertical ? 'left' : 'top';
- var measurement = isVertical ? 'width' : 'height';
-
- if (popper[side] < floor(reference[opSide])) {
- data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
- }
- if (popper[opSide] > floor(reference[side])) {
- data.offsets.popper[opSide] = floor(reference[side]);
- }
- return data;
-}
-
-/**
- * Converts a string containing value + unit into a px value number
- * @function
- * @memberof {modifiers~offset}
- * @private
- * @argument {String} str - Value + unit string
- * @argument {String} measurement - `height` or `width`
- * @argument {Object} popperOffsets
- * @argument {Object} referenceOffsets
- * @returns {Number|String}
- * Value in pixels, or original string if no values were extracted
- */
-function toValue(str, measurement, popperOffsets, referenceOffsets) {
- // separate value from unit
- var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
- var value = +split[1];
- var unit = split[2];
-
- // If it's not a number it's an operator, I guess
- if (!value) {
- return str;
+ return data;
}
- if (unit.indexOf('%') === 0) {
- var element = void 0;
- switch (unit) {
- case '%p':
- element = popperOffsets;
- break;
- case '%':
- case '%r':
- default:
- element = referenceOffsets;
+ /**
+ * Converts a string containing value + unit into a px value number
+ * @function
+ * @memberof {modifiers~offset}
+ * @private
+ * @argument {String} str - Value + unit string
+ * @argument {String} measurement - `height` or `width`
+ * @argument {Object} popperOffsets
+ * @argument {Object} referenceOffsets
+ * @returns {Number|String}
+ * Value in pixels, or original string if no values were extracted
+ */
+ function toValue(str, measurement, popperOffsets, referenceOffsets) {
+ // separate value from unit
+ var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
+ var value = +split[1];
+ var unit = split[2];
+
+ // If it's not a number it's an operator, I guess
+ if (!value) {
+ return str;
}
- var rect = getClientRect(element);
- return rect[measurement] / 100 * value;
- } else if (unit === 'vh' || unit === 'vw') {
- // if is a vh or vw, we calculate the size based on the viewport
- var size = void 0;
- if (unit === 'vh') {
- size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
+ if (unit.indexOf('%') === 0) {
+ var element = void 0;
+ switch (unit) {
+ case '%p':
+ element = popperOffsets;
+ break;
+ case '%':
+ case '%r':
+ default:
+ element = referenceOffsets;
+ }
+
+ var rect = getClientRect(element);
+ return rect[measurement] / 100 * value;
+ } else if (unit === 'vh' || unit === 'vw') {
+ // if is a vh or vw, we calculate the size based on the viewport
+ var size = void 0;
+ if (unit === 'vh') {
+ size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
+ } else {
+ size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
+ }
+ return size / 100 * value;
} else {
- size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
+ // if is an explicit pixel unit, we get rid of the unit and keep the value
+ // if is an implicit unit, it's px, and we return just the value
+ return value;
}
- return size / 100 * value;
- } else {
- // if is an explicit pixel unit, we get rid of the unit and keep the value
- // if is an implicit unit, it's px, and we return just the value
- return value;
- }
-}
-
-/**
- * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
- * @function
- * @memberof {modifiers~offset}
- * @private
- * @argument {String} offset
- * @argument {Object} popperOffsets
- * @argument {Object} referenceOffsets
- * @argument {String} basePlacement
- * @returns {Array} a two cells array with x and y offsets in numbers
- */
-function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
- var offsets = [0, 0];
-
- // Use height if placement is left or right and index is 0 otherwise use width
- // in this way the first offset will use an axis and the second one
- // will use the other one
- var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
-
- // Split the offset string to obtain a list of values and operands
- // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
- var fragments = offset.split(/(\+|\-)/).map(function (frag) {
- return frag.trim();
- });
-
- // Detect if the offset string contains a pair of values or a single one
- // they could be separated by comma or space
- var divider = fragments.indexOf(find(fragments, function (frag) {
- return frag.search(/,|\s/) !== -1;
- }));
-
- if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
- console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
}
- // If divider is found, we divide the list of values and operands to divide
- // them by ofset X and Y.
- var splitRegex = /\s*,\s*|\s+/;
- var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
-
- // Convert the values with units to absolute pixels to allow our computations
- ops = ops.map(function (op, index) {
- // Most of the units rely on the orientation of the popper
- var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
- var mergeWithPrevious = false;
- return op
- // This aggregates any `+` or `-` sign that aren't considered operators
- // e.g.: 10 + +5 => [10, +, +5]
- .reduce(function (a, b) {
- if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
- a[a.length - 1] = b;
- mergeWithPrevious = true;
- return a;
- } else if (mergeWithPrevious) {
- a[a.length - 1] += b;
- mergeWithPrevious = false;
- return a;
- } else {
- return a.concat(b);
- }
- }, [])
- // Here we convert the string values into number values (in px)
- .map(function (str) {
- return toValue(str, measurement, popperOffsets, referenceOffsets);
+ /**
+ * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
+ * @function
+ * @memberof {modifiers~offset}
+ * @private
+ * @argument {String} offset
+ * @argument {Object} popperOffsets
+ * @argument {Object} referenceOffsets
+ * @argument {String} basePlacement
+ * @returns {Array} a two cells array with x and y offsets in numbers
+ */
+ function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
+ var offsets = [0, 0];
+
+ // Use height if placement is left or right and index is 0 otherwise use width
+ // in this way the first offset will use an axis and the second one
+ // will use the other one
+ var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
+
+ // Split the offset string to obtain a list of values and operands
+ // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
+ var fragments = offset.split(/(\+|\-)/).map(function (frag) {
+ return frag.trim();
});
- });
- // Loop trough the offsets arrays and execute the operations
- ops.forEach(function (op, index) {
- op.forEach(function (frag, index2) {
- if (isNumeric(frag)) {
- offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
- }
+ // Detect if the offset string contains a pair of values or a single one
+ // they could be separated by comma or space
+ var divider = fragments.indexOf(find(fragments, function (frag) {
+ return frag.search(/,|\s/) !== -1;
+ }));
+
+ if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
+ console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
+ }
+
+ // If divider is found, we divide the list of values and operands to divide
+ // them by ofset X and Y.
+ var splitRegex = /\s*,\s*|\s+/;
+ var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
+
+ // Convert the values with units to absolute pixels to allow our computations
+ ops = ops.map(function (op, index) {
+ // Most of the units rely on the orientation of the popper
+ var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
+ var mergeWithPrevious = false;
+ return op
+ // This aggregates any `+` or `-` sign that aren't considered operators
+ // e.g.: 10 + +5 => [10, +, +5]
+ .reduce(function (a, b) {
+ if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
+ a[a.length - 1] = b;
+ mergeWithPrevious = true;
+ return a;
+ } else if (mergeWithPrevious) {
+ a[a.length - 1] += b;
+ mergeWithPrevious = false;
+ return a;
+ } else {
+ return a.concat(b);
+ }
+ }, [])
+ // Here we convert the string values into number values (in px)
+ .map(function (str) {
+ return toValue(str, measurement, popperOffsets, referenceOffsets);
+ });
});
- });
- return offsets;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @argument {Number|String} options.offset=0
- * The offset value as described in the modifier description
- * @returns {Object} The data object, properly modified
- */
-function offset(data, _ref) {
- var offset = _ref.offset;
- var placement = data.placement,
- _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
-
- var basePlacement = placement.split('-')[0];
-
- var offsets = void 0;
- if (isNumeric(+offset)) {
- offsets = [+offset, 0];
- } else {
- offsets = parseOffset(offset, popper, reference, basePlacement);
- }
- if (basePlacement === 'left') {
- popper.top += offsets[0];
- popper.left -= offsets[1];
- } else if (basePlacement === 'right') {
- popper.top += offsets[0];
- popper.left += offsets[1];
- } else if (basePlacement === 'top') {
- popper.left += offsets[0];
- popper.top -= offsets[1];
- } else if (basePlacement === 'bottom') {
- popper.left += offsets[0];
- popper.top += offsets[1];
+ // Loop trough the offsets arrays and execute the operations
+ ops.forEach(function (op, index) {
+ op.forEach(function (frag, index2) {
+ if (isNumeric(frag)) {
+ offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
+ }
+ });
+ });
+ return offsets;
}
- data.popper = popper;
- return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function preventOverflow(data, options) {
- var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
-
- // If offsetParent is the reference element, we really want to
- // go one step up and use the next offsetParent as reference to
- // avoid to make this modifier completely useless and look like broken
- if (data.instance.reference === boundariesElement) {
- boundariesElement = getOffsetParent(boundariesElement);
- }
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @argument {Number|String} options.offset=0
+ * The offset value as described in the modifier description
+ * @returns {Object} The data object, properly modified
+ */
+ function offset(data, _ref) {
+ var offset = _ref.offset;
+ var placement = data.placement,
+ _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var basePlacement = placement.split('-')[0];
+
+ var offsets = void 0;
+ if (isNumeric(+offset)) {
+ offsets = [+offset, 0];
+ } else {
+ offsets = parseOffset(offset, popper, reference, basePlacement);
+ }
- var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);
- options.boundaries = boundaries;
+ if (basePlacement === 'left') {
+ popper.top += offsets[0];
+ popper.left -= offsets[1];
+ } else if (basePlacement === 'right') {
+ popper.top += offsets[0];
+ popper.left += offsets[1];
+ } else if (basePlacement === 'top') {
+ popper.left += offsets[0];
+ popper.top -= offsets[1];
+ } else if (basePlacement === 'bottom') {
+ popper.left += offsets[0];
+ popper.top += offsets[1];
+ }
- var order = options.priority;
- var popper = data.offsets.popper;
+ data.popper = popper;
+ return data;
+ }
- var check = {
- primary: function primary(placement) {
- var value = popper[placement];
- if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
- value = Math.max(popper[placement], boundaries[placement]);
- }
- return defineProperty({}, placement, value);
- },
- secondary: function secondary(placement) {
- var mainSide = placement === 'right' ? 'left' : 'top';
- var value = popper[mainSide];
- if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
- value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
- }
- return defineProperty({}, mainSide, value);
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+ function preventOverflow(data, options) {
+ var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
+
+ // If offsetParent is the reference element, we really want to
+ // go one step up and use the next offsetParent as reference to
+ // avoid to make this modifier completely useless and look like broken
+ if (data.instance.reference === boundariesElement) {
+ boundariesElement = getOffsetParent(boundariesElement);
}
- };
- order.forEach(function (placement) {
- var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
- popper = _extends$1({}, popper, check[side](placement));
- });
-
- data.offsets.popper = popper;
-
- return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function shift(data) {
- var placement = data.placement;
- var basePlacement = placement.split('-')[0];
- var shiftvariation = placement.split('-')[1];
-
- // if shift shiftvariation is specified, run the modifier
- if (shiftvariation) {
- var _data$offsets = data.offsets,
- reference = _data$offsets.reference,
- popper = _data$offsets.popper;
+ var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
+ options.boundaries = boundaries;
- var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
- var side = isVertical ? 'left' : 'top';
- var measurement = isVertical ? 'width' : 'height';
+ var order = options.priority;
+ var popper = data.offsets.popper;
- var shiftOffsets = {
- start: defineProperty({}, side, reference[side]),
- end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
+ var check = {
+ primary: function primary(placement) {
+ var value = popper[placement];
+ if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
+ value = Math.max(popper[placement], boundaries[placement]);
+ }
+ return defineProperty({}, placement, value);
+ },
+ secondary: function secondary(placement) {
+ var mainSide = placement === 'right' ? 'left' : 'top';
+ var value = popper[mainSide];
+ if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
+ value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
+ }
+ return defineProperty({}, mainSide, value);
+ }
};
- data.offsets.popper = _extends$1({}, popper, shiftOffsets[shiftvariation]);
- }
+ order.forEach(function (placement) {
+ var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
+ popper = _extends({}, popper, check[side](placement));
+ });
+
+ data.offsets.popper = popper;
- return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by update method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function hide(data) {
- if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
return data;
}
- var refRect = data.offsets.reference;
- var bound = find(data.instance.modifiers, function (modifier) {
- return modifier.name === 'preventOverflow';
- }).boundaries;
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+ function shift(data) {
+ var placement = data.placement;
+ var basePlacement = placement.split('-')[0];
+ var shiftvariation = placement.split('-')[1];
+
+ // if shift shiftvariation is specified, run the modifier
+ if (shiftvariation) {
+ var _data$offsets = data.offsets,
+ reference = _data$offsets.reference,
+ popper = _data$offsets.popper;
+
+ var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
+ var side = isVertical ? 'left' : 'top';
+ var measurement = isVertical ? 'width' : 'height';
+
+ var shiftOffsets = {
+ start: defineProperty({}, side, reference[side]),
+ end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])
+ };
- if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
- // Avoid unnecessary DOM access if visibility hasn't changed
- if (data.hide === true) {
- return data;
+ data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
}
- data.hide = true;
- data.attributes['x-out-of-boundaries'] = '';
- } else {
- // Avoid unnecessary DOM access if visibility hasn't changed
- if (data.hide === false) {
+ return data;
+ }
+
+ /**
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by update method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
+ */
+ function hide(data) {
+ if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
return data;
}
- data.hide = false;
- data.attributes['x-out-of-boundaries'] = false;
+ var refRect = data.offsets.reference;
+ var bound = find(data.instance.modifiers, function (modifier) {
+ return modifier.name === 'preventOverflow';
+ }).boundaries;
+
+ if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
+ // Avoid unnecessary DOM access if visibility hasn't changed
+ if (data.hide === true) {
+ return data;
+ }
+
+ data.hide = true;
+ data.attributes['x-out-of-boundaries'] = '';
+ } else {
+ // Avoid unnecessary DOM access if visibility hasn't changed
+ if (data.hide === false) {
+ return data;
+ }
+
+ data.hide = false;
+ data.attributes['x-out-of-boundaries'] = false;
+ }
+
+ return data;
}
- return data;
-}
-
-/**
- * @function
- * @memberof Modifiers
- * @argument {Object} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {Object} The data object, properly modified
- */
-function inner(data) {
- var placement = data.placement;
- var basePlacement = placement.split('-')[0];
- var _data$offsets = data.offsets,
- popper = _data$offsets.popper,
- reference = _data$offsets.reference;
-
- var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
-
- var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
-
- popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
-
- data.placement = getOppositePlacement(placement);
- data.offsets.popper = getClientRect(popper);
-
- return data;
-}
-
-/**
- * Modifier function, each modifier can have a function of this type assigned
- * to its `fn` property.<br />
- * These functions will be called on each update, this means that you must
- * make sure they are performant enough to avoid performance bottlenecks.
- *
- * @function ModifierFn
- * @argument {dataObject} data - The data object generated by `update` method
- * @argument {Object} options - Modifiers configuration and options
- * @returns {dataObject} The data object, properly modified
- */
-
-/**
- * Modifiers are plugins used to alter the behavior of your poppers.<br />
- * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
- * needed by the library.
- *
- * Usually you don't want to override the `order`, `fn` and `onLoad` props.
- * All the other properties are configurations that could be tweaked.
- * @namespace modifiers
- */
-var modifiers = {
/**
- * Modifier used to shift the popper on the start or end of its reference
- * element.<br />
- * It will read the variation of the `placement` property.<br />
- * It can be one either `-end` or `-start`.
- * @memberof modifiers
- * @inner
+ * @function
+ * @memberof Modifiers
+ * @argument {Object} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {Object} The data object, properly modified
*/
- shift: {
- /** @prop {number} order=100 - Index used to define the order of execution */
- order: 100,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: shift
- },
+ function inner(data) {
+ var placement = data.placement;
+ var basePlacement = placement.split('-')[0];
+ var _data$offsets = data.offsets,
+ popper = _data$offsets.popper,
+ reference = _data$offsets.reference;
+
+ var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
+
+ var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
+
+ popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
+
+ data.placement = getOppositePlacement(placement);
+ data.offsets.popper = getClientRect(popper);
+
+ return data;
+ }
/**
- * The `offset` modifier can shift your popper on both its axis.
- *
- * It accepts the following units:
- * - `px` or unitless, interpreted as pixels
- * - `%` or `%r`, percentage relative to the length of the reference element
- * - `%p`, percentage relative to the length of the popper element
- * - `vw`, CSS viewport width unit
- * - `vh`, CSS viewport height unit
- *
- * For length is intended the main axis relative to the placement of the popper.<br />
- * This means that if the placement is `top` or `bottom`, the length will be the
- * `width`. In case of `left` or `right`, it will be the height.
- *
- * You can provide a single value (as `Number` or `String`), or a pair of values
- * as `String` divided by a comma or one (or more) white spaces.<br />
- * The latter is a deprecated method because it leads to confusion and will be
- * removed in v2.<br />
- * Additionally, it accepts additions and subtractions between different units.
- * Note that multiplications and divisions aren't supported.
- *
- * Valid examples are:
- * ```
- * 10
- * '10%'
- * '10, 10'
- * '10%, 10'
- * '10 + 10%'
- * '10 - 5vh + 3%'
- * '-10px + 5vh, 5px - 6%'
- * ```
- * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
- * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
- * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
+ * Modifier function, each modifier can have a function of this type assigned
+ * to its `fn` property.<br />
+ * These functions will be called on each update, this means that you must
+ * make sure they are performant enough to avoid performance bottlenecks.
*
- * @memberof modifiers
- * @inner
+ * @function ModifierFn
+ * @argument {dataObject} data - The data object generated by `update` method
+ * @argument {Object} options - Modifiers configuration and options
+ * @returns {dataObject} The data object, properly modified
*/
- offset: {
- /** @prop {number} order=200 - Index used to define the order of execution */
- order: 200,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: offset,
- /** @prop {Number|String} offset=0
- * The offset value as described in the modifier description
- */
- offset: 0
- },
/**
- * Modifier used to prevent the popper from being positioned outside the boundary.
- *
- * An scenario exists where the reference itself is not within the boundaries.<br />
- * We can say it has "escaped the boundaries" — or just "escaped".<br />
- * In this case we need to decide whether the popper should either:
- *
- * - detach from the reference and remain "trapped" in the boundaries, or
- * - if it should ignore the boundary and "escape with its reference"
- *
- * When `escapeWithReference` is set to`true` and reference is completely
- * outside its boundaries, the popper will overflow (or completely leave)
- * the boundaries in order to remain attached to the edge of the reference.
+ * Modifiers are plugins used to alter the behavior of your poppers.<br />
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
+ * needed by the library.
*
- * @memberof modifiers
- * @inner
+ * Usually you don't want to override the `order`, `fn` and `onLoad` props.
+ * All the other properties are configurations that could be tweaked.
+ * @namespace modifiers
*/
- preventOverflow: {
- /** @prop {number} order=300 - Index used to define the order of execution */
- order: 300,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: preventOverflow,
+ var modifiers = {
/**
- * @prop {Array} [priority=['left','right','top','bottom']]
- * Popper will try to prevent overflow following these priorities by default,
- * then, it could overflow on the left and on top of the `boundariesElement`
+ * Modifier used to shift the popper on the start or end of its reference
+ * element.<br />
+ * It will read the variation of the `placement` property.<br />
+ * It can be one either `-end` or `-start`.
+ * @memberof modifiers
+ * @inner
*/
- priority: ['left', 'right', 'top', 'bottom'],
+ shift: {
+ /** @prop {number} order=100 - Index used to define the order of execution */
+ order: 100,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: shift
+ },
+
/**
- * @prop {number} padding=5
- * Amount of pixel used to define a minimum distance between the boundaries
- * and the popper this makes sure the popper has always a little padding
- * between the edges of its container
+ * The `offset` modifier can shift your popper on both its axis.
+ *
+ * It accepts the following units:
+ * - `px` or unitless, interpreted as pixels
+ * - `%` or `%r`, percentage relative to the length of the reference element
+ * - `%p`, percentage relative to the length of the popper element
+ * - `vw`, CSS viewport width unit
+ * - `vh`, CSS viewport height unit
+ *
+ * For length is intended the main axis relative to the placement of the popper.<br />
+ * This means that if the placement is `top` or `bottom`, the length will be the
+ * `width`. In case of `left` or `right`, it will be the height.
+ *
+ * You can provide a single value (as `Number` or `String`), or a pair of values
+ * as `String` divided by a comma or one (or more) white spaces.<br />
+ * The latter is a deprecated method because it leads to confusion and will be
+ * removed in v2.<br />
+ * Additionally, it accepts additions and subtractions between different units.
+ * Note that multiplications and divisions aren't supported.
+ *
+ * Valid examples are:
+ * ```
+ * 10
+ * '10%'
+ * '10, 10'
+ * '10%, 10'
+ * '10 + 10%'
+ * '10 - 5vh + 3%'
+ * '-10px + 5vh, 5px - 6%'
+ * ```
+ * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
+ * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
+ * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
+ *
+ * @memberof modifiers
+ * @inner
*/
- padding: 5,
+ offset: {
+ /** @prop {number} order=200 - Index used to define the order of execution */
+ order: 200,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: offset,
+ /** @prop {Number|String} offset=0
+ * The offset value as described in the modifier description
+ */
+ offset: 0
+ },
+
/**
- * @prop {String|HTMLElement} boundariesElement='scrollParent'
- * Boundaries used by the modifier, can be `scrollParent`, `window`,
- * `viewport` or any DOM element.
+ * Modifier used to prevent the popper from being positioned outside the boundary.
+ *
+ * An scenario exists where the reference itself is not within the boundaries.<br />
+ * We can say it has "escaped the boundaries" — or just "escaped".<br />
+ * In this case we need to decide whether the popper should either:
+ *
+ * - detach from the reference and remain "trapped" in the boundaries, or
+ * - if it should ignore the boundary and "escape with its reference"
+ *
+ * When `escapeWithReference` is set to`true` and reference is completely
+ * outside its boundaries, the popper will overflow (or completely leave)
+ * the boundaries in order to remain attached to the edge of the reference.
+ *
+ * @memberof modifiers
+ * @inner
*/
- boundariesElement: 'scrollParent'
- },
+ preventOverflow: {
+ /** @prop {number} order=300 - Index used to define the order of execution */
+ order: 300,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: preventOverflow,
+ /**
+ * @prop {Array} [priority=['left','right','top','bottom']]
+ * Popper will try to prevent overflow following these priorities by default,
+ * then, it could overflow on the left and on top of the `boundariesElement`
+ */
+ priority: ['left', 'right', 'top', 'bottom'],
+ /**
+ * @prop {number} padding=5
+ * Amount of pixel used to define a minimum distance between the boundaries
+ * and the popper this makes sure the popper has always a little padding
+ * between the edges of its container
+ */
+ padding: 5,
+ /**
+ * @prop {String|HTMLElement} boundariesElement='scrollParent'
+ * Boundaries used by the modifier, can be `scrollParent`, `window`,
+ * `viewport` or any DOM element.
+ */
+ boundariesElement: 'scrollParent'
+ },
- /**
- * Modifier used to make sure the reference and its popper stay near eachothers
- * without leaving any gap between the two. Expecially useful when the arrow is
- * enabled and you want to assure it to point to its reference element.
- * It cares only about the first axis, you can still have poppers with margin
- * between the popper and its reference element.
- * @memberof modifiers
- * @inner
- */
- keepTogether: {
- /** @prop {number} order=400 - Index used to define the order of execution */
- order: 400,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: keepTogether
- },
+ /**
+ * Modifier used to make sure the reference and its popper stay near eachothers
+ * without leaving any gap between the two. Expecially useful when the arrow is
+ * enabled and you want to assure it to point to its reference element.
+ * It cares only about the first axis, you can still have poppers with margin
+ * between the popper and its reference element.
+ * @memberof modifiers
+ * @inner
+ */
+ keepTogether: {
+ /** @prop {number} order=400 - Index used to define the order of execution */
+ order: 400,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: keepTogether
+ },
- /**
- * This modifier is used to move the `arrowElement` of the popper to make
- * sure it is positioned between the reference element and its popper element.
- * It will read the outer size of the `arrowElement` node to detect how many
- * pixels of conjuction are needed.
- *
- * It has no effect if no `arrowElement` is provided.
- * @memberof modifiers
- * @inner
- */
- arrow: {
- /** @prop {number} order=500 - Index used to define the order of execution */
- order: 500,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: arrow,
- /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
- element: '[x-arrow]'
- },
+ /**
+ * This modifier is used to move the `arrowElement` of the popper to make
+ * sure it is positioned between the reference element and its popper element.
+ * It will read the outer size of the `arrowElement` node to detect how many
+ * pixels of conjuction are needed.
+ *
+ * It has no effect if no `arrowElement` is provided.
+ * @memberof modifiers
+ * @inner
+ */
+ arrow: {
+ /** @prop {number} order=500 - Index used to define the order of execution */
+ order: 500,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: arrow,
+ /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
+ element: '[x-arrow]'
+ },
- /**
- * Modifier used to flip the popper's placement when it starts to overlap its
- * reference element.
- *
- * Requires the `preventOverflow` modifier before it in order to work.
- *
- * **NOTE:** this modifier will interrupt the current update cycle and will
- * restart it if it detects the need to flip the placement.
- * @memberof modifiers
- * @inner
- */
- flip: {
- /** @prop {number} order=600 - Index used to define the order of execution */
- order: 600,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: flip,
/**
- * @prop {String|Array} behavior='flip'
- * The behavior used to change the popper's placement. It can be one of
- * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
- * placements (with optional variations).
+ * Modifier used to flip the popper's placement when it starts to overlap its
+ * reference element.
+ *
+ * Requires the `preventOverflow` modifier before it in order to work.
+ *
+ * **NOTE:** this modifier will interrupt the current update cycle and will
+ * restart it if it detects the need to flip the placement.
+ * @memberof modifiers
+ * @inner
*/
- behavior: 'flip',
+ flip: {
+ /** @prop {number} order=600 - Index used to define the order of execution */
+ order: 600,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: flip,
+ /**
+ * @prop {String|Array} behavior='flip'
+ * The behavior used to change the popper's placement. It can be one of
+ * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
+ * placements (with optional variations).
+ */
+ behavior: 'flip',
+ /**
+ * @prop {number} padding=5
+ * The popper will flip if it hits the edges of the `boundariesElement`
+ */
+ padding: 5,
+ /**
+ * @prop {String|HTMLElement} boundariesElement='viewport'
+ * The element which will define the boundaries of the popper position,
+ * the popper will never be placed outside of the defined boundaries
+ * (except if keepTogether is enabled)
+ */
+ boundariesElement: 'viewport'
+ },
+
/**
- * @prop {number} padding=5
- * The popper will flip if it hits the edges of the `boundariesElement`
+ * Modifier used to make the popper flow toward the inner of the reference element.
+ * By default, when this modifier is disabled, the popper will be placed outside
+ * the reference element.
+ * @memberof modifiers
+ * @inner
*/
- padding: 5,
+ inner: {
+ /** @prop {number} order=700 - Index used to define the order of execution */
+ order: 700,
+ /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
+ enabled: false,
+ /** @prop {ModifierFn} */
+ fn: inner
+ },
+
/**
- * @prop {String|HTMLElement} boundariesElement='viewport'
- * The element which will define the boundaries of the popper position,
- * the popper will never be placed outside of the defined boundaries
- * (except if keepTogether is enabled)
+ * Modifier used to hide the popper when its reference element is outside of the
+ * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
+ * be used to hide with a CSS selector the popper when its reference is
+ * out of boundaries.
+ *
+ * Requires the `preventOverflow` modifier before it in order to work.
+ * @memberof modifiers
+ * @inner
*/
- boundariesElement: 'viewport'
- },
+ hide: {
+ /** @prop {number} order=800 - Index used to define the order of execution */
+ order: 800,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: hide
+ },
- /**
- * Modifier used to make the popper flow toward the inner of the reference element.
- * By default, when this modifier is disabled, the popper will be placed outside
- * the reference element.
- * @memberof modifiers
- * @inner
- */
- inner: {
- /** @prop {number} order=700 - Index used to define the order of execution */
- order: 700,
- /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
- enabled: false,
- /** @prop {ModifierFn} */
- fn: inner
- },
+ /**
+ * Computes the style that will be applied to the popper element to gets
+ * properly positioned.
+ *
+ * Note that this modifier will not touch the DOM, it just prepares the styles
+ * so that `applyStyle` modifier can apply it. This separation is useful
+ * in case you need to replace `applyStyle` with a custom implementation.
+ *
+ * This modifier has `850` as `order` value to maintain backward compatibility
+ * with previous versions of Popper.js. Expect the modifiers ordering method
+ * to change in future major versions of the library.
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ computeStyle: {
+ /** @prop {number} order=850 - Index used to define the order of execution */
+ order: 850,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: computeStyle,
+ /**
+ * @prop {Boolean} gpuAcceleration=true
+ * If true, it uses the CSS 3d transformation to position the popper.
+ * Otherwise, it will use the `top` and `left` properties.
+ */
+ gpuAcceleration: true,
+ /**
+ * @prop {string} [x='bottom']
+ * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
+ * Change this if your popper should grow in a direction different from `bottom`
+ */
+ x: 'bottom',
+ /**
+ * @prop {string} [x='left']
+ * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
+ * Change this if your popper should grow in a direction different from `right`
+ */
+ y: 'right'
+ },
+
+ /**
+ * Applies the computed styles to the popper element.
+ *
+ * All the DOM manipulations are limited to this modifier. This is useful in case
+ * you want to integrate Popper.js inside a framework or view library and you
+ * want to delegate all the DOM manipulations to it.
+ *
+ * Note that if you disable this modifier, you must make sure the popper element
+ * has its position set to `absolute` before Popper.js can do its work!
+ *
+ * Just disable this modifier and define you own to achieve the desired effect.
+ *
+ * @memberof modifiers
+ * @inner
+ */
+ applyStyle: {
+ /** @prop {number} order=900 - Index used to define the order of execution */
+ order: 900,
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
+ enabled: true,
+ /** @prop {ModifierFn} */
+ fn: applyStyle,
+ /** @prop {Function} */
+ onLoad: applyStyleOnLoad,
+ /**
+ * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
+ * @prop {Boolean} gpuAcceleration=true
+ * If true, it uses the CSS 3d transformation to position the popper.
+ * Otherwise, it will use the `top` and `left` properties.
+ */
+ gpuAcceleration: undefined
+ }
+ };
/**
- * Modifier used to hide the popper when its reference element is outside of the
- * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
- * be used to hide with a CSS selector the popper when its reference is
- * out of boundaries.
- *
- * Requires the `preventOverflow` modifier before it in order to work.
- * @memberof modifiers
- * @inner
+ * The `dataObject` is an object containing all the informations used by Popper.js
+ * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
+ * @name dataObject
+ * @property {Object} data.instance The Popper.js instance
+ * @property {String} data.placement Placement applied to popper
+ * @property {String} data.originalPlacement Placement originally defined on init
+ * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
+ * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
+ * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
+ * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
+ * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
+ * @property {Object} data.boundaries Offsets of the popper boundaries
+ * @property {Object} data.offsets The measurements of popper, reference and arrow elements.
+ * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
+ * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
+ * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
*/
- hide: {
- /** @prop {number} order=800 - Index used to define the order of execution */
- order: 800,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: hide
- },
/**
- * Computes the style that will be applied to the popper element to gets
- * properly positioned.
- *
- * Note that this modifier will not touch the DOM, it just prepares the styles
- * so that `applyStyle` modifier can apply it. This separation is useful
- * in case you need to replace `applyStyle` with a custom implementation.
- *
- * This modifier has `850` as `order` value to maintain backward compatibility
- * with previous versions of Popper.js. Expect the modifiers ordering method
- * to change in future major versions of the library.
- *
- * @memberof modifiers
- * @inner
+ * Default options provided to Popper.js constructor.<br />
+ * These can be overriden using the `options` argument of Popper.js.<br />
+ * To override an option, simply pass as 3rd argument an object with the same
+ * structure of this object, example:
+ * ```
+ * new Popper(ref, pop, {
+ * modifiers: {
+ * preventOverflow: { enabled: false }
+ * }
+ * })
+ * ```
+ * @type {Object}
+ * @static
+ * @memberof Popper
*/
- computeStyle: {
- /** @prop {number} order=850 - Index used to define the order of execution */
- order: 850,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: computeStyle,
+ var Defaults = {
/**
- * @prop {Boolean} gpuAcceleration=true
- * If true, it uses the CSS 3d transformation to position the popper.
- * Otherwise, it will use the `top` and `left` properties.
+ * Popper's placement
+ * @prop {Popper.placements} placement='bottom'
*/
- gpuAcceleration: true,
+ placement: 'bottom',
+
/**
- * @prop {string} [x='bottom']
- * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
- * Change this if your popper should grow in a direction different from `bottom`
+ * Set this to true if you want popper to position it self in 'fixed' mode
+ * @prop {Boolean} positionFixed=false
*/
- x: 'bottom',
+ positionFixed: false,
+
/**
- * @prop {string} [x='left']
- * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
- * Change this if your popper should grow in a direction different from `right`
+ * Whether events (resize, scroll) are initially enabled
+ * @prop {Boolean} eventsEnabled=true
*/
- y: 'right'
- },
+ eventsEnabled: true,
- /**
- * Applies the computed styles to the popper element.
- *
- * All the DOM manipulations are limited to this modifier. This is useful in case
- * you want to integrate Popper.js inside a framework or view library and you
- * want to delegate all the DOM manipulations to it.
- *
- * Note that if you disable this modifier, you must make sure the popper element
- * has its position set to `absolute` before Popper.js can do its work!
- *
- * Just disable this modifier and define you own to achieve the desired effect.
- *
- * @memberof modifiers
- * @inner
- */
- applyStyle: {
- /** @prop {number} order=900 - Index used to define the order of execution */
- order: 900,
- /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
- enabled: true,
- /** @prop {ModifierFn} */
- fn: applyStyle,
- /** @prop {Function} */
- onLoad: applyStyleOnLoad,
/**
- * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
- * @prop {Boolean} gpuAcceleration=true
- * If true, it uses the CSS 3d transformation to position the popper.
- * Otherwise, it will use the `top` and `left` properties.
+ * Set to true if you want to automatically remove the popper when
+ * you call the `destroy` method.
+ * @prop {Boolean} removeOnDestroy=false
*/
- gpuAcceleration: undefined
- }
-};
-
-/**
- * The `dataObject` is an object containing all the informations used by Popper.js
- * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
- * @name dataObject
- * @property {Object} data.instance The Popper.js instance
- * @property {String} data.placement Placement applied to popper
- * @property {String} data.originalPlacement Placement originally defined on init
- * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
- * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
- * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
- * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
- * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
- * @property {Object} data.boundaries Offsets of the popper boundaries
- * @property {Object} data.offsets The measurements of popper, reference and arrow elements.
- * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
- * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
- * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
- */
-
-/**
- * Default options provided to Popper.js constructor.<br />
- * These can be overriden using the `options` argument of Popper.js.<br />
- * To override an option, simply pass as 3rd argument an object with the same
- * structure of this object, example:
- * ```
- * new Popper(ref, pop, {
- * modifiers: {
- * preventOverflow: { enabled: false }
- * }
- * })
- * ```
- * @type {Object}
- * @static
- * @memberof Popper
- */
-var Defaults = {
- /**
- * Popper's placement
- * @prop {Popper.placements} placement='bottom'
- */
- placement: 'bottom',
+ removeOnDestroy: false,
- /**
- * Whether events (resize, scroll) are initially enabled
- * @prop {Boolean} eventsEnabled=true
- */
- eventsEnabled: true,
+ /**
+ * Callback called when the popper is created.<br />
+ * By default, is set to no-op.<br />
+ * Access Popper.js instance with `data.instance`.
+ * @prop {onCreate}
+ */
+ onCreate: function onCreate() {},
- /**
- * Set to true if you want to automatically remove the popper when
- * you call the `destroy` method.
- * @prop {Boolean} removeOnDestroy=false
- */
- removeOnDestroy: false,
+ /**
+ * Callback called when the popper is updated, this callback is not called
+ * on the initialization/creation of the popper, but only on subsequent
+ * updates.<br />
+ * By default, is set to no-op.<br />
+ * Access Popper.js instance with `data.instance`.
+ * @prop {onUpdate}
+ */
+ onUpdate: function onUpdate() {},
- /**
- * Callback called when the popper is created.<br />
- * By default, is set to no-op.<br />
- * Access Popper.js instance with `data.instance`.
- * @prop {onCreate}
- */
- onCreate: function onCreate() {},
+ /**
+ * List of modifiers used to modify the offsets before they are applied to the popper.
+ * They provide most of the functionalities of Popper.js
+ * @prop {modifiers}
+ */
+ modifiers: modifiers
+ };
/**
- * Callback called when the popper is updated, this callback is not called
- * on the initialization/creation of the popper, but only on subsequent
- * updates.<br />
- * By default, is set to no-op.<br />
- * Access Popper.js instance with `data.instance`.
- * @prop {onUpdate}
+ * @callback onCreate
+ * @param {dataObject} data
*/
- onUpdate: function onUpdate() {},
/**
- * List of modifiers used to modify the offsets before they are applied to the popper.
- * They provide most of the functionalities of Popper.js
- * @prop {modifiers}
- */
- modifiers: modifiers
-};
-
-/**
- * @callback onCreate
- * @param {dataObject} data
- */
-
-/**
- * @callback onUpdate
- * @param {dataObject} data
- */
-
-// Utils
-// Methods
-var Popper = function () {
- /**
- * Create a new Popper.js instance
- * @class Popper
- * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
- * @param {HTMLElement} popper - The HTML element used as popper.
- * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
- * @return {Object} instance - The generated Popper.js instance
+ * @callback onUpdate
+ * @param {dataObject} data
*/
- function Popper(reference, popper) {
- var _this = this;
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
- classCallCheck(this, Popper);
+ // Utils
+ // Methods
+ var Popper = function () {
+ /**
+ * Create a new Popper.js instance
+ * @class Popper
+ * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
+ * @param {HTMLElement} popper - The HTML element used as popper.
+ * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
+ * @return {Object} instance - The generated Popper.js instance
+ */
+ function Popper(reference, popper) {
+ var _this = this;
- this.scheduleUpdate = function () {
- return requestAnimationFrame(_this.update);
- };
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+ classCallCheck(this, Popper);
- // make update() debounced, so that it only runs at most once-per-tick
- this.update = debounce(this.update.bind(this));
+ this.scheduleUpdate = function () {
+ return requestAnimationFrame(_this.update);
+ };
- // with {} we create a new object with the options inside it
- this.options = _extends$1({}, Popper.Defaults, options);
+ // make update() debounced, so that it only runs at most once-per-tick
+ this.update = debounce(this.update.bind(this));
- // init state
- this.state = {
- isDestroyed: false,
- isCreated: false,
- scrollParents: []
- };
+ // with {} we create a new object with the options inside it
+ this.options = _extends({}, Popper.Defaults, options);
- // get reference and popper elements (allow jQuery wrappers)
- this.reference = reference && reference.jquery ? reference[0] : reference;
- this.popper = popper && popper.jquery ? popper[0] : popper;
+ // init state
+ this.state = {
+ isDestroyed: false,
+ isCreated: false,
+ scrollParents: []
+ };
- // Deep merge modifiers options
- this.options.modifiers = {};
- Object.keys(_extends$1({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
- _this.options.modifiers[name] = _extends$1({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
- });
+ // get reference and popper elements (allow jQuery wrappers)
+ this.reference = reference && reference.jquery ? reference[0] : reference;
+ this.popper = popper && popper.jquery ? popper[0] : popper;
- // Refactoring modifiers' list (Object => Array)
- this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
- return _extends$1({
- name: name
- }, _this.options.modifiers[name]);
- })
- // sort the modifiers by order
- .sort(function (a, b) {
- return a.order - b.order;
- });
+ // Deep merge modifiers options
+ this.options.modifiers = {};
+ Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {
+ _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
+ });
- // modifiers have the ability to execute arbitrary code when Popper.js get inited
- // such code is executed in the same order of its modifier
- // they could add new properties to their options configuration
- // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
- this.modifiers.forEach(function (modifierOptions) {
- if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
- modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
- }
- });
+ // Refactoring modifiers' list (Object => Array)
+ this.modifiers = Object.keys(this.options.modifiers).map(function (name) {
+ return _extends({
+ name: name
+ }, _this.options.modifiers[name]);
+ })
+ // sort the modifiers by order
+ .sort(function (a, b) {
+ return a.order - b.order;
+ });
+
+ // modifiers have the ability to execute arbitrary code when Popper.js get inited
+ // such code is executed in the same order of its modifier
+ // they could add new properties to their options configuration
+ // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
+ this.modifiers.forEach(function (modifierOptions) {
+ if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
+ modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);
+ }
+ });
- // fire the first update to position the popper in the right place
- this.update();
+ // fire the first update to position the popper in the right place
+ this.update();
- var eventsEnabled = this.options.eventsEnabled;
- if (eventsEnabled) {
- // setup event listeners, they will take care of update the position in specific situations
- this.enableEventListeners();
+ var eventsEnabled = this.options.eventsEnabled;
+ if (eventsEnabled) {
+ // setup event listeners, they will take care of update the position in specific situations
+ this.enableEventListeners();
+ }
+
+ this.state.eventsEnabled = eventsEnabled;
}
- this.state.eventsEnabled = eventsEnabled;
- }
+ // We can't use class properties because they don't get listed in the
+ // class prototype and break stuff like Sinon stubs
- // We can't use class properties because they don't get listed in the
- // class prototype and break stuff like Sinon stubs
+ createClass(Popper, [{
+ key: 'update',
+ value: function update$$1() {
+ return update.call(this);
+ }
+ }, {
+ key: 'destroy',
+ value: function destroy$$1() {
+ return destroy.call(this);
+ }
+ }, {
+ key: 'enableEventListeners',
+ value: function enableEventListeners$$1() {
+ return enableEventListeners.call(this);
+ }
+ }, {
+ key: 'disableEventListeners',
+ value: function disableEventListeners$$1() {
+ return disableEventListeners.call(this);
+ }
- createClass(Popper, [{
- key: 'update',
- value: function update$$1() {
- return update.call(this);
- }
- }, {
- key: 'destroy',
- value: function destroy$$1() {
- return destroy.call(this);
- }
- }, {
- key: 'enableEventListeners',
- value: function enableEventListeners$$1() {
- return enableEventListeners.call(this);
- }
- }, {
- key: 'disableEventListeners',
- value: function disableEventListeners$$1() {
- return disableEventListeners.call(this);
- }
+ /**
+ * Schedule an update, it will run on the next UI update available
+ * @method scheduleUpdate
+ * @memberof Popper
+ */
- /**
- * Schedule an update, it will run on the next UI update available
- * @method scheduleUpdate
- * @memberof Popper
- */
+ /**
+ * Collection of utilities useful when writing custom modifiers.
+ * Starting from version 1.7, this method is available only if you
+ * include `popper-utils.js` before `popper.js`.
+ *
+ * **DEPRECATION**: This way to access PopperUtils is deprecated
+ * and will be removed in v2! Use the PopperUtils module directly instead.
+ * Due to the high instability of the methods contained in Utils, we can't
+ * guarantee them to follow semver. Use them at your own risk!
+ * @static
+ * @private
+ * @type {Object}
+ * @deprecated since version 1.8
+ * @member Utils
+ * @memberof Popper
+ */
- /**
- * Collection of utilities useful when writing custom modifiers.
- * Starting from version 1.7, this method is available only if you
- * include `popper-utils.js` before `popper.js`.
- *
- * **DEPRECATION**: This way to access PopperUtils is deprecated
- * and will be removed in v2! Use the PopperUtils module directly instead.
- * Due to the high instability of the methods contained in Utils, we can't
- * guarantee them to follow semver. Use them at your own risk!
- * @static
- * @private
- * @type {Object}
- * @deprecated since version 1.8
- * @member Utils
- * @memberof Popper
- */
+ }]);
+ return Popper;
+ }();
- }]);
- return Popper;
-}();
-
-/**
- * The `referenceObject` is an object that provides an interface compatible with Popper.js
- * and lets you use it as replacement of a real DOM node.<br />
- * You can use this method to position a popper relatively to a set of coordinates
- * in case you don't have a DOM node to use as reference.
- *
- * ```
- * new Popper(referenceObject, popperNode);
- * ```
- *
- * NB: This feature isn't supported in Internet Explorer 10
- * @name referenceObject
- * @property {Function} data.getBoundingClientRect
- * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
- * @property {number} data.clientWidth
- * An ES6 getter that will return the width of the virtual reference element.
- * @property {number} data.clientHeight
- * An ES6 getter that will return the height of the virtual reference element.
- */
-
-
-Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
-Popper.placements = placements;
-Popper.Defaults = Defaults;
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): dropdown.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Dropdown = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * The `referenceObject` is an object that provides an interface compatible with Popper.js
+ * and lets you use it as replacement of a real DOM node.<br />
+ * You can use this method to position a popper relatively to a set of coordinates
+ * in case you don't have a DOM node to use as reference.
+ *
+ * ```
+ * new Popper(referenceObject, popperNode);
+ * ```
+ *
+ * NB: This feature isn't supported in Internet Explorer 10
+ * @name referenceObject
+ * @property {Function} data.getBoundingClientRect
+ * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
+ * @property {number} data.clientWidth
+ * An ES6 getter that will return the width of the virtual reference element.
+ * @property {number} data.clientHeight
+ * An ES6 getter that will return the height of the virtual reference element.
*/
- var NAME = 'dropdown';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.dropdown';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
- KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
- KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DISABLED: 'disabled',
- SHOW: 'show',
- DROPUP: 'dropup',
- DROPRIGHT: 'dropright',
- DROPLEFT: 'dropleft',
- MENURIGHT: 'dropdown-menu-right',
- MENULEFT: 'dropdown-menu-left',
- POSITION_STATIC: 'position-static'
- };
- var Selector = {
- DATA_TOGGLE: '[data-toggle="dropdown"]',
- FORM_CHILD: '.dropdown form',
- MENU: '.dropdown-menu',
- NAVBAR_NAV: '.navbar-nav',
- VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
- };
- var AttachmentMap = {
- TOP: 'top-start',
- TOPEND: 'top-end',
- BOTTOM: 'bottom-start',
- BOTTOMEND: 'bottom-end',
- RIGHT: 'right-start',
- RIGHTEND: 'right-end',
- LEFT: 'left-start',
- LEFTEND: 'left-end'
- };
- var Default = {
- offset: 0,
- flip: true,
- boundary: 'scrollParent'
- };
- var DefaultType = {
- offset: '(number|string|function)',
- flip: 'boolean',
- boundary: '(string|element)'
+
+
+ Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
+ Popper.placements = placements;
+ Popper.Defaults = Defaults;
+
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): dropdown.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+ var Dropdown = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'dropdown';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.dropdown';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+ var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
+
+ var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
+
+ var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
+
+ var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
+
+ var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
+
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+ KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
+ KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DISABLED: 'disabled',
+ SHOW: 'show',
+ DROPUP: 'dropup',
+ DROPRIGHT: 'dropright',
+ DROPLEFT: 'dropleft',
+ MENURIGHT: 'dropdown-menu-right',
+ MENULEFT: 'dropdown-menu-left',
+ POSITION_STATIC: 'position-static'
+ };
+ var Selector = {
+ DATA_TOGGLE: '[data-toggle="dropdown"]',
+ FORM_CHILD: '.dropdown form',
+ MENU: '.dropdown-menu',
+ NAVBAR_NAV: '.navbar-nav',
+ VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
+ };
+ var AttachmentMap = {
+ TOP: 'top-start',
+ TOPEND: 'top-end',
+ BOTTOM: 'bottom-start',
+ BOTTOMEND: 'bottom-end',
+ RIGHT: 'right-start',
+ RIGHTEND: 'right-end',
+ LEFT: 'left-start',
+ LEFTEND: 'left-end'
+ };
+ var Default = {
+ offset: 0,
+ flip: true,
+ boundary: 'scrollParent',
+ reference: 'toggle',
+ display: 'dynamic'
+ };
+ var DefaultType = {
+ offset: '(number|string|function)',
+ flip: 'boolean',
+ boundary: '(string|element)',
+ reference: '(string|element)',
+ display: 'string'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Dropdown =
- /*#__PURE__*/
- function () {
- function Dropdown(element, config) {
- this._element = element;
- this._popper = null;
- this._config = this._getConfig(config);
- this._menu = this._getMenuElement();
- this._inNavbar = this._detectNavbar();
+ var Dropdown =
+ /*#__PURE__*/
+ function () {
+ function Dropdown(element, config) {
+ this._element = element;
+ this._popper = null;
+ this._config = this._getConfig(config);
+ this._menu = this._getMenuElement();
+ this._inNavbar = this._detectNavbar();
- this._addEventListeners();
- } // Getters
+ this._addEventListeners();
+ } // Getters
- var _proto = Dropdown.prototype;
+ var _proto = Dropdown.prototype;
- // Public
- _proto.toggle = function toggle() {
- if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
- return;
- }
+ // Public
+ _proto.toggle = function toggle() {
+ if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
+ return;
+ }
- var parent = Dropdown._getParentFromElement(this._element);
+ var parent = Dropdown._getParentFromElement(this._element);
- var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
+ var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
- Dropdown._clearMenus();
+ Dropdown._clearMenus();
- if (isActive) {
- return;
- }
+ if (isActive) {
+ return;
+ }
- var relatedTarget = {
- relatedTarget: this._element
- };
- var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
- $$$1(parent).trigger(showEvent);
+ var relatedTarget = {
+ relatedTarget: this._element
+ };
+ var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
+ $$$1(parent).trigger(showEvent);
- if (showEvent.isDefaultPrevented()) {
- return;
- } // Disable totally Popper.js for Dropdown in Navbar
+ if (showEvent.isDefaultPrevented()) {
+ return;
+ } // Disable totally Popper.js for Dropdown in Navbar
- if (!this._inNavbar) {
- /**
- * Check for Popper dependency
- * Popper - https://popper.js.org
- */
- if (typeof Popper === 'undefined') {
- throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
- }
+ if (!this._inNavbar) {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
+ }
- var element = this._element; // For dropup with alignment we use the parent as popper container
+ var referenceElement = this._element;
- if ($$$1(parent).hasClass(ClassName.DROPUP)) {
- if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
- element = parent;
- }
- } // If boundary is not `scrollParent`, then set position to `static`
- // to allow the menu to "escape" the scroll parent's boundaries
- // https://github.com/twbs/bootstrap/issues/24251
+ if (this._config.reference === 'parent') {
+ referenceElement = parent;
+ } else if (Util.isElement(this._config.reference)) {
+ referenceElement = this._config.reference; // Check if it's jQuery element
+ if (typeof this._config.reference.jquery !== 'undefined') {
+ referenceElement = this._config.reference[0];
+ }
+ } // If boundary is not `scrollParent`, then set position to `static`
+ // to allow the menu to "escape" the scroll parent's boundaries
+ // https://github.com/twbs/bootstrap/issues/24251
- if (this._config.boundary !== 'scrollParent') {
- $$$1(parent).addClass(ClassName.POSITION_STATIC);
- }
- this._popper = new Popper(element, this._menu, this._getPopperConfig());
- } // If this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+ if (this._config.boundary !== 'scrollParent') {
+ $$$1(parent).addClass(ClassName.POSITION_STATIC);
+ }
+ this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
+ } // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
- $$$1('body').children().on('mouseover', null, $$$1.noop);
- }
- this._element.focus();
+ if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
+ $$$1(document.body).children().on('mouseover', null, $$$1.noop);
+ }
- this._element.setAttribute('aria-expanded', true);
+ this._element.focus();
- $$$1(this._menu).toggleClass(ClassName.SHOW);
- $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
- };
+ this._element.setAttribute('aria-expanded', true);
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(this._element).off(EVENT_KEY);
- this._element = null;
- this._menu = null;
+ $$$1(this._menu).toggleClass(ClassName.SHOW);
+ $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
+ };
- if (this._popper !== null) {
- this._popper.destroy();
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ $$$1(this._element).off(EVENT_KEY);
+ this._element = null;
+ this._menu = null;
- this._popper = null;
- }
- };
+ if (this._popper !== null) {
+ this._popper.destroy();
- _proto.update = function update() {
- this._inNavbar = this._detectNavbar();
+ this._popper = null;
+ }
+ };
- if (this._popper !== null) {
- this._popper.scheduleUpdate();
- }
- }; // Private
+ _proto.update = function update() {
+ this._inNavbar = this._detectNavbar();
+ if (this._popper !== null) {
+ this._popper.scheduleUpdate();
+ }
+ }; // Private
- _proto._addEventListeners = function _addEventListeners() {
- var _this = this;
- $$$1(this._element).on(Event.CLICK, function (event) {
- event.preventDefault();
- event.stopPropagation();
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this = this;
- _this.toggle();
- });
- };
+ $$$1(this._element).on(Event.CLICK, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
- return config;
- };
+ _this.toggle();
+ });
+ };
- _proto._getMenuElement = function _getMenuElement() {
- if (!this._menu) {
- var parent = Dropdown._getParentFromElement(this._element);
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config);
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
- this._menu = $$$1(parent).find(Selector.MENU)[0];
- }
+ _proto._getMenuElement = function _getMenuElement() {
+ if (!this._menu) {
+ var parent = Dropdown._getParentFromElement(this._element);
- return this._menu;
- };
+ this._menu = $$$1(parent).find(Selector.MENU)[0];
+ }
- _proto._getPlacement = function _getPlacement() {
- var $parentDropdown = $$$1(this._element).parent();
- var placement = AttachmentMap.BOTTOM; // Handle dropup
+ return this._menu;
+ };
+
+ _proto._getPlacement = function _getPlacement() {
+ var $parentDropdown = $$$1(this._element).parent();
+ var placement = AttachmentMap.BOTTOM; // Handle dropup
- if ($parentDropdown.hasClass(ClassName.DROPUP)) {
- placement = AttachmentMap.TOP;
+ if ($parentDropdown.hasClass(ClassName.DROPUP)) {
+ placement = AttachmentMap.TOP;
- if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
- placement = AttachmentMap.TOPEND;
+ if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+ placement = AttachmentMap.TOPEND;
+ }
+ } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
+ placement = AttachmentMap.RIGHT;
+ } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
+ placement = AttachmentMap.LEFT;
+ } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+ placement = AttachmentMap.BOTTOMEND;
}
- } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
- placement = AttachmentMap.RIGHT;
- } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
- placement = AttachmentMap.LEFT;
- } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
- placement = AttachmentMap.BOTTOMEND;
- }
- return placement;
- };
+ return placement;
+ };
- _proto._detectNavbar = function _detectNavbar() {
- return $$$1(this._element).closest('.navbar').length > 0;
- };
+ _proto._detectNavbar = function _detectNavbar() {
+ return $$$1(this._element).closest('.navbar').length > 0;
+ };
+
+ _proto._getPopperConfig = function _getPopperConfig() {
+ var _this2 = this;
- _proto._getPopperConfig = function _getPopperConfig() {
- var _this2 = this;
+ var offsetConf = {};
+
+ if (typeof this._config.offset === 'function') {
+ offsetConf.fn = function (data) {
+ data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
+ return data;
+ };
+ } else {
+ offsetConf.offset = this._config.offset;
+ }
- var offsetConf = {};
+ var popperConfig = {
+ placement: this._getPlacement(),
+ modifiers: {
+ offset: offsetConf,
+ flip: {
+ enabled: this._config.flip
+ },
+ preventOverflow: {
+ boundariesElement: this._config.boundary
+ }
+ } // Disable Popper.js if we have a static display
- if (typeof this._config.offset === 'function') {
- offsetConf.fn = function (data) {
- data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
- return data;
};
- } else {
- offsetConf.offset = this._config.offset;
- }
- var popperConfig = {
- placement: this._getPlacement(),
- modifiers: {
- offset: offsetConf,
- flip: {
- enabled: this._config.flip
- },
- preventOverflow: {
- boundariesElement: this._config.boundary
- }
+ if (this._config.display === 'static') {
+ popperConfig.modifiers.applyStyle = {
+ enabled: false
+ };
}
- };
- return popperConfig;
- }; // Static
+ return popperConfig;
+ }; // Static
- Dropdown._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
- var _config = typeof config === 'object' ? config : null;
+ Dropdown._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- if (!data) {
- data = new Dropdown(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data) {
+ data = new Dropdown(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
}
+ });
+ };
- data[config]();
+ Dropdown._clearMenus = function _clearMenus(event) {
+ if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+ return;
}
- });
- };
- Dropdown._clearMenus = function _clearMenus(event) {
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
- return;
- }
+ var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
- var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
+ for (var i = 0; i < toggles.length; i++) {
+ var parent = Dropdown._getParentFromElement(toggles[i]);
- for (var i = 0; i < toggles.length; i++) {
- var parent = Dropdown._getParentFromElement(toggles[i]);
+ var context = $$$1(toggles[i]).data(DATA_KEY);
+ var relatedTarget = {
+ relatedTarget: toggles[i]
+ };
- var context = $$$1(toggles[i]).data(DATA_KEY);
- var relatedTarget = {
- relatedTarget: toggles[i]
- };
+ if (!context) {
+ continue;
+ }
- if (!context) {
- continue;
- }
+ var dropdownMenu = context._menu;
- var dropdownMenu = context._menu;
+ if (!$$$1(parent).hasClass(ClassName.SHOW)) {
+ continue;
+ }
- if (!$$$1(parent).hasClass(ClassName.SHOW)) {
- continue;
- }
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
+ continue;
+ }
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
- continue;
- }
+ var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
+ $$$1(parent).trigger(hideEvent);
- var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
- $$$1(parent).trigger(hideEvent);
+ if (hideEvent.isDefaultPrevented()) {
+ continue;
+ } // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
- if (hideEvent.isDefaultPrevented()) {
- continue;
- } // If this is a touch-enabled device we remove the extra
- // empty mouseover listeners we added for iOS support
+ if ('ontouchstart' in document.documentElement) {
+ $$$1(document.body).children().off('mouseover', null, $$$1.noop);
+ }
- if ('ontouchstart' in document.documentElement) {
- $$$1('body').children().off('mouseover', null, $$$1.noop);
+ toggles[i].setAttribute('aria-expanded', 'false');
+ $$$1(dropdownMenu).removeClass(ClassName.SHOW);
+ $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
}
+ };
- toggles[i].setAttribute('aria-expanded', 'false');
- $$$1(dropdownMenu).removeClass(ClassName.SHOW);
- $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
- }
- };
+ Dropdown._getParentFromElement = function _getParentFromElement(element) {
+ var parent;
+ var selector = Util.getSelectorFromElement(element);
- Dropdown._getParentFromElement = function _getParentFromElement(element) {
- var parent;
- var selector = Util.getSelectorFromElement(element);
+ if (selector) {
+ parent = $$$1(selector)[0];
+ }
- if (selector) {
- parent = $$$1(selector)[0];
- }
+ return parent || element.parentNode;
+ }; // eslint-disable-next-line complexity
- return parent || element.parentNode;
- }; // eslint-disable-next-line complexity
+ Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
+ // If not input/textarea:
+ // - And not a key in REGEXP_KEYDOWN => not a dropdown command
+ // If input/textarea:
+ // - If space key => not a dropdown command
+ // - If key is other than escape
+ // - If key is not up or down => not a dropdown command
+ // - If trigger inside the menu => not a dropdown command
+ if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
+ return;
+ }
- Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
- // If not input/textarea:
- // - And not a key in REGEXP_KEYDOWN => not a dropdown command
- // If input/textarea:
- // - If space key => not a dropdown command
- // - If key is other than escape
- // - If key is not up or down => not a dropdown command
- // - If trigger inside the menu => not a dropdown command
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
- return;
- }
+ event.preventDefault();
+ event.stopPropagation();
- event.preventDefault();
- event.stopPropagation();
+ if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
+ return;
+ }
- if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
- return;
- }
+ var parent = Dropdown._getParentFromElement(this);
- var parent = Dropdown._getParentFromElement(this);
+ var isActive = $$$1(parent).hasClass(ClassName.SHOW);
- var isActive = $$$1(parent).hasClass(ClassName.SHOW);
+ if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
+ if (event.which === ESCAPE_KEYCODE) {
+ var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
+ $$$1(toggle).trigger('focus');
+ }
- if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
- if (event.which === ESCAPE_KEYCODE) {
- var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
- $$$1(toggle).trigger('focus');
+ $$$1(this).trigger('click');
+ return;
}
- $$$1(this).trigger('click');
- return;
- }
+ var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
- var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
-
- if (items.length === 0) {
- return;
- }
+ if (items.length === 0) {
+ return;
+ }
- var index = items.indexOf(event.target);
+ var index = items.indexOf(event.target);
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
- // Up
- index--;
- }
+ if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ // Up
+ index--;
+ }
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
- // Down
- index++;
- }
+ if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ // Down
+ index++;
+ }
- if (index < 0) {
- index = 0;
- }
+ if (index < 0) {
+ index = 0;
+ }
- items[index].focus();
- };
+ items[index].focus();
+ };
- _createClass(Dropdown, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
- return Dropdown;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ _createClass(Dropdown, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+ return Dropdown;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- event.preventDefault();
- event.stopPropagation();
- Dropdown._jQueryInterface.call($$$1(this), 'toggle');
- }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
- e.stopPropagation();
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
- $$$1.fn[NAME] = Dropdown._jQueryInterface;
- $$$1.fn[NAME].Constructor = Dropdown;
+ Dropdown._jQueryInterface.call($$$1(this), 'toggle');
+ }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
+ e.stopPropagation();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Dropdown._jQueryInterface;
- };
+ $$$1.fn[NAME] = Dropdown._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Dropdown;
- return Dropdown;
-}($, Popper);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Dropdown._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): modal.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Dropdown;
+ }($, Popper);
-var Modal = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): modal.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'modal';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.modal';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 300;
- var BACKDROP_TRANSITION_DURATION = 150;
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var Default = {
- backdrop: true,
- keyboard: true,
- focus: true,
- show: true
- };
- var DefaultType = {
- backdrop: '(boolean|string)',
- keyboard: 'boolean',
- focus: 'boolean',
- show: 'boolean'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- RESIZE: "resize" + EVENT_KEY,
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
- BACKDROP: 'modal-backdrop',
- OPEN: 'modal-open',
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- DIALOG: '.modal-dialog',
- DATA_TOGGLE: '[data-toggle="modal"]',
- DATA_DISMISS: '[data-dismiss="modal"]',
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
- STICKY_CONTENT: '.sticky-top',
- NAVBAR_TOGGLER: '.navbar-toggler'
+
+ var Modal = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'modal';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.modal';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+ var Default = {
+ backdrop: true,
+ keyboard: true,
+ focus: true,
+ show: true
+ };
+ var DefaultType = {
+ backdrop: '(boolean|string)',
+ keyboard: 'boolean',
+ focus: 'boolean',
+ show: 'boolean'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ RESIZE: "resize" + EVENT_KEY,
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
+ KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
+ MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
+ MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
+ BACKDROP: 'modal-backdrop',
+ OPEN: 'modal-open',
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ DIALOG: '.modal-dialog',
+ DATA_TOGGLE: '[data-toggle="modal"]',
+ DATA_DISMISS: '[data-dismiss="modal"]',
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
+ STICKY_CONTENT: '.sticky-top',
+ NAVBAR_TOGGLER: '.navbar-toggler'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
-
- var Modal =
- /*#__PURE__*/
- function () {
- function Modal(element, config) {
- this._config = this._getConfig(config);
- this._element = element;
- this._dialog = $$$1(element).find(Selector.DIALOG)[0];
- this._backdrop = null;
- this._isShown = false;
- this._isBodyOverflowing = false;
- this._ignoreBackdropClick = false;
- this._originalBodyPadding = 0;
- this._scrollbarWidth = 0;
- } // Getters
-
-
- var _proto = Modal.prototype;
-
- // Public
- _proto.toggle = function toggle(relatedTarget) {
- return this._isShown ? this.hide() : this.show(relatedTarget);
};
- _proto.show = function show(relatedTarget) {
- var _this = this;
+ var Modal =
+ /*#__PURE__*/
+ function () {
+ function Modal(element, config) {
+ this._config = this._getConfig(config);
+ this._element = element;
+ this._dialog = $$$1(element).find(Selector.DIALOG)[0];
+ this._backdrop = null;
+ this._isShown = false;
+ this._isBodyOverflowing = false;
+ this._ignoreBackdropClick = false;
+ this._scrollbarWidth = 0;
+ } // Getters
- if (this._isTransitioning || this._isShown) {
- return;
- }
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
- }
+ var _proto = Modal.prototype;
- var showEvent = $$$1.Event(Event.SHOW, {
- relatedTarget: relatedTarget
- });
- $$$1(this._element).trigger(showEvent);
+ // Public
+ _proto.toggle = function toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ };
- if (this._isShown || showEvent.isDefaultPrevented()) {
- return;
- }
+ _proto.show = function show(relatedTarget) {
+ var _this = this;
- this._isShown = true;
+ if (this._isTransitioning || this._isShown) {
+ return;
+ }
- this._checkScrollbar();
+ if ($$$1(this._element).hasClass(ClassName.FADE)) {
+ this._isTransitioning = true;
+ }
- this._setScrollbar();
+ var showEvent = $$$1.Event(Event.SHOW, {
+ relatedTarget: relatedTarget
+ });
+ $$$1(this._element).trigger(showEvent);
- this._adjustDialog();
+ if (this._isShown || showEvent.isDefaultPrevented()) {
+ return;
+ }
- $$$1(document.body).addClass(ClassName.OPEN);
+ this._isShown = true;
- this._setEscapeEvent();
+ this._checkScrollbar();
- this._setResizeEvent();
+ this._setScrollbar();
- $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
- return _this.hide(event);
- });
- $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
- $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
- if ($$$1(event.target).is(_this._element)) {
- _this._ignoreBackdropClick = true;
- }
+ this._adjustDialog();
+
+ $$$1(document.body).addClass(ClassName.OPEN);
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
+ return _this.hide(event);
+ });
+ $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
+ $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
+ if ($$$1(event.target).is(_this._element)) {
+ _this._ignoreBackdropClick = true;
+ }
+ });
});
- });
- this._showBackdrop(function () {
- return _this._showElement(relatedTarget);
- });
- };
+ this._showBackdrop(function () {
+ return _this._showElement(relatedTarget);
+ });
+ };
- _proto.hide = function hide(event) {
- var _this2 = this;
+ _proto.hide = function hide(event) {
+ var _this2 = this;
- if (event) {
- event.preventDefault();
- }
+ if (event) {
+ event.preventDefault();
+ }
- if (this._isTransitioning || !this._isShown) {
- return;
- }
+ if (this._isTransitioning || !this._isShown) {
+ return;
+ }
- var hideEvent = $$$1.Event(Event.HIDE);
- $$$1(this._element).trigger(hideEvent);
+ var hideEvent = $$$1.Event(Event.HIDE);
+ $$$1(this._element).trigger(hideEvent);
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
- return;
- }
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
+ return;
+ }
- this._isShown = false;
- var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
+ this._isShown = false;
+ var transition = $$$1(this._element).hasClass(ClassName.FADE);
- if (transition) {
- this._isTransitioning = true;
- }
+ if (transition) {
+ this._isTransitioning = true;
+ }
- this._setEscapeEvent();
+ this._setEscapeEvent();
- this._setResizeEvent();
+ this._setResizeEvent();
- $$$1(document).off(Event.FOCUSIN);
- $$$1(this._element).removeClass(ClassName.SHOW);
- $$$1(this._element).off(Event.CLICK_DISMISS);
- $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
+ $$$1(document).off(Event.FOCUSIN);
+ $$$1(this._element).removeClass(ClassName.SHOW);
+ $$$1(this._element).off(Event.CLICK_DISMISS);
+ $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
- if (transition) {
- $$$1(this._element).one(Util.TRANSITION_END, function (event) {
- return _this2._hideModal(event);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- this._hideModal();
- }
- };
+ if (transition) {
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+ $$$1(this._element).one(Util.TRANSITION_END, function (event) {
+ return _this2._hideModal(event);
+ }).emulateTransitionEnd(transitionDuration);
+ } else {
+ this._hideModal();
+ }
+ };
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
- this._config = null;
- this._element = null;
- this._dialog = null;
- this._backdrop = null;
- this._isShown = null;
- this._isBodyOverflowing = null;
- this._ignoreBackdropClick = null;
- this._scrollbarWidth = null;
- };
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
+ this._config = null;
+ this._element = null;
+ this._dialog = null;
+ this._backdrop = null;
+ this._isShown = null;
+ this._isBodyOverflowing = null;
+ this._ignoreBackdropClick = null;
+ this._scrollbarWidth = null;
+ };
- _proto.handleUpdate = function handleUpdate() {
- this._adjustDialog();
- }; // Private
+ _proto.handleUpdate = function handleUpdate() {
+ this._adjustDialog();
+ }; // Private
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default, config);
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, Default, config);
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
- _proto._showElement = function _showElement(relatedTarget) {
- var _this3 = this;
+ _proto._showElement = function _showElement(relatedTarget) {
+ var _this3 = this;
- var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
+ var transition = $$$1(this._element).hasClass(ClassName.FADE);
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
- // Don't move modal's DOM position
- document.body.appendChild(this._element);
- }
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+ // Don't move modal's DOM position
+ document.body.appendChild(this._element);
+ }
- this._element.style.display = 'block';
+ this._element.style.display = 'block';
- this._element.removeAttribute('aria-hidden');
+ this._element.removeAttribute('aria-hidden');
- this._element.scrollTop = 0;
+ this._element.scrollTop = 0;
- if (transition) {
- Util.reflow(this._element);
- }
+ if (transition) {
+ Util.reflow(this._element);
+ }
- $$$1(this._element).addClass(ClassName.SHOW);
+ $$$1(this._element).addClass(ClassName.SHOW);
- if (this._config.focus) {
- this._enforceFocus();
- }
+ if (this._config.focus) {
+ this._enforceFocus();
+ }
- var shownEvent = $$$1.Event(Event.SHOWN, {
- relatedTarget: relatedTarget
- });
+ var shownEvent = $$$1.Event(Event.SHOWN, {
+ relatedTarget: relatedTarget
+ });
+
+ var transitionComplete = function transitionComplete() {
+ if (_this3._config.focus) {
+ _this3._element.focus();
+ }
- var transitionComplete = function transitionComplete() {
- if (_this3._config.focus) {
- _this3._element.focus();
+ _this3._isTransitioning = false;
+ $$$1(_this3._element).trigger(shownEvent);
+ };
+
+ if (transition) {
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+ $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
+ } else {
+ transitionComplete();
}
+ };
- _this3._isTransitioning = false;
- $$$1(_this3._element).trigger(shownEvent);
+ _proto._enforceFocus = function _enforceFocus() {
+ var _this4 = this;
+
+ $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
+ .on(Event.FOCUSIN, function (event) {
+ if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
+ _this4._element.focus();
+ }
+ });
};
- if (transition) {
- $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- transitionComplete();
- }
- };
+ _proto._setEscapeEvent = function _setEscapeEvent() {
+ var _this5 = this;
- _proto._enforceFocus = function _enforceFocus() {
- var _this4 = this;
+ if (this._isShown && this._config.keyboard) {
+ $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
+ if (event.which === ESCAPE_KEYCODE) {
+ event.preventDefault();
- $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
- .on(Event.FOCUSIN, function (event) {
- if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
- _this4._element.focus();
+ _this5.hide();
+ }
+ });
+ } else if (!this._isShown) {
+ $$$1(this._element).off(Event.KEYDOWN_DISMISS);
}
- });
- };
+ };
- _proto._setEscapeEvent = function _setEscapeEvent() {
- var _this5 = this;
+ _proto._setResizeEvent = function _setResizeEvent() {
+ var _this6 = this;
- if (this._isShown && this._config.keyboard) {
- $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
- if (event.which === ESCAPE_KEYCODE) {
- event.preventDefault();
+ if (this._isShown) {
+ $$$1(window).on(Event.RESIZE, function (event) {
+ return _this6.handleUpdate(event);
+ });
+ } else {
+ $$$1(window).off(Event.RESIZE);
+ }
+ };
- _this5.hide();
- }
- });
- } else if (!this._isShown) {
- $$$1(this._element).off(Event.KEYDOWN_DISMISS);
- }
- };
+ _proto._hideModal = function _hideModal() {
+ var _this7 = this;
- _proto._setResizeEvent = function _setResizeEvent() {
- var _this6 = this;
+ this._element.style.display = 'none';
- if (this._isShown) {
- $$$1(window).on(Event.RESIZE, function (event) {
- return _this6.handleUpdate(event);
- });
- } else {
- $$$1(window).off(Event.RESIZE);
- }
- };
+ this._element.setAttribute('aria-hidden', true);
- _proto._hideModal = function _hideModal() {
- var _this7 = this;
+ this._isTransitioning = false;
- this._element.style.display = 'none';
+ this._showBackdrop(function () {
+ $$$1(document.body).removeClass(ClassName.OPEN);
- this._element.setAttribute('aria-hidden', true);
+ _this7._resetAdjustments();
- this._isTransitioning = false;
+ _this7._resetScrollbar();
- this._showBackdrop(function () {
- $$$1(document.body).removeClass(ClassName.OPEN);
+ $$$1(_this7._element).trigger(Event.HIDDEN);
+ });
+ };
- _this7._resetAdjustments();
+ _proto._removeBackdrop = function _removeBackdrop() {
+ if (this._backdrop) {
+ $$$1(this._backdrop).remove();
+ this._backdrop = null;
+ }
+ };
- _this7._resetScrollbar();
+ _proto._showBackdrop = function _showBackdrop(callback) {
+ var _this8 = this;
- $$$1(_this7._element).trigger(Event.HIDDEN);
- });
- };
+ var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
- _proto._removeBackdrop = function _removeBackdrop() {
- if (this._backdrop) {
- $$$1(this._backdrop).remove();
- this._backdrop = null;
- }
- };
+ if (this._isShown && this._config.backdrop) {
+ this._backdrop = document.createElement('div');
+ this._backdrop.className = ClassName.BACKDROP;
- _proto._showBackdrop = function _showBackdrop(callback) {
- var _this8 = this;
+ if (animate) {
+ $$$1(this._backdrop).addClass(animate);
+ }
- var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
+ $$$1(this._backdrop).appendTo(document.body);
+ $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
+ if (_this8._ignoreBackdropClick) {
+ _this8._ignoreBackdropClick = false;
+ return;
+ }
- if (this._isShown && this._config.backdrop) {
- var doAnimate = Util.supportsTransitionEnd() && animate;
- this._backdrop = document.createElement('div');
- this._backdrop.className = ClassName.BACKDROP;
+ if (event.target !== event.currentTarget) {
+ return;
+ }
- if (animate) {
- $$$1(this._backdrop).addClass(animate);
- }
+ if (_this8._config.backdrop === 'static') {
+ _this8._element.focus();
+ } else {
+ _this8.hide();
+ }
+ });
- $$$1(this._backdrop).appendTo(document.body);
- $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
- if (_this8._ignoreBackdropClick) {
- _this8._ignoreBackdropClick = false;
- return;
+ if (animate) {
+ Util.reflow(this._backdrop);
}
- if (event.target !== event.currentTarget) {
+ $$$1(this._backdrop).addClass(ClassName.SHOW);
+
+ if (!callback) {
return;
}
- if (_this8._config.backdrop === 'static') {
- _this8._element.focus();
- } else {
- _this8.hide();
+ if (!animate) {
+ callback();
+ return;
}
- });
- if (doAnimate) {
- Util.reflow(this._backdrop);
- }
+ var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
+ $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
+ } else if (!this._isShown && this._backdrop) {
+ $$$1(this._backdrop).removeClass(ClassName.SHOW);
- $$$1(this._backdrop).addClass(ClassName.SHOW);
+ var callbackRemove = function callbackRemove() {
+ _this8._removeBackdrop();
- if (!callback) {
- return;
- }
+ if (callback) {
+ callback();
+ }
+ };
+
+ if ($$$1(this._element).hasClass(ClassName.FADE)) {
+ var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
- if (!doAnimate) {
+ $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
+ } else {
+ callbackRemove();
+ }
+ } else if (callback) {
callback();
- return;
}
+ }; // ----------------------------------------------------------------------
+ // the following methods are used to handle overflowing modals
+ // todo (fat): these should probably be refactored out of modal.js
+ // ----------------------------------------------------------------------
- $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
- } else if (!this._isShown && this._backdrop) {
- $$$1(this._backdrop).removeClass(ClassName.SHOW);
- var callbackRemove = function callbackRemove() {
- _this8._removeBackdrop();
+ _proto._adjustDialog = function _adjustDialog() {
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
- if (callback) {
- callback();
- }
- };
-
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
- $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
- } else {
- callbackRemove();
+ if (!this._isBodyOverflowing && isModalOverflowing) {
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
}
- } else if (callback) {
- callback();
- }
- }; // ----------------------------------------------------------------------
- // the following methods are used to handle overflowing modals
- // todo (fat): these should probably be refactored out of modal.js
- // ----------------------------------------------------------------------
+ if (this._isBodyOverflowing && !isModalOverflowing) {
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
+ }
+ };
- _proto._adjustDialog = function _adjustDialog() {
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+ _proto._resetAdjustments = function _resetAdjustments() {
+ this._element.style.paddingLeft = '';
+ this._element.style.paddingRight = '';
+ };
- if (!this._isBodyOverflowing && isModalOverflowing) {
- this._element.style.paddingLeft = this._scrollbarWidth + "px";
- }
+ _proto._checkScrollbar = function _checkScrollbar() {
+ var rect = document.body.getBoundingClientRect();
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+ this._scrollbarWidth = this._getScrollbarWidth();
+ };
- if (this._isBodyOverflowing && !isModalOverflowing) {
- this._element.style.paddingRight = this._scrollbarWidth + "px";
- }
- };
+ _proto._setScrollbar = function _setScrollbar() {
+ var _this9 = this;
+
+ if (this._isBodyOverflowing) {
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
+ // Adjust fixed content padding
+ $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+ var actualPadding = $$$1(element)[0].style.paddingRight;
+ var calculatedPadding = $$$1(element).css('padding-right');
+ $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
+ }); // Adjust sticky content margin
+
+ $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
+ var actualMargin = $$$1(element)[0].style.marginRight;
+ var calculatedMargin = $$$1(element).css('margin-right');
+ $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
+ }); // Adjust navbar-toggler margin
+
+ $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var actualMargin = $$$1(element)[0].style.marginRight;
+ var calculatedMargin = $$$1(element).css('margin-right');
+ $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
+ }); // Adjust body padding
+
+ var actualPadding = document.body.style.paddingRight;
+ var calculatedPadding = $$$1(document.body).css('padding-right');
+ $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
+ }
+ };
- _proto._resetAdjustments = function _resetAdjustments() {
- this._element.style.paddingLeft = '';
- this._element.style.paddingRight = '';
- };
+ _proto._resetScrollbar = function _resetScrollbar() {
+ // Restore fixed content padding
+ $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+ var padding = $$$1(element).data('padding-right');
- _proto._checkScrollbar = function _checkScrollbar() {
- var rect = document.body.getBoundingClientRect();
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
- this._scrollbarWidth = this._getScrollbarWidth();
- };
+ if (typeof padding !== 'undefined') {
+ $$$1(element).css('padding-right', padding).removeData('padding-right');
+ }
+ }); // Restore sticky content and navbar-toggler margin
- _proto._setScrollbar = function _setScrollbar() {
- var _this9 = this;
+ $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var margin = $$$1(element).data('margin-right');
- if (this._isBodyOverflowing) {
- // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
- // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
- // Adjust fixed content padding
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
- var actualPadding = $$$1(element)[0].style.paddingRight;
- var calculatedPadding = $$$1(element).css('padding-right');
- $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
- }); // Adjust sticky content margin
-
- $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
- var actualMargin = $$$1(element)[0].style.marginRight;
- var calculatedMargin = $$$1(element).css('margin-right');
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
- }); // Adjust navbar-toggler margin
-
- $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
- var actualMargin = $$$1(element)[0].style.marginRight;
- var calculatedMargin = $$$1(element).css('margin-right');
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
- }); // Adjust body padding
-
- var actualPadding = document.body.style.paddingRight;
- var calculatedPadding = $$$1('body').css('padding-right');
- $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
- }
- };
+ if (typeof margin !== 'undefined') {
+ $$$1(element).css('margin-right', margin).removeData('margin-right');
+ }
+ }); // Restore body padding
- _proto._resetScrollbar = function _resetScrollbar() {
- // Restore fixed content padding
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
- var padding = $$$1(element).data('padding-right');
+ var padding = $$$1(document.body).data('padding-right');
if (typeof padding !== 'undefined') {
- $$$1(element).css('padding-right', padding).removeData('padding-right');
+ $$$1(document.body).css('padding-right', padding).removeData('padding-right');
}
- }); // Restore sticky content and navbar-toggler margin
-
- $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
- var margin = $$$1(element).data('margin-right');
-
- if (typeof margin !== 'undefined') {
- $$$1(element).css('margin-right', margin).removeData('margin-right');
- }
- }); // Restore body padding
-
- var padding = $$$1('body').data('padding-right');
+ };
- if (typeof padding !== 'undefined') {
- $$$1('body').css('padding-right', padding).removeData('padding-right');
- }
- };
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
+ // thx d.walsh
+ var scrollDiv = document.createElement('div');
+ scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
+ document.body.appendChild(scrollDiv);
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+ }; // Static
- _proto._getScrollbarWidth = function _getScrollbarWidth() {
- // thx d.walsh
- var scrollDiv = document.createElement('div');
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
- document.body.appendChild(scrollDiv);
- var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- return scrollbarWidth;
- }; // Static
+ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ var _config = _objectSpread({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
- var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
+ if (!data) {
+ data = new Modal(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (!data) {
- data = new Modal(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ data[config](relatedTarget);
+ } else if (_config.show) {
+ data.show(relatedTarget);
}
+ });
+ };
- data[config](relatedTarget);
- } else if (_config.show) {
- data.show(relatedTarget);
+ _createClass(Modal, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
-
- _createClass(Modal, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
- return Modal;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
+ return Modal;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- var _this10 = this;
- var target;
- var selector = Util.getSelectorFromElement(this);
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ var _this10 = this;
- if (selector) {
- target = $$$1(selector)[0];
- }
+ var target;
+ var selector = Util.getSelectorFromElement(this);
- var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());
+ if (selector) {
+ target = $$$1(selector)[0];
+ }
- if (this.tagName === 'A' || this.tagName === 'AREA') {
- event.preventDefault();
- }
+ var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());
- var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
- if (showEvent.isDefaultPrevented()) {
- // Only register focus restorer if modal will actually get shown
- return;
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
+ event.preventDefault();
}
- $target.one(Event.HIDDEN, function () {
- if ($$$1(_this10).is(':visible')) {
- _this10.focus();
+ var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
+ if (showEvent.isDefaultPrevented()) {
+ // Only register focus restorer if modal will actually get shown
+ return;
}
- });
- });
- Modal._jQueryInterface.call($$$1(target), config, this);
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ $target.one(Event.HIDDEN, function () {
+ if ($$$1(_this10).is(':visible')) {
+ _this10.focus();
+ }
+ });
+ });
- $$$1.fn[NAME] = Modal._jQueryInterface;
- $$$1.fn[NAME].Constructor = Modal;
+ Modal._jQueryInterface.call($$$1(target), config, this);
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Modal._jQueryInterface;
- };
+ $$$1.fn[NAME] = Modal._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Modal;
- return Modal;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Modal._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): tooltip.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Modal;
+ }($);
-var Tooltip = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): tooltip.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'tooltip';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.tooltip';
- var EVENT_KEY = "." + DATA_KEY;
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 150;
- var CLASS_PREFIX = 'bs-tooltip';
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var DefaultType = {
- animation: 'boolean',
- template: 'string',
- title: '(string|element|function)',
- trigger: 'string',
- delay: '(number|object)',
- html: 'boolean',
- selector: '(string|boolean)',
- placement: '(string|function)',
- offset: '(number|string)',
- container: '(string|element|boolean)',
- fallbackPlacement: '(string|array)',
- boundary: '(string|element)'
- };
- var AttachmentMap = {
- AUTO: 'auto',
- TOP: 'top',
- RIGHT: 'right',
- BOTTOM: 'bottom',
- LEFT: 'left'
- };
- var Default = {
- animation: true,
- template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
- trigger: 'hover focus',
- title: '',
- delay: 0,
- html: false,
- selector: false,
- placement: 'top',
- offset: 0,
- container: false,
- fallbackPlacement: 'flip',
- boundary: 'scrollParent'
- };
- var HoverState = {
- SHOW: 'show',
- OUT: 'out'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- INSERTED: "inserted" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- FOCUSOUT: "focusout" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY
- };
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TOOLTIP: '.tooltip',
- TOOLTIP_INNER: '.tooltip-inner',
- ARROW: '.arrow'
- };
- var Trigger = {
- HOVER: 'hover',
- FOCUS: 'focus',
- CLICK: 'click',
- MANUAL: 'manual'
+
+ var Tooltip = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
-
- };
-
- var Tooltip =
- /*#__PURE__*/
- function () {
- function Tooltip(element, config) {
+ var NAME = 'tooltip';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.tooltip';
+ var EVENT_KEY = "." + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var CLASS_PREFIX = 'bs-tooltip';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+ var DefaultType = {
+ animation: 'boolean',
+ template: 'string',
+ title: '(string|element|function)',
+ trigger: 'string',
+ delay: '(number|object)',
+ html: 'boolean',
+ selector: '(string|boolean)',
+ placement: '(string|function)',
+ offset: '(number|string)',
+ container: '(string|element|boolean)',
+ fallbackPlacement: '(string|array)',
+ boundary: '(string|element)'
+ };
+ var AttachmentMap = {
+ AUTO: 'auto',
+ TOP: 'top',
+ RIGHT: 'right',
+ BOTTOM: 'bottom',
+ LEFT: 'left'
+ };
+ var Default = {
+ animation: true,
+ template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ selector: false,
+ placement: 'top',
+ offset: 0,
+ container: false,
+ fallbackPlacement: 'flip',
+ boundary: 'scrollParent'
+ };
+ var HoverState = {
+ SHOW: 'show',
+ OUT: 'out'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ };
+ var ClassName = {
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ TOOLTIP: '.tooltip',
+ TOOLTIP_INNER: '.tooltip-inner',
+ ARROW: '.arrow'
+ };
+ var Trigger = {
+ HOVER: 'hover',
+ FOCUS: 'focus',
+ CLICK: 'click',
+ MANUAL: 'manual'
/**
- * Check for Popper dependency
- * Popper - https://popper.js.org
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
*/
- if (typeof Popper === 'undefined') {
- throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
- } // private
+ };
- this._isEnabled = true;
- this._timeout = 0;
- this._hoverState = '';
- this._activeTrigger = {};
- this._popper = null; // Protected
+ var Tooltip =
+ /*#__PURE__*/
+ function () {
+ function Tooltip(element, config) {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
+ } // private
- this.element = element;
- this.config = this._getConfig(config);
- this.tip = null;
- this._setListeners();
- } // Getters
+ this._isEnabled = true;
+ this._timeout = 0;
+ this._hoverState = '';
+ this._activeTrigger = {};
+ this._popper = null; // Protected
+ this.element = element;
+ this.config = this._getConfig(config);
+ this.tip = null;
- var _proto = Tooltip.prototype;
+ this._setListeners();
+ } // Getters
- // Public
- _proto.enable = function enable() {
- this._isEnabled = true;
- };
- _proto.disable = function disable() {
- this._isEnabled = false;
- };
+ var _proto = Tooltip.prototype;
- _proto.toggleEnabled = function toggleEnabled() {
- this._isEnabled = !this._isEnabled;
- };
+ // Public
+ _proto.enable = function enable() {
+ this._isEnabled = true;
+ };
- _proto.toggle = function toggle(event) {
- if (!this._isEnabled) {
- return;
- }
+ _proto.disable = function disable() {
+ this._isEnabled = false;
+ };
- if (event) {
- var dataKey = this.constructor.DATA_KEY;
- var context = $$$1(event.currentTarget).data(dataKey);
+ _proto.toggleEnabled = function toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ };
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
+ _proto.toggle = function toggle(event) {
+ if (!this._isEnabled) {
+ return;
}
- context._activeTrigger.click = !context._activeTrigger.click;
+ if (event) {
+ var dataKey = this.constructor.DATA_KEY;
+ var context = $$$1(event.currentTarget).data(dataKey);
- if (context._isWithActiveTrigger()) {
- context._enter(null, context);
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $$$1(event.currentTarget).data(dataKey, context);
+ }
+
+ context._activeTrigger.click = !context._activeTrigger.click;
+
+ if (context._isWithActiveTrigger()) {
+ context._enter(null, context);
+ } else {
+ context._leave(null, context);
+ }
} else {
- context._leave(null, context);
- }
- } else {
- if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
- this._leave(null, this);
+ if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
+ this._leave(null, this);
- return;
- }
+ return;
+ }
- this._enter(null, this);
- }
- };
+ this._enter(null, this);
+ }
+ };
- _proto.dispose = function dispose() {
- clearTimeout(this._timeout);
- $$$1.removeData(this.element, this.constructor.DATA_KEY);
- $$$1(this.element).off(this.constructor.EVENT_KEY);
- $$$1(this.element).closest('.modal').off('hide.bs.modal');
+ _proto.dispose = function dispose() {
+ clearTimeout(this._timeout);
+ $$$1.removeData(this.element, this.constructor.DATA_KEY);
+ $$$1(this.element).off(this.constructor.EVENT_KEY);
+ $$$1(this.element).closest('.modal').off('hide.bs.modal');
- if (this.tip) {
- $$$1(this.tip).remove();
- }
+ if (this.tip) {
+ $$$1(this.tip).remove();
+ }
- this._isEnabled = null;
- this._timeout = null;
- this._hoverState = null;
- this._activeTrigger = null;
+ this._isEnabled = null;
+ this._timeout = null;
+ this._hoverState = null;
+ this._activeTrigger = null;
- if (this._popper !== null) {
- this._popper.destroy();
- }
+ if (this._popper !== null) {
+ this._popper.destroy();
+ }
- this._popper = null;
- this.element = null;
- this.config = null;
- this.tip = null;
- };
+ this._popper = null;
+ this.element = null;
+ this.config = null;
+ this.tip = null;
+ };
- _proto.show = function show() {
- var _this = this;
+ _proto.show = function show() {
+ var _this = this;
- if ($$$1(this.element).css('display') === 'none') {
- throw new Error('Please use show on visible elements');
- }
+ if ($$$1(this.element).css('display') === 'none') {
+ throw new Error('Please use show on visible elements');
+ }
- var showEvent = $$$1.Event(this.constructor.Event.SHOW);
+ var showEvent = $$$1.Event(this.constructor.Event.SHOW);
- if (this.isWithContent() && this._isEnabled) {
- $$$1(this.element).trigger(showEvent);
- var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
+ if (this.isWithContent() && this._isEnabled) {
+ $$$1(this.element).trigger(showEvent);
+ var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
- if (showEvent.isDefaultPrevented() || !isInTheDom) {
- return;
- }
+ if (showEvent.isDefaultPrevented() || !isInTheDom) {
+ return;
+ }
- var tip = this.getTipElement();
- var tipId = Util.getUID(this.constructor.NAME);
- tip.setAttribute('id', tipId);
- this.element.setAttribute('aria-describedby', tipId);
- this.setContent();
+ var tip = this.getTipElement();
+ var tipId = Util.getUID(this.constructor.NAME);
+ tip.setAttribute('id', tipId);
+ this.element.setAttribute('aria-describedby', tipId);
+ this.setContent();
- if (this.config.animation) {
- $$$1(tip).addClass(ClassName.FADE);
- }
+ if (this.config.animation) {
+ $$$1(tip).addClass(ClassName.FADE);
+ }
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
- var attachment = this._getAttachment(placement);
+ var attachment = this._getAttachment(placement);
- this.addAttachmentClass(attachment);
- var container = this.config.container === false ? document.body : $$$1(this.config.container);
- $$$1(tip).data(this.constructor.DATA_KEY, this);
+ this.addAttachmentClass(attachment);
+ var container = this.config.container === false ? document.body : $$$1(this.config.container);
+ $$$1(tip).data(this.constructor.DATA_KEY, this);
- if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
- $$$1(tip).appendTo(container);
- }
+ if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
+ $$$1(tip).appendTo(container);
+ }
- $$$1(this.element).trigger(this.constructor.Event.INSERTED);
- this._popper = new Popper(this.element, tip, {
- placement: attachment,
- modifiers: {
- offset: {
- offset: this.config.offset
- },
- flip: {
- behavior: this.config.fallbackPlacement
+ $$$1(this.element).trigger(this.constructor.Event.INSERTED);
+ this._popper = new Popper(this.element, tip, {
+ placement: attachment,
+ modifiers: {
+ offset: {
+ offset: this.config.offset
+ },
+ flip: {
+ behavior: this.config.fallbackPlacement
+ },
+ arrow: {
+ element: Selector.ARROW
+ },
+ preventOverflow: {
+ boundariesElement: this.config.boundary
+ }
},
- arrow: {
- element: Selector.ARROW
+ onCreate: function onCreate(data) {
+ if (data.originalPlacement !== data.placement) {
+ _this._handlePopperPlacementChange(data);
+ }
},
- preventOverflow: {
- boundariesElement: this.config.boundary
- }
- },
- onCreate: function onCreate(data) {
- if (data.originalPlacement !== data.placement) {
+ onUpdate: function onUpdate(data) {
_this._handlePopperPlacementChange(data);
}
- },
- onUpdate: function onUpdate(data) {
- _this._handlePopperPlacementChange(data);
+ });
+ $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+ if ('ontouchstart' in document.documentElement) {
+ $$$1(document.body).children().on('mouseover', null, $$$1.noop);
}
- });
- $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement) {
- $$$1('body').children().on('mouseover', null, $$$1.noop);
- }
+ var complete = function complete() {
+ if (_this.config.animation) {
+ _this._fixTransition();
+ }
- var complete = function complete() {
- if (_this.config.animation) {
- _this._fixTransition();
- }
+ var prevHoverState = _this._hoverState;
+ _this._hoverState = null;
+ $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
- var prevHoverState = _this._hoverState;
- _this._hoverState = null;
- $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
+ if (prevHoverState === HoverState.OUT) {
+ _this._leave(null, _this);
+ }
+ };
- if (prevHoverState === HoverState.OUT) {
- _this._leave(null, _this);
+ if ($$$1(this.tip).hasClass(ClassName.FADE)) {
+ var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
+ $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ } else {
+ complete();
}
- };
-
- if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
- $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
- } else {
- complete();
}
- }
- };
+ };
- _proto.hide = function hide(callback) {
- var _this2 = this;
+ _proto.hide = function hide(callback) {
+ var _this2 = this;
- var tip = this.getTipElement();
- var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
+ var tip = this.getTipElement();
+ var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
- var complete = function complete() {
- if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
- tip.parentNode.removeChild(tip);
- }
+ var complete = function complete() {
+ if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
+ tip.parentNode.removeChild(tip);
+ }
- _this2._cleanTipClass();
+ _this2._cleanTipClass();
- _this2.element.removeAttribute('aria-describedby');
+ _this2.element.removeAttribute('aria-describedby');
- $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
+ $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
- if (_this2._popper !== null) {
- _this2._popper.destroy();
- }
+ if (_this2._popper !== null) {
+ _this2._popper.destroy();
+ }
- if (callback) {
- callback();
- }
- };
+ if (callback) {
+ callback();
+ }
+ };
- $$$1(this.element).trigger(hideEvent);
+ $$$1(this.element).trigger(hideEvent);
- if (hideEvent.isDefaultPrevented()) {
- return;
- }
+ if (hideEvent.isDefaultPrevented()) {
+ return;
+ }
- $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
- // empty mouseover listeners we added for iOS support
+ $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
- if ('ontouchstart' in document.documentElement) {
- $$$1('body').children().off('mouseover', null, $$$1.noop);
- }
+ if ('ontouchstart' in document.documentElement) {
+ $$$1(document.body).children().off('mouseover', null, $$$1.noop);
+ }
- this._activeTrigger[Trigger.CLICK] = false;
- this._activeTrigger[Trigger.FOCUS] = false;
- this._activeTrigger[Trigger.HOVER] = false;
+ this._activeTrigger[Trigger.CLICK] = false;
+ this._activeTrigger[Trigger.FOCUS] = false;
+ this._activeTrigger[Trigger.HOVER] = false;
- if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
- $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- complete();
- }
+ if ($$$1(this.tip).hasClass(ClassName.FADE)) {
+ var transitionDuration = Util.getTransitionDurationFromElement(tip);
+ $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ } else {
+ complete();
+ }
- this._hoverState = '';
- };
+ this._hoverState = '';
+ };
- _proto.update = function update() {
- if (this._popper !== null) {
- this._popper.scheduleUpdate();
- }
- }; // Protected
+ _proto.update = function update() {
+ if (this._popper !== null) {
+ this._popper.scheduleUpdate();
+ }
+ }; // Protected
- _proto.isWithContent = function isWithContent() {
- return Boolean(this.getTitle());
- };
+ _proto.isWithContent = function isWithContent() {
+ return Boolean(this.getTitle());
+ };
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
- };
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+ $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ };
- _proto.getTipElement = function getTipElement() {
- this.tip = this.tip || $$$1(this.config.template)[0];
- return this.tip;
- };
+ _proto.getTipElement = function getTipElement() {
+ this.tip = this.tip || $$$1(this.config.template)[0];
+ return this.tip;
+ };
- _proto.setContent = function setContent() {
- var $tip = $$$1(this.getTipElement());
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
- };
+ _proto.setContent = function setContent() {
+ var $tip = $$$1(this.getTipElement());
+ this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+ };
- _proto.setElementContent = function setElementContent($element, content) {
- var html = this.config.html;
+ _proto.setElementContent = function setElementContent($element, content) {
+ var html = this.config.html;
- if (typeof content === 'object' && (content.nodeType || content.jquery)) {
- // Content is a DOM node or a jQuery
- if (html) {
- if (!$$$1(content).parent().is($element)) {
- $element.empty().append(content);
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
+ // Content is a DOM node or a jQuery
+ if (html) {
+ if (!$$$1(content).parent().is($element)) {
+ $element.empty().append(content);
+ }
+ } else {
+ $element.text($$$1(content).text());
}
} else {
- $element.text($$$1(content).text());
+ $element[html ? 'html' : 'text'](content);
}
- } else {
- $element[html ? 'html' : 'text'](content);
- }
- };
+ };
- _proto.getTitle = function getTitle() {
- var title = this.element.getAttribute('data-original-title');
+ _proto.getTitle = function getTitle() {
+ var title = this.element.getAttribute('data-original-title');
- if (!title) {
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
- }
+ if (!title) {
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+ }
- return title;
- }; // Private
+ return title;
+ }; // Private
- _proto._getAttachment = function _getAttachment(placement) {
- return AttachmentMap[placement.toUpperCase()];
- };
+ _proto._getAttachment = function _getAttachment(placement) {
+ return AttachmentMap[placement.toUpperCase()];
+ };
- _proto._setListeners = function _setListeners() {
- var _this3 = this;
+ _proto._setListeners = function _setListeners() {
+ var _this3 = this;
+
+ var triggers = this.config.trigger.split(' ');
+ triggers.forEach(function (trigger) {
+ if (trigger === 'click') {
+ $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
+ return _this3.toggle(event);
+ });
+ } else if (trigger !== Trigger.MANUAL) {
+ var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
+ var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
+ $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
+ return _this3._enter(event);
+ }).on(eventOut, _this3.config.selector, function (event) {
+ return _this3._leave(event);
+ });
+ }
- var triggers = this.config.trigger.split(' ');
- triggers.forEach(function (trigger) {
- if (trigger === 'click') {
- $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
- return _this3.toggle(event);
+ $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
+ return _this3.hide();
});
- } else if (trigger !== Trigger.MANUAL) {
- var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
- var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
- $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
- return _this3._enter(event);
- }).on(eventOut, _this3.config.selector, function (event) {
- return _this3._leave(event);
+ });
+
+ if (this.config.selector) {
+ this.config = _objectSpread({}, this.config, {
+ trigger: 'manual',
+ selector: ''
});
+ } else {
+ this._fixTitle();
}
+ };
- $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
- return _this3.hide();
- });
- });
+ _proto._fixTitle = function _fixTitle() {
+ var titleType = typeof this.element.getAttribute('data-original-title');
- if (this.config.selector) {
- this.config = _extends({}, this.config, {
- trigger: 'manual',
- selector: ''
- });
- } else {
- this._fixTitle();
- }
- };
-
- _proto._fixTitle = function _fixTitle() {
- var titleType = typeof this.element.getAttribute('data-original-title');
+ if (this.element.getAttribute('title') || titleType !== 'string') {
+ this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
+ this.element.setAttribute('title', '');
+ }
+ };
- if (this.element.getAttribute('title') || titleType !== 'string') {
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
- this.element.setAttribute('title', '');
- }
- };
+ _proto._enter = function _enter(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || $$$1(event.currentTarget).data(dataKey);
- _proto._enter = function _enter(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $$$1(event.currentTarget).data(dataKey);
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $$$1(event.currentTarget).data(dataKey, context);
+ }
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
- }
+ if (event) {
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
+ }
- if (event) {
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
- }
+ if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+ context._hoverState = HoverState.SHOW;
+ return;
+ }
- if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+ clearTimeout(context._timeout);
context._hoverState = HoverState.SHOW;
- return;
- }
-
- clearTimeout(context._timeout);
- context._hoverState = HoverState.SHOW;
-
- if (!context.config.delay || !context.config.delay.show) {
- context.show();
- return;
- }
- context._timeout = setTimeout(function () {
- if (context._hoverState === HoverState.SHOW) {
+ if (!context.config.delay || !context.config.delay.show) {
context.show();
+ return;
}
- }, context.config.delay.show);
- };
- _proto._leave = function _leave(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $$$1(event.currentTarget).data(dataKey);
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.SHOW) {
+ context.show();
+ }
+ }, context.config.delay.show);
+ };
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
- }
+ _proto._leave = function _leave(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || $$$1(event.currentTarget).data(dataKey);
- if (event) {
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
- }
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $$$1(event.currentTarget).data(dataKey, context);
+ }
- if (context._isWithActiveTrigger()) {
- return;
- }
+ if (event) {
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
+ }
- clearTimeout(context._timeout);
- context._hoverState = HoverState.OUT;
+ if (context._isWithActiveTrigger()) {
+ return;
+ }
- if (!context.config.delay || !context.config.delay.hide) {
- context.hide();
- return;
- }
+ clearTimeout(context._timeout);
+ context._hoverState = HoverState.OUT;
- context._timeout = setTimeout(function () {
- if (context._hoverState === HoverState.OUT) {
+ if (!context.config.delay || !context.config.delay.hide) {
context.hide();
+ return;
}
- }, context.config.delay.hide);
- };
- _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
- for (var trigger in this._activeTrigger) {
- if (this._activeTrigger[trigger]) {
- return true;
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.OUT) {
+ context.hide();
+ }
+ }, context.config.delay.hide);
+ };
+
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
+ for (var trigger in this._activeTrigger) {
+ if (this._activeTrigger[trigger]) {
+ return true;
+ }
}
- }
- return false;
- };
+ return false;
+ };
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), config);
- if (typeof config.delay === 'number') {
- config.delay = {
- show: config.delay,
- hide: config.delay
- };
- }
+ if (typeof config.delay === 'number') {
+ config.delay = {
+ show: config.delay,
+ hide: config.delay
+ };
+ }
- if (typeof config.title === 'number') {
- config.title = config.title.toString();
- }
+ if (typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
- if (typeof config.content === 'number') {
- config.content = config.content.toString();
- }
+ if (typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
- return config;
- };
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
- _proto._getDelegateConfig = function _getDelegateConfig() {
- var config = {};
+ _proto._getDelegateConfig = function _getDelegateConfig() {
+ var config = {};
- if (this.config) {
- for (var key in this.config) {
- if (this.constructor.Default[key] !== this.config[key]) {
- config[key] = this.config[key];
+ if (this.config) {
+ for (var key in this.config) {
+ if (this.constructor.Default[key] !== this.config[key]) {
+ config[key] = this.config[key];
+ }
}
}
- }
- return config;
- };
+ return config;
+ };
- _proto._cleanTipClass = function _cleanTipClass() {
- var $tip = $$$1(this.getTipElement());
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var $tip = $$$1(this.getTipElement());
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
- if (tabClass !== null && tabClass.length > 0) {
- $tip.removeClass(tabClass.join(''));
- }
- };
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
+ }
+ };
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
- this._cleanTipClass();
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
+ this._cleanTipClass();
- this.addAttachmentClass(this._getAttachment(data.placement));
- };
+ this.addAttachmentClass(this._getAttachment(data.placement));
+ };
- _proto._fixTransition = function _fixTransition() {
- var tip = this.getTipElement();
- var initConfigAnimation = this.config.animation;
+ _proto._fixTransition = function _fixTransition() {
+ var tip = this.getTipElement();
+ var initConfigAnimation = this.config.animation;
- if (tip.getAttribute('x-placement') !== null) {
- return;
- }
+ if (tip.getAttribute('x-placement') !== null) {
+ return;
+ }
- $$$1(tip).removeClass(ClassName.FADE);
- this.config.animation = false;
- this.hide();
- this.show();
- this.config.animation = initConfigAnimation;
- }; // Static
+ $$$1(tip).removeClass(ClassName.FADE);
+ this.config.animation = false;
+ this.hide();
+ this.show();
+ this.config.animation = initConfigAnimation;
+ }; // Static
- Tooltip._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ Tooltip._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- var _config = typeof config === 'object' && config;
+ var _config = typeof config === 'object' && config;
- if (!data && /dispose|hide/.test(config)) {
- return;
- }
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
- if (!data) {
- data = new Tooltip(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (!data) {
+ data = new Tooltip(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
}
+ });
+ };
- data[config]();
+ _createClass(Tooltip, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
-
- _createClass(Tooltip, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "NAME",
- get: function get() {
- return NAME;
- }
- }, {
- key: "DATA_KEY",
- get: function get() {
- return DATA_KEY;
- }
- }, {
- key: "Event",
- get: function get() {
- return Event;
- }
- }, {
- key: "EVENT_KEY",
- get: function get() {
- return EVENT_KEY;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
- return Tooltip;
- }();
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+ return Tooltip;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME] = Tooltip._jQueryInterface;
- $$$1.fn[NAME].Constructor = Tooltip;
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Tooltip._jQueryInterface;
- };
+ $$$1.fn[NAME] = Tooltip._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Tooltip;
- return Tooltip;
-}($, Popper);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tooltip._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): popover.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Tooltip;
+ }($, Popper);
-var Popover = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): popover.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'popover';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.popover';
- var EVENT_KEY = "." + DATA_KEY;
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var CLASS_PREFIX = 'bs-popover';
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var Default = _extends({}, Tooltip.Default, {
- placement: 'right',
- trigger: 'click',
- content: '',
- template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
- });
- var DefaultType = _extends({}, Tooltip.DefaultType, {
- content: '(string|element|function)'
- });
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TITLE: '.popover-header',
- CONTENT: '.popover-body'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- INSERTED: "inserted" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- FOCUSOUT: "focusout" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY
+
+ var Popover = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'popover';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.popover';
+ var EVENT_KEY = "." + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var CLASS_PREFIX = 'bs-popover';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+
+ var Default = _objectSpread({}, Tooltip.Default, {
+ placement: 'right',
+ trigger: 'click',
+ content: '',
+ template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
+ });
- };
-
- var Popover =
- /*#__PURE__*/
- function (_Tooltip) {
- _inheritsLoose(Popover, _Tooltip);
-
- function Popover() {
- return _Tooltip.apply(this, arguments) || this;
- }
-
- var _proto = Popover.prototype;
+ var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
+ content: '(string|element|function)'
+ });
- // Overrides
- _proto.isWithContent = function isWithContent() {
- return this.getTitle() || this._getContent();
+ var ClassName = {
+ FADE: 'fade',
+ SHOW: 'show'
};
-
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ var Selector = {
+ TITLE: '.popover-header',
+ CONTENT: '.popover-body'
};
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- _proto.getTipElement = function getTipElement() {
- this.tip = this.tip || $$$1(this.config.template)[0];
- return this.tip;
};
- _proto.setContent = function setContent() {
- var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
+ var Popover =
+ /*#__PURE__*/
+ function (_Tooltip) {
+ _inheritsLoose(Popover, _Tooltip);
+
+ function Popover() {
+ return _Tooltip.apply(this, arguments) || this;
+ }
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
+ var _proto = Popover.prototype;
- var content = this._getContent();
+ // Overrides
+ _proto.isWithContent = function isWithContent() {
+ return this.getTitle() || this._getContent();
+ };
- if (typeof content === 'function') {
- content = content.call(this.element);
- }
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+ $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ };
- this.setElementContent($tip.find(Selector.CONTENT), content);
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
- }; // Private
+ _proto.getTipElement = function getTipElement() {
+ this.tip = this.tip || $$$1(this.config.template)[0];
+ return this.tip;
+ };
+ _proto.setContent = function setContent() {
+ var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
- _proto._getContent = function _getContent() {
- return this.element.getAttribute('data-content') || this.config.content;
- };
+ this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
- _proto._cleanTipClass = function _cleanTipClass() {
- var $tip = $$$1(this.getTipElement());
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+ var content = this._getContent();
- if (tabClass !== null && tabClass.length > 0) {
- $tip.removeClass(tabClass.join(''));
- }
- }; // Static
+ if (typeof content === 'function') {
+ content = content.call(this.element);
+ }
+ this.setElementContent($tip.find(Selector.CONTENT), content);
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+ }; // Private
- Popover._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
- var _config = typeof config === 'object' ? config : null;
+ _proto._getContent = function _getContent() {
+ return this.element.getAttribute('data-content') || this.config.content;
+ };
- if (!data && /destroy|hide/.test(config)) {
- return;
- }
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var $tip = $$$1(this.getTipElement());
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
- if (!data) {
- data = new Popover(this, _config);
- $$$1(this).data(DATA_KEY, data);
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
}
+ }; // Static
+
+
+ Popover._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data && /destroy|hide/.test(config)) {
+ return;
}
- data[config]();
- }
- });
- };
+ if (!data) {
+ data = new Popover(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- _createClass(Popover, null, [{
- key: "VERSION",
- // Getters
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "NAME",
- get: function get() {
- return NAME;
- }
- }, {
- key: "DATA_KEY",
- get: function get() {
- return DATA_KEY;
- }
- }, {
- key: "Event",
- get: function get() {
- return Event;
- }
- }, {
- key: "EVENT_KEY",
- get: function get() {
- return EVENT_KEY;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
- return Popover;
- }(Tooltip);
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+ _createClass(Popover, null, [{
+ key: "VERSION",
+ // Getters
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Popover;
+ }(Tooltip);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME] = Popover._jQueryInterface;
- $$$1.fn[NAME].Constructor = Popover;
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Popover._jQueryInterface;
- };
+ $$$1.fn[NAME] = Popover._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Popover;
- return Popover;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Popover._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): scrollspy.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Popover;
+ }($);
-var ScrollSpy = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): scrollspy.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'scrollspy';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.scrollspy';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var Default = {
- offset: 10,
- method: 'auto',
- target: ''
- };
- var DefaultType = {
- offset: 'number',
- method: 'string',
- target: '(string|element)'
- };
- var Event = {
- ACTIVATE: "activate" + EVENT_KEY,
- SCROLL: "scroll" + EVENT_KEY,
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DROPDOWN_ITEM: 'dropdown-item',
- DROPDOWN_MENU: 'dropdown-menu',
- ACTIVE: 'active'
- };
- var Selector = {
- DATA_SPY: '[data-spy="scroll"]',
- ACTIVE: '.active',
- NAV_LIST_GROUP: '.nav, .list-group',
- NAV_LINKS: '.nav-link',
- NAV_ITEMS: '.nav-item',
- LIST_ITEMS: '.list-group-item',
- DROPDOWN: '.dropdown',
- DROPDOWN_ITEMS: '.dropdown-item',
- DROPDOWN_TOGGLE: '.dropdown-toggle'
- };
- var OffsetMethod = {
- OFFSET: 'offset',
- POSITION: 'position'
+
+ var ScrollSpy = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'scrollspy';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.scrollspy';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var Default = {
+ offset: 10,
+ method: 'auto',
+ target: ''
+ };
+ var DefaultType = {
+ offset: 'number',
+ method: 'string',
+ target: '(string|element)'
+ };
+ var Event = {
+ ACTIVATE: "activate" + EVENT_KEY,
+ SCROLL: "scroll" + EVENT_KEY,
+ LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DROPDOWN_ITEM: 'dropdown-item',
+ DROPDOWN_MENU: 'dropdown-menu',
+ ACTIVE: 'active'
+ };
+ var Selector = {
+ DATA_SPY: '[data-spy="scroll"]',
+ ACTIVE: '.active',
+ NAV_LIST_GROUP: '.nav, .list-group',
+ NAV_LINKS: '.nav-link',
+ NAV_ITEMS: '.nav-item',
+ LIST_ITEMS: '.list-group-item',
+ DROPDOWN: '.dropdown',
+ DROPDOWN_ITEMS: '.dropdown-item',
+ DROPDOWN_TOGGLE: '.dropdown-toggle'
+ };
+ var OffsetMethod = {
+ OFFSET: 'offset',
+ POSITION: 'position'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
-
- var ScrollSpy =
- /*#__PURE__*/
- function () {
- function ScrollSpy(element, config) {
- var _this = this;
+ };
- this._element = element;
- this._scrollElement = element.tagName === 'BODY' ? window : element;
- this._config = this._getConfig(config);
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
- this._offsets = [];
- this._targets = [];
- this._activeTarget = null;
- this._scrollHeight = 0;
- $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
- return _this._process(event);
- });
- this.refresh();
+ var ScrollSpy =
+ /*#__PURE__*/
+ function () {
+ function ScrollSpy(element, config) {
+ var _this = this;
+
+ this._element = element;
+ this._scrollElement = element.tagName === 'BODY' ? window : element;
+ this._config = this._getConfig(config);
+ this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
+ this._offsets = [];
+ this._targets = [];
+ this._activeTarget = null;
+ this._scrollHeight = 0;
+ $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
+ return _this._process(event);
+ });
+ this.refresh();
- this._process();
- } // Getters
+ this._process();
+ } // Getters
- var _proto = ScrollSpy.prototype;
+ var _proto = ScrollSpy.prototype;
- // Public
- _proto.refresh = function refresh() {
- var _this2 = this;
+ // Public
+ _proto.refresh = function refresh() {
+ var _this2 = this;
- var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
- this._offsets = [];
- this._targets = [];
- this._scrollHeight = this._getScrollHeight();
- var targets = $$$1.makeArray($$$1(this._selector));
- targets.map(function (element) {
- var target;
- var targetSelector = Util.getSelectorFromElement(element);
+ var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
+ var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+ var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
+ this._offsets = [];
+ this._targets = [];
+ this._scrollHeight = this._getScrollHeight();
+ var targets = $$$1.makeArray($$$1(this._selector));
+ targets.map(function (element) {
+ var target;
+ var targetSelector = Util.getSelectorFromElement(element);
- if (targetSelector) {
- target = $$$1(targetSelector)[0];
- }
+ if (targetSelector) {
+ target = $$$1(targetSelector)[0];
+ }
- if (target) {
- var targetBCR = target.getBoundingClientRect();
+ if (target) {
+ var targetBCR = target.getBoundingClientRect();
- if (targetBCR.width || targetBCR.height) {
- // TODO (fat): remove sketch reliance on jQuery position/offset
- return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
+ if (targetBCR.width || targetBCR.height) {
+ // TODO (fat): remove sketch reliance on jQuery position/offset
+ return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
+ }
}
- }
- return null;
- }).filter(function (item) {
- return item;
- }).sort(function (a, b) {
- return a[0] - b[0];
- }).forEach(function (item) {
- _this2._offsets.push(item[0]);
+ return null;
+ }).filter(function (item) {
+ return item;
+ }).sort(function (a, b) {
+ return a[0] - b[0];
+ }).forEach(function (item) {
+ _this2._offsets.push(item[0]);
- _this2._targets.push(item[1]);
- });
- };
+ _this2._targets.push(item[1]);
+ });
+ };
+
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ $$$1(this._scrollElement).off(EVENT_KEY);
+ this._element = null;
+ this._scrollElement = null;
+ this._config = null;
+ this._selector = null;
+ this._offsets = null;
+ this._targets = null;
+ this._activeTarget = null;
+ this._scrollHeight = null;
+ }; // Private
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(this._scrollElement).off(EVENT_KEY);
- this._element = null;
- this._scrollElement = null;
- this._config = null;
- this._selector = null;
- this._offsets = null;
- this._targets = null;
- this._activeTarget = null;
- this._scrollHeight = null;
- }; // Private
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, Default, config);
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default, config);
+ if (typeof config.target !== 'string') {
+ var id = $$$1(config.target).attr('id');
- if (typeof config.target !== 'string') {
- var id = $$$1(config.target).attr('id');
+ if (!id) {
+ id = Util.getUID(NAME);
+ $$$1(config.target).attr('id', id);
+ }
- if (!id) {
- id = Util.getUID(NAME);
- $$$1(config.target).attr('id', id);
+ config.target = "#" + id;
}
- config.target = "#" + id;
- }
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
+ _proto._getScrollTop = function _getScrollTop() {
+ return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
+ };
- _proto._getScrollTop = function _getScrollTop() {
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
- };
+ _proto._getScrollHeight = function _getScrollHeight() {
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+ };
- _proto._getScrollHeight = function _getScrollHeight() {
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
- };
+ _proto._getOffsetHeight = function _getOffsetHeight() {
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
+ };
- _proto._getOffsetHeight = function _getOffsetHeight() {
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
- };
+ _proto._process = function _process() {
+ var scrollTop = this._getScrollTop() + this._config.offset;
- _proto._process = function _process() {
- var scrollTop = this._getScrollTop() + this._config.offset;
+ var scrollHeight = this._getScrollHeight();
- var scrollHeight = this._getScrollHeight();
+ var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
+ if (this._scrollHeight !== scrollHeight) {
+ this.refresh();
+ }
- if (this._scrollHeight !== scrollHeight) {
- this.refresh();
- }
+ if (scrollTop >= maxScroll) {
+ var target = this._targets[this._targets.length - 1];
- if (scrollTop >= maxScroll) {
- var target = this._targets[this._targets.length - 1];
+ if (this._activeTarget !== target) {
+ this._activate(target);
+ }
- if (this._activeTarget !== target) {
- this._activate(target);
+ return;
}
- return;
- }
+ if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
+ this._activeTarget = null;
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
- this._activeTarget = null;
-
- this._clear();
+ this._clear();
- return;
- }
+ return;
+ }
- for (var i = this._offsets.length; i--;) {
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
+ for (var i = this._offsets.length; i--;) {
+ var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
- if (isActiveTarget) {
- this._activate(this._targets[i]);
+ if (isActiveTarget) {
+ this._activate(this._targets[i]);
+ }
}
- }
- };
+ };
- _proto._activate = function _activate(target) {
- this._activeTarget = target;
+ _proto._activate = function _activate(target) {
+ this._activeTarget = target;
- this._clear();
+ this._clear();
- var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
+ var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
- queries = queries.map(function (selector) {
- return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
- });
- var $link = $$$1(queries.join(','));
+ queries = queries.map(function (selector) {
+ return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
+ });
+ var $link = $$$1(queries.join(','));
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
- $link.addClass(ClassName.ACTIVE);
- } else {
- // Set triggered link as active
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
- // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+ if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
+ $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ $link.addClass(ClassName.ACTIVE);
+ } else {
+ // Set triggered link as active
+ $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
+ $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
- }
+ $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
+ }
- $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
- relatedTarget: target
- });
- };
+ $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
+ relatedTarget: target
+ });
+ };
- _proto._clear = function _clear() {
- $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
- }; // Static
+ _proto._clear = function _clear() {
+ $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+ }; // Static
- ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- var _config = typeof config === 'object' && config;
+ var _config = typeof config === 'object' && config;
- if (!data) {
- data = new ScrollSpy(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (!data) {
+ data = new ScrollSpy(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
}
+ });
+ };
- data[config]();
+ _createClass(ScrollSpy, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
-
- _createClass(ScrollSpy, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
- return ScrollSpy;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
+ return ScrollSpy;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(window).on(Event.LOAD_DATA_API, function () {
- var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
- for (var i = scrollSpys.length; i--;) {
- var $spy = $$$1(scrollSpys[i]);
+ $$$1(window).on(Event.LOAD_DATA_API, function () {
+ var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
- ScrollSpy._jQueryInterface.call($spy, $spy.data());
- }
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ for (var i = scrollSpys.length; i--;) {
+ var $spy = $$$1(scrollSpys[i]);
- $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
- $$$1.fn[NAME].Constructor = ScrollSpy;
+ ScrollSpy._jQueryInterface.call($spy, $spy.data());
+ }
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return ScrollSpy._jQueryInterface;
- };
+ $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
+ $$$1.fn[NAME].Constructor = ScrollSpy;
- return ScrollSpy;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return ScrollSpy._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): tab.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return ScrollSpy;
+ }($);
-var Tab = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): tab.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'tab';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.tab';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 150;
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DROPDOWN_MENU: 'dropdown-menu',
- ACTIVE: 'active',
- DISABLED: 'disabled',
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- DROPDOWN: '.dropdown',
- NAV_LIST_GROUP: '.nav, .list-group',
- ACTIVE: '.active',
- ACTIVE_UL: '> li > .active',
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
- DROPDOWN_TOGGLE: '.dropdown-toggle',
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+
+ var Tab = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'tab';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.tab';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DROPDOWN_MENU: 'dropdown-menu',
+ ACTIVE: 'active',
+ DISABLED: 'disabled',
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ DROPDOWN: '.dropdown',
+ NAV_LIST_GROUP: '.nav, .list-group',
+ ACTIVE: '.active',
+ ACTIVE_UL: '> li > .active',
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
+ DROPDOWN_TOGGLE: '.dropdown-toggle',
+ DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Tab =
- /*#__PURE__*/
- function () {
- function Tab(element) {
- this._element = element;
- } // Getters
+ var Tab =
+ /*#__PURE__*/
+ function () {
+ function Tab(element) {
+ this._element = element;
+ } // Getters
- var _proto = Tab.prototype;
+ var _proto = Tab.prototype;
- // Public
- _proto.show = function show() {
- var _this = this;
+ // Public
+ _proto.show = function show() {
+ var _this = this;
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
- return;
- }
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
+ return;
+ }
- var target;
- var previous;
- var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
- var selector = Util.getSelectorFromElement(this._element);
-
- if (listElement) {
- var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
- previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
- previous = previous[previous.length - 1];
- }
+ var target;
+ var previous;
+ var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
+ var selector = Util.getSelectorFromElement(this._element);
+
+ if (listElement) {
+ var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
+ previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
+ previous = previous[previous.length - 1];
+ }
- var hideEvent = $$$1.Event(Event.HIDE, {
- relatedTarget: this._element
- });
- var showEvent = $$$1.Event(Event.SHOW, {
- relatedTarget: previous
- });
+ var hideEvent = $$$1.Event(Event.HIDE, {
+ relatedTarget: this._element
+ });
+ var showEvent = $$$1.Event(Event.SHOW, {
+ relatedTarget: previous
+ });
- if (previous) {
- $$$1(previous).trigger(hideEvent);
- }
+ if (previous) {
+ $$$1(previous).trigger(hideEvent);
+ }
- $$$1(this._element).trigger(showEvent);
+ $$$1(this._element).trigger(showEvent);
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
- return;
- }
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
+ return;
+ }
- if (selector) {
- target = $$$1(selector)[0];
- }
+ if (selector) {
+ target = $$$1(selector)[0];
+ }
- this._activate(this._element, listElement);
+ this._activate(this._element, listElement);
- var complete = function complete() {
- var hiddenEvent = $$$1.Event(Event.HIDDEN, {
- relatedTarget: _this._element
- });
- var shownEvent = $$$1.Event(Event.SHOWN, {
- relatedTarget: previous
- });
- $$$1(previous).trigger(hiddenEvent);
- $$$1(_this._element).trigger(shownEvent);
+ var complete = function complete() {
+ var hiddenEvent = $$$1.Event(Event.HIDDEN, {
+ relatedTarget: _this._element
+ });
+ var shownEvent = $$$1.Event(Event.SHOWN, {
+ relatedTarget: previous
+ });
+ $$$1(previous).trigger(hiddenEvent);
+ $$$1(_this._element).trigger(shownEvent);
+ };
+
+ if (target) {
+ this._activate(target, target.parentNode, complete);
+ } else {
+ complete();
+ }
};
- if (target) {
- this._activate(target, target.parentNode, complete);
- } else {
- complete();
- }
- };
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // Private
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._element = null;
- }; // Private
+ _proto._activate = function _activate(element, container, callback) {
+ var _this2 = this;
- _proto._activate = function _activate(element, container, callback) {
- var _this2 = this;
+ var activeElements;
- var activeElements;
+ if (container.nodeName === 'UL') {
+ activeElements = $$$1(container).find(Selector.ACTIVE_UL);
+ } else {
+ activeElements = $$$1(container).children(Selector.ACTIVE);
+ }
- if (container.nodeName === 'UL') {
- activeElements = $$$1(container).find(Selector.ACTIVE_UL);
- } else {
- activeElements = $$$1(container).children(Selector.ACTIVE);
- }
+ var active = activeElements[0];
+ var isTransitioning = callback && active && $$$1(active).hasClass(ClassName.FADE);
- var active = activeElements[0];
- var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);
+ var complete = function complete() {
+ return _this2._transitionComplete(element, active, callback);
+ };
- var complete = function complete() {
- return _this2._transitionComplete(element, active, callback);
+ if (active && isTransitioning) {
+ var transitionDuration = Util.getTransitionDurationFromElement(active);
+ $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ } else {
+ complete();
+ }
};
- if (active && isTransitioning) {
- $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- complete();
- }
- };
+ _proto._transitionComplete = function _transitionComplete(element, active, callback) {
+ if (active) {
+ $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
+ var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
- _proto._transitionComplete = function _transitionComplete(element, active, callback) {
- if (active) {
- $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
- var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
+ if (dropdownChild) {
+ $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
+ }
- if (dropdownChild) {
- $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
+ if (active.getAttribute('role') === 'tab') {
+ active.setAttribute('aria-selected', false);
+ }
}
- if (active.getAttribute('role') === 'tab') {
- active.setAttribute('aria-selected', false);
- }
- }
+ $$$1(element).addClass(ClassName.ACTIVE);
- $$$1(element).addClass(ClassName.ACTIVE);
+ if (element.getAttribute('role') === 'tab') {
+ element.setAttribute('aria-selected', true);
+ }
- if (element.getAttribute('role') === 'tab') {
- element.setAttribute('aria-selected', true);
- }
+ Util.reflow(element);
+ $$$1(element).addClass(ClassName.SHOW);
- Util.reflow(element);
- $$$1(element).addClass(ClassName.SHOW);
+ if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
+ var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
- if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
- var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
+ if (dropdownElement) {
+ $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ }
- if (dropdownElement) {
- $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ element.setAttribute('aria-expanded', true);
}
- element.setAttribute('aria-expanded', true);
- }
+ if (callback) {
+ callback();
+ }
+ }; // Static
- if (callback) {
- callback();
- }
- }; // Static
+ Tab._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $this = $$$1(this);
+ var data = $this.data(DATA_KEY);
- Tab._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $this = $$$1(this);
- var data = $this.data(DATA_KEY);
+ if (!data) {
+ data = new Tab(this);
+ $this.data(DATA_KEY, data);
+ }
- if (!data) {
- data = new Tab(this);
- $this.data(DATA_KEY, data);
- }
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ data[config]();
}
+ });
+ };
- data[config]();
+ _createClass(Tab, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
+ }]);
- _createClass(Tab, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }]);
- return Tab;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ return Tab;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- event.preventDefault();
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ event.preventDefault();
- Tab._jQueryInterface.call($$$1(this), 'show');
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ Tab._jQueryInterface.call($$$1(this), 'show');
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME] = Tab._jQueryInterface;
- $$$1.fn[NAME].Constructor = Tab;
+ $$$1.fn[NAME] = Tab._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Tab;
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Tab._jQueryInterface;
- };
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tab._jQueryInterface;
+ };
- return Tab;
-}($);
+ return Tab;
+ }($);
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): index.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0): index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
-(function ($$$1) {
- if (typeof $$$1 === 'undefined') {
- throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
- }
+ (function ($$$1) {
+ if (typeof $$$1 === 'undefined') {
+ throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
+ }
- var version = $$$1.fn.jquery.split(' ')[0].split('.');
- var minMajor = 1;
- var ltMajor = 2;
- var minMinor = 9;
- var minPatch = 1;
- var maxMajor = 4;
+ var version = $$$1.fn.jquery.split(' ')[0].split('.');
+ var minMajor = 1;
+ var ltMajor = 2;
+ var minMinor = 9;
+ var minPatch = 1;
+ var maxMajor = 4;
- if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
- }
-})($);
-
-exports.Util = Util;
-exports.Alert = Alert;
-exports.Button = Button;
-exports.Carousel = Carousel;
-exports.Collapse = Collapse;
-exports.Dropdown = Dropdown;
-exports.Modal = Modal;
-exports.Popover = Popover;
-exports.Scrollspy = ScrollSpy;
-exports.Tab = Tab;
-exports.Tooltip = Tooltip;
-
-Object.defineProperty(exports, '__esModule', { value: true });
+ if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
+ }
+ })($);
+
+ exports.Util = Util;
+ exports.Alert = Alert;
+ exports.Button = Button;
+ exports.Carousel = Carousel;
+ exports.Collapse = Collapse;
+ exports.Dropdown = Dropdown;
+ exports.Modal = Modal;
+ exports.Popover = Popover;
+ exports.Scrollspy = ScrollSpy;
+ exports.Tab = Tab;
+ exports.Tooltip = Tooltip;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=bootstrap.bundle.js.map
diff --git a/library/bootstrap/js/bootstrap.bundle.js.map b/library/bootstrap/js/bootstrap.bundle.js.map
index b185c0460..ca9fca36d 100644
--- a/library/bootstrap/js/bootstrap.bundle.js.map
+++ b/library/bootstrap/js/bootstrap.bundle.js.map
@@ -1 +1 @@
-{"version":3,"file":"bootstrap.bundle.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndTest() {\n if (typeof window !== 'undefined' && window.QUnit) {\n return false\n }\n\n return {\n end: 'transitionend'\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n function escapeId(selector) {\n // We escape IDs in case of special selectors (selector = '#myId:something')\n // $.escapeSelector does not exist in jQuery < 3\n selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1)\n : selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n return selector\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n // If it's an ID\n if (selector.charAt(0) === '#') {\n selector = escapeId(selector)\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!Util.supportsTransitionEnd() ||\n !$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.9\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element && element.offsetParent;\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n if (element) {\n return element.ownerDocument.documentElement;\n }\n\n return document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n if (isIE10 === undefined) {\n isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n }\n return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE10$1() && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n if (isIE10$1()) {\n try {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } catch (err) {}\n } else {\n rect = element.getBoundingClientRect();\n }\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var isIE10 = isIE10$1();\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = getScroll(html);\n var scrollLeft = getScroll(html, 'left');\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = { top: 0, left: 0 };\n var offsetParent = findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var commonOffsetParent = findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length - 1; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.left = '';\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // floor sides to avoid blurry text\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.floor(popper.top),\n bottom: Math.floor(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n let element = this._element\n // For dropup with alignment we use the parent as popper container\n if ($(parent).hasClass(ClassName.DROPUP)) {\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent\n }\n }\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(element, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $('body').css('padding-right')\n $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('body').css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (Util.supportsTransitionEnd() &&\n $(this.tip).hasClass(ClassName.FADE)) {\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...config\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n Util.supportsTransitionEnd() &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"names":["Util","$","transition","MAX_UID","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","end","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","escapeId","selector","escapeSelector","substr","replace","prefix","Math","random","document","getElementById","element","getAttribute","charAt","$selector","find","length","err","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","isElement","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","RIGHT","slidEvent","reflow","action","slide","TypeError","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","not","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","style","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","_extends","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","DROPUP","MENULEFT","MENURIGHT","boundary","POSITION_STATIC","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","placement","BOTTOM","TOP","TOPEND","DROPRIGHT","DROPLEFT","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","backdrop","doAnimate","createElement","className","BACKDROP","appendTo","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","OFFSET","POSITION","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"bootstrap.bundle.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Tells if you are running Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @argument {number} version to check\n * @returns {Boolean} isIE\n */\nvar cache = {};\n\nvar isIE = function () {\n var version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';\n\n version = version.toString();\n if (cache.hasOwnProperty(version)) {\n return cache[version];\n }\n switch (version) {\n case '11':\n cache[version] = navigator.userAgent.indexOf('Trident') !== -1;\n break;\n case '10':\n cache[version] = navigator.appVersion.indexOf('MSIE 10') !== -1;\n break;\n case 'all':\n cache[version] = navigator.userAgent.indexOf('Trident') !== -1 || navigator.userAgent.indexOf('MSIE') !== -1;\n break;\n }\n\n //Set IE\n cache.all = cache.all || Object.keys(cache).some(function (key) {\n return cache[key];\n });\n return cache[version];\n};\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // floor sides to avoid blurry text\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.floor(popper.top),\n bottom: Math.floor(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(document.body).css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...config\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"names":["Util","$","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","$selector","find","length","err","getTransitionDurationFromElement","transitionDuration","css","floatTransitionDuration","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CAROUSEL","ITEM","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","Collapse","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","slice","scrollSize","getBoundingClientRect","$elem","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","get","e","Modal","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","animation","template","title","delay","html","container","fallbackPlacement","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","ARROW","Trigger","HOVER","MANUAL","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","triggers","forEach","eventIn","eventOut","_fixTitle","titleType","key","tabClass","join","initConfigAnimation","Popover","TITLE","CONTENT","_getContent","ScrollSpy","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","scrollSpys","$spy","Tab","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","previous","listElement","itemSelector","nodeName","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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CA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EA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"} \ No newline at end of file
diff --git a/library/bootstrap/js/bootstrap.bundle.min.js b/library/bootstrap/js/bootstrap.bundle.min.js
index 7d50e873a..e0608e8b3 100644
--- a/library/bootstrap/js/bootstrap.bundle.min.js
+++ b/library/bootstrap/js/bootstrap.bundle.min.js
@@ -1,7 +1,7 @@
/*!
- * Bootstrap v4.0.0 (https://getbootstrap.com)
+ * Bootstrap v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e(t.bootstrap={},t.jQuery)}(this,function(t,e){"use strict";function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function i(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}function r(){return(r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}for(var o,s,a,l,c,h,f,u,d,p,g,m,_,v,E,y,b,T,C,w,I,A,D,S,O,N,k=function(t){var e=!1;function n(e){var n=this,r=!1;return t(this).one(i.TRANSITION_END,function(){r=!0}),setTimeout(function(){r||i.triggerTransitionEnd(n)},e),this}var i={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(e){var n,i=e.getAttribute("data-target");i&&"#"!==i||(i=e.getAttribute("href")||""),"#"===i.charAt(0)&&(n=i,i=n="function"==typeof t.escapeSelector?t.escapeSelector(n).substr(1):n.replace(/(:|\.|\[|\]|,|=|@)/g,"\\$1"));try{return t(document).find(i).length>0?i:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(n){t(n).trigger(e.end)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)){var o=n[r],s=e[r],a=s&&i.isElement(s)?"element":(l=s,{}.toString.call(l).match(/\s([a-zA-Z]+)/)[1].toLowerCase());if(!new RegExp(o).test(a))throw new Error(t.toUpperCase()+': Option "'+r+'" provided type "'+a+'" but expected type "'+o+'".')}var l}};return e=("undefined"==typeof window||!window.QUnit)&&{end:"transitionend"},t.fn.emulateTransitionEnd=n,i.supportsTransitionEnd()&&(t.event.special[i.TRANSITION_END]={bindType:e.end,delegateType:e.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}),i}(e=e&&e.hasOwnProperty("default")?e.default:e),L=(s="alert",l="."+(a="bs.alert"),c=(o=e).fn[s],h={CLOSE:"close"+l,CLOSED:"closed"+l,CLICK_DATA_API:"click"+l+".data-api"},f="alert",u="fade",d="show",p=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.removeData(this._element,a),this._element=null},e._getRootElement=function(t){var e=k.getSelectorFromElement(t),n=!1;return e&&(n=o(e)[0]),n||(n=o(t).closest("."+f)[0]),n},e._triggerCloseEvent=function(t){var e=o.Event(h.CLOSE);return o(t).trigger(e),e},e._removeElement=function(t){var e=this;o(t).removeClass(d),k.supportsTransitionEnd()&&o(t).hasClass(u)?o(t).one(k.TRANSITION_END,function(n){return e._destroyElement(t,n)}).emulateTransitionEnd(150):this._destroyElement(t)},e._destroyElement=function(t){o(t).detach().trigger(h.CLOSED).remove()},t._jQueryInterface=function(e){return this.each(function(){var n=o(this),i=n.data(a);i||(i=new t(this),n.data(a,i)),"close"===e&&i[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},i(t,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),t}(),o(document).on(h.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),o.fn[s]=p._jQueryInterface,o.fn[s].Constructor=p,o.fn[s].noConflict=function(){return o.fn[s]=c,p._jQueryInterface},p),P=(m="button",v="."+(_="bs.button"),E=".data-api",y=(g=e).fn[m],b="active",T="btn",C="focus",w='[data-toggle^="button"]',I='[data-toggle="buttons"]',A="input",D=".active",S=".btn",O={CLICK_DATA_API:"click"+v+E,FOCUS_BLUR_DATA_API:"focus"+v+E+" blur"+v+E},N=function(){function t(t){this._element=t}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=g(this._element).closest(I)[0];if(n){var i=g(this._element).find(A)[0];if(i){if("radio"===i.type)if(i.checked&&g(this._element).hasClass(b))t=!1;else{var r=g(n).find(D)[0];r&&g(r).removeClass(b)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!g(this._element).hasClass(b),g(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!g(this._element).hasClass(b)),t&&g(this._element).toggleClass(b)},e.dispose=function(){g.removeData(this._element,_),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=g(this).data(_);n||(n=new t(this),g(this).data(_,n)),"toggle"===e&&n[e]()})},i(t,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),t}(),g(document).on(O.CLICK_DATA_API,w,function(t){t.preventDefault();var e=t.target;g(e).hasClass(T)||(e=g(e).closest(S)),N._jQueryInterface.call(g(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,w,function(t){var e=g(t.target).closest(S)[0];g(e).toggleClass(C,/^focus(in)?$/.test(t.type))}),g.fn[m]=N._jQueryInterface,g.fn[m].Constructor=N,g.fn[m].noConflict=function(){return g.fn[m]=y,N._jQueryInterface},N),x=function(t){var e="carousel",n="bs.carousel",o="."+n,s=t.fn[e],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},c="next",h="prev",f="left",u="right",d={SLIDE:"slide"+o,SLID:"slid"+o,KEYDOWN:"keydown"+o,MOUSEENTER:"mouseenter"+o,MOUSELEAVE:"mouseleave"+o,TOUCHEND:"touchend"+o,LOAD_DATA_API:"load"+o+".data-api",CLICK_DATA_API:"click"+o+".data-api"},p="carousel",g="active",m="slide",_="carousel-item-right",v="carousel-item-left",E="carousel-item-next",y="carousel-item-prev",b={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},T=function(){function s(e,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(b.INDICATORS)[0],this._addEventListeners()}var T=s.prototype;return T.next=function(){this._isSliding||this._slide(c)},T.nextWhenVisible=function(){!document.hidden&&t(this._element).is(":visible")&&"hidden"!==t(this._element).css("visibility")&&this.next()},T.prev=function(){this._isSliding||this._slide(h)},T.pause=function(e){e||(this._isPaused=!0),t(this._element).find(b.NEXT_PREV)[0]&&k.supportsTransitionEnd()&&(k.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},T.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},T.to=function(e){var n=this;this._activeElement=t(this._element).find(b.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)t(this._element).one(d.SLID,function(){return n.to(e)});else{if(i===e)return this.pause(),void this.cycle();var r=e>i?c:h;this._slide(r,this._items[e])}},T.dispose=function(){t(this._element).off(o),t.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},T._getConfig=function(t){return t=r({},a,t),k.typeCheckConfig(e,t,l),t},T._addEventListeners=function(){var e=this;this._config.keyboard&&t(this._element).on(d.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(t(this._element).on(d.MOUSEENTER,function(t){return e.pause(t)}).on(d.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&t(this._element).on(d.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},T._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},T._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(b.ITEM)),this._items.indexOf(e)},T._getItemByDirection=function(t,e){var n=t===c,i=t===h,r=this._getItemIndex(e),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return e;var s=(r+(t===h?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},T._triggerSlideEvent=function(e,n){var i=this._getItemIndex(e),r=this._getItemIndex(t(this._element).find(b.ACTIVE_ITEM)[0]),o=t.Event(d.SLIDE,{relatedTarget:e,direction:n,from:r,to:i});return t(this._element).trigger(o),o},T._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(b.ACTIVE).removeClass(g);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&t(n).addClass(g)}},T._slide=function(e,n){var i,r,o,s=this,a=t(this._element).find(b.ACTIVE_ITEM)[0],l=this._getItemIndex(a),h=n||a&&this._getItemByDirection(e,a),p=this._getItemIndex(h),T=Boolean(this._interval);if(e===c?(i=v,r=E,o=f):(i=_,r=y,o=u),h&&t(h).hasClass(g))this._isSliding=!1;else if(!this._triggerSlideEvent(h,o).isDefaultPrevented()&&a&&h){this._isSliding=!0,T&&this.pause(),this._setActiveIndicatorElement(h);var C=t.Event(d.SLID,{relatedTarget:h,direction:o,from:l,to:p});k.supportsTransitionEnd()&&t(this._element).hasClass(m)?(t(h).addClass(r),k.reflow(h),t(a).addClass(i),t(h).addClass(i),t(a).one(k.TRANSITION_END,function(){t(h).removeClass(i+" "+r).addClass(g),t(a).removeClass(g+" "+r+" "+i),s._isSliding=!1,setTimeout(function(){return t(s._element).trigger(C)},0)}).emulateTransitionEnd(600)):(t(a).removeClass(g),t(h).addClass(g),this._isSliding=!1,t(this._element).trigger(C)),T&&this.cycle()}},s._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),o=r({},a,t(this).data());"object"==typeof e&&(o=r({},o,e));var l="string"==typeof e?e:o.slide;if(i||(i=new s(this,o),t(this).data(n,i)),"number"==typeof e)i.to(e);else if("string"==typeof l){if("undefined"==typeof i[l])throw new TypeError('No method named "'+l+'"');i[l]()}else o.interval&&(i.pause(),i.cycle())})},s._dataApiClickHandler=function(e){var i=k.getSelectorFromElement(this);if(i){var o=t(i)[0];if(o&&t(o).hasClass(p)){var a=r({},t(o).data(),t(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),s._jQueryInterface.call(t(o),a),l&&t(o).data(n).to(l),e.preventDefault()}}},i(s,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),s}();return t(document).on(d.CLICK_DATA_API,b.DATA_SLIDE,T._dataApiClickHandler),t(window).on(d.LOAD_DATA_API,function(){t(b.DATA_RIDE).each(function(){var e=t(this);T._jQueryInterface.call(e,e.data())})}),t.fn[e]=T._jQueryInterface,t.fn[e].Constructor=T,t.fn[e].noConflict=function(){return t.fn[e]=s,T._jQueryInterface},T}(e),R=function(t){var e="collapse",n="bs.collapse",o="."+n,s=t.fn[e],a={toggle:!0,parent:""},l={toggle:"boolean",parent:"(string|element)"},c={SHOW:"show"+o,SHOWN:"shown"+o,HIDE:"hide"+o,HIDDEN:"hidden"+o,CLICK_DATA_API:"click"+o+".data-api"},h="show",f="collapse",u="collapsing",d="collapsed",p="width",g="height",m={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},_=function(){function o(e,n){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(n),this._triggerArray=t.makeArray(t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var i=t(m.DATA_TOGGLE),r=0;r<i.length;r++){var o=i[r],s=k.getSelectorFromElement(o);null!==s&&t(s).filter(e).length>0&&(this._selector=s,this._triggerArray.push(o))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var s=o.prototype;return s.toggle=function(){t(this._element).hasClass(h)?this.hide():this.show()},s.show=function(){var e,i,r=this;if(!this._isTransitioning&&!t(this._element).hasClass(h)&&(this._parent&&0===(e=t.makeArray(t(this._parent).find(m.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(e=null),!(e&&(i=t(e).not(this._selector).data(n))&&i._isTransitioning))){var s=t.Event(c.SHOW);if(t(this._element).trigger(s),!s.isDefaultPrevented()){e&&(o._jQueryInterface.call(t(e).not(this._selector),"hide"),i||t(e).data(n,null));var a=this._getDimension();t(this._element).removeClass(f).addClass(u),this._element.style[a]=0,this._triggerArray.length>0&&t(this._triggerArray).removeClass(d).attr("aria-expanded",!0),this.setTransitioning(!0);var l=function(){t(r._element).removeClass(u).addClass(f).addClass(h),r._element.style[a]="",r.setTransitioning(!1),t(r._element).trigger(c.SHOWN)};if(k.supportsTransitionEnd()){var p="scroll"+(a[0].toUpperCase()+a.slice(1));t(this._element).one(k.TRANSITION_END,l).emulateTransitionEnd(600),this._element.style[a]=this._element[p]+"px"}else l()}}},s.hide=function(){var e=this;if(!this._isTransitioning&&t(this._element).hasClass(h)){var n=t.Event(c.HIDE);if(t(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",k.reflow(this._element),t(this._element).addClass(u).removeClass(f).removeClass(h),this._triggerArray.length>0)for(var r=0;r<this._triggerArray.length;r++){var o=this._triggerArray[r],s=k.getSelectorFromElement(o);if(null!==s)t(s).hasClass(h)||t(o).addClass(d).attr("aria-expanded",!1)}this.setTransitioning(!0);var a=function(){e.setTransitioning(!1),t(e._element).removeClass(u).addClass(f).trigger(c.HIDDEN)};this._element.style[i]="",k.supportsTransitionEnd()?t(this._element).one(k.TRANSITION_END,a).emulateTransitionEnd(600):a()}}},s.setTransitioning=function(t){this._isTransitioning=t},s.dispose=function(){t.removeData(this._element,n),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},s._getConfig=function(t){return(t=r({},a,t)).toggle=Boolean(t.toggle),k.typeCheckConfig(e,t,l),t},s._getDimension=function(){return t(this._element).hasClass(p)?p:g},s._getParent=function(){var e=this,n=null;k.isElement(this._config.parent)?(n=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(n=this._config.parent[0])):n=t(this._config.parent)[0];var i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return t(n).find(i).each(function(t,n){e._addAriaAndCollapsedClass(o._getTargetFromElement(n),[n])}),n},s._addAriaAndCollapsedClass=function(e,n){if(e){var i=t(e).hasClass(h);n.length>0&&t(n).toggleClass(d,!i).attr("aria-expanded",i)}},o._getTargetFromElement=function(e){var n=k.getSelectorFromElement(e);return n?t(n)[0]:null},o._jQueryInterface=function(e){return this.each(function(){var i=t(this),s=i.data(n),l=r({},a,i.data(),"object"==typeof e&&e);if(!s&&l.toggle&&/show|hide/.test(e)&&(l.toggle=!1),s||(s=new o(this,l),i.data(n,s)),"string"==typeof e){if("undefined"==typeof s[e])throw new TypeError('No method named "'+e+'"');s[e]()}})},i(o,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),o}();return t(document).on(c.CLICK_DATA_API,m.DATA_TOGGLE,function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var i=t(this),r=k.getSelectorFromElement(this);t(r).each(function(){var e=t(this),r=e.data(n)?"toggle":i.data();_._jQueryInterface.call(e,r)})}),t.fn[e]=_._jQueryInterface,t.fn[e].Constructor=_,t.fn[e].noConflict=function(){return t.fn[e]=s,_._jQueryInterface},_}(e),j="undefined"!=typeof window&&"undefined"!=typeof document,H=["Edge","Trident","Firefox"],M=0,W=0;W<H.length;W+=1)if(j&&navigator.userAgent.indexOf(H[W])>=0){M=1;break}var U=j&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},M))}};function B(t){return t&&"[object Function]"==={}.toString.call(t)}function F(t,e){if(1!==t.nodeType)return[];var n=getComputedStyle(t,null);return e?n[e]:n}function K(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function V(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=F(t),n=e.overflow,i=e.overflowX,r=e.overflowY;return/(auto|scroll)/.test(n+r+i)?t:V(K(t))}function Q(t){var e=t&&t.offsetParent,n=e&&e.nodeName;return n&&"BODY"!==n&&"HTML"!==n?-1!==["TD","TABLE"].indexOf(e.nodeName)&&"static"===F(e,"position")?Q(e):e:t?t.ownerDocument.documentElement:document.documentElement}function Y(t){return null!==t.parentNode?Y(t.parentNode):t}function G(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,r=n?e:t,o=document.createRange();o.setStart(i,0),o.setEnd(r,0);var s,a,l=o.commonAncestorContainer;if(t!==l&&e!==l||i.contains(r))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&Q(s.firstElementChild)!==s?Q(l):l;var c=Y(t);return c.host?G(c.host,e):G(t,Y(e).host)}function q(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function z(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}var X=void 0,Z=function(){return void 0===X&&(X=-1!==navigator.appVersion.indexOf("MSIE 10")),X};function J(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Z()?n["offset"+t]+i["margin"+("Height"===t?"Top":"Left")]+i["margin"+("Height"===t?"Bottom":"Right")]:0)}function $(){var t=document.body,e=document.documentElement,n=Z()&&getComputedStyle(e);return{height:J("Height",t,e,n),width:J("Width",t,e,n)}}var tt=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},et=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),nt=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},it=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function rt(t){return it({},t,{right:t.left+t.width,bottom:t.top+t.height})}function ot(t){var e={};if(Z())try{e=t.getBoundingClientRect();var n=q(t,"top"),i=q(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}catch(t){}else e=t.getBoundingClientRect();var r={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},o="HTML"===t.nodeName?$():{},s=o.width||t.clientWidth||r.right-r.left,a=o.height||t.clientHeight||r.bottom-r.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var h=F(t);l-=z(h,"x"),c-=z(h,"y"),r.width-=l,r.height-=c}return rt(r)}function st(t,e){var n=Z(),i="HTML"===e.nodeName,r=ot(t),o=ot(e),s=V(t),a=F(e),l=parseFloat(a.borderTopWidth,10),c=parseFloat(a.borderLeftWidth,10),h=rt({top:r.top-o.top-l,left:r.left-o.left-c,width:r.width,height:r.height});if(h.marginTop=0,h.marginLeft=0,!n&&i){var f=parseFloat(a.marginTop,10),u=parseFloat(a.marginLeft,10);h.top-=l-f,h.bottom-=l-f,h.left-=c-u,h.right-=c-u,h.marginTop=f,h.marginLeft=u}return(n?e.contains(s):e===s&&"BODY"!==s.nodeName)&&(h=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=q(e,"top"),r=q(e,"left"),o=n?-1:1;return t.top+=i*o,t.bottom+=i*o,t.left+=r*o,t.right+=r*o,t}(h,e)),h}function at(t,e,n,i){var r,o,s,a,l,c,h,f={top:0,left:0},u=G(t,e);if("viewport"===i)o=(r=u).ownerDocument.documentElement,s=st(r,o),a=Math.max(o.clientWidth,window.innerWidth||0),l=Math.max(o.clientHeight,window.innerHeight||0),c=q(o),h=q(o,"left"),f=rt({top:c-s.top+s.marginTop,left:h-s.left+s.marginLeft,width:a,height:l});else{var d=void 0;"scrollParent"===i?"BODY"===(d=V(K(e))).nodeName&&(d=t.ownerDocument.documentElement):d="window"===i?t.ownerDocument.documentElement:i;var p=st(d,u);if("HTML"!==d.nodeName||function t(e){var n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===F(e,"position")||t(K(e)))}(u))f=p;else{var g=$(),m=g.height,_=g.width;f.top+=p.top-p.marginTop,f.bottom=m+p.top,f.left+=p.left-p.marginLeft,f.right=_+p.left}}return f.left+=n,f.top+=n,f.right-=n,f.bottom-=n,f}function lt(t,e,n,i,r){var o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=at(n,i,o,r),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return it({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),h=c.length>0?c[0].key:l[0].key,f=t.split("-")[1];return h+(f?"-"+f:"")}function ct(t,e,n){return st(n,G(e,n))}function ht(t){var e=getComputedStyle(t),n=parseFloat(e.marginTop)+parseFloat(e.marginBottom),i=parseFloat(e.marginLeft)+parseFloat(e.marginRight);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function ft(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function ut(t,e,n){n=n.split("-")[0];var i=ht(t),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[s]=e[s]+e[l]/2-i[l]/2,r[a]=n===a?e[a]-i[c]:e[ft(a)],r}function dt(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function pt(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=dt(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&B(n)&&(e.offsets.popper=rt(e.offsets.popper),e.offsets.reference=rt(e.offsets.reference),e=n(e,t))}),e}function gt(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function mt(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length-1;i++){var r=e[i],o=r?""+r+n:t;if("undefined"!=typeof document.body.style[o])return o}return null}function _t(t){var e=t.ownerDocument;return e?e.defaultView:window}function vt(t,e,n,i){n.updateBound=i,_t(t).addEventListener("resize",n.updateBound,{passive:!0});var r=V(t);return function t(e,n,i,r){var o="BODY"===e.nodeName,s=o?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),o||t(V(s.parentNode),n,i,r),r.push(s)}(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function Et(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,_t(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function yt(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function bt(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&yt(e[n])&&(i="px"),t.style[n]=e[n]+i})}function Tt(t,e,n){var i=dt(t,function(t){return t.name===e}),r=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!r){var o="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}var Ct=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],wt=Ct.slice(3);function It(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=wt.indexOf(t),i=wt.slice(n+1).concat(wt.slice(0,n));return e?i.reverse():i}var At={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Dt(t,e,n,i){var r=[0,0],o=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(dt(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map(function(t,i){var r=(1===i?!o:o)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var r=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return rt(a)[e]/100*o}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(t,r,e,n)})})).forEach(function(t,e){t.forEach(function(n,i){yt(n)&&(r[e]+=n*("-"===t[i-1]?-1:1))})}),r}var St={placement:"bottom",eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var r=t.offsets,o=r.reference,s=r.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",h={start:nt({},l,o[l]),end:nt({},l,o[l]+o[c]-s[c])};t.offsets.popper=it({},s,h[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,r=t.offsets,o=r.popper,s=r.reference,a=i.split("-")[0],l=void 0;return l=yt(+n)?[+n,0]:Dt(n,o,s,a),"left"===a?(o.top+=l[0],o.left-=l[1]):"right"===a?(o.top+=l[0],o.left+=l[1]):"top"===a?(o.left+=l[0],o.top-=l[1]):"bottom"===a&&(o.left+=l[0],o.top+=l[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||Q(t.instance.popper);t.instance.reference===n&&(n=Q(n));var i=at(t.instance.popper,t.instance.reference,e.padding,n);e.boundaries=i;var r=e.priority,o=t.offsets.popper,s={primary:function(t){var n=o[t];return o[t]<i[t]&&!e.escapeWithReference&&(n=Math.max(o[t],i[t])),nt({},t,n)},secondary:function(t){var n="right"===t?"left":"top",r=o[n];return o[t]>i[t]&&!e.escapeWithReference&&(r=Math.min(o[n],i[t]-("right"===t?o.width:o.height))),nt({},n,r)}};return r.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";o=it({},o,s[e](t))}),t.offsets.popper=o,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,r=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<o(i[l])&&(t.offsets.popper[l]=o(i[l])-n[c]),n[l]>o(i[a])&&(t.offsets.popper[l]=o(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!Tt(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var r=t.placement.split("-")[0],o=t.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(r),c=l?"height":"width",h=l?"Top":"Left",f=h.toLowerCase(),u=l?"left":"top",d=l?"bottom":"right",p=ht(i)[c];a[d]-p<s[f]&&(t.offsets.popper[f]-=s[f]-(a[d]-p)),a[f]+p>s[d]&&(t.offsets.popper[f]+=a[f]+p-s[d]),t.offsets.popper=rt(t.offsets.popper);var g=a[f]+a[c]/2-p/2,m=F(t.instance.popper),_=parseFloat(m["margin"+h],10),v=parseFloat(m["border"+h+"Width"],10),E=g-t.offsets.popper[f]-_-v;return E=Math.max(Math.min(s[c]-p,E),0),t.arrowElement=i,t.offsets.arrow=(nt(n={},f,Math.round(E)),nt(n,u,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(gt(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=at(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement),i=t.placement.split("-")[0],r=ft(i),o=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case At.FLIP:s=[i,r];break;case At.CLOCKWISE:s=It(i);break;case At.COUNTERCLOCKWISE:s=It(i,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],r=ft(i);var c,h=t.offsets.popper,f=t.offsets.reference,u=Math.floor,d="left"===i&&u(h.right)>u(f.left)||"right"===i&&u(h.left)<u(f.right)||"top"===i&&u(h.bottom)>u(f.top)||"bottom"===i&&u(h.top)<u(f.bottom),p=u(h.left)<u(n.left),g=u(h.right)>u(n.right),m=u(h.top)<u(n.top),_=u(h.bottom)>u(n.bottom),v="left"===i&&p||"right"===i&&g||"top"===i&&m||"bottom"===i&&_,E=-1!==["top","bottom"].indexOf(i),y=!!e.flipVariations&&(E&&"start"===o&&p||E&&"end"===o&&g||!E&&"start"===o&&m||!E&&"end"===o&&_);(d||v||y)&&(t.flipped=!0,(d||v)&&(i=s[l+1]),y&&(o="end"===(c=o)?"start":"start"===c?"end":c),t.placement=i+(o?"-"+o:""),t.offsets.popper=it({},t.offsets.popper,ut(t.instance.popper,t.offsets.reference,t.placement)),t=pt(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),t.placement=ft(e),t.offsets.popper=rt(r),t}},hide:{order:800,enabled:!0,fn:function(t){if(!Tt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=dt(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,r=t.offsets.popper,o=dt(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==o?o:e.gpuAcceleration,a=ot(Q(t.instance.popper)),l={position:r.position},c={left:Math.floor(r.left),top:Math.floor(r.top),bottom:Math.floor(r.bottom),right:Math.floor(r.right)},h="bottom"===n?"top":"bottom",f="right"===i?"left":"right",u=mt("transform"),d=void 0,p=void 0;if(p="bottom"===h?-a.height+c.bottom:c.top,d="right"===f?-a.width+c.right:c.left,s&&u)l[u]="translate3d("+d+"px, "+p+"px, 0)",l[h]=0,l[f]=0,l.willChange="transform";else{var g="bottom"===h?-1:1,m="right"===f?-1:1;l[h]=p*g,l[f]=d*m,l.willChange=h+", "+f}var _={"x-placement":t.placement};return t.attributes=it({},_,t.attributes),t.styles=it({},l,t.styles),t.arrowStyles=it({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return bt(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&bt(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,r){var o=ct(0,e,t),s=lt(n.placement,o,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),bt(e,{position:"absolute"}),n},gpuAcceleration:void 0}}},Ot=function(){function t(e,n){var i=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};tt(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=U(this.update.bind(this)),this.options=it({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(it({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=it({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return it({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&B(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var o=this.options.eventsEnabled;o&&this.enableEventListeners(),this.state.eventsEnabled=o}return et(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=ct(this.state,this.popper,this.reference),t.placement=lt(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.offsets.popper=ut(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position="absolute",t=pt(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,gt(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.left="",this.popper.style.position="",this.popper.style.top="",this.popper.style[mt("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=vt(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return Et.call(this)}}]),t}();Ot.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ot.placements=Ct,Ot.Defaults=St;var Nt=function(t){var e="dropdown",n="bs.dropdown",o="."+n,s=t.fn[e],a=new RegExp("38|40|27"),l={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,CLICK:"click"+o,CLICK_DATA_API:"click"+o+".data-api",KEYDOWN_DATA_API:"keydown"+o+".data-api",KEYUP_DATA_API:"keyup"+o+".data-api"},c="disabled",h="show",f="dropup",u="dropright",d="dropleft",p="dropdown-menu-right",g="dropdown-menu-left",m="position-static",_='[data-toggle="dropdown"]',v=".dropdown form",E=".dropdown-menu",y=".navbar-nav",b=".dropdown-menu .dropdown-item:not(.disabled)",T="top-start",C="top-end",w="bottom-start",I="bottom-end",A="right-start",D="left-start",S={offset:0,flip:!0,boundary:"scrollParent"},O={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)"},N=function(){function s(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var v=s.prototype;return v.toggle=function(){if(!this._element.disabled&&!t(this._element).hasClass(c)){var e=s._getParentFromElement(this._element),n=t(this._menu).hasClass(h);if(s._clearMenus(),!n){var i={relatedTarget:this._element},r=t.Event(l.SHOW,i);if(t(e).trigger(r),!r.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof Ot)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var o=this._element;t(e).hasClass(f)&&(t(this._menu).hasClass(g)||t(this._menu).hasClass(p))&&(o=e),"scrollParent"!==this._config.boundary&&t(e).addClass(m),this._popper=new Ot(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===t(e).closest(y).length&&t("body").children().on("mouseover",null,t.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),t(this._menu).toggleClass(h),t(e).toggleClass(h).trigger(t.Event(l.SHOWN,i))}}}},v.dispose=function(){t.removeData(this._element,n),t(this._element).off(o),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},v.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},v._addEventListeners=function(){var e=this;t(this._element).on(l.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},v._getConfig=function(n){return n=r({},this.constructor.Default,t(this._element).data(),n),k.typeCheckConfig(e,n,this.constructor.DefaultType),n},v._getMenuElement=function(){if(!this._menu){var e=s._getParentFromElement(this._element);this._menu=t(e).find(E)[0]}return this._menu},v._getPlacement=function(){var e=t(this._element).parent(),n=w;return e.hasClass(f)?(n=T,t(this._menu).hasClass(p)&&(n=C)):e.hasClass(u)?n=A:e.hasClass(d)?n=D:t(this._menu).hasClass(p)&&(n=I),n},v._detectNavbar=function(){return t(this._element).closest(".navbar").length>0},v._getPopperConfig=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset,{placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}}},s._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n);if(i||(i=new s(this,"object"==typeof e?e:null),t(this).data(n,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},s._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var i=t.makeArray(t(_)),r=0;r<i.length;r++){var o=s._getParentFromElement(i[r]),a=t(i[r]).data(n),c={relatedTarget:i[r]};if(a){var f=a._menu;if(t(o).hasClass(h)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&t.contains(o,e.target))){var u=t.Event(l.HIDE,c);t(o).trigger(u),u.isDefaultPrevented()||("ontouchstart"in document.documentElement&&t("body").children().off("mouseover",null,t.noop),i[r].setAttribute("aria-expanded","false"),t(f).removeClass(h),t(o).removeClass(h).trigger(t.Event(l.HIDDEN,c)))}}}},s._getParentFromElement=function(e){var n,i=k.getSelectorFromElement(e);return i&&(n=t(i)[0]),n||e.parentNode},s._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||t(e.target).closest(E).length)):a.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!t(this).hasClass(c))){var n=s._getParentFromElement(this),i=t(n).hasClass(h);if((i||27===e.which&&32===e.which)&&(!i||27!==e.which&&32!==e.which)){var r=t(n).find(b).get();if(0!==r.length){var o=r.indexOf(e.target);38===e.which&&o>0&&o--,40===e.which&&o<r.length-1&&o++,o<0&&(o=0),r[o].focus()}}else{if(27===e.which){var l=t(n).find(_)[0];t(l).trigger("focus")}t(this).trigger("click")}}},i(s,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return S}},{key:"DefaultType",get:function(){return O}}]),s}();return t(document).on(l.KEYDOWN_DATA_API,_,N._dataApiKeydownHandler).on(l.KEYDOWN_DATA_API,E,N._dataApiKeydownHandler).on(l.CLICK_DATA_API+" "+l.KEYUP_DATA_API,N._clearMenus).on(l.CLICK_DATA_API,_,function(e){e.preventDefault(),e.stopPropagation(),N._jQueryInterface.call(t(this),"toggle")}).on(l.CLICK_DATA_API,v,function(t){t.stopPropagation()}),t.fn[e]=N._jQueryInterface,t.fn[e].Constructor=N,t.fn[e].noConflict=function(){return t.fn[e]=s,N._jQueryInterface},N}(e),kt=function(t){var e="bs.modal",n="."+e,o=t.fn.modal,s={backdrop:!0,keyboard:!0,focus:!0,show:!0},a={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},l={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,FOCUSIN:"focusin"+n,RESIZE:"resize"+n,CLICK_DISMISS:"click.dismiss"+n,KEYDOWN_DISMISS:"keydown.dismiss"+n,MOUSEUP_DISMISS:"mouseup.dismiss"+n,MOUSEDOWN_DISMISS:"mousedown.dismiss"+n,CLICK_DATA_API:"click.bs.modal.data-api"},c="modal-scrollbar-measure",h="modal-backdrop",f="modal-open",u="fade",d="show",p={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},g=function(){function o(e,n){this._config=this._getConfig(n),this._element=e,this._dialog=t(e).find(p.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}var g=o.prototype;return g.toggle=function(t){return this._isShown?this.hide():this.show(t)},g.show=function(e){var n=this;if(!this._isTransitioning&&!this._isShown){k.supportsTransitionEnd()&&t(this._element).hasClass(u)&&(this._isTransitioning=!0);var i=t.Event(l.SHOW,{relatedTarget:e});t(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),t(document.body).addClass(f),this._setEscapeEvent(),this._setResizeEvent(),t(this._element).on(l.CLICK_DISMISS,p.DATA_DISMISS,function(t){return n.hide(t)}),t(this._dialog).on(l.MOUSEDOWN_DISMISS,function(){t(n._element).one(l.MOUSEUP_DISMISS,function(e){t(e.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(e)}))}},g.hide=function(e){var n=this;if(e&&e.preventDefault(),!this._isTransitioning&&this._isShown){var i=t.Event(l.HIDE);if(t(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var r=k.supportsTransitionEnd()&&t(this._element).hasClass(u);r&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),t(document).off(l.FOCUSIN),t(this._element).removeClass(d),t(this._element).off(l.CLICK_DISMISS),t(this._dialog).off(l.MOUSEDOWN_DISMISS),r?t(this._element).one(k.TRANSITION_END,function(t){return n._hideModal(t)}).emulateTransitionEnd(300):this._hideModal()}}},g.dispose=function(){t.removeData(this._element,e),t(window,document,this._element,this._backdrop).off(n),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},g.handleUpdate=function(){this._adjustDialog()},g._getConfig=function(t){return t=r({},s,t),k.typeCheckConfig("modal",t,a),t},g._showElement=function(e){var n=this,i=k.supportsTransitionEnd()&&t(this._element).hasClass(u);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,i&&k.reflow(this._element),t(this._element).addClass(d),this._config.focus&&this._enforceFocus();var r=t.Event(l.SHOWN,{relatedTarget:e}),o=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,t(n._element).trigger(r)};i?t(this._dialog).one(k.TRANSITION_END,o).emulateTransitionEnd(300):o()},g._enforceFocus=function(){var e=this;t(document).off(l.FOCUSIN).on(l.FOCUSIN,function(n){document!==n.target&&e._element!==n.target&&0===t(e._element).has(n.target).length&&e._element.focus()})},g._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?t(this._element).on(l.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||t(this._element).off(l.KEYDOWN_DISMISS)},g._setResizeEvent=function(){var e=this;this._isShown?t(window).on(l.RESIZE,function(t){return e.handleUpdate(t)}):t(window).off(l.RESIZE)},g._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){t(document.body).removeClass(f),e._resetAdjustments(),e._resetScrollbar(),t(e._element).trigger(l.HIDDEN)})},g._removeBackdrop=function(){this._backdrop&&(t(this._backdrop).remove(),this._backdrop=null)},g._showBackdrop=function(e){var n=this,i=t(this._element).hasClass(u)?u:"";if(this._isShown&&this._config.backdrop){var r=k.supportsTransitionEnd()&&i;if(this._backdrop=document.createElement("div"),this._backdrop.className=h,i&&t(this._backdrop).addClass(i),t(this._backdrop).appendTo(document.body),t(this._element).on(l.CLICK_DISMISS,function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===n._config.backdrop?n._element.focus():n.hide())}),r&&k.reflow(this._backdrop),t(this._backdrop).addClass(d),!e)return;if(!r)return void e();t(this._backdrop).one(k.TRANSITION_END,e).emulateTransitionEnd(150)}else if(!this._isShown&&this._backdrop){t(this._backdrop).removeClass(d);var o=function(){n._removeBackdrop(),e&&e()};k.supportsTransitionEnd()&&t(this._element).hasClass(u)?t(this._backdrop).one(k.TRANSITION_END,o).emulateTransitionEnd(150):o()}else e&&e()},g._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},g._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},g._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},g._setScrollbar=function(){var e=this;if(this._isBodyOverflowing){t(p.FIXED_CONTENT).each(function(n,i){var r=t(i)[0].style.paddingRight,o=t(i).css("padding-right");t(i).data("padding-right",r).css("padding-right",parseFloat(o)+e._scrollbarWidth+"px")}),t(p.STICKY_CONTENT).each(function(n,i){var r=t(i)[0].style.marginRight,o=t(i).css("margin-right");t(i).data("margin-right",r).css("margin-right",parseFloat(o)-e._scrollbarWidth+"px")}),t(p.NAVBAR_TOGGLER).each(function(n,i){var r=t(i)[0].style.marginRight,o=t(i).css("margin-right");t(i).data("margin-right",r).css("margin-right",parseFloat(o)+e._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=t("body").css("padding-right");t("body").data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}},g._resetScrollbar=function(){t(p.FIXED_CONTENT).each(function(e,n){var i=t(n).data("padding-right");"undefined"!=typeof i&&t(n).css("padding-right",i).removeData("padding-right")}),t(p.STICKY_CONTENT+", "+p.NAVBAR_TOGGLER).each(function(e,n){var i=t(n).data("margin-right");"undefined"!=typeof i&&t(n).css("margin-right",i).removeData("margin-right")});var e=t("body").data("padding-right");"undefined"!=typeof e&&t("body").css("padding-right",e).removeData("padding-right")},g._getScrollbarWidth=function(){var t=document.createElement("div");t.className=c,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(n,i){return this.each(function(){var s=t(this).data(e),a=r({},o.Default,t(this).data(),"object"==typeof n&&n);if(s||(s=new o(this,a),t(this).data(e,s)),"string"==typeof n){if("undefined"==typeof s[n])throw new TypeError('No method named "'+n+'"');s[n](i)}else a.show&&s.show(i)})},i(o,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return s}}]),o}();return t(document).on(l.CLICK_DATA_API,p.DATA_TOGGLE,function(n){var i,o=this,s=k.getSelectorFromElement(this);s&&(i=t(s)[0]);var a=t(i).data(e)?"toggle":r({},t(i).data(),t(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||n.preventDefault();var c=t(i).one(l.SHOW,function(e){e.isDefaultPrevented()||c.one(l.HIDDEN,function(){t(o).is(":visible")&&o.focus()})});g._jQueryInterface.call(t(i),a,this)}),t.fn.modal=g._jQueryInterface,t.fn.modal.Constructor=g,t.fn.modal.noConflict=function(){return t.fn.modal=o,g._jQueryInterface},g}(e),Lt=function(t){var e="tooltip",n="bs.tooltip",o="."+n,s=t.fn[e],a=new RegExp("(^|\\s)bs-tooltip\\S+","g"),l={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"},c={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},h={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},f="show",u="out",d={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,INSERTED:"inserted"+o,CLICK:"click"+o,FOCUSIN:"focusin"+o,FOCUSOUT:"focusout"+o,MOUSEENTER:"mouseenter"+o,MOUSELEAVE:"mouseleave"+o},p="fade",g="show",m=".tooltip-inner",_=".arrow",v="hover",E="focus",y="click",b="manual",T=function(){function s(t,e){if("undefined"==typeof Ot)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var T=s.prototype;return T.enable=function(){this._isEnabled=!0},T.disable=function(){this._isEnabled=!1},T.toggleEnabled=function(){this._isEnabled=!this._isEnabled},T.toggle=function(e){if(this._isEnabled)if(e){var n=this.constructor.DATA_KEY,i=t(e.currentTarget).data(n);i||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(t(this.getTipElement()).hasClass(g))return void this._leave(null,this);this._enter(null,this)}},T.dispose=function(){clearTimeout(this._timeout),t.removeData(this.element,this.constructor.DATA_KEY),t(this.element).off(this.constructor.EVENT_KEY),t(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&t(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},T.show=function(){var e=this;if("none"===t(this.element).css("display"))throw new Error("Please use show on visible elements");var n=t.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){t(this.element).trigger(n);var i=t.contains(this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!i)return;var r=this.getTipElement(),o=k.getUID(this.constructor.NAME);r.setAttribute("id",o),this.element.setAttribute("aria-describedby",o),this.setContent(),this.config.animation&&t(r).addClass(p);var a="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,l=this._getAttachment(a);this.addAttachmentClass(l);var c=!1===this.config.container?document.body:t(this.config.container);t(r).data(this.constructor.DATA_KEY,this),t.contains(this.element.ownerDocument.documentElement,this.tip)||t(r).appendTo(c),t(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new Ot(this.element,r,{placement:l,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:_},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),t(r).addClass(g),"ontouchstart"in document.documentElement&&t("body").children().on("mouseover",null,t.noop);var h=function(){e.config.animation&&e._fixTransition();var n=e._hoverState;e._hoverState=null,t(e.element).trigger(e.constructor.Event.SHOWN),n===u&&e._leave(null,e)};k.supportsTransitionEnd()&&t(this.tip).hasClass(p)?t(this.tip).one(k.TRANSITION_END,h).emulateTransitionEnd(s._TRANSITION_DURATION):h()}},T.hide=function(e){var n=this,i=this.getTipElement(),r=t.Event(this.constructor.Event.HIDE),o=function(){n._hoverState!==f&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),t(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),e&&e()};t(this.element).trigger(r),r.isDefaultPrevented()||(t(i).removeClass(g),"ontouchstart"in document.documentElement&&t("body").children().off("mouseover",null,t.noop),this._activeTrigger[y]=!1,this._activeTrigger[E]=!1,this._activeTrigger[v]=!1,k.supportsTransitionEnd()&&t(this.tip).hasClass(p)?t(i).one(k.TRANSITION_END,o).emulateTransitionEnd(150):o(),this._hoverState="")},T.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},T.isWithContent=function(){return Boolean(this.getTitle())},T.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-tooltip-"+e)},T.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},T.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(m),this.getTitle()),e.removeClass(p+" "+g)},T.setElementContent=function(e,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?t(n).parent().is(e)||e.empty().append(n):e.text(t(n).text()):e[i?"html":"text"](n)},T.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},T._getAttachment=function(t){return c[t.toUpperCase()]},T._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)t(e.element).on(e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(n!==b){var i=n===v?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,r=n===v?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;t(e.element).on(i,e.config.selector,function(t){return e._enter(t)}).on(r,e.config.selector,function(t){return e._leave(t)})}t(e.element).closest(".modal").on("hide.bs.modal",function(){return e.hide()})}),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},T._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},T._enter=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusin"===e.type?E:v]=!0),t(n.getTipElement()).hasClass(g)||n._hoverState===f?n._hoverState=f:(clearTimeout(n._timeout),n._hoverState=f,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===f&&n.show()},n.config.delay.show):n.show())},T._leave=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusout"===e.type?E:v]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=u,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===u&&n.hide()},n.config.delay.hide):n.hide())},T._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},T._getConfig=function(n){return"number"==typeof(n=r({},this.constructor.Default,t(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),k.typeCheckConfig(e,n,this.constructor.DefaultType),n},T._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},T._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(a);null!==n&&n.length>0&&e.removeClass(n.join(""))},T._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},T._fixTransition=function(){var e=this.getTipElement(),n=this.config.animation;null===e.getAttribute("x-placement")&&(t(e).removeClass(p),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},s._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),r="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new s(this,r),t(this).data(n,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},i(s,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return h}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return n}},{key:"Event",get:function(){return d}},{key:"EVENT_KEY",get:function(){return o}},{key:"DefaultType",get:function(){return l}}]),s}();return t.fn[e]=T._jQueryInterface,t.fn[e].Constructor=T,t.fn[e].noConflict=function(){return t.fn[e]=s,T._jQueryInterface},T}(e),Pt=function(t){var e="popover",n="bs.popover",o="."+n,s=t.fn[e],a=new RegExp("(^|\\s)bs-popover\\S+","g"),l=r({},Lt.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),c=r({},Lt.DefaultType,{content:"(string|element|function)"}),h="fade",f="show",u=".popover-header",d=".popover-body",p={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,INSERTED:"inserted"+o,CLICK:"click"+o,FOCUSIN:"focusin"+o,FOCUSOUT:"focusout"+o,MOUSEENTER:"mouseenter"+o,MOUSELEAVE:"mouseleave"+o},g=function(r){var s,g;function m(){return r.apply(this,arguments)||this}g=r,(s=m).prototype=Object.create(g.prototype),s.prototype.constructor=s,s.__proto__=g;var _=m.prototype;return _.isWithContent=function(){return this.getTitle()||this._getContent()},_.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-popover-"+e)},_.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},_.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(u),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(e.find(d),n),e.removeClass(h+" "+f)},_._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},_._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(a);null!==n&&n.length>0&&e.removeClass(n.join(""))},m._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),r="object"==typeof e?e:null;if((i||!/destroy|hide/.test(e))&&(i||(i=new m(this,r),t(this).data(n,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},i(m,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return n}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return o}},{key:"DefaultType",get:function(){return c}}]),m}(Lt);return t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=s,g._jQueryInterface},g}(e),xt=function(t){var e="scrollspy",n="bs.scrollspy",o="."+n,s=t.fn[e],a={offset:10,method:"auto",target:""},l={offset:"number",method:"string",target:"(string|element)"},c={ACTIVATE:"activate"+o,SCROLL:"scroll"+o,LOAD_DATA_API:"load"+o+".data-api"},h="dropdown-item",f="active",u={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},d="offset",p="position",g=function(){function s(e,n){var i=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(n),this._selector=this._config.target+" "+u.NAV_LINKS+","+this._config.target+" "+u.LIST_ITEMS+","+this._config.target+" "+u.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,t(this._scrollElement).on(c.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var g=s.prototype;return g.refresh=function(){var e=this,n=this._scrollElement===this._scrollElement.window?d:p,i="auto"===this._config.method?n:this._config.method,r=i===p?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.makeArray(t(this._selector)).map(function(e){var n,o=k.getSelectorFromElement(e);if(o&&(n=t(o)[0]),n){var s=n.getBoundingClientRect();if(s.width||s.height)return[t(n)[i]().top+r,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},g.dispose=function(){t.removeData(this._element,n),t(this._scrollElement).off(o),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},g._getConfig=function(n){if("string"!=typeof(n=r({},a,n)).target){var i=t(n.target).attr("id");i||(i=k.getUID(e),t(n.target).attr("id",i)),n.target="#"+i}return k.typeCheckConfig(e,n,l),n},g._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},g._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},g._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},g._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},g._activate=function(e){this._activeTarget=e,this._clear();var n=this._selector.split(",");n=n.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var i=t(n.join(","));i.hasClass(h)?(i.closest(u.DROPDOWN).find(u.DROPDOWN_TOGGLE).addClass(f),i.addClass(f)):(i.addClass(f),i.parents(u.NAV_LIST_GROUP).prev(u.NAV_LINKS+", "+u.LIST_ITEMS).addClass(f),i.parents(u.NAV_LIST_GROUP).prev(u.NAV_ITEMS).children(u.NAV_LINKS).addClass(f)),t(this._scrollElement).trigger(c.ACTIVATE,{relatedTarget:e})},g._clear=function(){t(this._selector).filter(u.ACTIVE).removeClass(f)},s._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n);if(i||(i=new s(this,"object"==typeof e&&e),t(this).data(n,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},i(s,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),s}();return t(window).on(c.LOAD_DATA_API,function(){for(var e=t.makeArray(t(u.DATA_SPY)),n=e.length;n--;){var i=t(e[n]);g._jQueryInterface.call(i,i.data())}}),t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=s,g._jQueryInterface},g}(e),Rt=function(t){var e=".bs.tab",n=t.fn.tab,r={HIDE:"hide"+e,HIDDEN:"hidden"+e,SHOW:"show"+e,SHOWN:"shown"+e,CLICK_DATA_API:"click.bs.tab.data-api"},o="dropdown-menu",s="active",a="disabled",l="fade",c="show",h=".dropdown",f=".nav, .list-group",u=".active",d="> li > .active",p='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',g=".dropdown-toggle",m="> .dropdown-menu .active",_=function(){function e(t){this._element=t}var n=e.prototype;return n.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&t(this._element).hasClass(s)||t(this._element).hasClass(a))){var n,i,o=t(this._element).closest(f)[0],l=k.getSelectorFromElement(this._element);if(o){var c="UL"===o.nodeName?d:u;i=(i=t.makeArray(t(o).find(c)))[i.length-1]}var h=t.Event(r.HIDE,{relatedTarget:this._element}),p=t.Event(r.SHOW,{relatedTarget:i});if(i&&t(i).trigger(h),t(this._element).trigger(p),!p.isDefaultPrevented()&&!h.isDefaultPrevented()){l&&(n=t(l)[0]),this._activate(this._element,o);var g=function(){var n=t.Event(r.HIDDEN,{relatedTarget:e._element}),o=t.Event(r.SHOWN,{relatedTarget:i});t(i).trigger(n),t(e._element).trigger(o)};n?this._activate(n,n.parentNode,g):g()}}},n.dispose=function(){t.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(e,n,i){var r=this,o=("UL"===n.nodeName?t(n).find(d):t(n).children(u))[0],s=i&&k.supportsTransitionEnd()&&o&&t(o).hasClass(l),a=function(){return r._transitionComplete(e,o,i)};o&&s?t(o).one(k.TRANSITION_END,a).emulateTransitionEnd(150):a()},n._transitionComplete=function(e,n,i){if(n){t(n).removeClass(c+" "+s);var r=t(n.parentNode).find(m)[0];r&&t(r).removeClass(s),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(t(e).addClass(s),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),k.reflow(e),t(e).addClass(c),e.parentNode&&t(e.parentNode).hasClass(o)){var a=t(e).closest(h)[0];a&&t(a).find(g).addClass(s),e.setAttribute("aria-expanded",!0)}i&&i()},e._jQueryInterface=function(n){return this.each(function(){var i=t(this),r=i.data("bs.tab");if(r||(r=new e(this),i.data("bs.tab",r)),"string"==typeof n){if("undefined"==typeof r[n])throw new TypeError('No method named "'+n+'"');r[n]()}})},i(e,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),e}();return t(document).on(r.CLICK_DATA_API,p,function(e){e.preventDefault(),_._jQueryInterface.call(t(this),"show")}),t.fn.tab=_._jQueryInterface,t.fn.tab.Constructor=_,t.fn.tab.noConflict=function(){return t.fn.tab=n,_._jQueryInterface},_}(e);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||e[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=k,t.Alert=L,t.Button=P,t.Carousel=x,t.Collapse=R,t.Dropdown=Nt,t.Modal=kt,t.Popover=Pt,t.Scrollspy=xt,t.Tab=Rt,t.Tooltip=Lt,Object.defineProperty(t,"__esModule",{value:!0})});
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define(["exports","jquery"],e):e(t.bootstrap={},t.jQuery)}(this,function(t,e){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function c(r){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},e=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=o[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}for(var r,n,o,a,l,f,h,u,d,p,g,m,_,v,E,y,b,T,C,w,I,D,A,S,O,N,k,L,P,x,j,R,M,H,W,F,U,B,K,V,Q,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,ot,st,at,lt,ct,ft,ht,ut,dt,pt,gt=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return 0<i(document).find(e).length?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],o=e[i],s=o&&l.isElement(o)?"element":(a=o,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e=e&&e.hasOwnProperty("default")?e.default:e),mt=(n="alert",a="."+(o="bs.alert"),l=(r=e).fn[n],f={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},h="alert",u="fade",d="show",p=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,o),this._element=null},t._getRootElement=function(t){var e=gt.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+h)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(f.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(d),r(e).hasClass(u)){var t=gt.getTransitionDurationFromElement(e);r(e).one(gt.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(f.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(o);e||(e=new i(this),t.data(o,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},s(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),r(document).on(f.CLICK_DATA_API,'[data-dismiss="alert"]',p._handleDismiss(new p)),r.fn[n]=p._jQueryInterface,r.fn[n].Constructor=p,r.fn[n].noConflict=function(){return r.fn[n]=l,p._jQueryInterface},p),_t=(m="button",v="."+(_="bs.button"),E=".data-api",y=(g=e).fn[m],b="active",T="btn",w='[data-toggle^="button"]',I='[data-toggle="buttons"]',D="input",A=".active",S=".btn",O={CLICK_DATA_API:"click"+v+E,FOCUS_BLUR_DATA_API:(C="focus")+v+E+" blur"+v+E},N=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=g(this._element).closest(I)[0];if(n){var i=g(this._element).find(D)[0];if(i){if("radio"===i.type)if(i.checked&&g(this._element).hasClass(b))t=!1;else{var r=g(n).find(A)[0];r&&g(r).removeClass(b)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!g(this._element).hasClass(b),g(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!g(this._element).hasClass(b)),t&&g(this._element).toggleClass(b)},t.dispose=function(){g.removeData(this._element,_),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=g(this).data(_);t||(t=new n(this),g(this).data(_,t)),"toggle"===e&&t[e]()})},s(n,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),n}(),g(document).on(O.CLICK_DATA_API,w,function(t){t.preventDefault();var e=t.target;g(e).hasClass(T)||(e=g(e).closest(S)),N._jQueryInterface.call(g(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,w,function(t){var e=g(t.target).closest(S)[0];g(e).toggleClass(C,/^focus(in)?$/.test(t.type))}),g.fn[m]=N._jQueryInterface,g.fn[m].Constructor=N,g.fn[m].noConflict=function(){return g.fn[m]=y,N._jQueryInterface},N),vt=(L="carousel",x="."+(P="bs.carousel"),j=".data-api",R=(k=e).fn[L],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},H={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},W="next",F="prev",U="left",B="right",K={SLIDE:"slide"+x,SLID:"slid"+x,KEYDOWN:"keydown"+x,MOUSEENTER:"mouseenter"+x,MOUSELEAVE:"mouseleave"+x,TOUCHEND:"touchend"+x,LOAD_DATA_API:"load"+x+j,CLICK_DATA_API:"click"+x+j},V="carousel",Q="active",Y="slide",G="carousel-item-right",q="carousel-item-left",z="carousel-item-next",X="carousel-item-prev",J={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Z=function(){function o(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(e),this._element=k(t)[0],this._indicatorsElement=k(this._element).find(J.INDICATORS)[0],this._addEventListeners()}var t=o.prototype;return t.next=function(){this._isSliding||this._slide(W)},t.nextWhenVisible=function(){!document.hidden&&k(this._element).is(":visible")&&"hidden"!==k(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(F)},t.pause=function(t){t||(this._isPaused=!0),k(this._element).find(J.NEXT_PREV)[0]&&(gt.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=k(this._element).find(J.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)k(this._element).one(K.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?W:F;this._slide(i,this._items[t])}},t.dispose=function(){k(this._element).off(x),k.removeData(this._element,P),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=c({},M,t),gt.typeCheckConfig(L,t,H),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&k(this._element).on(K.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(k(this._element).on(K.MOUSEENTER,function(t){return e.pause(t)}).on(K.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&k(this._element).on(K.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=k.makeArray(k(t).parent().find(J.ITEM)),this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===W,i=t===F,r=this._getItemIndex(e),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return e;var s=(r+(t===F?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(k(this._element).find(J.ACTIVE_ITEM)[0]),r=k.Event(K.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return k(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){k(this._indicatorsElement).find(J.ACTIVE).removeClass(Q);var e=this._indicatorsElement.children[this._getItemIndex(t)];e&&k(e).addClass(Q)}},t._slide=function(t,e){var n,i,r,o=this,s=k(this._element).find(J.ACTIVE_ITEM)[0],a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),f=Boolean(this._interval);if(t===W?(n=q,i=z,r=U):(n=G,i=X,r=B),l&&k(l).hasClass(Q))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&s&&l){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(l);var h=k.Event(K.SLID,{relatedTarget:l,direction:r,from:a,to:c});if(k(this._element).hasClass(Y)){k(l).addClass(i),gt.reflow(l),k(s).addClass(n),k(l).addClass(n);var u=gt.getTransitionDurationFromElement(s);k(s).one(gt.TRANSITION_END,function(){k(l).removeClass(n+" "+i).addClass(Q),k(s).removeClass(Q+" "+i+" "+n),o._isSliding=!1,setTimeout(function(){return k(o._element).trigger(h)},0)}).emulateTransitionEnd(u)}else k(s).removeClass(Q),k(l).addClass(Q),this._isSliding=!1,k(this._element).trigger(h);f&&this.cycle()}},o._jQueryInterface=function(i){return this.each(function(){var t=k(this).data(P),e=c({},M,k(this).data());"object"==typeof i&&(e=c({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new o(this,e),k(this).data(P,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&(t.pause(),t.cycle())})},o._dataApiClickHandler=function(t){var e=gt.getSelectorFromElement(this);if(e){var n=k(e)[0];if(n&&k(n).hasClass(V)){var i=c({},k(n).data(),k(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),o._jQueryInterface.call(k(n),i),r&&k(n).data(P).to(r),t.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return M}}]),o}(),k(document).on(K.CLICK_DATA_API,J.DATA_SLIDE,Z._dataApiClickHandler),k(window).on(K.LOAD_DATA_API,function(){k(J.DATA_RIDE).each(function(){var t=k(this);Z._jQueryInterface.call(t,t.data())})}),k.fn[L]=Z._jQueryInterface,k.fn[L].Constructor=Z,k.fn[L].noConflict=function(){return k.fn[L]=R,Z._jQueryInterface},Z),Et=(tt="collapse",nt="."+(et="bs.collapse"),it=($=e).fn[tt],rt={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},st={SHOW:"show"+nt,SHOWN:"shown"+nt,HIDE:"hide"+nt,HIDDEN:"hidden"+nt,CLICK_DATA_API:"click"+nt+".data-api"},at="show",lt="collapse",ct="collapsing",ft="collapsed",ht="width",ut="height",dt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},pt=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=$.makeArray($('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=$(dt.DATA_TOGGLE),i=0;i<n.length;i++){var r=n[i],o=gt.getSelectorFromElement(r);null!==o&&0<$(o).filter(t).length&&(this._selector=o,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){$(this._element).hasClass(at)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!$(this._element).hasClass(at)&&(this._parent&&0===(t=$.makeArray($(this._parent).find(dt.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(t=null),!(t&&(e=$(t).not(this._selector).data(et))&&e._isTransitioning))){var i=$.Event(st.SHOW);if($(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call($(t).not(this._selector),"hide"),e||$(t).data(et,null));var r=this._getDimension();$(this._element).removeClass(lt).addClass(ct),(this._element.style[r]=0)<this._triggerArray.length&&$(this._triggerArray).removeClass(ft).attr("aria-expanded",!0),this.setTransitioning(!0);var o="scroll"+(r[0].toUpperCase()+r.slice(1)),s=gt.getTransitionDurationFromElement(this._element);$(this._element).one(gt.TRANSITION_END,function(){$(n._element).removeClass(ct).addClass(lt).addClass(at),n._element.style[r]="",n.setTransitioning(!1),$(n._element).trigger(st.SHOWN)}).emulateTransitionEnd(s),this._element.style[r]=this._element[o]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&$(this._element).hasClass(at)){var e=$.Event(st.HIDE);if($(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();if(this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",gt.reflow(this._element),$(this._element).addClass(ct).removeClass(lt).removeClass(at),0<this._triggerArray.length)for(var i=0;i<this._triggerArray.length;i++){var r=this._triggerArray[i],o=gt.getSelectorFromElement(r);if(null!==o)$(o).hasClass(at)||$(r).addClass(ft).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var s=gt.getTransitionDurationFromElement(this._element);$(this._element).one(gt.TRANSITION_END,function(){t.setTransitioning(!1),$(t._element).removeClass(ct).addClass(lt).trigger(st.HIDDEN)}).emulateTransitionEnd(s)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){$.removeData(this._element,et),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=c({},rt,t)).toggle=Boolean(t.toggle),gt.typeCheckConfig(tt,t,ot),t},t._getDimension=function(){return $(this._element).hasClass(ht)?ht:ut},t._getParent=function(){var n=this,t=null;gt.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=$(this._config.parent)[0];var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return $(t).find(e).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=$(t).hasClass(at);0<e.length&&$(e).toggleClass(ft,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=gt.getSelectorFromElement(t);return e?$(e)[0]:null},a._jQueryInterface=function(i){return this.each(function(){var t=$(this),e=t.data(et),n=c({},rt,t.data(),"object"==typeof i&&i);if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(et,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return rt}}]),a}(),$(document).on(st.CLICK_DATA_API,dt.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=$(this),e=gt.getSelectorFromElement(this);$(e).each(function(){var t=$(this),e=t.data(et)?"toggle":n.data();pt._jQueryInterface.call(t,e)})}),$.fn[tt]=pt._jQueryInterface,$.fn[tt].Constructor=pt,$.fn[tt].noConflict=function(){return $.fn[tt]=it,pt._jQueryInterface},pt),yt="undefined"!=typeof window&&"undefined"!=typeof document,bt=["Edge","Trident","Firefox"],Tt=0,Ct=0;Ct<bt.length;Ct+=1)if(yt&&0<=navigator.userAgent.indexOf(bt[Ct])){Tt=1;break}var wt=yt&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},Tt))}};function It(t){return t&&"[object Function]"==={}.toString.call(t)}function Dt(t,e){if(1!==t.nodeType)return[];var n=getComputedStyle(t,null);return e?n[e]:n}function At(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function St(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Dt(t),n=e.overflow,i=e.overflowX,r=e.overflowY;return/(auto|scroll|overlay)/.test(n+r+i)?t:St(At(t))}var Ot={},Nt=function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"all";if(t=t.toString(),Ot.hasOwnProperty(t))return Ot[t];switch(t){case"11":Ot[t]=-1!==navigator.userAgent.indexOf("Trident");break;case"10":Ot[t]=-1!==navigator.appVersion.indexOf("MSIE 10");break;case"all":Ot[t]=-1!==navigator.userAgent.indexOf("Trident")||-1!==navigator.userAgent.indexOf("MSIE")}return Ot.all=Ot.all||Object.keys(Ot).some(function(t){return Ot[t]}),Ot[t]};function kt(t){if(!t)return document.documentElement;for(var e=Nt(10)?document.body:null,n=t.offsetParent;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TD","TABLE"].indexOf(n.nodeName)&&"static"===Dt(n,"position")?kt(n):n:t?t.ownerDocument.documentElement:document.documentElement}function Lt(t){return null!==t.parentNode?Lt(t.parentNode):t}function Pt(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,r=n?e:t,o=document.createRange();o.setStart(i,0),o.setEnd(r,0);var s,a,l=o.commonAncestorContainer;if(t!==l&&e!==l||i.contains(r))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&kt(s.firstElementChild)!==s?kt(l):l;var c=Lt(t);return c.host?Pt(c.host,e):Pt(t,Lt(e).host)}function xt(t){var e="top"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function jt(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function Rt(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Nt(10)?n["offset"+t]+i["margin"+("Height"===t?"Top":"Left")]+i["margin"+("Height"===t?"Bottom":"Right")]:0)}function Mt(){var t=document.body,e=document.documentElement,n=Nt(10)&&getComputedStyle(e);return{height:Rt("Height",t,e,n),width:Rt("Width",t,e,n)}}var Ht=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Wt=function(){function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}}(),Ft=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Ut=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function Bt(t){return Ut({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Kt(t){var e={};try{if(Nt(10)){e=t.getBoundingClientRect();var n=xt(t,"top"),i=xt(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var r={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},o="HTML"===t.nodeName?Mt():{},s=o.width||t.clientWidth||r.right-r.left,a=o.height||t.clientHeight||r.bottom-r.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=Dt(t);l-=jt(f,"x"),c-=jt(f,"y"),r.width-=l,r.height-=c}return Bt(r)}function Vt(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=Nt(10),r="HTML"===e.nodeName,o=Kt(t),s=Kt(e),a=St(t),l=Dt(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&"HTML"===e.nodeName&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var h=Bt({top:o.top-s.top-c,left:o.left-s.left-f,width:o.width,height:o.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);h.top-=c-u,h.bottom-=c-u,h.left-=f-d,h.right-=f-d,h.marginTop=u,h.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(h=function(t,e){var n=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=xt(e,"top"),r=xt(e,"left"),o=n?-1:1;return t.top+=i*o,t.bottom+=i*o,t.left+=r*o,t.right+=r*o,t}(h,e)),h}function Qt(t){if(!t||!t.parentElement||Nt())return document.documentElement;for(var e=t.parentElement;e&&"none"===Dt(e,"transform");)e=e.parentElement;return e||document.documentElement}function Yt(t,e,n,i){var r=4<arguments.length&&void 0!==arguments[4]&&arguments[4],o={top:0,left:0},s=r?Qt(t):Pt(t,e);if("viewport"===i)o=function(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Vt(t,n),r=Math.max(n.clientWidth,window.innerWidth||0),o=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:xt(n),a=e?0:xt(n,"left");return Bt({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:r,height:o})}(s,r);else{var a=void 0;"scrollParent"===i?"BODY"===(a=St(At(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Vt(a,s,r);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;return"BODY"!==n&&"HTML"!==n&&("fixed"===Dt(e,"position")||t(At(e)))}(s))o=l;else{var c=Mt(),f=c.height,h=c.width;o.top+=l.top-l.marginTop,o.bottom=f+l.top,o.left+=l.left-l.marginLeft,o.right=h+l.left}}return o.left+=n,o.top+=n,o.right-=n,o.bottom-=n,o}function Gt(t,e,i,n,r){var o=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Yt(i,n,o,r),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return Ut({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,n=t.height;return e>=i.clientWidth&&n>=i.clientHeight}),f=0<c.length?c[0].key:l[0].key,h=t.split("-")[1];return f+(h?"-"+h:"")}function qt(t,e,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return Vt(n,i?Qt(e):Pt(e,n),i)}function zt(t){var e=getComputedStyle(t),n=parseFloat(e.marginTop)+parseFloat(e.marginBottom),i=parseFloat(e.marginLeft)+parseFloat(e.marginRight);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Xt(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function Jt(t,e,n){n=n.split("-")[0];var i=zt(t),r={width:i.width,height:i.height},o=-1!==["right","left"].indexOf(n),s=o?"top":"left",a=o?"left":"top",l=o?"height":"width",c=o?"width":"height";return r[s]=e[s]+e[l]/2-i[l]/2,r[a]=n===a?e[a]-i[c]:e[Xt(a)],r}function Zt(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function $t(t,n,e){return(void 0===e?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=Zt(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",e))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var e=t.function||t.fn;t.enabled&&It(e)&&(n.offsets.popper=Bt(n.offsets.popper),n.offsets.reference=Bt(n.offsets.reference),n=e(n,t))}),n}function te(t,n){return t.some(function(t){var e=t.name;return t.enabled&&e===n})}function ee(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var r=e[i],o=r?""+r+n:t;if("undefined"!=typeof document.body.style[o])return o}return null}function ne(t){var e=t.ownerDocument;return e?e.defaultView:window}function ie(t,e,n,i){n.updateBound=i,ne(t).addEventListener("resize",n.updateBound,{passive:!0});var r=St(t);return function t(e,n,i,r){var o="BODY"===e.nodeName,s=o?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),o||t(St(s.parentNode),n,i,r),r.push(s)}(r,"scroll",n.updateBound,n.scrollParents),n.scrollElement=r,n.eventsEnabled=!0,n}function re(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,ne(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function oe(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function se(n,i){Object.keys(i).forEach(function(t){var e="";-1!==["width","height","top","right","bottom","left"].indexOf(t)&&oe(i[t])&&(e="px"),n.style[t]=i[t]+e})}function ae(t,e,n){var i=Zt(t,function(t){return t.name===e}),r=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!r){var o="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+o+" modifier in order to work, be sure to include it before "+o+"!")}return r}var le=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],ce=le.slice(3);function fe(t){var e=1<arguments.length&&void 0!==arguments[1]&&arguments[1],n=ce.indexOf(t),i=ce.slice(n+1).concat(ce.slice(0,n));return e?i.reverse():i}var he={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function ue(t,r,o,e){var s=[0,0],a=-1!==["right","left"].indexOf(e),n=t.split(/(\+|\-)/).map(function(t){return t.trim()}),i=n.indexOf(Zt(n,function(t){return-1!==t.search(/,|\s/)}));n[i]&&-1===n[i].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==i?[n.slice(0,i).concat([n[i].split(l)[0]]),[n[i].split(l)[1]].concat(n.slice(i+1))]:[n];return(c=c.map(function(t,e){var n=(1===e?!a:a)?"height":"width",i=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,i=!0,t):i?(t[t.length-1]+=e,i=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var r=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),o=+r[1],s=r[2];if(!o)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Bt(a)[e]/100*o}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*o;return o}(t,n,r,o)})})).forEach(function(n,i){n.forEach(function(t,e){oe(t)&&(s[i]+=t*("-"===n[e-1]?-1:1))})}),s}var de={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var r=t.offsets,o=r.reference,s=r.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",f={start:Ft({},l,o[l]),end:Ft({},l,o[l]+o[c]-s[c])};t.offsets.popper=Ut({},s,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,r=t.offsets,o=r.popper,s=r.reference,a=i.split("-")[0],l=void 0;return l=oe(+n)?[+n,0]:ue(n,o,s,a),"left"===a?(o.top+=l[0],o.left-=l[1]):"right"===a?(o.top+=l[0],o.left+=l[1]):"top"===a?(o.left+=l[0],o.top-=l[1]):"bottom"===a&&(o.left+=l[0],o.top+=l[1]),t.popper=o,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,i){var e=i.boundariesElement||kt(t.instance.popper);t.instance.reference===e&&(e=kt(e));var r=Yt(t.instance.popper,t.instance.reference,i.padding,e,t.positionFixed);i.boundaries=r;var n=i.priority,o=t.offsets.popper,s={primary:function(t){var e=o[t];return o[t]<r[t]&&!i.escapeWithReference&&(e=Math.max(o[t],r[t])),Ft({},t,e)},secondary:function(t){var e="right"===t?"left":"top",n=o[e];return o[t]>r[t]&&!i.escapeWithReference&&(n=Math.min(o[e],r[t]-("right"===t?o.width:o.height))),Ft({},e,n)}};return n.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";o=Ut({},o,s[e](t))}),t.offsets.popper=o,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,r=t.placement.split("-")[0],o=Math.floor,s=-1!==["top","bottom"].indexOf(r),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<o(i[l])&&(t.offsets.popper[l]=o(i[l])-n[c]),n[l]>o(i[a])&&(t.offsets.popper[l]=o(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!ae(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var r=t.placement.split("-")[0],o=t.offsets,s=o.popper,a=o.reference,l=-1!==["left","right"].indexOf(r),c=l?"height":"width",f=l?"Top":"Left",h=f.toLowerCase(),u=l?"left":"top",d=l?"bottom":"right",p=zt(i)[c];a[d]-p<s[h]&&(t.offsets.popper[h]-=s[h]-(a[d]-p)),a[h]+p>s[d]&&(t.offsets.popper[h]+=a[h]+p-s[d]),t.offsets.popper=Bt(t.offsets.popper);var g=a[h]+a[c]/2-p/2,m=Dt(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),E=g-t.offsets.popper[h]-_-v;return E=Math.max(Math.min(s[c]-p,E),0),t.arrowElement=i,t.offsets.arrow=(Ft(n={},h,Math.round(E)),Ft(n,u,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(p,g){if(te(p.instance.modifiers,"inner"))return p;if(p.flipped&&p.placement===p.originalPlacement)return p;var m=Yt(p.instance.popper,p.instance.reference,g.padding,g.boundariesElement,p.positionFixed),_=p.placement.split("-")[0],v=Xt(_),E=p.placement.split("-")[1]||"",y=[];switch(g.behavior){case he.FLIP:y=[_,v];break;case he.CLOCKWISE:y=fe(_);break;case he.COUNTERCLOCKWISE:y=fe(_,!0);break;default:y=g.behavior}return y.forEach(function(t,e){if(_!==t||y.length===e+1)return p;_=p.placement.split("-")[0],v=Xt(_);var n,i=p.offsets.popper,r=p.offsets.reference,o=Math.floor,s="left"===_&&o(i.right)>o(r.left)||"right"===_&&o(i.left)<o(r.right)||"top"===_&&o(i.bottom)>o(r.top)||"bottom"===_&&o(i.top)<o(r.bottom),a=o(i.left)<o(m.left),l=o(i.right)>o(m.right),c=o(i.top)<o(m.top),f=o(i.bottom)>o(m.bottom),h="left"===_&&a||"right"===_&&l||"top"===_&&c||"bottom"===_&&f,u=-1!==["top","bottom"].indexOf(_),d=!!g.flipVariations&&(u&&"start"===E&&a||u&&"end"===E&&l||!u&&"start"===E&&c||!u&&"end"===E&&f);(s||h||d)&&(p.flipped=!0,(s||h)&&(_=y[e+1]),d&&(E="end"===(n=E)?"start":"start"===n?"end":n),p.placement=_+(E?"-"+E:""),p.offsets.popper=Ut({},p.offsets.popper,Jt(p.instance.popper,p.offsets.reference,p.placement)),p=$t(p.instance.modifiers,p,"flip"))}),p},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,r=i.popper,o=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return r[s?"left":"top"]=o[n]-(a?r[s?"width":"height"]:0),t.placement=Xt(e),t.offsets.popper=Bt(r),t}},hide:{order:800,enabled:!0,fn:function(t){if(!ae(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Zt(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,r=t.offsets.popper,o=Zt(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==o&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==o?o:e.gpuAcceleration,a=Kt(kt(t.instance.popper)),l={position:r.position},c={left:Math.floor(r.left),top:Math.floor(r.top),bottom:Math.floor(r.bottom),right:Math.floor(r.right)},f="bottom"===n?"top":"bottom",h="right"===i?"left":"right",u=ee("transform"),d=void 0,p=void 0;if(p="bottom"===f?-a.height+c.bottom:c.top,d="right"===h?-a.width+c.right:c.left,s&&u)l[u]="translate3d("+d+"px, "+p+"px, 0)",l[f]=0,l[h]=0,l.willChange="transform";else{var g="bottom"===f?-1:1,m="right"===h?-1:1;l[f]=p*g,l[h]=d*m,l.willChange=f+", "+h}var _={"x-placement":t.placement};return t.attributes=Ut({},_,t.attributes),t.styles=Ut({},l,t.styles),t.arrowStyles=Ut({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return se(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&se(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,r){var o=qt(r,e,t,n.positionFixed),s=Gt(n.placement,o,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),se(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},pe=function(){function o(t,e){var n=this,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};Ht(this,o),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=wt(this.update.bind(this)),this.options=Ut({},o.Defaults,i),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=t&&t.jquery?t[0]:t,this.popper=e&&e.jquery?e[0]:e,this.options.modifiers={},Object.keys(Ut({},o.Defaults.modifiers,i.modifiers)).forEach(function(t){n.options.modifiers[t]=Ut({},o.Defaults.modifiers[t]||{},i.modifiers?i.modifiers[t]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return Ut({name:t},n.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&It(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Wt(o,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=qt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=Gt(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Jt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=$t(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,te(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[ee("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ie(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return re.call(this)}}]),o}();pe.Utils=("undefined"!=typeof window?window:global).PopperUtils,pe.placements=le,pe.Defaults=de;var ge,me,_e,ve,Ee,ye,be,Te,Ce,we,Ie,De,Ae,Se,Oe,Ne,ke,Le,Pe,xe,je,Re,Me,He,We,Fe,Ue,Be,Ke,Ve,Qe,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,on,sn,an,ln,cn,fn,hn,un,dn,pn,gn,mn,_n,vn,En,yn,bn,Tn,Cn,wn,In,Dn,An,Sn,On,Nn,kn,Ln,Pn,xn,jn,Rn,Mn,Hn,Wn,Fn,Un,Bn,Kn,Vn,Qn,Yn,Gn,qn,zn,Xn,Jn,Zn,$n,ti,ei,ni,ii,ri,oi,si,ai,li,ci,fi,hi,ui,di,pi,gi,mi,_i,vi,Ei,yi,bi=(me="dropdown",ve="."+(_e="bs.dropdown"),Ee=".data-api",ye=(ge=e).fn[me],be=new RegExp("38|40|27"),Te={HIDE:"hide"+ve,HIDDEN:"hidden"+ve,SHOW:"show"+ve,SHOWN:"shown"+ve,CLICK:"click"+ve,CLICK_DATA_API:"click"+ve+Ee,KEYDOWN_DATA_API:"keydown"+ve+Ee,KEYUP_DATA_API:"keyup"+ve+Ee},Ce="disabled",we="show",Ie="dropup",De="dropright",Ae="dropleft",Se="dropdown-menu-right",Oe="position-static",Ne='[data-toggle="dropdown"]',ke=".dropdown form",Le=".dropdown-menu",Pe=".navbar-nav",xe=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",je="top-start",Re="top-end",Me="bottom-start",He="bottom-end",We="right-start",Fe="left-start",Ue={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Be={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Ke=function(){function l(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=l.prototype;return t.toggle=function(){if(!this._element.disabled&&!ge(this._element).hasClass(Ce)){var t=l._getParentFromElement(this._element),e=ge(this._menu).hasClass(we);if(l._clearMenus(),!e){var n={relatedTarget:this._element},i=ge.Event(Te.SHOW,n);if(ge(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof pe)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:gt.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&ge(t).addClass(Oe),this._popper=new pe(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===ge(t).closest(Pe).length&&ge(document.body).children().on("mouseover",null,ge.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),ge(this._menu).toggleClass(we),ge(t).toggleClass(we).trigger(ge.Event(Te.SHOWN,n))}}}},t.dispose=function(){ge.removeData(this._element,_e),ge(this._element).off(ve),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;ge(this._element).on(Te.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=c({},this.constructor.Default,ge(this._element).data(),t),gt.typeCheckConfig(me,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=l._getParentFromElement(this._element);this._menu=ge(t).find(Le)[0]}return this._menu},t._getPlacement=function(){var t=ge(this._element).parent(),e=Me;return t.hasClass(Ie)?(e=je,ge(this._menu).hasClass(Se)&&(e=Re)):t.hasClass(De)?e=We:t.hasClass(Ae)?e=Fe:ge(this._menu).hasClass(Se)&&(e=He),e},t._detectNavbar=function(){return 0<ge(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=c({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},l._jQueryInterface=function(e){return this.each(function(){var t=ge(this).data(_e);if(t||(t=new l(this,"object"==typeof e?e:null),ge(this).data(_e,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},l._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=ge.makeArray(ge(Ne)),n=0;n<e.length;n++){var i=l._getParentFromElement(e[n]),r=ge(e[n]).data(_e),o={relatedTarget:e[n]};if(r){var s=r._menu;if(ge(i).hasClass(we)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&ge.contains(i,t.target))){var a=ge.Event(Te.HIDE,o);ge(i).trigger(a),a.isDefaultPrevented()||("ontouchstart"in document.documentElement&&ge(document.body).children().off("mouseover",null,ge.noop),e[n].setAttribute("aria-expanded","false"),ge(s).removeClass(we),ge(i).removeClass(we).trigger(ge.Event(Te.HIDDEN,o)))}}}},l._getParentFromElement=function(t){var e,n=gt.getSelectorFromElement(t);return n&&(e=ge(n)[0]),e||t.parentNode},l._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||ge(t.target).closest(Le).length)):be.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!ge(this).hasClass(Ce))){var e=l._getParentFromElement(this),n=ge(e).hasClass(we);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=ge(e).find(xe).get();if(0!==i.length){var r=i.indexOf(t.target);38===t.which&&0<r&&r--,40===t.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===t.which){var o=ge(e).find(Ne)[0];ge(o).trigger("focus")}ge(this).trigger("click")}}},s(l,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Ue}},{key:"DefaultType",get:function(){return Be}}]),l}(),ge(document).on(Te.KEYDOWN_DATA_API,Ne,Ke._dataApiKeydownHandler).on(Te.KEYDOWN_DATA_API,Le,Ke._dataApiKeydownHandler).on(Te.CLICK_DATA_API+" "+Te.KEYUP_DATA_API,Ke._clearMenus).on(Te.CLICK_DATA_API,Ne,function(t){t.preventDefault(),t.stopPropagation(),Ke._jQueryInterface.call(ge(this),"toggle")}).on(Te.CLICK_DATA_API,ke,function(t){t.stopPropagation()}),ge.fn[me]=Ke._jQueryInterface,ge.fn[me].Constructor=Ke,ge.fn[me].noConflict=function(){return ge.fn[me]=ye,Ke._jQueryInterface},Ke),Ti=(Qe="modal",Ge="."+(Ye="bs.modal"),qe=(Ve=e).fn[Qe],ze={backdrop:!0,keyboard:!0,focus:!0,show:!0},Xe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Je={HIDE:"hide"+Ge,HIDDEN:"hidden"+Ge,SHOW:"show"+Ge,SHOWN:"shown"+Ge,FOCUSIN:"focusin"+Ge,RESIZE:"resize"+Ge,CLICK_DISMISS:"click.dismiss"+Ge,KEYDOWN_DISMISS:"keydown.dismiss"+Ge,MOUSEUP_DISMISS:"mouseup.dismiss"+Ge,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Ge,CLICK_DATA_API:"click"+Ge+".data-api"},Ze="modal-scrollbar-measure",$e="modal-backdrop",tn="modal-open",en="fade",nn="show",rn={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},on=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=Ve(t).find(rn.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var t=r.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isTransitioning&&!this._isShown){Ve(this._element).hasClass(en)&&(this._isTransitioning=!0);var n=Ve.Event(Je.SHOW,{relatedTarget:t});Ve(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Ve(document.body).addClass(tn),this._setEscapeEvent(),this._setResizeEvent(),Ve(this._element).on(Je.CLICK_DISMISS,rn.DATA_DISMISS,function(t){return e.hide(t)}),Ve(this._dialog).on(Je.MOUSEDOWN_DISMISS,function(){Ve(e._element).one(Je.MOUSEUP_DISMISS,function(t){Ve(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var n=Ve.Event(Je.HIDE);if(Ve(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Ve(this._element).hasClass(en);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Ve(document).off(Je.FOCUSIN),Ve(this._element).removeClass(nn),Ve(this._element).off(Je.CLICK_DISMISS),Ve(this._dialog).off(Je.MOUSEDOWN_DISMISS),i){var r=gt.getTransitionDurationFromElement(this._element);Ve(this._element).one(gt.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){Ve.removeData(this._element,Ye),Ve(window,document,this._element,this._backdrop).off(Ge),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=c({},ze,t),gt.typeCheckConfig(Qe,t,Xe),t},t._showElement=function(t){var e=this,n=Ve(this._element).hasClass(en);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&gt.reflow(this._element),Ve(this._element).addClass(nn),this._config.focus&&this._enforceFocus();var i=Ve.Event(Je.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Ve(e._element).trigger(i)};if(n){var o=gt.getTransitionDurationFromElement(this._element);Ve(this._dialog).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}else r()},t._enforceFocus=function(){var e=this;Ve(document).off(Je.FOCUSIN).on(Je.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===Ve(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?Ve(this._element).on(Je.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||Ve(this._element).off(Je.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?Ve(window).on(Je.RESIZE,function(t){return e.handleUpdate(t)}):Ve(window).off(Je.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Ve(document.body).removeClass(tn),t._resetAdjustments(),t._resetScrollbar(),Ve(t._element).trigger(Je.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(Ve(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=Ve(this._element).hasClass(en)?en:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=$e,n&&Ve(this._backdrop).addClass(n),Ve(this._backdrop).appendTo(document.body),Ve(this._element).on(Je.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&gt.reflow(this._backdrop),Ve(this._backdrop).addClass(nn),!t)return;if(!n)return void t();var i=gt.getTransitionDurationFromElement(this._backdrop);Ve(this._backdrop).one(gt.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Ve(this._backdrop).removeClass(nn);var r=function(){e._removeBackdrop(),t&&t()};if(Ve(this._element).hasClass(en)){var o=gt.getTransitionDurationFromElement(this._backdrop);Ve(this._backdrop).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}else r()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){Ve(rn.FIXED_CONTENT).each(function(t,e){var n=Ve(e)[0].style.paddingRight,i=Ve(e).css("padding-right");Ve(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Ve(rn.STICKY_CONTENT).each(function(t,e){var n=Ve(e)[0].style.marginRight,i=Ve(e).css("margin-right");Ve(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")}),Ve(rn.NAVBAR_TOGGLER).each(function(t,e){var n=Ve(e)[0].style.marginRight,i=Ve(e).css("margin-right");Ve(e).data("margin-right",n).css("margin-right",parseFloat(i)+r._scrollbarWidth+"px")});var t=document.body.style.paddingRight,e=Ve(document.body).css("padding-right");Ve(document.body).data("padding-right",t).css("padding-right",parseFloat(e)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){Ve(rn.FIXED_CONTENT).each(function(t,e){var n=Ve(e).data("padding-right");"undefined"!=typeof n&&Ve(e).css("padding-right",n).removeData("padding-right")}),Ve(rn.STICKY_CONTENT+", "+rn.NAVBAR_TOGGLER).each(function(t,e){var n=Ve(e).data("margin-right");"undefined"!=typeof n&&Ve(e).css("margin-right",n).removeData("margin-right")});var t=Ve(document.body).data("padding-right");"undefined"!=typeof t&&Ve(document.body).css("padding-right",t).removeData("padding-right")},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=Ze,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},r._jQueryInterface=function(n,i){return this.each(function(){var t=Ve(this).data(Ye),e=c({},r.Default,Ve(this).data(),"object"==typeof n&&n);if(t||(t=new r(this,e),Ve(this).data(Ye,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},s(r,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return ze}}]),r}(),Ve(document).on(Je.CLICK_DATA_API,rn.DATA_TOGGLE,function(t){var e,n=this,i=gt.getSelectorFromElement(this);i&&(e=Ve(i)[0]);var r=Ve(e).data(Ye)?"toggle":c({},Ve(e).data(),Ve(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var o=Ve(e).one(Je.SHOW,function(t){t.isDefaultPrevented()||o.one(Je.HIDDEN,function(){Ve(n).is(":visible")&&n.focus()})});on._jQueryInterface.call(Ve(e),r,this)}),Ve.fn[Qe]=on._jQueryInterface,Ve.fn[Qe].Constructor=on,Ve.fn[Qe].noConflict=function(){return Ve.fn[Qe]=qe,on._jQueryInterface},on),Ci=(an="tooltip",cn="."+(ln="bs.tooltip"),fn=(sn=e).fn[an],hn="bs-tooltip",un=new RegExp("(^|\\s)"+hn+"\\S+","g"),gn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!(pn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(dn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},_n="out",vn={HIDE:"hide"+cn,HIDDEN:"hidden"+cn,SHOW:(mn="show")+cn,SHOWN:"shown"+cn,INSERTED:"inserted"+cn,CLICK:"click"+cn,FOCUSIN:"focusin"+cn,FOCUSOUT:"focusout"+cn,MOUSEENTER:"mouseenter"+cn,MOUSELEAVE:"mouseleave"+cn},En="fade",yn="show",bn=".tooltip-inner",Tn=".arrow",Cn="hover",wn="focus",In="click",Dn="manual",An=function(){function i(t,e){if("undefined"==typeof pe)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=sn(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),sn(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(sn(this.getTipElement()).hasClass(yn))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),sn.removeData(this.element,this.constructor.DATA_KEY),sn(this.element).off(this.constructor.EVENT_KEY),sn(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&sn(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===sn(this.element).css("display"))throw new Error("Please use show on visible elements");var t=sn.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){sn(this.element).trigger(t);var n=sn.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=gt.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&sn(i).addClass(En);var o="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var a=!1===this.config.container?document.body:sn(this.config.container);sn(i).data(this.constructor.DATA_KEY,this),sn.contains(this.element.ownerDocument.documentElement,this.tip)||sn(i).appendTo(a),sn(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new pe(this.element,i,{placement:s,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Tn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),sn(i).addClass(yn),"ontouchstart"in document.documentElement&&sn(document.body).children().on("mouseover",null,sn.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,sn(e.element).trigger(e.constructor.Event.SHOWN),t===_n&&e._leave(null,e)};if(sn(this.tip).hasClass(En)){var c=gt.getTransitionDurationFromElement(this.tip);sn(this.tip).one(gt.TRANSITION_END,l).emulateTransitionEnd(c)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=sn.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==mn&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),sn(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(sn(this.element).trigger(i),!i.isDefaultPrevented()){if(sn(n).removeClass(yn),"ontouchstart"in document.documentElement&&sn(document.body).children().off("mouseover",null,sn.noop),this._activeTrigger[In]=!1,this._activeTrigger[wn]=!1,this._activeTrigger[Cn]=!1,sn(this.tip).hasClass(En)){var o=gt.getTransitionDurationFromElement(n);sn(n).one(gt.TRANSITION_END,r).emulateTransitionEnd(o)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){sn(this.getTipElement()).addClass(hn+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||sn(this.config.template)[0],this.tip},t.setContent=function(){var t=sn(this.getTipElement());this.setElementContent(t.find(bn),this.getTitle()),t.removeClass(En+" "+yn)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?sn(e).parent().is(t)||t.empty().append(e):t.text(sn(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return pn[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)sn(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Dn){var e=t===Cn?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Cn?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;sn(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}sn(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=c({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||sn(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),sn(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?wn:Cn]=!0),sn(e.getTipElement()).hasClass(yn)||e._hoverState===mn?e._hoverState=mn:(clearTimeout(e._timeout),e._hoverState=mn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===mn&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||sn(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),sn(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?wn:Cn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=_n,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===_n&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=c({},this.constructor.Default,sn(this.element).data(),t)).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),gt.typeCheckConfig(an,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=sn(this.getTipElement()),e=t.attr("class").match(un);null!==e&&0<e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(sn(t).removeClass(En),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=sn(this).data(ln),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),sn(this).data(ln,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return gn}},{key:"NAME",get:function(){return an}},{key:"DATA_KEY",get:function(){return ln}},{key:"Event",get:function(){return vn}},{key:"EVENT_KEY",get:function(){return cn}},{key:"DefaultType",get:function(){return dn}}]),i}(),sn.fn[an]=An._jQueryInterface,sn.fn[an].Constructor=An,sn.fn[an].noConflict=function(){return sn.fn[an]=fn,An._jQueryInterface},An),wi=(On="popover",kn="."+(Nn="bs.popover"),Ln=(Sn=e).fn[On],Pn="bs-popover",xn=new RegExp("(^|\\s)"+Pn+"\\S+","g"),jn=c({},Ci.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Rn=c({},Ci.DefaultType,{content:"(string|element|function)"}),Mn="fade",Wn=".popover-header",Fn=".popover-body",Un={HIDE:"hide"+kn,HIDDEN:"hidden"+kn,SHOW:(Hn="show")+kn,SHOWN:"shown"+kn,INSERTED:"inserted"+kn,CLICK:"click"+kn,FOCUSIN:"focusin"+kn,FOCUSOUT:"focusout"+kn,MOUSEENTER:"mouseenter"+kn,MOUSELEAVE:"mouseleave"+kn},Bn=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){Sn(this.getTipElement()).addClass(Pn+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||Sn(this.config.template)[0],this.tip},r.setContent=function(){var t=Sn(this.getTipElement());this.setElementContent(t.find(Wn),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Fn),e),t.removeClass(Mn+" "+Hn)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=Sn(this.getTipElement()),e=t.attr("class").match(xn);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=Sn(this).data(Nn),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),Sn(this).data(Nn,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return jn}},{key:"NAME",get:function(){return On}},{key:"DATA_KEY",get:function(){return Nn}},{key:"Event",get:function(){return Un}},{key:"EVENT_KEY",get:function(){return kn}},{key:"DefaultType",get:function(){return Rn}}]),i}(Ci),Sn.fn[On]=Bn._jQueryInterface,Sn.fn[On].Constructor=Bn,Sn.fn[On].noConflict=function(){return Sn.fn[On]=Ln,Bn._jQueryInterface},Bn),Ii=(Vn="scrollspy",Yn="."+(Qn="bs.scrollspy"),Gn=(Kn=e).fn[Vn],qn={offset:10,method:"auto",target:""},zn={offset:"number",method:"string",target:"(string|element)"},Xn={ACTIVATE:"activate"+Yn,SCROLL:"scroll"+Yn,LOAD_DATA_API:"load"+Yn+".data-api"},Jn="dropdown-item",Zn="active",$n={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},ti="offset",ei="position",ni=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+$n.NAV_LINKS+","+this._config.target+" "+$n.LIST_ITEMS+","+this._config.target+" "+$n.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Kn(this._scrollElement).on(Xn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?ti:ei,r="auto"===this._config.method?t:this._config.method,o=r===ei?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Kn.makeArray(Kn(this._selector)).map(function(t){var e,n=gt.getSelectorFromElement(t);if(n&&(e=Kn(n)[0]),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[Kn(e)[r]().top+o,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Kn.removeData(this._element,Qn),Kn(this._scrollElement).off(Yn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=c({},qn,t)).target){var e=Kn(t.target).attr("id");e||(e=gt.getUID(Vn),Kn(t.target).attr("id",e)),t.target="#"+e}return gt.typeCheckConfig(Vn,t,zn),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",");t=t.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var n=Kn(t.join(","));n.hasClass(Jn)?(n.closest($n.DROPDOWN).find($n.DROPDOWN_TOGGLE).addClass(Zn),n.addClass(Zn)):(n.addClass(Zn),n.parents($n.NAV_LIST_GROUP).prev($n.NAV_LINKS+", "+$n.LIST_ITEMS).addClass(Zn),n.parents($n.NAV_LIST_GROUP).prev($n.NAV_ITEMS).children($n.NAV_LINKS).addClass(Zn)),Kn(this._scrollElement).trigger(Xn.ACTIVATE,{relatedTarget:e})},t._clear=function(){Kn(this._selector).filter($n.ACTIVE).removeClass(Zn)},n._jQueryInterface=function(e){return this.each(function(){var t=Kn(this).data(Qn);if(t||(t=new n(this,"object"==typeof e&&e),Kn(this).data(Qn,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return qn}}]),n}(),Kn(window).on(Xn.LOAD_DATA_API,function(){for(var t=Kn.makeArray(Kn($n.DATA_SPY)),e=t.length;e--;){var n=Kn(t[e]);ni._jQueryInterface.call(n,n.data())}}),Kn.fn[Vn]=ni._jQueryInterface,Kn.fn[Vn].Constructor=ni,Kn.fn[Vn].noConflict=function(){return Kn.fn[Vn]=Gn,ni._jQueryInterface},ni),Di=(oi="."+(ri="bs.tab"),si=(ii=e).fn.tab,ai={HIDE:"hide"+oi,HIDDEN:"hidden"+oi,SHOW:"show"+oi,SHOWN:"shown"+oi,CLICK_DATA_API:"click"+oi+".data-api"},li="dropdown-menu",ci="active",fi="disabled",hi="fade",ui="show",di=".dropdown",pi=".nav, .list-group",gi=".active",mi="> li > .active",_i='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',vi=".dropdown-toggle",Ei="> .dropdown-menu .active",yi=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&ii(this._element).hasClass(ci)||ii(this._element).hasClass(fi))){var t,i,e=ii(this._element).closest(pi)[0],r=gt.getSelectorFromElement(this._element);if(e){var o="UL"===e.nodeName?mi:gi;i=(i=ii.makeArray(ii(e).find(o)))[i.length-1]}var s=ii.Event(ai.HIDE,{relatedTarget:this._element}),a=ii.Event(ai.SHOW,{relatedTarget:i});if(i&&ii(i).trigger(s),ii(this._element).trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){r&&(t=ii(r)[0]),this._activate(this._element,e);var l=function(){var t=ii.Event(ai.HIDDEN,{relatedTarget:n._element}),e=ii.Event(ai.SHOWN,{relatedTarget:i});ii(i).trigger(t),ii(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){ii.removeData(this._element,ri),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?ii(e).find(mi):ii(e).children(gi))[0],o=n&&r&&ii(r).hasClass(hi),s=function(){return i._transitionComplete(t,r,n)};if(r&&o){var a=gt.getTransitionDurationFromElement(r);ii(r).one(gt.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},t._transitionComplete=function(t,e,n){if(e){ii(e).removeClass(ui+" "+ci);var i=ii(e.parentNode).find(Ei)[0];i&&ii(i).removeClass(ci),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(ii(t).addClass(ci),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),gt.reflow(t),ii(t).addClass(ui),t.parentNode&&ii(t.parentNode).hasClass(li)){var r=ii(t).closest(di)[0];r&&ii(r).find(vi).addClass(ci),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=ii(this),e=t.data(ri);if(e||(e=new i(this),t.data(ri,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),ii(document).on(ai.CLICK_DATA_API,_i,function(t){t.preventDefault(),yi._jQueryInterface.call(ii(this),"show")}),ii.fn.tab=yi._jQueryInterface,ii.fn.tab.Constructor=yi,ii.fn.tab.noConflict=function(){return ii.fn.tab=si,yi._jQueryInterface},yi);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=gt,t.Alert=mt,t.Button=_t,t.Carousel=vt,t.Collapse=Et,t.Dropdown=bi,t.Modal=Ti,t.Popover=wi,t.Scrollspy=Ii,t.Tab=Di,t.Tooltip=Ci,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file
diff --git a/library/bootstrap/js/bootstrap.bundle.min.js.map b/library/bootstrap/js/bootstrap.bundle.min.js.map
index c234ff2cd..130a70801 100644
--- a/library/bootstrap/js/bootstrap.bundle.min.js.map
+++ b/library/bootstrap/js/bootstrap.bundle.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../rollupPluginBabelHelpers","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Util","transition","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","_this","prefix","Math","random","document","getElementById","element","selector","getAttribute","charAt","escapeSelector","substr","replace","find","err","offsetHeight","trigger","end","Boolean","obj","nodeType","componentName","config","configTypes","property","expectedTypes","value","valueType","isElement","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","window","QUnit","fn","emulateTransitionEnd","supportsTransitionEnd","event","special","is","handleObj","handler","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","closeEvent","CLOSE","removeClass","hasClass","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","noConflict","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","FOCUS_BLUR_DATA_API","Carousel","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","nextWhenVisible","hidden","css","prev","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","typeCheckConfig","keyboard","KEYDOWN","_this2","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","wrap","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","ACTIVE","nextIndicator","children","addClass","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","reflow","_this3","action","slide","TypeError","_dataApiClickHandler","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","DATA_TOGGLE","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","not","startEvent","SHOW","dimension","_getDimension","style","attr","setTransitioning","complete","SHOWN","scrollSize","slice","HIDE","getBoundingClientRect","HIDDEN","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","isBrowser","longerTimeoutBrowsers","timeoutDuration","navigator","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","getOffsetParent","offsetParent","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","parseFloat","isIE10","isIE10$1","appVersion","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","getClientRect","offsets","right","left","bottom","top","rect","scrollTop","scrollLeft","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getBoundaries","popper","reference","padding","boundariesElement","relativeOffset","boundaries","innerWidth","innerHeight","boundariesNode","isFixed","_getWindowSizes","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","forEach","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","defaultView","setupEventListeners","options","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","inner","subtractLength","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","position","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","removeAttribute","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","removeChild","Utils","global","PopperUtils","Dropdown","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","boundary","_getPopperConfig","noop","destroy","CLICK","stopPropagation","constructor","_getPlacement","$parentDropdown","offsetConf","toggles","context","dropdownMenu","hideEvent","_dataApiKeydownHandler","items","get","KEYDOWN_DATA_API","KEYUP_DATA_API","e","Modal","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","ELEMENT_NODE","appendChild","display","_enforceFocus","shownEvent","transitionComplete","_this4","has","KEYDOWN_DISMISS","RESIZE","_this6","_resetAdjustments","_resetScrollbar","_this7","_removeBackdrop","animate","backdrop","doAnimate","createElement","className","appendTo","_this8","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","_this9","STICKY_CONTENT","actualMargin","calculatedMargin","NAVBAR_TOGGLER","margin","scrollDiv","scrollbarWidth","Tooltip","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","_TRANSITION_DURATION","_cleanTipClass","getTitle","CLASS_PREFIX","template","$tip","setElementContent","content","empty","append","text","title","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","tabClass","join","initConfigAnimation","Popover","subClass","superClass","create","__proto__","_getContent","ScrollSpy","OffsetMethod","_scrollElement","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","version"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.12.9\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element && element.offsetParent;\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n if (element) {\n return element.ownerDocument.documentElement;\n }\n\n return document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function () {\n if (isIE10 === undefined) {\n isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n }\n return isIE10;\n};\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE10$1() ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE10$1() && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n if (isIE10$1()) {\n try {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } catch (err) {}\n } else {\n rect = element.getBoundingClientRect();\n }\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var isIE10 = isIE10$1();\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = getScroll(html);\n var scrollLeft = getScroll(html, 'left');\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = { top: 0, left: 0 };\n var offsetParent = findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var commonOffsetParent = findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length - 1; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.left = '';\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // floor sides to avoid blurry text\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.floor(popper.top),\n bottom: Math.floor(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndTest() {\n if (typeof window !== 'undefined' && window.QUnit) {\n return false\n }\n\n return {\n end: 'transitionend'\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n function escapeId(selector) {\n // We escape IDs in case of special selectors (selector = '#myId:something')\n // $.escapeSelector does not exist in jQuery < 3\n selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1)\n : selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n return selector\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n // If it's an ID\n if (selector.charAt(0) === '#') {\n selector = escapeId(selector)\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!Util.supportsTransitionEnd() ||\n !$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n let element = this._element\n // For dropup with alignment we use the parent as popper container\n if ($(parent).hasClass(ClassName.DROPUP)) {\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent\n }\n }\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(element, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $('body').css('padding-right')\n $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('body').css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (Util.supportsTransitionEnd() &&\n $(this.tip).hasClass(ClassName.FADE)) {\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...config\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n Util.supportsTransitionEnd() &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../../rollupPluginBabelHelpers","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","obj","value","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Default","DefaultType","Direction","Carousel","Dimension","Collapse","Util","TRANSITION_END","transitionEndEmulator","duration","_this","this","called","one","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","find","err","getTransitionDurationFromElement","transitionDuration","css","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","hasOwnProperty","call","expectedTypes","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","is","handleObj","handler","apply","CLOSE","CLOSED","CLICK_DATA_API","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","get","on","noConflict","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","interval","keyboard","slide","pause","wrap","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_this2","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","directionalClassName","orderClassName","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","SHOW","SHOWN","HIDE","HIDDEN","ACTIVES","DATA_TOGGLE","_isTransitioning","_triggerArray","id","tabToggles","elem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","slice","getBoundingClientRect","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","isBrowser","longerTimeoutBrowsers","timeoutDuration","navigator","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","ownerDocument","_getStyleComputedProp","overflow","overflowX","overflowY","cache","isIE","version","undefined","appVersion","all","some","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","_extends","assign","getClientRect","offsets","right","left","bottom","top","rect","scrollTop","scrollLeft","e","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isIE10","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","getWindow","defaultView","setupEventListeners","options","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","offset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","inner","subtractLength","bound","attributes","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","position","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","removeAttribute","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","removeChild","Utils","global","PopperUtils","REGEXP_KEYDOWN","AttachmentMap","Dropdown","Modal","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","Tooltip","Popover","OffsetMethod","ScrollSpy","Tab","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","boundary","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","referenceElement","_getPopperConfig","noop","destroy","stopPropagation","constructor","_getPlacement","$parentDropdown","offsetConf","popperConfig","toggles","context","dropdownMenu","hideEvent","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this4","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","animation","template","title","delay","AUTO","TOP","RIGHT","BOTTOM","LEFT","container","fallbackPlacement","INSERTED","FOCUSOUT","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","eventIn","eventOut","_fixTitle","titleType","tabClass","join","initConfigAnimation","_Tooltip","subClass","superClass","create","__proto__","_getContent","method","ACTIVATE","SCROLL","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","scrollSpys","$spy","previous","listElement","itemSelector","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Tells if you are running Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @argument {number} version to check\n * @returns {Boolean} isIE\n */\nvar cache = {};\n\nvar isIE = function () {\n var version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all';\n\n version = version.toString();\n if (cache.hasOwnProperty(version)) {\n return cache[version];\n }\n switch (version) {\n case '11':\n cache[version] = navigator.userAgent.indexOf('Trident') !== -1;\n break;\n case '10':\n cache[version] = navigator.appVersion.indexOf('MSIE 10') !== -1;\n break;\n case 'all':\n cache[version] = navigator.userAgent.indexOf('Trident') !== -1 || navigator.userAgent.indexOf('MSIE') !== -1;\n break;\n }\n\n //Set IE\n cache.all = cache.all || Object.keys(cache).some(function (key) {\n return cache[key];\n });\n return cache[version];\n};\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // floor sides to avoid blurry text\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.floor(popper.top),\n bottom: Math.floor(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(document.body).css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...config\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]} \ No newline at end of file
diff --git a/library/bootstrap/js/bootstrap.js b/library/bootstrap/js/bootstrap.js
index 6d9549d99..546a94f85 100644
--- a/library/bootstrap/js/bootstrap.js
+++ b/library/bootstrap/js/bootstrap.js
@@ -1,3894 +1,3925 @@
/*!
- * Bootstrap v4.0.0 (https://getbootstrap.com)
+ * Bootstrap v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
- typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
- (factory((global.bootstrap = {}),global.jQuery,global.Popper));
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :
+ typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :
+ (factory((global.bootstrap = {}),global.jQuery,global.Popper));
}(this, (function (exports,$,Popper) { 'use strict';
-$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
-Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
+ $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
+ Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
-function _defineProperties(target, props) {
- for (var i = 0; i < props.length; i++) {
- var descriptor = props[i];
- descriptor.enumerable = descriptor.enumerable || false;
- descriptor.configurable = true;
- if ("value" in descriptor) descriptor.writable = true;
- Object.defineProperty(target, descriptor.key, descriptor);
- }
-}
-
-function _createClass(Constructor, protoProps, staticProps) {
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
- if (staticProps) _defineProperties(Constructor, staticProps);
- return Constructor;
-}
-
-function _extends() {
- _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];
-
- for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
+ function _defineProperties(target, props) {
+ for (var i = 0; i < props.length; i++) {
+ var descriptor = props[i];
+ descriptor.enumerable = descriptor.enumerable || false;
+ descriptor.configurable = true;
+ if ("value" in descriptor) descriptor.writable = true;
+ Object.defineProperty(target, descriptor.key, descriptor);
}
-
- return target;
- };
-
- return _extends.apply(this, arguments);
-}
-
-function _inheritsLoose(subClass, superClass) {
- subClass.prototype = Object.create(superClass.prototype);
- subClass.prototype.constructor = subClass;
- subClass.__proto__ = superClass;
-}
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): util.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Util = function ($$$1) {
- /**
- * ------------------------------------------------------------------------
- * Private TransitionEnd Helpers
- * ------------------------------------------------------------------------
- */
- var transition = false;
- var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
-
- function toType(obj) {
- return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
}
- function getSpecialTransitionEndEvent() {
- return {
- bindType: transition.end,
- delegateType: transition.end,
- handle: function handle(event) {
- if ($$$1(event.target).is(this)) {
- return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
- }
-
- return undefined; // eslint-disable-line no-undefined
- }
- };
+ function _createClass(Constructor, protoProps, staticProps) {
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
+ if (staticProps) _defineProperties(Constructor, staticProps);
+ return Constructor;
}
- function transitionEndTest() {
- if (typeof window !== 'undefined' && window.QUnit) {
- return false;
+ function _defineProperty(obj, key, value) {
+ if (key in obj) {
+ Object.defineProperty(obj, key, {
+ value: value,
+ enumerable: true,
+ configurable: true,
+ writable: true
+ });
+ } else {
+ obj[key] = value;
}
- return {
- end: 'transitionend'
- };
+ return obj;
}
- function transitionEndEmulator(duration) {
- var _this = this;
+ function _objectSpread(target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i] != null ? arguments[i] : {};
+ var ownKeys = Object.keys(source);
- var called = false;
- $$$1(this).one(Util.TRANSITION_END, function () {
- called = true;
- });
- setTimeout(function () {
- if (!called) {
- Util.triggerTransitionEnd(_this);
+ if (typeof Object.getOwnPropertySymbols === 'function') {
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
+ }));
}
- }, duration);
- return this;
- }
- function setTransitionEndSupport() {
- transition = transitionEndTest();
- $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
-
- if (Util.supportsTransitionEnd()) {
- $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
+ ownKeys.forEach(function (key) {
+ _defineProperty(target, key, source[key]);
+ });
}
+
+ return target;
}
- function escapeId(selector) {
- // We escape IDs in case of special selectors (selector = '#myId:something')
- // $.escapeSelector does not exist in jQuery < 3
- selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
- return selector;
+ function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+ subClass.__proto__ = superClass;
}
+
/**
* --------------------------------------------------------------------------
- * Public Util Api
+ * Bootstrap (v4.1.0): util.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
+ var Util = function ($$$1) {
+ /**
+ * ------------------------------------------------------------------------
+ * Private TransitionEnd Helpers
+ * ------------------------------------------------------------------------
+ */
+ var TRANSITION_END = 'transitionend';
+ var MAX_UID = 1000000;
+ var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ function toType(obj) {
+ return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+ }
- var Util = {
- TRANSITION_END: 'bsTransitionEnd',
- getUID: function getUID(prefix) {
- do {
- // eslint-disable-next-line no-bitwise
- prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
- } while (document.getElementById(prefix));
+ function getSpecialTransitionEndEvent() {
+ return {
+ bindType: TRANSITION_END,
+ delegateType: TRANSITION_END,
+ handle: function handle(event) {
+ if ($$$1(event.target).is(this)) {
+ return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
+ }
+
+ return undefined; // eslint-disable-line no-undefined
+ }
+ };
+ }
- return prefix;
- },
- getSelectorFromElement: function getSelectorFromElement(element) {
- var selector = element.getAttribute('data-target');
+ function transitionEndEmulator(duration) {
+ var _this = this;
- if (!selector || selector === '#') {
- selector = element.getAttribute('href') || '';
- } // If it's an ID
+ var called = false;
+ $$$1(this).one(Util.TRANSITION_END, function () {
+ called = true;
+ });
+ setTimeout(function () {
+ if (!called) {
+ Util.triggerTransitionEnd(_this);
+ }
+ }, duration);
+ return this;
+ }
+ function setTransitionEndSupport() {
+ $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
+ $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
+ }
+ /**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
- if (selector.charAt(0) === '#') {
- selector = escapeId(selector);
- }
- try {
- var $selector = $$$1(document).find(selector);
- return $selector.length > 0 ? selector : null;
- } catch (err) {
- return null;
- }
- },
- reflow: function reflow(element) {
- return element.offsetHeight;
- },
- triggerTransitionEnd: function triggerTransitionEnd(element) {
- $$$1(element).trigger(transition.end);
- },
- supportsTransitionEnd: function supportsTransitionEnd() {
- return Boolean(transition);
- },
- isElement: function isElement(obj) {
- return (obj[0] || obj).nodeType;
- },
- typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
- for (var property in configTypes) {
- if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
- var expectedTypes = configTypes[property];
- var value = config[property];
- var valueType = value && Util.isElement(value) ? 'element' : toType(value);
-
- if (!new RegExp(expectedTypes).test(valueType)) {
- throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ var Util = {
+ TRANSITION_END: 'bsTransitionEnd',
+ getUID: function getUID(prefix) {
+ do {
+ // eslint-disable-next-line no-bitwise
+ prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
+ } while (document.getElementById(prefix));
+
+ return prefix;
+ },
+ getSelectorFromElement: function getSelectorFromElement(element) {
+ var selector = element.getAttribute('data-target');
+
+ if (!selector || selector === '#') {
+ selector = element.getAttribute('href') || '';
+ }
+
+ try {
+ var $selector = $$$1(document).find(selector);
+ return $selector.length > 0 ? selector : null;
+ } catch (err) {
+ return null;
+ }
+ },
+ getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ var transitionDuration = $$$1(element).css('transition-duration');
+ var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
+ },
+ reflow: function reflow(element) {
+ return element.offsetHeight;
+ },
+ triggerTransitionEnd: function triggerTransitionEnd(element) {
+ $$$1(element).trigger(TRANSITION_END);
+ },
+ // TODO: Remove in v5
+ supportsTransitionEnd: function supportsTransitionEnd() {
+ return Boolean(TRANSITION_END);
+ },
+ isElement: function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ },
+ typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
+ for (var property in configTypes) {
+ if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && Util.isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
}
}
}
- }
- };
- setTransitionEndSupport();
- return Util;
-}($);
-
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): alert.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-
-var Alert = function ($$$1) {
+ };
+ setTransitionEndSupport();
+ return Util;
+ }($);
+
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): alert.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'alert';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.alert';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 150;
- var Selector = {
- DISMISS: '[data-dismiss="alert"]'
- };
- var Event = {
- CLOSE: "close" + EVENT_KEY,
- CLOSED: "closed" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- ALERT: 'alert',
- FADE: 'fade',
- SHOW: 'show'
+
+ var Alert = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'alert';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.alert';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var Selector = {
+ DISMISS: '[data-dismiss="alert"]'
+ };
+ var Event = {
+ CLOSE: "close" + EVENT_KEY,
+ CLOSED: "closed" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ ALERT: 'alert',
+ FADE: 'fade',
+ SHOW: 'show'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Alert =
- /*#__PURE__*/
- function () {
- function Alert(element) {
- this._element = element;
- } // Getters
+ var Alert =
+ /*#__PURE__*/
+ function () {
+ function Alert(element) {
+ this._element = element;
+ } // Getters
- var _proto = Alert.prototype;
+ var _proto = Alert.prototype;
- // Public
- _proto.close = function close(element) {
- element = element || this._element;
+ // Public
+ _proto.close = function close(element) {
+ element = element || this._element;
- var rootElement = this._getRootElement(element);
+ var rootElement = this._getRootElement(element);
- var customEvent = this._triggerCloseEvent(rootElement);
+ var customEvent = this._triggerCloseEvent(rootElement);
- if (customEvent.isDefaultPrevented()) {
- return;
- }
+ if (customEvent.isDefaultPrevented()) {
+ return;
+ }
- this._removeElement(rootElement);
- };
+ this._removeElement(rootElement);
+ };
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._element = null;
- }; // Private
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // Private
- _proto._getRootElement = function _getRootElement(element) {
- var selector = Util.getSelectorFromElement(element);
- var parent = false;
+ _proto._getRootElement = function _getRootElement(element) {
+ var selector = Util.getSelectorFromElement(element);
+ var parent = false;
- if (selector) {
- parent = $$$1(selector)[0];
- }
+ if (selector) {
+ parent = $$$1(selector)[0];
+ }
- if (!parent) {
- parent = $$$1(element).closest("." + ClassName.ALERT)[0];
- }
+ if (!parent) {
+ parent = $$$1(element).closest("." + ClassName.ALERT)[0];
+ }
- return parent;
- };
+ return parent;
+ };
- _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
- var closeEvent = $$$1.Event(Event.CLOSE);
- $$$1(element).trigger(closeEvent);
- return closeEvent;
- };
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
+ var closeEvent = $$$1.Event(Event.CLOSE);
+ $$$1(element).trigger(closeEvent);
+ return closeEvent;
+ };
- _proto._removeElement = function _removeElement(element) {
- var _this = this;
+ _proto._removeElement = function _removeElement(element) {
+ var _this = this;
- $$$1(element).removeClass(ClassName.SHOW);
+ $$$1(element).removeClass(ClassName.SHOW);
- if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
- this._destroyElement(element);
+ if (!$$$1(element).hasClass(ClassName.FADE)) {
+ this._destroyElement(element);
- return;
- }
+ return;
+ }
- $$$1(element).one(Util.TRANSITION_END, function (event) {
- return _this._destroyElement(element, event);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- };
+ var transitionDuration = Util.getTransitionDurationFromElement(element);
+ $$$1(element).one(Util.TRANSITION_END, function (event) {
+ return _this._destroyElement(element, event);
+ }).emulateTransitionEnd(transitionDuration);
+ };
- _proto._destroyElement = function _destroyElement(element) {
- $$$1(element).detach().trigger(Event.CLOSED).remove();
- }; // Static
+ _proto._destroyElement = function _destroyElement(element) {
+ $$$1(element).detach().trigger(Event.CLOSED).remove();
+ }; // Static
- Alert._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $element = $$$1(this);
- var data = $element.data(DATA_KEY);
+ Alert._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $element = $$$1(this);
+ var data = $element.data(DATA_KEY);
- if (!data) {
- data = new Alert(this);
- $element.data(DATA_KEY, data);
- }
+ if (!data) {
+ data = new Alert(this);
+ $element.data(DATA_KEY, data);
+ }
- if (config === 'close') {
- data[config](this);
- }
- });
- };
+ if (config === 'close') {
+ data[config](this);
+ }
+ });
+ };
- Alert._handleDismiss = function _handleDismiss(alertInstance) {
- return function (event) {
- if (event) {
- event.preventDefault();
- }
+ Alert._handleDismiss = function _handleDismiss(alertInstance) {
+ return function (event) {
+ if (event) {
+ event.preventDefault();
+ }
- alertInstance.close(this);
+ alertInstance.close(this);
+ };
};
- };
- _createClass(Alert, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }]);
- return Alert;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ _createClass(Alert, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+ return Alert;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
- $$$1.fn[NAME] = Alert._jQueryInterface;
- $$$1.fn[NAME].Constructor = Alert;
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Alert._jQueryInterface;
- };
+ $$$1.fn[NAME] = Alert._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Alert;
- return Alert;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Alert._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): button.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Alert;
+ }($);
-var Button = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): button.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'button';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.button';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var ClassName = {
- ACTIVE: 'active',
- BUTTON: 'btn',
- FOCUS: 'focus'
- };
- var Selector = {
- DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
- DATA_TOGGLE: '[data-toggle="buttons"]',
- INPUT: 'input',
- ACTIVE: '.active',
- BUTTON: '.btn'
- };
- var Event = {
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
- FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
+
+ var Button = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'button';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.button';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var ClassName = {
+ ACTIVE: 'active',
+ BUTTON: 'btn',
+ FOCUS: 'focus'
+ };
+ var Selector = {
+ DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
+ DATA_TOGGLE: '[data-toggle="buttons"]',
+ INPUT: 'input',
+ ACTIVE: '.active',
+ BUTTON: '.btn'
+ };
+ var Event = {
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+ FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Button =
- /*#__PURE__*/
- function () {
- function Button(element) {
- this._element = element;
- } // Getters
+ var Button =
+ /*#__PURE__*/
+ function () {
+ function Button(element) {
+ this._element = element;
+ } // Getters
- var _proto = Button.prototype;
+ var _proto = Button.prototype;
- // Public
- _proto.toggle = function toggle() {
- var triggerChangeEvent = true;
- var addAriaPressed = true;
- var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
+ // Public
+ _proto.toggle = function toggle() {
+ var triggerChangeEvent = true;
+ var addAriaPressed = true;
+ var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
- if (rootElement) {
- var input = $$$1(this._element).find(Selector.INPUT)[0];
+ if (rootElement) {
+ var input = $$$1(this._element).find(Selector.INPUT)[0];
- if (input) {
- if (input.type === 'radio') {
- if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
- triggerChangeEvent = false;
- } else {
- var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
+ if (input) {
+ if (input.type === 'radio') {
+ if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
+ triggerChangeEvent = false;
+ } else {
+ var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
- if (activeElement) {
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
+ if (activeElement) {
+ $$$1(activeElement).removeClass(ClassName.ACTIVE);
+ }
}
}
- }
- if (triggerChangeEvent) {
- if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
- return;
+ if (triggerChangeEvent) {
+ if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
+ return;
+ }
+
+ input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
+ $$$1(input).trigger('change');
}
- input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
- $$$1(input).trigger('change');
+ input.focus();
+ addAriaPressed = false;
}
+ }
- input.focus();
- addAriaPressed = false;
+ if (addAriaPressed) {
+ this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
}
- }
- if (addAriaPressed) {
- this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE));
- }
+ if (triggerChangeEvent) {
+ $$$1(this._element).toggleClass(ClassName.ACTIVE);
+ }
+ };
- if (triggerChangeEvent) {
- $$$1(this._element).toggleClass(ClassName.ACTIVE);
- }
- };
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // Static
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._element = null;
- }; // Static
+ Button._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- Button._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ if (!data) {
+ data = new Button(this);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (!data) {
- data = new Button(this);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (config === 'toggle') {
+ data[config]();
+ }
+ });
+ };
- if (config === 'toggle') {
- data[config]();
+ _createClass(Button, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
-
- _createClass(Button, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }]);
- return Button;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ }]);
+ return Button;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
- event.preventDefault();
- var button = event.target;
- if (!$$$1(button).hasClass(ClassName.BUTTON)) {
- button = $$$1(button).closest(Selector.BUTTON);
- }
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+ event.preventDefault();
+ var button = event.target;
- Button._jQueryInterface.call($$$1(button), 'toggle');
- }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
- var button = $$$1(event.target).closest(Selector.BUTTON)[0];
- $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ if (!$$$1(button).hasClass(ClassName.BUTTON)) {
+ button = $$$1(button).closest(Selector.BUTTON);
+ }
- $$$1.fn[NAME] = Button._jQueryInterface;
- $$$1.fn[NAME].Constructor = Button;
+ Button._jQueryInterface.call($$$1(button), 'toggle');
+ }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+ var button = $$$1(event.target).closest(Selector.BUTTON)[0];
+ $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Button._jQueryInterface;
- };
+ $$$1.fn[NAME] = Button._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Button;
- return Button;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Button._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): carousel.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Button;
+ }($);
-var Carousel = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): carousel.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'carousel';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.carousel';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 600;
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
- var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
-
- var Default = {
- interval: 5000,
- keyboard: true,
- slide: false,
- pause: 'hover',
- wrap: true
- };
- var DefaultType = {
- interval: '(number|boolean)',
- keyboard: 'boolean',
- slide: '(boolean|string)',
- pause: '(string|boolean)',
- wrap: 'boolean'
- };
- var Direction = {
- NEXT: 'next',
- PREV: 'prev',
- LEFT: 'left',
- RIGHT: 'right'
- };
- var Event = {
- SLIDE: "slide" + EVENT_KEY,
- SLID: "slid" + EVENT_KEY,
- KEYDOWN: "keydown" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY,
- TOUCHEND: "touchend" + EVENT_KEY,
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- CAROUSEL: 'carousel',
- ACTIVE: 'active',
- SLIDE: 'slide',
- RIGHT: 'carousel-item-right',
- LEFT: 'carousel-item-left',
- NEXT: 'carousel-item-next',
- PREV: 'carousel-item-prev',
- ITEM: 'carousel-item'
- };
- var Selector = {
- ACTIVE: '.active',
- ACTIVE_ITEM: '.active.carousel-item',
- ITEM: '.carousel-item',
- NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
- INDICATORS: '.carousel-indicators',
- DATA_SLIDE: '[data-slide], [data-slide-to]',
- DATA_RIDE: '[data-ride="carousel"]'
+
+ var Carousel = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'carousel';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.carousel';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
+
+ var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
+
+ var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
+
+ var Default = {
+ interval: 5000,
+ keyboard: true,
+ slide: false,
+ pause: 'hover',
+ wrap: true
+ };
+ var DefaultType = {
+ interval: '(number|boolean)',
+ keyboard: 'boolean',
+ slide: '(boolean|string)',
+ pause: '(string|boolean)',
+ wrap: 'boolean'
+ };
+ var Direction = {
+ NEXT: 'next',
+ PREV: 'prev',
+ LEFT: 'left',
+ RIGHT: 'right'
+ };
+ var Event = {
+ SLIDE: "slide" + EVENT_KEY,
+ SLID: "slid" + EVENT_KEY,
+ KEYDOWN: "keydown" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY,
+ TOUCHEND: "touchend" + EVENT_KEY,
+ LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ CAROUSEL: 'carousel',
+ ACTIVE: 'active',
+ SLIDE: 'slide',
+ RIGHT: 'carousel-item-right',
+ LEFT: 'carousel-item-left',
+ NEXT: 'carousel-item-next',
+ PREV: 'carousel-item-prev',
+ ITEM: 'carousel-item'
+ };
+ var Selector = {
+ ACTIVE: '.active',
+ ACTIVE_ITEM: '.active.carousel-item',
+ ITEM: '.carousel-item',
+ NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
+ INDICATORS: '.carousel-indicators',
+ DATA_SLIDE: '[data-slide], [data-slide-to]',
+ DATA_RIDE: '[data-ride="carousel"]'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
-
- var Carousel =
- /*#__PURE__*/
- function () {
- function Carousel(element, config) {
- this._items = null;
- this._interval = null;
- this._activeElement = null;
- this._isPaused = false;
- this._isSliding = false;
- this.touchTimeout = null;
- this._config = this._getConfig(config);
- this._element = $$$1(element)[0];
- this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
-
- this._addEventListeners();
- } // Getters
+ };
+ var Carousel =
+ /*#__PURE__*/
+ function () {
+ function Carousel(element, config) {
+ this._items = null;
+ this._interval = null;
+ this._activeElement = null;
+ this._isPaused = false;
+ this._isSliding = false;
+ this.touchTimeout = null;
+ this._config = this._getConfig(config);
+ this._element = $$$1(element)[0];
+ this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
- var _proto = Carousel.prototype;
+ this._addEventListeners();
+ } // Getters
- // Public
- _proto.next = function next() {
- if (!this._isSliding) {
- this._slide(Direction.NEXT);
- }
- };
- _proto.nextWhenVisible = function nextWhenVisible() {
- // Don't call next when the page isn't visible
- // or the carousel or its parent isn't visible
- if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
- this.next();
- }
- };
+ var _proto = Carousel.prototype;
- _proto.prev = function prev() {
- if (!this._isSliding) {
- this._slide(Direction.PREV);
- }
- };
+ // Public
+ _proto.next = function next() {
+ if (!this._isSliding) {
+ this._slide(Direction.NEXT);
+ }
+ };
- _proto.pause = function pause(event) {
- if (!event) {
- this._isPaused = true;
- }
+ _proto.nextWhenVisible = function nextWhenVisible() {
+ // Don't call next when the page isn't visible
+ // or the carousel or its parent isn't visible
+ if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
+ this.next();
+ }
+ };
- if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
- Util.triggerTransitionEnd(this._element);
- this.cycle(true);
- }
+ _proto.prev = function prev() {
+ if (!this._isSliding) {
+ this._slide(Direction.PREV);
+ }
+ };
- clearInterval(this._interval);
- this._interval = null;
- };
+ _proto.pause = function pause(event) {
+ if (!event) {
+ this._isPaused = true;
+ }
- _proto.cycle = function cycle(event) {
- if (!event) {
- this._isPaused = false;
- }
+ if ($$$1(this._element).find(Selector.NEXT_PREV)[0]) {
+ Util.triggerTransitionEnd(this._element);
+ this.cycle(true);
+ }
- if (this._interval) {
clearInterval(this._interval);
this._interval = null;
- }
+ };
- if (this._config.interval && !this._isPaused) {
- this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
- }
- };
+ _proto.cycle = function cycle(event) {
+ if (!event) {
+ this._isPaused = false;
+ }
- _proto.to = function to(index) {
- var _this = this;
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+
+ if (this._config.interval && !this._isPaused) {
+ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
+ }
+ };
- this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
+ _proto.to = function to(index) {
+ var _this = this;
- var activeIndex = this._getItemIndex(this._activeElement);
+ this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
- if (index > this._items.length - 1 || index < 0) {
- return;
- }
+ var activeIndex = this._getItemIndex(this._activeElement);
- if (this._isSliding) {
- $$$1(this._element).one(Event.SLID, function () {
- return _this.to(index);
- });
- return;
- }
+ if (index > this._items.length - 1 || index < 0) {
+ return;
+ }
- if (activeIndex === index) {
- this.pause();
- this.cycle();
- return;
- }
+ if (this._isSliding) {
+ $$$1(this._element).one(Event.SLID, function () {
+ return _this.to(index);
+ });
+ return;
+ }
- var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
+ if (activeIndex === index) {
+ this.pause();
+ this.cycle();
+ return;
+ }
- this._slide(direction, this._items[index]);
- };
+ var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
- _proto.dispose = function dispose() {
- $$$1(this._element).off(EVENT_KEY);
- $$$1.removeData(this._element, DATA_KEY);
- this._items = null;
- this._config = null;
- this._element = null;
- this._interval = null;
- this._isPaused = null;
- this._isSliding = null;
- this._activeElement = null;
- this._indicatorsElement = null;
- }; // Private
-
-
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default, config);
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
+ this._slide(direction, this._items[index]);
+ };
- _proto._addEventListeners = function _addEventListeners() {
- var _this2 = this;
+ _proto.dispose = function dispose() {
+ $$$1(this._element).off(EVENT_KEY);
+ $$$1.removeData(this._element, DATA_KEY);
+ this._items = null;
+ this._config = null;
+ this._element = null;
+ this._interval = null;
+ this._isPaused = null;
+ this._isSliding = null;
+ this._activeElement = null;
+ this._indicatorsElement = null;
+ }; // Private
- if (this._config.keyboard) {
- $$$1(this._element).on(Event.KEYDOWN, function (event) {
- return _this2._keydown(event);
- });
- }
- if (this._config.pause === 'hover') {
- $$$1(this._element).on(Event.MOUSEENTER, function (event) {
- return _this2.pause(event);
- }).on(Event.MOUSELEAVE, function (event) {
- return _this2.cycle(event);
- });
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, Default, config);
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
- if ('ontouchstart' in document.documentElement) {
- // If it's a touch-enabled device, mouseenter/leave are fired as
- // part of the mouse compatibility events on first tap - the carousel
- // would stop cycling until user tapped out of it;
- // here, we listen for touchend, explicitly pause the carousel
- // (as if it's the second time we tap on it, mouseenter compat event
- // is NOT fired) and after a timeout (to allow for mouse compatibility
- // events to fire) we explicitly restart cycling
- $$$1(this._element).on(Event.TOUCHEND, function () {
- _this2.pause();
-
- if (_this2.touchTimeout) {
- clearTimeout(_this2.touchTimeout);
- }
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this2 = this;
- _this2.touchTimeout = setTimeout(function (event) {
- return _this2.cycle(event);
- }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
+ if (this._config.keyboard) {
+ $$$1(this._element).on(Event.KEYDOWN, function (event) {
+ return _this2._keydown(event);
});
}
- }
- };
- _proto._keydown = function _keydown(event) {
- if (/input|textarea/i.test(event.target.tagName)) {
- return;
- }
+ if (this._config.pause === 'hover') {
+ $$$1(this._element).on(Event.MOUSEENTER, function (event) {
+ return _this2.pause(event);
+ }).on(Event.MOUSELEAVE, function (event) {
+ return _this2.cycle(event);
+ });
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
- event.preventDefault();
- this.prev();
- break;
+ if ('ontouchstart' in document.documentElement) {
+ // If it's a touch-enabled device, mouseenter/leave are fired as
+ // part of the mouse compatibility events on first tap - the carousel
+ // would stop cycling until user tapped out of it;
+ // here, we listen for touchend, explicitly pause the carousel
+ // (as if it's the second time we tap on it, mouseenter compat event
+ // is NOT fired) and after a timeout (to allow for mouse compatibility
+ // events to fire) we explicitly restart cycling
+ $$$1(this._element).on(Event.TOUCHEND, function () {
+ _this2.pause();
+
+ if (_this2.touchTimeout) {
+ clearTimeout(_this2.touchTimeout);
+ }
- case ARROW_RIGHT_KEYCODE:
- event.preventDefault();
- this.next();
- break;
+ _this2.touchTimeout = setTimeout(function (event) {
+ return _this2.cycle(event);
+ }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
+ });
+ }
+ }
+ };
- default:
- }
- };
+ _proto._keydown = function _keydown(event) {
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
- _proto._getItemIndex = function _getItemIndex(element) {
- this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
- return this._items.indexOf(element);
- };
+ switch (event.which) {
+ case ARROW_LEFT_KEYCODE:
+ event.preventDefault();
+ this.prev();
+ break;
+
+ case ARROW_RIGHT_KEYCODE:
+ event.preventDefault();
+ this.next();
+ break;
- _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
- var isNextDirection = direction === Direction.NEXT;
- var isPrevDirection = direction === Direction.PREV;
+ default:
+ }
+ };
- var activeIndex = this._getItemIndex(activeElement);
+ _proto._getItemIndex = function _getItemIndex(element) {
+ this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
+ return this._items.indexOf(element);
+ };
- var lastItemIndex = this._items.length - 1;
- var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+ _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
+ var isNextDirection = direction === Direction.NEXT;
+ var isPrevDirection = direction === Direction.PREV;
- if (isGoingToWrap && !this._config.wrap) {
- return activeElement;
- }
+ var activeIndex = this._getItemIndex(activeElement);
- var delta = direction === Direction.PREV ? -1 : 1;
- var itemIndex = (activeIndex + delta) % this._items.length;
- return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
- };
+ var lastItemIndex = this._items.length - 1;
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
- _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
- var targetIndex = this._getItemIndex(relatedTarget);
+ if (isGoingToWrap && !this._config.wrap) {
+ return activeElement;
+ }
- var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
+ var delta = direction === Direction.PREV ? -1 : 1;
+ var itemIndex = (activeIndex + delta) % this._items.length;
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+ };
- var slideEvent = $$$1.Event(Event.SLIDE, {
- relatedTarget: relatedTarget,
- direction: eventDirectionName,
- from: fromIndex,
- to: targetIndex
- });
- $$$1(this._element).trigger(slideEvent);
- return slideEvent;
- };
+ _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
+ var targetIndex = this._getItemIndex(relatedTarget);
- _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
- if (this._indicatorsElement) {
- $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+ var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
- var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
+ var slideEvent = $$$1.Event(Event.SLIDE, {
+ relatedTarget: relatedTarget,
+ direction: eventDirectionName,
+ from: fromIndex,
+ to: targetIndex
+ });
+ $$$1(this._element).trigger(slideEvent);
+ return slideEvent;
+ };
+
+ _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
+ if (this._indicatorsElement) {
+ $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
- if (nextIndicator) {
- $$$1(nextIndicator).addClass(ClassName.ACTIVE);
+ var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
+
+ if (nextIndicator) {
+ $$$1(nextIndicator).addClass(ClassName.ACTIVE);
+ }
}
- }
- };
+ };
- _proto._slide = function _slide(direction, element) {
- var _this3 = this;
+ _proto._slide = function _slide(direction, element) {
+ var _this3 = this;
- var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
+ var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
- var activeElementIndex = this._getItemIndex(activeElement);
+ var activeElementIndex = this._getItemIndex(activeElement);
- var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
- var nextElementIndex = this._getItemIndex(nextElement);
+ var nextElementIndex = this._getItemIndex(nextElement);
- var isCycling = Boolean(this._interval);
- var directionalClassName;
- var orderClassName;
- var eventDirectionName;
+ var isCycling = Boolean(this._interval);
+ var directionalClassName;
+ var orderClassName;
+ var eventDirectionName;
- if (direction === Direction.NEXT) {
- directionalClassName = ClassName.LEFT;
- orderClassName = ClassName.NEXT;
- eventDirectionName = Direction.LEFT;
- } else {
- directionalClassName = ClassName.RIGHT;
- orderClassName = ClassName.PREV;
- eventDirectionName = Direction.RIGHT;
- }
+ if (direction === Direction.NEXT) {
+ directionalClassName = ClassName.LEFT;
+ orderClassName = ClassName.NEXT;
+ eventDirectionName = Direction.LEFT;
+ } else {
+ directionalClassName = ClassName.RIGHT;
+ orderClassName = ClassName.PREV;
+ eventDirectionName = Direction.RIGHT;
+ }
- if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
- this._isSliding = false;
- return;
- }
+ if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
+ this._isSliding = false;
+ return;
+ }
- var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
+ var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
- if (slideEvent.isDefaultPrevented()) {
- return;
- }
+ if (slideEvent.isDefaultPrevented()) {
+ return;
+ }
- if (!activeElement || !nextElement) {
- // Some weirdness is happening, so we bail
- return;
- }
+ if (!activeElement || !nextElement) {
+ // Some weirdness is happening, so we bail
+ return;
+ }
- this._isSliding = true;
+ this._isSliding = true;
- if (isCycling) {
- this.pause();
- }
+ if (isCycling) {
+ this.pause();
+ }
- this._setActiveIndicatorElement(nextElement);
+ this._setActiveIndicatorElement(nextElement);
- var slidEvent = $$$1.Event(Event.SLID, {
- relatedTarget: nextElement,
- direction: eventDirectionName,
- from: activeElementIndex,
- to: nextElementIndex
- });
+ var slidEvent = $$$1.Event(Event.SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
- $$$1(nextElement).addClass(orderClassName);
- Util.reflow(nextElement);
- $$$1(activeElement).addClass(directionalClassName);
- $$$1(nextElement).addClass(directionalClassName);
- $$$1(activeElement).one(Util.TRANSITION_END, function () {
- $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
- $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
- _this3._isSliding = false;
- setTimeout(function () {
- return $$$1(_this3._element).trigger(slidEvent);
- }, 0);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- $$$1(activeElement).removeClass(ClassName.ACTIVE);
- $$$1(nextElement).addClass(ClassName.ACTIVE);
- this._isSliding = false;
- $$$1(this._element).trigger(slidEvent);
- }
+ if ($$$1(this._element).hasClass(ClassName.SLIDE)) {
+ $$$1(nextElement).addClass(orderClassName);
+ Util.reflow(nextElement);
+ $$$1(activeElement).addClass(directionalClassName);
+ $$$1(nextElement).addClass(directionalClassName);
+ var transitionDuration = Util.getTransitionDurationFromElement(activeElement);
+ $$$1(activeElement).one(Util.TRANSITION_END, function () {
+ $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
+ $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
+ _this3._isSliding = false;
+ setTimeout(function () {
+ return $$$1(_this3._element).trigger(slidEvent);
+ }, 0);
+ }).emulateTransitionEnd(transitionDuration);
+ } else {
+ $$$1(activeElement).removeClass(ClassName.ACTIVE);
+ $$$1(nextElement).addClass(ClassName.ACTIVE);
+ this._isSliding = false;
+ $$$1(this._element).trigger(slidEvent);
+ }
- if (isCycling) {
- this.cycle();
- }
- }; // Static
+ if (isCycling) {
+ this.cycle();
+ }
+ }; // Static
- Carousel._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ Carousel._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- var _config = _extends({}, Default, $$$1(this).data());
+ var _config = _objectSpread({}, Default, $$$1(this).data());
- if (typeof config === 'object') {
- _config = _extends({}, _config, config);
- }
+ if (typeof config === 'object') {
+ _config = _objectSpread({}, _config, config);
+ }
- var action = typeof config === 'string' ? config : _config.slide;
+ var action = typeof config === 'string' ? config : _config.slide;
- if (!data) {
- data = new Carousel(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (!data) {
+ data = new Carousel(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (typeof config === 'number') {
- data.to(config);
- } else if (typeof action === 'string') {
- if (typeof data[action] === 'undefined') {
- throw new TypeError("No method named \"" + action + "\"");
+ if (typeof config === 'number') {
+ data.to(config);
+ } else if (typeof action === 'string') {
+ if (typeof data[action] === 'undefined') {
+ throw new TypeError("No method named \"" + action + "\"");
+ }
+
+ data[action]();
+ } else if (_config.interval) {
+ data.pause();
+ data.cycle();
}
+ });
+ };
+
+ Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
+ var selector = Util.getSelectorFromElement(this);
- data[action]();
- } else if (_config.interval) {
- data.pause();
- data.cycle();
+ if (!selector) {
+ return;
}
- });
- };
- Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
- var selector = Util.getSelectorFromElement(this);
+ var target = $$$1(selector)[0];
- if (!selector) {
- return;
- }
+ if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
+ return;
+ }
- var target = $$$1(selector)[0];
+ var config = _objectSpread({}, $$$1(target).data(), $$$1(this).data());
- if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
- return;
- }
+ var slideIndex = this.getAttribute('data-slide-to');
- var config = _extends({}, $$$1(target).data(), $$$1(this).data());
- var slideIndex = this.getAttribute('data-slide-to');
+ if (slideIndex) {
+ config.interval = false;
+ }
- if (slideIndex) {
- config.interval = false;
- }
+ Carousel._jQueryInterface.call($$$1(target), config);
- Carousel._jQueryInterface.call($$$1(target), config);
+ if (slideIndex) {
+ $$$1(target).data(DATA_KEY).to(slideIndex);
+ }
- if (slideIndex) {
- $$$1(target).data(DATA_KEY).to(slideIndex);
- }
+ event.preventDefault();
+ };
- event.preventDefault();
- };
+ _createClass(Carousel, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
- _createClass(Carousel, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
- return Carousel;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ return Carousel;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
- $$$1(window).on(Event.LOAD_DATA_API, function () {
- $$$1(Selector.DATA_RIDE).each(function () {
- var $carousel = $$$1(this);
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
+ $$$1(window).on(Event.LOAD_DATA_API, function () {
+ $$$1(Selector.DATA_RIDE).each(function () {
+ var $carousel = $$$1(this);
- Carousel._jQueryInterface.call($carousel, $carousel.data());
+ Carousel._jQueryInterface.call($carousel, $carousel.data());
+ });
});
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Carousel._jQueryInterface;
- $$$1.fn[NAME].Constructor = Carousel;
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Carousel._jQueryInterface;
- };
+ $$$1.fn[NAME] = Carousel._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Carousel;
- return Carousel;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Carousel._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): collapse.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Carousel;
+ }($);
-var Collapse = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): collapse.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'collapse';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.collapse';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 600;
- var Default = {
- toggle: true,
- parent: ''
- };
- var DefaultType = {
- toggle: 'boolean',
- parent: '(string|element)'
- };
- var Event = {
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- SHOW: 'show',
- COLLAPSE: 'collapse',
- COLLAPSING: 'collapsing',
- COLLAPSED: 'collapsed'
- };
- var Dimension = {
- WIDTH: 'width',
- HEIGHT: 'height'
- };
- var Selector = {
- ACTIVES: '.show, .collapsing',
- DATA_TOGGLE: '[data-toggle="collapse"]'
+
+ var Collapse = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'collapse';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.collapse';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var Default = {
+ toggle: true,
+ parent: ''
+ };
+ var DefaultType = {
+ toggle: 'boolean',
+ parent: '(string|element)'
+ };
+ var Event = {
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ SHOW: 'show',
+ COLLAPSE: 'collapse',
+ COLLAPSING: 'collapsing',
+ COLLAPSED: 'collapsed'
+ };
+ var Dimension = {
+ WIDTH: 'width',
+ HEIGHT: 'height'
+ };
+ var Selector = {
+ ACTIVES: '.show, .collapsing',
+ DATA_TOGGLE: '[data-toggle="collapse"]'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Collapse =
- /*#__PURE__*/
- function () {
- function Collapse(element, config) {
- this._isTransitioning = false;
- this._element = element;
- this._config = this._getConfig(config);
- this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
- var tabToggles = $$$1(Selector.DATA_TOGGLE);
+ var Collapse =
+ /*#__PURE__*/
+ function () {
+ function Collapse(element, config) {
+ this._isTransitioning = false;
+ this._element = element;
+ this._config = this._getConfig(config);
+ this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
+ var tabToggles = $$$1(Selector.DATA_TOGGLE);
- for (var i = 0; i < tabToggles.length; i++) {
- var elem = tabToggles[i];
- var selector = Util.getSelectorFromElement(elem);
+ for (var i = 0; i < tabToggles.length; i++) {
+ var elem = tabToggles[i];
+ var selector = Util.getSelectorFromElement(elem);
- if (selector !== null && $$$1(selector).filter(element).length > 0) {
- this._selector = selector;
+ if (selector !== null && $$$1(selector).filter(element).length > 0) {
+ this._selector = selector;
- this._triggerArray.push(elem);
+ this._triggerArray.push(elem);
+ }
}
- }
- this._parent = this._config.parent ? this._getParent() : null;
+ this._parent = this._config.parent ? this._getParent() : null;
- if (!this._config.parent) {
- this._addAriaAndCollapsedClass(this._element, this._triggerArray);
- }
+ if (!this._config.parent) {
+ this._addAriaAndCollapsedClass(this._element, this._triggerArray);
+ }
- if (this._config.toggle) {
- this.toggle();
- }
- } // Getters
+ if (this._config.toggle) {
+ this.toggle();
+ }
+ } // Getters
- var _proto = Collapse.prototype;
+ var _proto = Collapse.prototype;
- // Public
- _proto.toggle = function toggle() {
- if ($$$1(this._element).hasClass(ClassName.SHOW)) {
- this.hide();
- } else {
- this.show();
- }
- };
+ // Public
+ _proto.toggle = function toggle() {
+ if ($$$1(this._element).hasClass(ClassName.SHOW)) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ };
- _proto.show = function show() {
- var _this = this;
+ _proto.show = function show() {
+ var _this = this;
- if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
- return;
- }
+ if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
+ return;
+ }
- var actives;
- var activesData;
+ var actives;
+ var activesData;
- if (this._parent) {
- actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
+ if (this._parent) {
+ actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
- if (actives.length === 0) {
- actives = null;
+ if (actives.length === 0) {
+ actives = null;
+ }
}
- }
- if (actives) {
- activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
+ if (actives) {
+ activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
- if (activesData && activesData._isTransitioning) {
- return;
+ if (activesData && activesData._isTransitioning) {
+ return;
+ }
}
- }
- var startEvent = $$$1.Event(Event.SHOW);
- $$$1(this._element).trigger(startEvent);
+ var startEvent = $$$1.Event(Event.SHOW);
+ $$$1(this._element).trigger(startEvent);
- if (startEvent.isDefaultPrevented()) {
- return;
- }
+ if (startEvent.isDefaultPrevented()) {
+ return;
+ }
- if (actives) {
- Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
+ if (actives) {
+ Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
- if (!activesData) {
- $$$1(actives).data(DATA_KEY, null);
+ if (!activesData) {
+ $$$1(actives).data(DATA_KEY, null);
+ }
}
- }
-
- var dimension = this._getDimension();
- $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
- this._element.style[dimension] = 0;
+ var dimension = this._getDimension();
- if (this._triggerArray.length > 0) {
- $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
- }
+ $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
+ this._element.style[dimension] = 0;
- this.setTransitioning(true);
+ if (this._triggerArray.length > 0) {
+ $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
+ }
- var complete = function complete() {
- $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
- _this._element.style[dimension] = '';
+ this.setTransitioning(true);
- _this.setTransitioning(false);
+ var complete = function complete() {
+ $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
+ _this._element.style[dimension] = '';
- $$$1(_this._element).trigger(Event.SHOWN);
- };
+ _this.setTransitioning(false);
- if (!Util.supportsTransitionEnd()) {
- complete();
- return;
- }
+ $$$1(_this._element).trigger(Event.SHOWN);
+ };
- var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
- var scrollSize = "scroll" + capitalizedDimension;
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- this._element.style[dimension] = this._element[scrollSize] + "px";
- };
+ var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ var scrollSize = "scroll" + capitalizedDimension;
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+ $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ this._element.style[dimension] = this._element[scrollSize] + "px";
+ };
- _proto.hide = function hide() {
- var _this2 = this;
+ _proto.hide = function hide() {
+ var _this2 = this;
- if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
- return;
- }
+ if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
+ return;
+ }
- var startEvent = $$$1.Event(Event.HIDE);
- $$$1(this._element).trigger(startEvent);
+ var startEvent = $$$1.Event(Event.HIDE);
+ $$$1(this._element).trigger(startEvent);
- if (startEvent.isDefaultPrevented()) {
- return;
- }
+ if (startEvent.isDefaultPrevented()) {
+ return;
+ }
- var dimension = this._getDimension();
+ var dimension = this._getDimension();
- this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
- Util.reflow(this._element);
- $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
+ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
+ Util.reflow(this._element);
+ $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
- if (this._triggerArray.length > 0) {
- for (var i = 0; i < this._triggerArray.length; i++) {
- var trigger = this._triggerArray[i];
- var selector = Util.getSelectorFromElement(trigger);
+ if (this._triggerArray.length > 0) {
+ for (var i = 0; i < this._triggerArray.length; i++) {
+ var trigger = this._triggerArray[i];
+ var selector = Util.getSelectorFromElement(trigger);
- if (selector !== null) {
- var $elem = $$$1(selector);
+ if (selector !== null) {
+ var $elem = $$$1(selector);
- if (!$elem.hasClass(ClassName.SHOW)) {
- $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+ if (!$elem.hasClass(ClassName.SHOW)) {
+ $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+ }
}
}
}
- }
-
- this.setTransitioning(true);
- var complete = function complete() {
- _this2.setTransitioning(false);
+ this.setTransitioning(true);
- $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
- };
-
- this._element.style[dimension] = '';
+ var complete = function complete() {
+ _this2.setTransitioning(false);
- if (!Util.supportsTransitionEnd()) {
- complete();
- return;
- }
+ $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
+ };
- $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- };
+ this._element.style[dimension] = '';
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+ $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ };
- _proto.setTransitioning = function setTransitioning(isTransitioning) {
- this._isTransitioning = isTransitioning;
- };
+ _proto.setTransitioning = function setTransitioning(isTransitioning) {
+ this._isTransitioning = isTransitioning;
+ };
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._config = null;
- this._parent = null;
- this._element = null;
- this._triggerArray = null;
- this._isTransitioning = null;
- }; // Private
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ this._config = null;
+ this._parent = null;
+ this._element = null;
+ this._triggerArray = null;
+ this._isTransitioning = null;
+ }; // Private
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default, config);
- config.toggle = Boolean(config.toggle); // Coerce string values
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, Default, config);
+ config.toggle = Boolean(config.toggle); // Coerce string values
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
- _proto._getDimension = function _getDimension() {
- var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
- return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
- };
+ _proto._getDimension = function _getDimension() {
+ var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
+ return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
+ };
- _proto._getParent = function _getParent() {
- var _this3 = this;
+ _proto._getParent = function _getParent() {
+ var _this3 = this;
- var parent = null;
+ var parent = null;
- if (Util.isElement(this._config.parent)) {
- parent = this._config.parent; // It's a jQuery object
+ if (Util.isElement(this._config.parent)) {
+ parent = this._config.parent; // It's a jQuery object
- if (typeof this._config.parent.jquery !== 'undefined') {
- parent = this._config.parent[0];
+ if (typeof this._config.parent.jquery !== 'undefined') {
+ parent = this._config.parent[0];
+ }
+ } else {
+ parent = $$$1(this._config.parent)[0];
}
- } else {
- parent = $$$1(this._config.parent)[0];
- }
- var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
- $$$1(parent).find(selector).each(function (i, element) {
- _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
- });
- return parent;
- };
+ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
+ $$$1(parent).find(selector).each(function (i, element) {
+ _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
+ });
+ return parent;
+ };
- _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
- if (element) {
- var isOpen = $$$1(element).hasClass(ClassName.SHOW);
+ _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
+ if (element) {
+ var isOpen = $$$1(element).hasClass(ClassName.SHOW);
- if (triggerArray.length > 0) {
- $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
+ if (triggerArray.length > 0) {
+ $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
+ }
}
- }
- }; // Static
+ }; // Static
- Collapse._getTargetFromElement = function _getTargetFromElement(element) {
- var selector = Util.getSelectorFromElement(element);
- return selector ? $$$1(selector)[0] : null;
- };
+ Collapse._getTargetFromElement = function _getTargetFromElement(element) {
+ var selector = Util.getSelectorFromElement(element);
+ return selector ? $$$1(selector)[0] : null;
+ };
- Collapse._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $this = $$$1(this);
- var data = $this.data(DATA_KEY);
+ Collapse._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $this = $$$1(this);
+ var data = $this.data(DATA_KEY);
- var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
+ var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config);
- if (!data && _config.toggle && /show|hide/.test(config)) {
- _config.toggle = false;
- }
+ if (!data && _config.toggle && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
- if (!data) {
- data = new Collapse(this, _config);
- $this.data(DATA_KEY, data);
- }
+ if (!data) {
+ data = new Collapse(this, _config);
+ $this.data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ data[config]();
}
+ });
+ };
- data[config]();
+ _createClass(Collapse, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
- _createClass(Collapse, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
- return Collapse;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ return Collapse;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
- if (event.currentTarget.tagName === 'A') {
- event.preventDefault();
- }
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
+ if (event.currentTarget.tagName === 'A') {
+ event.preventDefault();
+ }
- var $trigger = $$$1(this);
- var selector = Util.getSelectorFromElement(this);
- $$$1(selector).each(function () {
- var $target = $$$1(this);
- var data = $target.data(DATA_KEY);
- var config = data ? 'toggle' : $trigger.data();
+ var $trigger = $$$1(this);
+ var selector = Util.getSelectorFromElement(this);
+ $$$1(selector).each(function () {
+ var $target = $$$1(this);
+ var data = $target.data(DATA_KEY);
+ var config = data ? 'toggle' : $trigger.data();
- Collapse._jQueryInterface.call($target, config);
+ Collapse._jQueryInterface.call($target, config);
+ });
});
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
-
- $$$1.fn[NAME] = Collapse._jQueryInterface;
- $$$1.fn[NAME].Constructor = Collapse;
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Collapse._jQueryInterface;
- };
+ $$$1.fn[NAME] = Collapse._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Collapse;
- return Collapse;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Collapse._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): dropdown.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Collapse;
+ }($);
-var Dropdown = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): dropdown.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'dropdown';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.dropdown';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
- KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
- KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DISABLED: 'disabled',
- SHOW: 'show',
- DROPUP: 'dropup',
- DROPRIGHT: 'dropright',
- DROPLEFT: 'dropleft',
- MENURIGHT: 'dropdown-menu-right',
- MENULEFT: 'dropdown-menu-left',
- POSITION_STATIC: 'position-static'
- };
- var Selector = {
- DATA_TOGGLE: '[data-toggle="dropdown"]',
- FORM_CHILD: '.dropdown form',
- MENU: '.dropdown-menu',
- NAVBAR_NAV: '.navbar-nav',
- VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
- };
- var AttachmentMap = {
- TOP: 'top-start',
- TOPEND: 'top-end',
- BOTTOM: 'bottom-start',
- BOTTOMEND: 'bottom-end',
- RIGHT: 'right-start',
- RIGHTEND: 'right-end',
- LEFT: 'left-start',
- LEFTEND: 'left-end'
- };
- var Default = {
- offset: 0,
- flip: true,
- boundary: 'scrollParent'
- };
- var DefaultType = {
- offset: '(number|string|function)',
- flip: 'boolean',
- boundary: '(string|element)'
+
+ var Dropdown = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'dropdown';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.dropdown';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+ var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
+
+ var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
+
+ var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
+
+ var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
+
+ var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
+
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+ KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
+ KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DISABLED: 'disabled',
+ SHOW: 'show',
+ DROPUP: 'dropup',
+ DROPRIGHT: 'dropright',
+ DROPLEFT: 'dropleft',
+ MENURIGHT: 'dropdown-menu-right',
+ MENULEFT: 'dropdown-menu-left',
+ POSITION_STATIC: 'position-static'
+ };
+ var Selector = {
+ DATA_TOGGLE: '[data-toggle="dropdown"]',
+ FORM_CHILD: '.dropdown form',
+ MENU: '.dropdown-menu',
+ NAVBAR_NAV: '.navbar-nav',
+ VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
+ };
+ var AttachmentMap = {
+ TOP: 'top-start',
+ TOPEND: 'top-end',
+ BOTTOM: 'bottom-start',
+ BOTTOMEND: 'bottom-end',
+ RIGHT: 'right-start',
+ RIGHTEND: 'right-end',
+ LEFT: 'left-start',
+ LEFTEND: 'left-end'
+ };
+ var Default = {
+ offset: 0,
+ flip: true,
+ boundary: 'scrollParent',
+ reference: 'toggle',
+ display: 'dynamic'
+ };
+ var DefaultType = {
+ offset: '(number|string|function)',
+ flip: 'boolean',
+ boundary: '(string|element)',
+ reference: '(string|element)',
+ display: 'string'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Dropdown =
- /*#__PURE__*/
- function () {
- function Dropdown(element, config) {
- this._element = element;
- this._popper = null;
- this._config = this._getConfig(config);
- this._menu = this._getMenuElement();
- this._inNavbar = this._detectNavbar();
+ var Dropdown =
+ /*#__PURE__*/
+ function () {
+ function Dropdown(element, config) {
+ this._element = element;
+ this._popper = null;
+ this._config = this._getConfig(config);
+ this._menu = this._getMenuElement();
+ this._inNavbar = this._detectNavbar();
- this._addEventListeners();
- } // Getters
+ this._addEventListeners();
+ } // Getters
- var _proto = Dropdown.prototype;
+ var _proto = Dropdown.prototype;
- // Public
- _proto.toggle = function toggle() {
- if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
- return;
- }
+ // Public
+ _proto.toggle = function toggle() {
+ if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
+ return;
+ }
- var parent = Dropdown._getParentFromElement(this._element);
+ var parent = Dropdown._getParentFromElement(this._element);
- var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
+ var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
- Dropdown._clearMenus();
+ Dropdown._clearMenus();
- if (isActive) {
- return;
- }
+ if (isActive) {
+ return;
+ }
- var relatedTarget = {
- relatedTarget: this._element
- };
- var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
- $$$1(parent).trigger(showEvent);
+ var relatedTarget = {
+ relatedTarget: this._element
+ };
+ var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
+ $$$1(parent).trigger(showEvent);
- if (showEvent.isDefaultPrevented()) {
- return;
- } // Disable totally Popper.js for Dropdown in Navbar
+ if (showEvent.isDefaultPrevented()) {
+ return;
+ } // Disable totally Popper.js for Dropdown in Navbar
- if (!this._inNavbar) {
- /**
- * Check for Popper dependency
- * Popper - https://popper.js.org
- */
- if (typeof Popper === 'undefined') {
- throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
- }
+ if (!this._inNavbar) {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
+ }
- var element = this._element; // For dropup with alignment we use the parent as popper container
+ var referenceElement = this._element;
- if ($$$1(parent).hasClass(ClassName.DROPUP)) {
- if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
- element = parent;
- }
- } // If boundary is not `scrollParent`, then set position to `static`
- // to allow the menu to "escape" the scroll parent's boundaries
- // https://github.com/twbs/bootstrap/issues/24251
+ if (this._config.reference === 'parent') {
+ referenceElement = parent;
+ } else if (Util.isElement(this._config.reference)) {
+ referenceElement = this._config.reference; // Check if it's jQuery element
+ if (typeof this._config.reference.jquery !== 'undefined') {
+ referenceElement = this._config.reference[0];
+ }
+ } // If boundary is not `scrollParent`, then set position to `static`
+ // to allow the menu to "escape" the scroll parent's boundaries
+ // https://github.com/twbs/bootstrap/issues/24251
- if (this._config.boundary !== 'scrollParent') {
- $$$1(parent).addClass(ClassName.POSITION_STATIC);
- }
- this._popper = new Popper(element, this._menu, this._getPopperConfig());
- } // If this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+ if (this._config.boundary !== 'scrollParent') {
+ $$$1(parent).addClass(ClassName.POSITION_STATIC);
+ }
+ this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
+ } // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
- $$$1('body').children().on('mouseover', null, $$$1.noop);
- }
- this._element.focus();
+ if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
+ $$$1(document.body).children().on('mouseover', null, $$$1.noop);
+ }
- this._element.setAttribute('aria-expanded', true);
+ this._element.focus();
- $$$1(this._menu).toggleClass(ClassName.SHOW);
- $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
- };
+ this._element.setAttribute('aria-expanded', true);
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(this._element).off(EVENT_KEY);
- this._element = null;
- this._menu = null;
+ $$$1(this._menu).toggleClass(ClassName.SHOW);
+ $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
+ };
- if (this._popper !== null) {
- this._popper.destroy();
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ $$$1(this._element).off(EVENT_KEY);
+ this._element = null;
+ this._menu = null;
- this._popper = null;
- }
- };
+ if (this._popper !== null) {
+ this._popper.destroy();
- _proto.update = function update() {
- this._inNavbar = this._detectNavbar();
+ this._popper = null;
+ }
+ };
- if (this._popper !== null) {
- this._popper.scheduleUpdate();
- }
- }; // Private
+ _proto.update = function update() {
+ this._inNavbar = this._detectNavbar();
+ if (this._popper !== null) {
+ this._popper.scheduleUpdate();
+ }
+ }; // Private
- _proto._addEventListeners = function _addEventListeners() {
- var _this = this;
- $$$1(this._element).on(Event.CLICK, function (event) {
- event.preventDefault();
- event.stopPropagation();
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this = this;
- _this.toggle();
- });
- };
+ $$$1(this._element).on(Event.CLICK, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
- return config;
- };
+ _this.toggle();
+ });
+ };
- _proto._getMenuElement = function _getMenuElement() {
- if (!this._menu) {
- var parent = Dropdown._getParentFromElement(this._element);
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config);
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
- this._menu = $$$1(parent).find(Selector.MENU)[0];
- }
+ _proto._getMenuElement = function _getMenuElement() {
+ if (!this._menu) {
+ var parent = Dropdown._getParentFromElement(this._element);
- return this._menu;
- };
+ this._menu = $$$1(parent).find(Selector.MENU)[0];
+ }
+
+ return this._menu;
+ };
- _proto._getPlacement = function _getPlacement() {
- var $parentDropdown = $$$1(this._element).parent();
- var placement = AttachmentMap.BOTTOM; // Handle dropup
+ _proto._getPlacement = function _getPlacement() {
+ var $parentDropdown = $$$1(this._element).parent();
+ var placement = AttachmentMap.BOTTOM; // Handle dropup
- if ($parentDropdown.hasClass(ClassName.DROPUP)) {
- placement = AttachmentMap.TOP;
+ if ($parentDropdown.hasClass(ClassName.DROPUP)) {
+ placement = AttachmentMap.TOP;
- if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
- placement = AttachmentMap.TOPEND;
+ if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+ placement = AttachmentMap.TOPEND;
+ }
+ } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
+ placement = AttachmentMap.RIGHT;
+ } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
+ placement = AttachmentMap.LEFT;
+ } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
+ placement = AttachmentMap.BOTTOMEND;
}
- } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
- placement = AttachmentMap.RIGHT;
- } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
- placement = AttachmentMap.LEFT;
- } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
- placement = AttachmentMap.BOTTOMEND;
- }
- return placement;
- };
+ return placement;
+ };
- _proto._detectNavbar = function _detectNavbar() {
- return $$$1(this._element).closest('.navbar').length > 0;
- };
+ _proto._detectNavbar = function _detectNavbar() {
+ return $$$1(this._element).closest('.navbar').length > 0;
+ };
+
+ _proto._getPopperConfig = function _getPopperConfig() {
+ var _this2 = this;
- _proto._getPopperConfig = function _getPopperConfig() {
- var _this2 = this;
+ var offsetConf = {};
- var offsetConf = {};
+ if (typeof this._config.offset === 'function') {
+ offsetConf.fn = function (data) {
+ data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
+ return data;
+ };
+ } else {
+ offsetConf.offset = this._config.offset;
+ }
+
+ var popperConfig = {
+ placement: this._getPlacement(),
+ modifiers: {
+ offset: offsetConf,
+ flip: {
+ enabled: this._config.flip
+ },
+ preventOverflow: {
+ boundariesElement: this._config.boundary
+ }
+ } // Disable Popper.js if we have a static display
- if (typeof this._config.offset === 'function') {
- offsetConf.fn = function (data) {
- data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
- return data;
};
- } else {
- offsetConf.offset = this._config.offset;
- }
- var popperConfig = {
- placement: this._getPlacement(),
- modifiers: {
- offset: offsetConf,
- flip: {
- enabled: this._config.flip
- },
- preventOverflow: {
- boundariesElement: this._config.boundary
- }
+ if (this._config.display === 'static') {
+ popperConfig.modifiers.applyStyle = {
+ enabled: false
+ };
}
- };
- return popperConfig;
- }; // Static
+ return popperConfig;
+ }; // Static
- Dropdown._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
- var _config = typeof config === 'object' ? config : null;
+ Dropdown._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- if (!data) {
- data = new Dropdown(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data) {
+ data = new Dropdown(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ data[config]();
}
+ });
+ };
- data[config]();
+ Dropdown._clearMenus = function _clearMenus(event) {
+ if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+ return;
}
- });
- };
- Dropdown._clearMenus = function _clearMenus(event) {
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
- return;
- }
+ var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
- var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
+ for (var i = 0; i < toggles.length; i++) {
+ var parent = Dropdown._getParentFromElement(toggles[i]);
- for (var i = 0; i < toggles.length; i++) {
- var parent = Dropdown._getParentFromElement(toggles[i]);
+ var context = $$$1(toggles[i]).data(DATA_KEY);
+ var relatedTarget = {
+ relatedTarget: toggles[i]
+ };
- var context = $$$1(toggles[i]).data(DATA_KEY);
- var relatedTarget = {
- relatedTarget: toggles[i]
- };
+ if (!context) {
+ continue;
+ }
- if (!context) {
- continue;
- }
+ var dropdownMenu = context._menu;
- var dropdownMenu = context._menu;
+ if (!$$$1(parent).hasClass(ClassName.SHOW)) {
+ continue;
+ }
- if (!$$$1(parent).hasClass(ClassName.SHOW)) {
- continue;
- }
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
+ continue;
+ }
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
- continue;
- }
+ var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
+ $$$1(parent).trigger(hideEvent);
- var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
- $$$1(parent).trigger(hideEvent);
+ if (hideEvent.isDefaultPrevented()) {
+ continue;
+ } // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
- if (hideEvent.isDefaultPrevented()) {
- continue;
- } // If this is a touch-enabled device we remove the extra
- // empty mouseover listeners we added for iOS support
+ if ('ontouchstart' in document.documentElement) {
+ $$$1(document.body).children().off('mouseover', null, $$$1.noop);
+ }
- if ('ontouchstart' in document.documentElement) {
- $$$1('body').children().off('mouseover', null, $$$1.noop);
+ toggles[i].setAttribute('aria-expanded', 'false');
+ $$$1(dropdownMenu).removeClass(ClassName.SHOW);
+ $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
}
+ };
- toggles[i].setAttribute('aria-expanded', 'false');
- $$$1(dropdownMenu).removeClass(ClassName.SHOW);
- $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
- }
- };
+ Dropdown._getParentFromElement = function _getParentFromElement(element) {
+ var parent;
+ var selector = Util.getSelectorFromElement(element);
- Dropdown._getParentFromElement = function _getParentFromElement(element) {
- var parent;
- var selector = Util.getSelectorFromElement(element);
+ if (selector) {
+ parent = $$$1(selector)[0];
+ }
- if (selector) {
- parent = $$$1(selector)[0];
- }
+ return parent || element.parentNode;
+ }; // eslint-disable-next-line complexity
- return parent || element.parentNode;
- }; // eslint-disable-next-line complexity
+ Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
+ // If not input/textarea:
+ // - And not a key in REGEXP_KEYDOWN => not a dropdown command
+ // If input/textarea:
+ // - If space key => not a dropdown command
+ // - If key is other than escape
+ // - If key is not up or down => not a dropdown command
+ // - If trigger inside the menu => not a dropdown command
+ if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
+ return;
+ }
- Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
- // If not input/textarea:
- // - And not a key in REGEXP_KEYDOWN => not a dropdown command
- // If input/textarea:
- // - If space key => not a dropdown command
- // - If key is other than escape
- // - If key is not up or down => not a dropdown command
- // - If trigger inside the menu => not a dropdown command
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
- return;
- }
+ event.preventDefault();
+ event.stopPropagation();
- event.preventDefault();
- event.stopPropagation();
+ if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
+ return;
+ }
- if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
- return;
- }
+ var parent = Dropdown._getParentFromElement(this);
- var parent = Dropdown._getParentFromElement(this);
+ var isActive = $$$1(parent).hasClass(ClassName.SHOW);
- var isActive = $$$1(parent).hasClass(ClassName.SHOW);
+ if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
+ if (event.which === ESCAPE_KEYCODE) {
+ var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
+ $$$1(toggle).trigger('focus');
+ }
- if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
- if (event.which === ESCAPE_KEYCODE) {
- var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
- $$$1(toggle).trigger('focus');
+ $$$1(this).trigger('click');
+ return;
}
- $$$1(this).trigger('click');
- return;
- }
+ var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
- var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
-
- if (items.length === 0) {
- return;
- }
+ if (items.length === 0) {
+ return;
+ }
- var index = items.indexOf(event.target);
+ var index = items.indexOf(event.target);
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
- // Up
- index--;
- }
+ if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ // Up
+ index--;
+ }
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
- // Down
- index++;
- }
+ if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ // Down
+ index++;
+ }
- if (index < 0) {
- index = 0;
- }
+ if (index < 0) {
+ index = 0;
+ }
- items[index].focus();
- };
+ items[index].focus();
+ };
- _createClass(Dropdown, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
- return Dropdown;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ _createClass(Dropdown, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+ return Dropdown;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- event.preventDefault();
- event.stopPropagation();
- Dropdown._jQueryInterface.call($$$1(this), 'toggle');
- }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
- e.stopPropagation();
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
- $$$1.fn[NAME] = Dropdown._jQueryInterface;
- $$$1.fn[NAME].Constructor = Dropdown;
+ Dropdown._jQueryInterface.call($$$1(this), 'toggle');
+ }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
+ e.stopPropagation();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Dropdown._jQueryInterface;
- };
+ $$$1.fn[NAME] = Dropdown._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Dropdown;
- return Dropdown;
-}($, Popper);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Dropdown._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): modal.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Dropdown;
+ }($, Popper);
-var Modal = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): modal.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'modal';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.modal';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 300;
- var BACKDROP_TRANSITION_DURATION = 150;
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var Default = {
- backdrop: true,
- keyboard: true,
- focus: true,
- show: true
- };
- var DefaultType = {
- backdrop: '(boolean|string)',
- keyboard: 'boolean',
- focus: 'boolean',
- show: 'boolean'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- RESIZE: "resize" + EVENT_KEY,
- CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
- KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
- MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
- MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
- BACKDROP: 'modal-backdrop',
- OPEN: 'modal-open',
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- DIALOG: '.modal-dialog',
- DATA_TOGGLE: '[data-toggle="modal"]',
- DATA_DISMISS: '[data-dismiss="modal"]',
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
- STICKY_CONTENT: '.sticky-top',
- NAVBAR_TOGGLER: '.navbar-toggler'
+
+ var Modal = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'modal';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.modal';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+ var Default = {
+ backdrop: true,
+ keyboard: true,
+ focus: true,
+ show: true
+ };
+ var DefaultType = {
+ backdrop: '(boolean|string)',
+ keyboard: 'boolean',
+ focus: 'boolean',
+ show: 'boolean'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ RESIZE: "resize" + EVENT_KEY,
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
+ KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
+ MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
+ MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
+ BACKDROP: 'modal-backdrop',
+ OPEN: 'modal-open',
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ DIALOG: '.modal-dialog',
+ DATA_TOGGLE: '[data-toggle="modal"]',
+ DATA_DISMISS: '[data-dismiss="modal"]',
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
+ STICKY_CONTENT: '.sticky-top',
+ NAVBAR_TOGGLER: '.navbar-toggler'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
-
- var Modal =
- /*#__PURE__*/
- function () {
- function Modal(element, config) {
- this._config = this._getConfig(config);
- this._element = element;
- this._dialog = $$$1(element).find(Selector.DIALOG)[0];
- this._backdrop = null;
- this._isShown = false;
- this._isBodyOverflowing = false;
- this._ignoreBackdropClick = false;
- this._originalBodyPadding = 0;
- this._scrollbarWidth = 0;
- } // Getters
-
-
- var _proto = Modal.prototype;
-
- // Public
- _proto.toggle = function toggle(relatedTarget) {
- return this._isShown ? this.hide() : this.show(relatedTarget);
};
- _proto.show = function show(relatedTarget) {
- var _this = this;
+ var Modal =
+ /*#__PURE__*/
+ function () {
+ function Modal(element, config) {
+ this._config = this._getConfig(config);
+ this._element = element;
+ this._dialog = $$$1(element).find(Selector.DIALOG)[0];
+ this._backdrop = null;
+ this._isShown = false;
+ this._isBodyOverflowing = false;
+ this._ignoreBackdropClick = false;
+ this._scrollbarWidth = 0;
+ } // Getters
- if (this._isTransitioning || this._isShown) {
- return;
- }
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
- }
+ var _proto = Modal.prototype;
- var showEvent = $$$1.Event(Event.SHOW, {
- relatedTarget: relatedTarget
- });
- $$$1(this._element).trigger(showEvent);
+ // Public
+ _proto.toggle = function toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ };
- if (this._isShown || showEvent.isDefaultPrevented()) {
- return;
- }
+ _proto.show = function show(relatedTarget) {
+ var _this = this;
+
+ if (this._isTransitioning || this._isShown) {
+ return;
+ }
+
+ if ($$$1(this._element).hasClass(ClassName.FADE)) {
+ this._isTransitioning = true;
+ }
+
+ var showEvent = $$$1.Event(Event.SHOW, {
+ relatedTarget: relatedTarget
+ });
+ $$$1(this._element).trigger(showEvent);
- this._isShown = true;
+ if (this._isShown || showEvent.isDefaultPrevented()) {
+ return;
+ }
- this._checkScrollbar();
+ this._isShown = true;
- this._setScrollbar();
+ this._checkScrollbar();
- this._adjustDialog();
+ this._setScrollbar();
- $$$1(document.body).addClass(ClassName.OPEN);
+ this._adjustDialog();
- this._setEscapeEvent();
+ $$$1(document.body).addClass(ClassName.OPEN);
- this._setResizeEvent();
+ this._setEscapeEvent();
- $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
- return _this.hide(event);
- });
- $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
- $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
- if ($$$1(event.target).is(_this._element)) {
- _this._ignoreBackdropClick = true;
- }
+ this._setResizeEvent();
+
+ $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
+ return _this.hide(event);
+ });
+ $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
+ $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
+ if ($$$1(event.target).is(_this._element)) {
+ _this._ignoreBackdropClick = true;
+ }
+ });
});
- });
- this._showBackdrop(function () {
- return _this._showElement(relatedTarget);
- });
- };
+ this._showBackdrop(function () {
+ return _this._showElement(relatedTarget);
+ });
+ };
- _proto.hide = function hide(event) {
- var _this2 = this;
+ _proto.hide = function hide(event) {
+ var _this2 = this;
- if (event) {
- event.preventDefault();
- }
+ if (event) {
+ event.preventDefault();
+ }
- if (this._isTransitioning || !this._isShown) {
- return;
- }
+ if (this._isTransitioning || !this._isShown) {
+ return;
+ }
- var hideEvent = $$$1.Event(Event.HIDE);
- $$$1(this._element).trigger(hideEvent);
+ var hideEvent = $$$1.Event(Event.HIDE);
+ $$$1(this._element).trigger(hideEvent);
- if (!this._isShown || hideEvent.isDefaultPrevented()) {
- return;
- }
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
+ return;
+ }
- this._isShown = false;
- var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
+ this._isShown = false;
+ var transition = $$$1(this._element).hasClass(ClassName.FADE);
- if (transition) {
- this._isTransitioning = true;
- }
+ if (transition) {
+ this._isTransitioning = true;
+ }
- this._setEscapeEvent();
+ this._setEscapeEvent();
- this._setResizeEvent();
+ this._setResizeEvent();
- $$$1(document).off(Event.FOCUSIN);
- $$$1(this._element).removeClass(ClassName.SHOW);
- $$$1(this._element).off(Event.CLICK_DISMISS);
- $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
+ $$$1(document).off(Event.FOCUSIN);
+ $$$1(this._element).removeClass(ClassName.SHOW);
+ $$$1(this._element).off(Event.CLICK_DISMISS);
+ $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
- if (transition) {
- $$$1(this._element).one(Util.TRANSITION_END, function (event) {
- return _this2._hideModal(event);
- }).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- this._hideModal();
- }
- };
+ if (transition) {
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+ $$$1(this._element).one(Util.TRANSITION_END, function (event) {
+ return _this2._hideModal(event);
+ }).emulateTransitionEnd(transitionDuration);
+ } else {
+ this._hideModal();
+ }
+ };
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
- this._config = null;
- this._element = null;
- this._dialog = null;
- this._backdrop = null;
- this._isShown = null;
- this._isBodyOverflowing = null;
- this._ignoreBackdropClick = null;
- this._scrollbarWidth = null;
- };
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
+ this._config = null;
+ this._element = null;
+ this._dialog = null;
+ this._backdrop = null;
+ this._isShown = null;
+ this._isBodyOverflowing = null;
+ this._ignoreBackdropClick = null;
+ this._scrollbarWidth = null;
+ };
- _proto.handleUpdate = function handleUpdate() {
- this._adjustDialog();
- }; // Private
+ _proto.handleUpdate = function handleUpdate() {
+ this._adjustDialog();
+ }; // Private
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default, config);
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, Default, config);
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
- _proto._showElement = function _showElement(relatedTarget) {
- var _this3 = this;
+ _proto._showElement = function _showElement(relatedTarget) {
+ var _this3 = this;
- var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
+ var transition = $$$1(this._element).hasClass(ClassName.FADE);
- if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
- // Don't move modal's DOM position
- document.body.appendChild(this._element);
- }
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+ // Don't move modal's DOM position
+ document.body.appendChild(this._element);
+ }
- this._element.style.display = 'block';
+ this._element.style.display = 'block';
- this._element.removeAttribute('aria-hidden');
+ this._element.removeAttribute('aria-hidden');
- this._element.scrollTop = 0;
+ this._element.scrollTop = 0;
- if (transition) {
- Util.reflow(this._element);
- }
+ if (transition) {
+ Util.reflow(this._element);
+ }
- $$$1(this._element).addClass(ClassName.SHOW);
+ $$$1(this._element).addClass(ClassName.SHOW);
- if (this._config.focus) {
- this._enforceFocus();
- }
+ if (this._config.focus) {
+ this._enforceFocus();
+ }
- var shownEvent = $$$1.Event(Event.SHOWN, {
- relatedTarget: relatedTarget
- });
+ var shownEvent = $$$1.Event(Event.SHOWN, {
+ relatedTarget: relatedTarget
+ });
+
+ var transitionComplete = function transitionComplete() {
+ if (_this3._config.focus) {
+ _this3._element.focus();
+ }
+
+ _this3._isTransitioning = false;
+ $$$1(_this3._element).trigger(shownEvent);
+ };
- var transitionComplete = function transitionComplete() {
- if (_this3._config.focus) {
- _this3._element.focus();
+ if (transition) {
+ var transitionDuration = Util.getTransitionDurationFromElement(this._element);
+ $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);
+ } else {
+ transitionComplete();
}
+ };
- _this3._isTransitioning = false;
- $$$1(_this3._element).trigger(shownEvent);
+ _proto._enforceFocus = function _enforceFocus() {
+ var _this4 = this;
+
+ $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
+ .on(Event.FOCUSIN, function (event) {
+ if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
+ _this4._element.focus();
+ }
+ });
};
- if (transition) {
- $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- transitionComplete();
- }
- };
+ _proto._setEscapeEvent = function _setEscapeEvent() {
+ var _this5 = this;
- _proto._enforceFocus = function _enforceFocus() {
- var _this4 = this;
+ if (this._isShown && this._config.keyboard) {
+ $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
+ if (event.which === ESCAPE_KEYCODE) {
+ event.preventDefault();
- $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
- .on(Event.FOCUSIN, function (event) {
- if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
- _this4._element.focus();
+ _this5.hide();
+ }
+ });
+ } else if (!this._isShown) {
+ $$$1(this._element).off(Event.KEYDOWN_DISMISS);
}
- });
- };
+ };
- _proto._setEscapeEvent = function _setEscapeEvent() {
- var _this5 = this;
+ _proto._setResizeEvent = function _setResizeEvent() {
+ var _this6 = this;
- if (this._isShown && this._config.keyboard) {
- $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
- if (event.which === ESCAPE_KEYCODE) {
- event.preventDefault();
+ if (this._isShown) {
+ $$$1(window).on(Event.RESIZE, function (event) {
+ return _this6.handleUpdate(event);
+ });
+ } else {
+ $$$1(window).off(Event.RESIZE);
+ }
+ };
- _this5.hide();
- }
- });
- } else if (!this._isShown) {
- $$$1(this._element).off(Event.KEYDOWN_DISMISS);
- }
- };
+ _proto._hideModal = function _hideModal() {
+ var _this7 = this;
- _proto._setResizeEvent = function _setResizeEvent() {
- var _this6 = this;
+ this._element.style.display = 'none';
- if (this._isShown) {
- $$$1(window).on(Event.RESIZE, function (event) {
- return _this6.handleUpdate(event);
- });
- } else {
- $$$1(window).off(Event.RESIZE);
- }
- };
+ this._element.setAttribute('aria-hidden', true);
- _proto._hideModal = function _hideModal() {
- var _this7 = this;
+ this._isTransitioning = false;
- this._element.style.display = 'none';
+ this._showBackdrop(function () {
+ $$$1(document.body).removeClass(ClassName.OPEN);
- this._element.setAttribute('aria-hidden', true);
+ _this7._resetAdjustments();
- this._isTransitioning = false;
+ _this7._resetScrollbar();
- this._showBackdrop(function () {
- $$$1(document.body).removeClass(ClassName.OPEN);
+ $$$1(_this7._element).trigger(Event.HIDDEN);
+ });
+ };
- _this7._resetAdjustments();
+ _proto._removeBackdrop = function _removeBackdrop() {
+ if (this._backdrop) {
+ $$$1(this._backdrop).remove();
+ this._backdrop = null;
+ }
+ };
- _this7._resetScrollbar();
+ _proto._showBackdrop = function _showBackdrop(callback) {
+ var _this8 = this;
- $$$1(_this7._element).trigger(Event.HIDDEN);
- });
- };
+ var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
- _proto._removeBackdrop = function _removeBackdrop() {
- if (this._backdrop) {
- $$$1(this._backdrop).remove();
- this._backdrop = null;
- }
- };
+ if (this._isShown && this._config.backdrop) {
+ this._backdrop = document.createElement('div');
+ this._backdrop.className = ClassName.BACKDROP;
- _proto._showBackdrop = function _showBackdrop(callback) {
- var _this8 = this;
+ if (animate) {
+ $$$1(this._backdrop).addClass(animate);
+ }
- var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
+ $$$1(this._backdrop).appendTo(document.body);
+ $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
+ if (_this8._ignoreBackdropClick) {
+ _this8._ignoreBackdropClick = false;
+ return;
+ }
- if (this._isShown && this._config.backdrop) {
- var doAnimate = Util.supportsTransitionEnd() && animate;
- this._backdrop = document.createElement('div');
- this._backdrop.className = ClassName.BACKDROP;
+ if (event.target !== event.currentTarget) {
+ return;
+ }
- if (animate) {
- $$$1(this._backdrop).addClass(animate);
- }
+ if (_this8._config.backdrop === 'static') {
+ _this8._element.focus();
+ } else {
+ _this8.hide();
+ }
+ });
- $$$1(this._backdrop).appendTo(document.body);
- $$$1(this._element).on(Event.CLICK_DISMISS, function (event) {
- if (_this8._ignoreBackdropClick) {
- _this8._ignoreBackdropClick = false;
- return;
+ if (animate) {
+ Util.reflow(this._backdrop);
}
- if (event.target !== event.currentTarget) {
+ $$$1(this._backdrop).addClass(ClassName.SHOW);
+
+ if (!callback) {
return;
}
- if (_this8._config.backdrop === 'static') {
- _this8._element.focus();
- } else {
- _this8.hide();
+ if (!animate) {
+ callback();
+ return;
}
- });
- if (doAnimate) {
- Util.reflow(this._backdrop);
- }
+ var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
+ $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);
+ } else if (!this._isShown && this._backdrop) {
+ $$$1(this._backdrop).removeClass(ClassName.SHOW);
- $$$1(this._backdrop).addClass(ClassName.SHOW);
+ var callbackRemove = function callbackRemove() {
+ _this8._removeBackdrop();
- if (!callback) {
- return;
- }
+ if (callback) {
+ callback();
+ }
+ };
+
+ if ($$$1(this._element).hasClass(ClassName.FADE)) {
+ var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);
- if (!doAnimate) {
+ $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);
+ } else {
+ callbackRemove();
+ }
+ } else if (callback) {
callback();
- return;
}
+ }; // ----------------------------------------------------------------------
+ // the following methods are used to handle overflowing modals
+ // todo (fat): these should probably be refactored out of modal.js
+ // ----------------------------------------------------------------------
- $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
- } else if (!this._isShown && this._backdrop) {
- $$$1(this._backdrop).removeClass(ClassName.SHOW);
- var callbackRemove = function callbackRemove() {
- _this8._removeBackdrop();
-
- if (callback) {
- callback();
- }
- };
+ _proto._adjustDialog = function _adjustDialog() {
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
- if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
- $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
- } else {
- callbackRemove();
+ if (!this._isBodyOverflowing && isModalOverflowing) {
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
}
- } else if (callback) {
- callback();
- }
- }; // ----------------------------------------------------------------------
- // the following methods are used to handle overflowing modals
- // todo (fat): these should probably be refactored out of modal.js
- // ----------------------------------------------------------------------
+ if (this._isBodyOverflowing && !isModalOverflowing) {
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
+ }
+ };
- _proto._adjustDialog = function _adjustDialog() {
- var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+ _proto._resetAdjustments = function _resetAdjustments() {
+ this._element.style.paddingLeft = '';
+ this._element.style.paddingRight = '';
+ };
- if (!this._isBodyOverflowing && isModalOverflowing) {
- this._element.style.paddingLeft = this._scrollbarWidth + "px";
- }
+ _proto._checkScrollbar = function _checkScrollbar() {
+ var rect = document.body.getBoundingClientRect();
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+ this._scrollbarWidth = this._getScrollbarWidth();
+ };
- if (this._isBodyOverflowing && !isModalOverflowing) {
- this._element.style.paddingRight = this._scrollbarWidth + "px";
- }
- };
+ _proto._setScrollbar = function _setScrollbar() {
+ var _this9 = this;
+
+ if (this._isBodyOverflowing) {
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
+ // Adjust fixed content padding
+ $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+ var actualPadding = $$$1(element)[0].style.paddingRight;
+ var calculatedPadding = $$$1(element).css('padding-right');
+ $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
+ }); // Adjust sticky content margin
+
+ $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
+ var actualMargin = $$$1(element)[0].style.marginRight;
+ var calculatedMargin = $$$1(element).css('margin-right');
+ $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
+ }); // Adjust navbar-toggler margin
+
+ $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var actualMargin = $$$1(element)[0].style.marginRight;
+ var calculatedMargin = $$$1(element).css('margin-right');
+ $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
+ }); // Adjust body padding
+
+ var actualPadding = document.body.style.paddingRight;
+ var calculatedPadding = $$$1(document.body).css('padding-right');
+ $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
+ }
+ };
- _proto._resetAdjustments = function _resetAdjustments() {
- this._element.style.paddingLeft = '';
- this._element.style.paddingRight = '';
- };
+ _proto._resetScrollbar = function _resetScrollbar() {
+ // Restore fixed content padding
+ $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
+ var padding = $$$1(element).data('padding-right');
- _proto._checkScrollbar = function _checkScrollbar() {
- var rect = document.body.getBoundingClientRect();
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
- this._scrollbarWidth = this._getScrollbarWidth();
- };
+ if (typeof padding !== 'undefined') {
+ $$$1(element).css('padding-right', padding).removeData('padding-right');
+ }
+ }); // Restore sticky content and navbar-toggler margin
- _proto._setScrollbar = function _setScrollbar() {
- var _this9 = this;
+ $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var margin = $$$1(element).data('margin-right');
- if (this._isBodyOverflowing) {
- // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
- // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
- // Adjust fixed content padding
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
- var actualPadding = $$$1(element)[0].style.paddingRight;
- var calculatedPadding = $$$1(element).css('padding-right');
- $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
- }); // Adjust sticky content margin
-
- $$$1(Selector.STICKY_CONTENT).each(function (index, element) {
- var actualMargin = $$$1(element)[0].style.marginRight;
- var calculatedMargin = $$$1(element).css('margin-right');
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
- }); // Adjust navbar-toggler margin
-
- $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) {
- var actualMargin = $$$1(element)[0].style.marginRight;
- var calculatedMargin = $$$1(element).css('margin-right');
- $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
- }); // Adjust body padding
-
- var actualPadding = document.body.style.paddingRight;
- var calculatedPadding = $$$1('body').css('padding-right');
- $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
- }
- };
+ if (typeof margin !== 'undefined') {
+ $$$1(element).css('margin-right', margin).removeData('margin-right');
+ }
+ }); // Restore body padding
- _proto._resetScrollbar = function _resetScrollbar() {
- // Restore fixed content padding
- $$$1(Selector.FIXED_CONTENT).each(function (index, element) {
- var padding = $$$1(element).data('padding-right');
+ var padding = $$$1(document.body).data('padding-right');
if (typeof padding !== 'undefined') {
- $$$1(element).css('padding-right', padding).removeData('padding-right');
- }
- }); // Restore sticky content and navbar-toggler margin
-
- $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
- var margin = $$$1(element).data('margin-right');
-
- if (typeof margin !== 'undefined') {
- $$$1(element).css('margin-right', margin).removeData('margin-right');
+ $$$1(document.body).css('padding-right', padding).removeData('padding-right');
}
- }); // Restore body padding
+ };
- var padding = $$$1('body').data('padding-right');
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
+ // thx d.walsh
+ var scrollDiv = document.createElement('div');
+ scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
+ document.body.appendChild(scrollDiv);
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+ }; // Static
- if (typeof padding !== 'undefined') {
- $$$1('body').css('padding-right', padding).removeData('padding-right');
- }
- };
- _proto._getScrollbarWidth = function _getScrollbarWidth() {
- // thx d.walsh
- var scrollDiv = document.createElement('div');
- scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
- document.body.appendChild(scrollDiv);
- var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
- document.body.removeChild(scrollDiv);
- return scrollbarWidth;
- }; // Static
+ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
+ var _config = _objectSpread({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
- Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
-
- var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
+ if (!data) {
+ data = new Modal(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (!data) {
- data = new Modal(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ data[config](relatedTarget);
+ } else if (_config.show) {
+ data.show(relatedTarget);
}
+ });
+ };
- data[config](relatedTarget);
- } else if (_config.show) {
- data.show(relatedTarget);
+ _createClass(Modal, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
-
- _createClass(Modal, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
- return Modal;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
+ return Modal;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- var _this10 = this;
- var target;
- var selector = Util.getSelectorFromElement(this);
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ var _this10 = this;
- if (selector) {
- target = $$$1(selector)[0];
- }
+ var target;
+ var selector = Util.getSelectorFromElement(this);
- var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());
+ if (selector) {
+ target = $$$1(selector)[0];
+ }
- if (this.tagName === 'A' || this.tagName === 'AREA') {
- event.preventDefault();
- }
+ var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data());
- var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
- if (showEvent.isDefaultPrevented()) {
- // Only register focus restorer if modal will actually get shown
- return;
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
+ event.preventDefault();
}
- $target.one(Event.HIDDEN, function () {
- if ($$$1(_this10).is(':visible')) {
- _this10.focus();
+ var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
+ if (showEvent.isDefaultPrevented()) {
+ // Only register focus restorer if modal will actually get shown
+ return;
}
- });
- });
- Modal._jQueryInterface.call($$$1(target), config, this);
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ $target.one(Event.HIDDEN, function () {
+ if ($$$1(_this10).is(':visible')) {
+ _this10.focus();
+ }
+ });
+ });
- $$$1.fn[NAME] = Modal._jQueryInterface;
- $$$1.fn[NAME].Constructor = Modal;
+ Modal._jQueryInterface.call($$$1(target), config, this);
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Modal._jQueryInterface;
- };
+ $$$1.fn[NAME] = Modal._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Modal;
- return Modal;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Modal._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): tooltip.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Modal;
+ }($);
-var Tooltip = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): tooltip.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'tooltip';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.tooltip';
- var EVENT_KEY = "." + DATA_KEY;
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 150;
- var CLASS_PREFIX = 'bs-tooltip';
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var DefaultType = {
- animation: 'boolean',
- template: 'string',
- title: '(string|element|function)',
- trigger: 'string',
- delay: '(number|object)',
- html: 'boolean',
- selector: '(string|boolean)',
- placement: '(string|function)',
- offset: '(number|string)',
- container: '(string|element|boolean)',
- fallbackPlacement: '(string|array)',
- boundary: '(string|element)'
- };
- var AttachmentMap = {
- AUTO: 'auto',
- TOP: 'top',
- RIGHT: 'right',
- BOTTOM: 'bottom',
- LEFT: 'left'
- };
- var Default = {
- animation: true,
- template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
- trigger: 'hover focus',
- title: '',
- delay: 0,
- html: false,
- selector: false,
- placement: 'top',
- offset: 0,
- container: false,
- fallbackPlacement: 'flip',
- boundary: 'scrollParent'
- };
- var HoverState = {
- SHOW: 'show',
- OUT: 'out'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- INSERTED: "inserted" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- FOCUSOUT: "focusout" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY
- };
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TOOLTIP: '.tooltip',
- TOOLTIP_INNER: '.tooltip-inner',
- ARROW: '.arrow'
- };
- var Trigger = {
- HOVER: 'hover',
- FOCUS: 'focus',
- CLICK: 'click',
- MANUAL: 'manual'
+
+ var Tooltip = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
-
- };
-
- var Tooltip =
- /*#__PURE__*/
- function () {
- function Tooltip(element, config) {
+ var NAME = 'tooltip';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.tooltip';
+ var EVENT_KEY = "." + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var CLASS_PREFIX = 'bs-tooltip';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+ var DefaultType = {
+ animation: 'boolean',
+ template: 'string',
+ title: '(string|element|function)',
+ trigger: 'string',
+ delay: '(number|object)',
+ html: 'boolean',
+ selector: '(string|boolean)',
+ placement: '(string|function)',
+ offset: '(number|string)',
+ container: '(string|element|boolean)',
+ fallbackPlacement: '(string|array)',
+ boundary: '(string|element)'
+ };
+ var AttachmentMap = {
+ AUTO: 'auto',
+ TOP: 'top',
+ RIGHT: 'right',
+ BOTTOM: 'bottom',
+ LEFT: 'left'
+ };
+ var Default = {
+ animation: true,
+ template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ selector: false,
+ placement: 'top',
+ offset: 0,
+ container: false,
+ fallbackPlacement: 'flip',
+ boundary: 'scrollParent'
+ };
+ var HoverState = {
+ SHOW: 'show',
+ OUT: 'out'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ };
+ var ClassName = {
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ TOOLTIP: '.tooltip',
+ TOOLTIP_INNER: '.tooltip-inner',
+ ARROW: '.arrow'
+ };
+ var Trigger = {
+ HOVER: 'hover',
+ FOCUS: 'focus',
+ CLICK: 'click',
+ MANUAL: 'manual'
/**
- * Check for Popper dependency
- * Popper - https://popper.js.org
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
*/
- if (typeof Popper === 'undefined') {
- throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
- } // private
+ };
- this._isEnabled = true;
- this._timeout = 0;
- this._hoverState = '';
- this._activeTrigger = {};
- this._popper = null; // Protected
+ var Tooltip =
+ /*#__PURE__*/
+ function () {
+ function Tooltip(element, config) {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
+ } // private
- this.element = element;
- this.config = this._getConfig(config);
- this.tip = null;
- this._setListeners();
- } // Getters
+ this._isEnabled = true;
+ this._timeout = 0;
+ this._hoverState = '';
+ this._activeTrigger = {};
+ this._popper = null; // Protected
+ this.element = element;
+ this.config = this._getConfig(config);
+ this.tip = null;
- var _proto = Tooltip.prototype;
+ this._setListeners();
+ } // Getters
- // Public
- _proto.enable = function enable() {
- this._isEnabled = true;
- };
- _proto.disable = function disable() {
- this._isEnabled = false;
- };
+ var _proto = Tooltip.prototype;
- _proto.toggleEnabled = function toggleEnabled() {
- this._isEnabled = !this._isEnabled;
- };
+ // Public
+ _proto.enable = function enable() {
+ this._isEnabled = true;
+ };
- _proto.toggle = function toggle(event) {
- if (!this._isEnabled) {
- return;
- }
+ _proto.disable = function disable() {
+ this._isEnabled = false;
+ };
- if (event) {
- var dataKey = this.constructor.DATA_KEY;
- var context = $$$1(event.currentTarget).data(dataKey);
+ _proto.toggleEnabled = function toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ };
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
+ _proto.toggle = function toggle(event) {
+ if (!this._isEnabled) {
+ return;
}
- context._activeTrigger.click = !context._activeTrigger.click;
+ if (event) {
+ var dataKey = this.constructor.DATA_KEY;
+ var context = $$$1(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $$$1(event.currentTarget).data(dataKey, context);
+ }
- if (context._isWithActiveTrigger()) {
- context._enter(null, context);
+ context._activeTrigger.click = !context._activeTrigger.click;
+
+ if (context._isWithActiveTrigger()) {
+ context._enter(null, context);
+ } else {
+ context._leave(null, context);
+ }
} else {
- context._leave(null, context);
- }
- } else {
- if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
- this._leave(null, this);
+ if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
+ this._leave(null, this);
- return;
- }
+ return;
+ }
- this._enter(null, this);
- }
- };
+ this._enter(null, this);
+ }
+ };
- _proto.dispose = function dispose() {
- clearTimeout(this._timeout);
- $$$1.removeData(this.element, this.constructor.DATA_KEY);
- $$$1(this.element).off(this.constructor.EVENT_KEY);
- $$$1(this.element).closest('.modal').off('hide.bs.modal');
+ _proto.dispose = function dispose() {
+ clearTimeout(this._timeout);
+ $$$1.removeData(this.element, this.constructor.DATA_KEY);
+ $$$1(this.element).off(this.constructor.EVENT_KEY);
+ $$$1(this.element).closest('.modal').off('hide.bs.modal');
- if (this.tip) {
- $$$1(this.tip).remove();
- }
+ if (this.tip) {
+ $$$1(this.tip).remove();
+ }
- this._isEnabled = null;
- this._timeout = null;
- this._hoverState = null;
- this._activeTrigger = null;
+ this._isEnabled = null;
+ this._timeout = null;
+ this._hoverState = null;
+ this._activeTrigger = null;
- if (this._popper !== null) {
- this._popper.destroy();
- }
+ if (this._popper !== null) {
+ this._popper.destroy();
+ }
- this._popper = null;
- this.element = null;
- this.config = null;
- this.tip = null;
- };
+ this._popper = null;
+ this.element = null;
+ this.config = null;
+ this.tip = null;
+ };
- _proto.show = function show() {
- var _this = this;
+ _proto.show = function show() {
+ var _this = this;
- if ($$$1(this.element).css('display') === 'none') {
- throw new Error('Please use show on visible elements');
- }
+ if ($$$1(this.element).css('display') === 'none') {
+ throw new Error('Please use show on visible elements');
+ }
- var showEvent = $$$1.Event(this.constructor.Event.SHOW);
+ var showEvent = $$$1.Event(this.constructor.Event.SHOW);
- if (this.isWithContent() && this._isEnabled) {
- $$$1(this.element).trigger(showEvent);
- var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
+ if (this.isWithContent() && this._isEnabled) {
+ $$$1(this.element).trigger(showEvent);
+ var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
- if (showEvent.isDefaultPrevented() || !isInTheDom) {
- return;
- }
+ if (showEvent.isDefaultPrevented() || !isInTheDom) {
+ return;
+ }
- var tip = this.getTipElement();
- var tipId = Util.getUID(this.constructor.NAME);
- tip.setAttribute('id', tipId);
- this.element.setAttribute('aria-describedby', tipId);
- this.setContent();
+ var tip = this.getTipElement();
+ var tipId = Util.getUID(this.constructor.NAME);
+ tip.setAttribute('id', tipId);
+ this.element.setAttribute('aria-describedby', tipId);
+ this.setContent();
- if (this.config.animation) {
- $$$1(tip).addClass(ClassName.FADE);
- }
+ if (this.config.animation) {
+ $$$1(tip).addClass(ClassName.FADE);
+ }
- var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
- var attachment = this._getAttachment(placement);
+ var attachment = this._getAttachment(placement);
- this.addAttachmentClass(attachment);
- var container = this.config.container === false ? document.body : $$$1(this.config.container);
- $$$1(tip).data(this.constructor.DATA_KEY, this);
+ this.addAttachmentClass(attachment);
+ var container = this.config.container === false ? document.body : $$$1(this.config.container);
+ $$$1(tip).data(this.constructor.DATA_KEY, this);
- if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
- $$$1(tip).appendTo(container);
- }
+ if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
+ $$$1(tip).appendTo(container);
+ }
- $$$1(this.element).trigger(this.constructor.Event.INSERTED);
- this._popper = new Popper(this.element, tip, {
- placement: attachment,
- modifiers: {
- offset: {
- offset: this.config.offset
- },
- flip: {
- behavior: this.config.fallbackPlacement
+ $$$1(this.element).trigger(this.constructor.Event.INSERTED);
+ this._popper = new Popper(this.element, tip, {
+ placement: attachment,
+ modifiers: {
+ offset: {
+ offset: this.config.offset
+ },
+ flip: {
+ behavior: this.config.fallbackPlacement
+ },
+ arrow: {
+ element: Selector.ARROW
+ },
+ preventOverflow: {
+ boundariesElement: this.config.boundary
+ }
},
- arrow: {
- element: Selector.ARROW
+ onCreate: function onCreate(data) {
+ if (data.originalPlacement !== data.placement) {
+ _this._handlePopperPlacementChange(data);
+ }
},
- preventOverflow: {
- boundariesElement: this.config.boundary
- }
- },
- onCreate: function onCreate(data) {
- if (data.originalPlacement !== data.placement) {
+ onUpdate: function onUpdate(data) {
_this._handlePopperPlacementChange(data);
}
- },
- onUpdate: function onUpdate(data) {
- _this._handlePopperPlacementChange(data);
+ });
+ $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+ if ('ontouchstart' in document.documentElement) {
+ $$$1(document.body).children().on('mouseover', null, $$$1.noop);
}
- });
- $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
- // empty mouseover listeners to the body's immediate children;
- // only needed because of broken event delegation on iOS
- // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement) {
- $$$1('body').children().on('mouseover', null, $$$1.noop);
- }
+ var complete = function complete() {
+ if (_this.config.animation) {
+ _this._fixTransition();
+ }
- var complete = function complete() {
- if (_this.config.animation) {
- _this._fixTransition();
- }
+ var prevHoverState = _this._hoverState;
+ _this._hoverState = null;
+ $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
- var prevHoverState = _this._hoverState;
- _this._hoverState = null;
- $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
+ if (prevHoverState === HoverState.OUT) {
+ _this._leave(null, _this);
+ }
+ };
- if (prevHoverState === HoverState.OUT) {
- _this._leave(null, _this);
+ if ($$$1(this.tip).hasClass(ClassName.FADE)) {
+ var transitionDuration = Util.getTransitionDurationFromElement(this.tip);
+ $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ } else {
+ complete();
}
- };
-
- if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
- $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
- } else {
- complete();
}
- }
- };
+ };
- _proto.hide = function hide(callback) {
- var _this2 = this;
+ _proto.hide = function hide(callback) {
+ var _this2 = this;
- var tip = this.getTipElement();
- var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
+ var tip = this.getTipElement();
+ var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
- var complete = function complete() {
- if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
- tip.parentNode.removeChild(tip);
- }
+ var complete = function complete() {
+ if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
+ tip.parentNode.removeChild(tip);
+ }
- _this2._cleanTipClass();
+ _this2._cleanTipClass();
- _this2.element.removeAttribute('aria-describedby');
+ _this2.element.removeAttribute('aria-describedby');
- $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
+ $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
- if (_this2._popper !== null) {
- _this2._popper.destroy();
- }
+ if (_this2._popper !== null) {
+ _this2._popper.destroy();
+ }
- if (callback) {
- callback();
- }
- };
+ if (callback) {
+ callback();
+ }
+ };
- $$$1(this.element).trigger(hideEvent);
+ $$$1(this.element).trigger(hideEvent);
- if (hideEvent.isDefaultPrevented()) {
- return;
- }
+ if (hideEvent.isDefaultPrevented()) {
+ return;
+ }
- $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
- // empty mouseover listeners we added for iOS support
+ $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
- if ('ontouchstart' in document.documentElement) {
- $$$1('body').children().off('mouseover', null, $$$1.noop);
- }
+ if ('ontouchstart' in document.documentElement) {
+ $$$1(document.body).children().off('mouseover', null, $$$1.noop);
+ }
- this._activeTrigger[Trigger.CLICK] = false;
- this._activeTrigger[Trigger.FOCUS] = false;
- this._activeTrigger[Trigger.HOVER] = false;
+ this._activeTrigger[Trigger.CLICK] = false;
+ this._activeTrigger[Trigger.FOCUS] = false;
+ this._activeTrigger[Trigger.HOVER] = false;
- if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
- $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- complete();
- }
+ if ($$$1(this.tip).hasClass(ClassName.FADE)) {
+ var transitionDuration = Util.getTransitionDurationFromElement(tip);
+ $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ } else {
+ complete();
+ }
- this._hoverState = '';
- };
+ this._hoverState = '';
+ };
- _proto.update = function update() {
- if (this._popper !== null) {
- this._popper.scheduleUpdate();
- }
- }; // Protected
+ _proto.update = function update() {
+ if (this._popper !== null) {
+ this._popper.scheduleUpdate();
+ }
+ }; // Protected
- _proto.isWithContent = function isWithContent() {
- return Boolean(this.getTitle());
- };
+ _proto.isWithContent = function isWithContent() {
+ return Boolean(this.getTitle());
+ };
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
- };
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+ $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ };
- _proto.getTipElement = function getTipElement() {
- this.tip = this.tip || $$$1(this.config.template)[0];
- return this.tip;
- };
+ _proto.getTipElement = function getTipElement() {
+ this.tip = this.tip || $$$1(this.config.template)[0];
+ return this.tip;
+ };
- _proto.setContent = function setContent() {
- var $tip = $$$1(this.getTipElement());
- this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
- };
+ _proto.setContent = function setContent() {
+ var $tip = $$$1(this.getTipElement());
+ this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+ };
- _proto.setElementContent = function setElementContent($element, content) {
- var html = this.config.html;
+ _proto.setElementContent = function setElementContent($element, content) {
+ var html = this.config.html;
- if (typeof content === 'object' && (content.nodeType || content.jquery)) {
- // Content is a DOM node or a jQuery
- if (html) {
- if (!$$$1(content).parent().is($element)) {
- $element.empty().append(content);
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
+ // Content is a DOM node or a jQuery
+ if (html) {
+ if (!$$$1(content).parent().is($element)) {
+ $element.empty().append(content);
+ }
+ } else {
+ $element.text($$$1(content).text());
}
} else {
- $element.text($$$1(content).text());
+ $element[html ? 'html' : 'text'](content);
}
- } else {
- $element[html ? 'html' : 'text'](content);
- }
- };
+ };
- _proto.getTitle = function getTitle() {
- var title = this.element.getAttribute('data-original-title');
+ _proto.getTitle = function getTitle() {
+ var title = this.element.getAttribute('data-original-title');
- if (!title) {
- title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
- }
+ if (!title) {
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+ }
- return title;
- }; // Private
+ return title;
+ }; // Private
- _proto._getAttachment = function _getAttachment(placement) {
- return AttachmentMap[placement.toUpperCase()];
- };
+ _proto._getAttachment = function _getAttachment(placement) {
+ return AttachmentMap[placement.toUpperCase()];
+ };
- _proto._setListeners = function _setListeners() {
- var _this3 = this;
+ _proto._setListeners = function _setListeners() {
+ var _this3 = this;
+
+ var triggers = this.config.trigger.split(' ');
+ triggers.forEach(function (trigger) {
+ if (trigger === 'click') {
+ $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
+ return _this3.toggle(event);
+ });
+ } else if (trigger !== Trigger.MANUAL) {
+ var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
+ var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
+ $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
+ return _this3._enter(event);
+ }).on(eventOut, _this3.config.selector, function (event) {
+ return _this3._leave(event);
+ });
+ }
- var triggers = this.config.trigger.split(' ');
- triggers.forEach(function (trigger) {
- if (trigger === 'click') {
- $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
- return _this3.toggle(event);
+ $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
+ return _this3.hide();
});
- } else if (trigger !== Trigger.MANUAL) {
- var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
- var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
- $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) {
- return _this3._enter(event);
- }).on(eventOut, _this3.config.selector, function (event) {
- return _this3._leave(event);
+ });
+
+ if (this.config.selector) {
+ this.config = _objectSpread({}, this.config, {
+ trigger: 'manual',
+ selector: ''
});
+ } else {
+ this._fixTitle();
}
+ };
- $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () {
- return _this3.hide();
- });
- });
-
- if (this.config.selector) {
- this.config = _extends({}, this.config, {
- trigger: 'manual',
- selector: ''
- });
- } else {
- this._fixTitle();
- }
- };
+ _proto._fixTitle = function _fixTitle() {
+ var titleType = typeof this.element.getAttribute('data-original-title');
- _proto._fixTitle = function _fixTitle() {
- var titleType = typeof this.element.getAttribute('data-original-title');
+ if (this.element.getAttribute('title') || titleType !== 'string') {
+ this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
+ this.element.setAttribute('title', '');
+ }
+ };
- if (this.element.getAttribute('title') || titleType !== 'string') {
- this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
- this.element.setAttribute('title', '');
- }
- };
+ _proto._enter = function _enter(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || $$$1(event.currentTarget).data(dataKey);
- _proto._enter = function _enter(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $$$1(event.currentTarget).data(dataKey);
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $$$1(event.currentTarget).data(dataKey, context);
+ }
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
- }
+ if (event) {
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
+ }
- if (event) {
- context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
- }
+ if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+ context._hoverState = HoverState.SHOW;
+ return;
+ }
- if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+ clearTimeout(context._timeout);
context._hoverState = HoverState.SHOW;
- return;
- }
- clearTimeout(context._timeout);
- context._hoverState = HoverState.SHOW;
-
- if (!context.config.delay || !context.config.delay.show) {
- context.show();
- return;
- }
-
- context._timeout = setTimeout(function () {
- if (context._hoverState === HoverState.SHOW) {
+ if (!context.config.delay || !context.config.delay.show) {
context.show();
+ return;
}
- }, context.config.delay.show);
- };
- _proto._leave = function _leave(event, context) {
- var dataKey = this.constructor.DATA_KEY;
- context = context || $$$1(event.currentTarget).data(dataKey);
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.SHOW) {
+ context.show();
+ }
+ }, context.config.delay.show);
+ };
- if (!context) {
- context = new this.constructor(event.currentTarget, this._getDelegateConfig());
- $$$1(event.currentTarget).data(dataKey, context);
- }
+ _proto._leave = function _leave(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || $$$1(event.currentTarget).data(dataKey);
- if (event) {
- context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
- }
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $$$1(event.currentTarget).data(dataKey, context);
+ }
- if (context._isWithActiveTrigger()) {
- return;
- }
+ if (event) {
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
+ }
- clearTimeout(context._timeout);
- context._hoverState = HoverState.OUT;
+ if (context._isWithActiveTrigger()) {
+ return;
+ }
- if (!context.config.delay || !context.config.delay.hide) {
- context.hide();
- return;
- }
+ clearTimeout(context._timeout);
+ context._hoverState = HoverState.OUT;
- context._timeout = setTimeout(function () {
- if (context._hoverState === HoverState.OUT) {
+ if (!context.config.delay || !context.config.delay.hide) {
context.hide();
+ return;
}
- }, context.config.delay.hide);
- };
- _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
- for (var trigger in this._activeTrigger) {
- if (this._activeTrigger[trigger]) {
- return true;
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.OUT) {
+ context.hide();
+ }
+ }, context.config.delay.hide);
+ };
+
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
+ for (var trigger in this._activeTrigger) {
+ if (this._activeTrigger[trigger]) {
+ return true;
+ }
}
- }
- return false;
- };
+ return false;
+ };
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), config);
- if (typeof config.delay === 'number') {
- config.delay = {
- show: config.delay,
- hide: config.delay
- };
- }
+ if (typeof config.delay === 'number') {
+ config.delay = {
+ show: config.delay,
+ hide: config.delay
+ };
+ }
- if (typeof config.title === 'number') {
- config.title = config.title.toString();
- }
+ if (typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
- if (typeof config.content === 'number') {
- config.content = config.content.toString();
- }
+ if (typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
- Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
- return config;
- };
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
- _proto._getDelegateConfig = function _getDelegateConfig() {
- var config = {};
+ _proto._getDelegateConfig = function _getDelegateConfig() {
+ var config = {};
- if (this.config) {
- for (var key in this.config) {
- if (this.constructor.Default[key] !== this.config[key]) {
- config[key] = this.config[key];
+ if (this.config) {
+ for (var key in this.config) {
+ if (this.constructor.Default[key] !== this.config[key]) {
+ config[key] = this.config[key];
+ }
}
}
- }
- return config;
- };
-
- _proto._cleanTipClass = function _cleanTipClass() {
- var $tip = $$$1(this.getTipElement());
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+ return config;
+ };
- if (tabClass !== null && tabClass.length > 0) {
- $tip.removeClass(tabClass.join(''));
- }
- };
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var $tip = $$$1(this.getTipElement());
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
- _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
- this._cleanTipClass();
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
+ }
+ };
- this.addAttachmentClass(this._getAttachment(data.placement));
- };
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
+ this._cleanTipClass();
- _proto._fixTransition = function _fixTransition() {
- var tip = this.getTipElement();
- var initConfigAnimation = this.config.animation;
+ this.addAttachmentClass(this._getAttachment(data.placement));
+ };
- if (tip.getAttribute('x-placement') !== null) {
- return;
- }
+ _proto._fixTransition = function _fixTransition() {
+ var tip = this.getTipElement();
+ var initConfigAnimation = this.config.animation;
- $$$1(tip).removeClass(ClassName.FADE);
- this.config.animation = false;
- this.hide();
- this.show();
- this.config.animation = initConfigAnimation;
- }; // Static
+ if (tip.getAttribute('x-placement') !== null) {
+ return;
+ }
+ $$$1(tip).removeClass(ClassName.FADE);
+ this.config.animation = false;
+ this.hide();
+ this.show();
+ this.config.animation = initConfigAnimation;
+ }; // Static
- Tooltip._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
- var _config = typeof config === 'object' && config;
+ Tooltip._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- if (!data && /dispose|hide/.test(config)) {
- return;
- }
+ var _config = typeof config === 'object' && config;
- if (!data) {
- data = new Tooltip(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ if (!data) {
+ data = new Tooltip(this, _config);
+ $$$1(this).data(DATA_KEY, data);
}
- data[config]();
- }
- });
- };
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
- _createClass(Tooltip, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "NAME",
- get: function get() {
- return NAME;
- }
- }, {
- key: "DATA_KEY",
- get: function get() {
- return DATA_KEY;
- }
- }, {
- key: "Event",
- get: function get() {
- return Event;
- }
- }, {
- key: "EVENT_KEY",
- get: function get() {
- return EVENT_KEY;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
- return Tooltip;
- }();
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ data[config]();
+ }
+ });
+ };
+ _createClass(Tooltip, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Tooltip;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME] = Tooltip._jQueryInterface;
- $$$1.fn[NAME].Constructor = Tooltip;
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Tooltip._jQueryInterface;
- };
+ $$$1.fn[NAME] = Tooltip._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Tooltip;
- return Tooltip;
-}($, Popper);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tooltip._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): popover.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Tooltip;
+ }($, Popper);
-var Popover = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): popover.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'popover';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.popover';
- var EVENT_KEY = "." + DATA_KEY;
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var CLASS_PREFIX = 'bs-popover';
- var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var Default = _extends({}, Tooltip.Default, {
- placement: 'right',
- trigger: 'click',
- content: '',
- template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
- });
- var DefaultType = _extends({}, Tooltip.DefaultType, {
- content: '(string|element|function)'
- });
- var ClassName = {
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- TITLE: '.popover-header',
- CONTENT: '.popover-body'
- };
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- INSERTED: "inserted" + EVENT_KEY,
- CLICK: "click" + EVENT_KEY,
- FOCUSIN: "focusin" + EVENT_KEY,
- FOCUSOUT: "focusout" + EVENT_KEY,
- MOUSEENTER: "mouseenter" + EVENT_KEY,
- MOUSELEAVE: "mouseleave" + EVENT_KEY
+
+ var Popover = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'popover';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.popover';
+ var EVENT_KEY = "." + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var CLASS_PREFIX = 'bs-popover';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+
+ var Default = _objectSpread({}, Tooltip.Default, {
+ placement: 'right',
+ trigger: 'click',
+ content: '',
+ template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
+ });
- };
-
- var Popover =
- /*#__PURE__*/
- function (_Tooltip) {
- _inheritsLoose(Popover, _Tooltip);
-
- function Popover() {
- return _Tooltip.apply(this, arguments) || this;
- }
+ var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
+ content: '(string|element|function)'
+ });
- var _proto = Popover.prototype;
+ var ClassName = {
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ TITLE: '.popover-header',
+ CONTENT: '.popover-body'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- // Overrides
- _proto.isWithContent = function isWithContent() {
- return this.getTitle() || this._getContent();
};
- _proto.addAttachmentClass = function addAttachmentClass(attachment) {
- $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
- };
+ var Popover =
+ /*#__PURE__*/
+ function (_Tooltip) {
+ _inheritsLoose(Popover, _Tooltip);
- _proto.getTipElement = function getTipElement() {
- this.tip = this.tip || $$$1(this.config.template)[0];
- return this.tip;
- };
+ function Popover() {
+ return _Tooltip.apply(this, arguments) || this;
+ }
- _proto.setContent = function setContent() {
- var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
+ var _proto = Popover.prototype;
- this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
+ // Overrides
+ _proto.isWithContent = function isWithContent() {
+ return this.getTitle() || this._getContent();
+ };
- var content = this._getContent();
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+ $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ };
- if (typeof content === 'function') {
- content = content.call(this.element);
- }
+ _proto.getTipElement = function getTipElement() {
+ this.tip = this.tip || $$$1(this.config.template)[0];
+ return this.tip;
+ };
- this.setElementContent($tip.find(Selector.CONTENT), content);
- $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
- }; // Private
+ _proto.setContent = function setContent() {
+ var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
+ this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
- _proto._getContent = function _getContent() {
- return this.element.getAttribute('data-content') || this.config.content;
- };
+ var content = this._getContent();
- _proto._cleanTipClass = function _cleanTipClass() {
- var $tip = $$$1(this.getTipElement());
- var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+ if (typeof content === 'function') {
+ content = content.call(this.element);
+ }
- if (tabClass !== null && tabClass.length > 0) {
- $tip.removeClass(tabClass.join(''));
- }
- }; // Static
+ this.setElementContent($tip.find(Selector.CONTENT), content);
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+ }; // Private
- Popover._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ _proto._getContent = function _getContent() {
+ return this.element.getAttribute('data-content') || this.config.content;
+ };
- var _config = typeof config === 'object' ? config : null;
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var $tip = $$$1(this.getTipElement());
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
- if (!data && /destroy|hide/.test(config)) {
- return;
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
}
+ }; // Static
- if (!data) {
- data = new Popover(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ Popover._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
+
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data && /destroy|hide/.test(config)) {
+ return;
}
- data[config]();
- }
- });
- };
+ if (!data) {
+ data = new Popover(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- _createClass(Popover, null, [{
- key: "VERSION",
- // Getters
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }, {
- key: "NAME",
- get: function get() {
- return NAME;
- }
- }, {
- key: "DATA_KEY",
- get: function get() {
- return DATA_KEY;
- }
- }, {
- key: "Event",
- get: function get() {
- return Event;
- }
- }, {
- key: "EVENT_KEY",
- get: function get() {
- return EVENT_KEY;
- }
- }, {
- key: "DefaultType",
- get: function get() {
- return DefaultType;
- }
- }]);
- return Popover;
- }(Tooltip);
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+ _createClass(Popover, null, [{
+ key: "VERSION",
+ // Getters
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+
+ return Popover;
+ }(Tooltip);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME] = Popover._jQueryInterface;
- $$$1.fn[NAME].Constructor = Popover;
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Popover._jQueryInterface;
- };
+ $$$1.fn[NAME] = Popover._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Popover;
- return Popover;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Popover._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): scrollspy.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return Popover;
+ }($);
-var ScrollSpy = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): scrollspy.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'scrollspy';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.scrollspy';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var Default = {
- offset: 10,
- method: 'auto',
- target: ''
- };
- var DefaultType = {
- offset: 'number',
- method: 'string',
- target: '(string|element)'
- };
- var Event = {
- ACTIVATE: "activate" + EVENT_KEY,
- SCROLL: "scroll" + EVENT_KEY,
- LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DROPDOWN_ITEM: 'dropdown-item',
- DROPDOWN_MENU: 'dropdown-menu',
- ACTIVE: 'active'
- };
- var Selector = {
- DATA_SPY: '[data-spy="scroll"]',
- ACTIVE: '.active',
- NAV_LIST_GROUP: '.nav, .list-group',
- NAV_LINKS: '.nav-link',
- NAV_ITEMS: '.nav-item',
- LIST_ITEMS: '.list-group-item',
- DROPDOWN: '.dropdown',
- DROPDOWN_ITEMS: '.dropdown-item',
- DROPDOWN_TOGGLE: '.dropdown-toggle'
- };
- var OffsetMethod = {
- OFFSET: 'offset',
- POSITION: 'position'
+
+ var ScrollSpy = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'scrollspy';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.scrollspy';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var Default = {
+ offset: 10,
+ method: 'auto',
+ target: ''
+ };
+ var DefaultType = {
+ offset: 'number',
+ method: 'string',
+ target: '(string|element)'
+ };
+ var Event = {
+ ACTIVATE: "activate" + EVENT_KEY,
+ SCROLL: "scroll" + EVENT_KEY,
+ LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DROPDOWN_ITEM: 'dropdown-item',
+ DROPDOWN_MENU: 'dropdown-menu',
+ ACTIVE: 'active'
+ };
+ var Selector = {
+ DATA_SPY: '[data-spy="scroll"]',
+ ACTIVE: '.active',
+ NAV_LIST_GROUP: '.nav, .list-group',
+ NAV_LINKS: '.nav-link',
+ NAV_ITEMS: '.nav-item',
+ LIST_ITEMS: '.list-group-item',
+ DROPDOWN: '.dropdown',
+ DROPDOWN_ITEMS: '.dropdown-item',
+ DROPDOWN_TOGGLE: '.dropdown-toggle'
+ };
+ var OffsetMethod = {
+ OFFSET: 'offset',
+ POSITION: 'position'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var ScrollSpy =
- /*#__PURE__*/
- function () {
- function ScrollSpy(element, config) {
- var _this = this;
+ var ScrollSpy =
+ /*#__PURE__*/
+ function () {
+ function ScrollSpy(element, config) {
+ var _this = this;
- this._element = element;
- this._scrollElement = element.tagName === 'BODY' ? window : element;
- this._config = this._getConfig(config);
- this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
- this._offsets = [];
- this._targets = [];
- this._activeTarget = null;
- this._scrollHeight = 0;
- $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
- return _this._process(event);
- });
- this.refresh();
+ this._element = element;
+ this._scrollElement = element.tagName === 'BODY' ? window : element;
+ this._config = this._getConfig(config);
+ this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
+ this._offsets = [];
+ this._targets = [];
+ this._activeTarget = null;
+ this._scrollHeight = 0;
+ $$$1(this._scrollElement).on(Event.SCROLL, function (event) {
+ return _this._process(event);
+ });
+ this.refresh();
- this._process();
- } // Getters
+ this._process();
+ } // Getters
- var _proto = ScrollSpy.prototype;
+ var _proto = ScrollSpy.prototype;
- // Public
- _proto.refresh = function refresh() {
- var _this2 = this;
+ // Public
+ _proto.refresh = function refresh() {
+ var _this2 = this;
- var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
- var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
- var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
- this._offsets = [];
- this._targets = [];
- this._scrollHeight = this._getScrollHeight();
- var targets = $$$1.makeArray($$$1(this._selector));
- targets.map(function (element) {
- var target;
- var targetSelector = Util.getSelectorFromElement(element);
+ var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
+ var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+ var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
+ this._offsets = [];
+ this._targets = [];
+ this._scrollHeight = this._getScrollHeight();
+ var targets = $$$1.makeArray($$$1(this._selector));
+ targets.map(function (element) {
+ var target;
+ var targetSelector = Util.getSelectorFromElement(element);
- if (targetSelector) {
- target = $$$1(targetSelector)[0];
- }
+ if (targetSelector) {
+ target = $$$1(targetSelector)[0];
+ }
- if (target) {
- var targetBCR = target.getBoundingClientRect();
+ if (target) {
+ var targetBCR = target.getBoundingClientRect();
- if (targetBCR.width || targetBCR.height) {
- // TODO (fat): remove sketch reliance on jQuery position/offset
- return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
+ if (targetBCR.width || targetBCR.height) {
+ // TODO (fat): remove sketch reliance on jQuery position/offset
+ return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
+ }
}
- }
- return null;
- }).filter(function (item) {
- return item;
- }).sort(function (a, b) {
- return a[0] - b[0];
- }).forEach(function (item) {
- _this2._offsets.push(item[0]);
+ return null;
+ }).filter(function (item) {
+ return item;
+ }).sort(function (a, b) {
+ return a[0] - b[0];
+ }).forEach(function (item) {
+ _this2._offsets.push(item[0]);
- _this2._targets.push(item[1]);
- });
- };
+ _this2._targets.push(item[1]);
+ });
+ };
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- $$$1(this._scrollElement).off(EVENT_KEY);
- this._element = null;
- this._scrollElement = null;
- this._config = null;
- this._selector = null;
- this._offsets = null;
- this._targets = null;
- this._activeTarget = null;
- this._scrollHeight = null;
- }; // Private
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ $$$1(this._scrollElement).off(EVENT_KEY);
+ this._element = null;
+ this._scrollElement = null;
+ this._config = null;
+ this._selector = null;
+ this._offsets = null;
+ this._targets = null;
+ this._activeTarget = null;
+ this._scrollHeight = null;
+ }; // Private
- _proto._getConfig = function _getConfig(config) {
- config = _extends({}, Default, config);
+ _proto._getConfig = function _getConfig(config) {
+ config = _objectSpread({}, Default, config);
- if (typeof config.target !== 'string') {
- var id = $$$1(config.target).attr('id');
+ if (typeof config.target !== 'string') {
+ var id = $$$1(config.target).attr('id');
+
+ if (!id) {
+ id = Util.getUID(NAME);
+ $$$1(config.target).attr('id', id);
+ }
- if (!id) {
- id = Util.getUID(NAME);
- $$$1(config.target).attr('id', id);
+ config.target = "#" + id;
}
- config.target = "#" + id;
- }
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
- Util.typeCheckConfig(NAME, config, DefaultType);
- return config;
- };
+ _proto._getScrollTop = function _getScrollTop() {
+ return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
+ };
- _proto._getScrollTop = function _getScrollTop() {
- return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
- };
+ _proto._getScrollHeight = function _getScrollHeight() {
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+ };
- _proto._getScrollHeight = function _getScrollHeight() {
- return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
- };
+ _proto._getOffsetHeight = function _getOffsetHeight() {
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
+ };
- _proto._getOffsetHeight = function _getOffsetHeight() {
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
- };
+ _proto._process = function _process() {
+ var scrollTop = this._getScrollTop() + this._config.offset;
- _proto._process = function _process() {
- var scrollTop = this._getScrollTop() + this._config.offset;
+ var scrollHeight = this._getScrollHeight();
- var scrollHeight = this._getScrollHeight();
+ var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
- var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
+ if (this._scrollHeight !== scrollHeight) {
+ this.refresh();
+ }
- if (this._scrollHeight !== scrollHeight) {
- this.refresh();
- }
+ if (scrollTop >= maxScroll) {
+ var target = this._targets[this._targets.length - 1];
- if (scrollTop >= maxScroll) {
- var target = this._targets[this._targets.length - 1];
+ if (this._activeTarget !== target) {
+ this._activate(target);
+ }
- if (this._activeTarget !== target) {
- this._activate(target);
+ return;
}
- return;
- }
-
- if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
- this._activeTarget = null;
+ if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
+ this._activeTarget = null;
- this._clear();
+ this._clear();
- return;
- }
+ return;
+ }
- for (var i = this._offsets.length; i--;) {
- var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
+ for (var i = this._offsets.length; i--;) {
+ var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
- if (isActiveTarget) {
- this._activate(this._targets[i]);
+ if (isActiveTarget) {
+ this._activate(this._targets[i]);
+ }
}
- }
- };
+ };
- _proto._activate = function _activate(target) {
- this._activeTarget = target;
+ _proto._activate = function _activate(target) {
+ this._activeTarget = target;
- this._clear();
+ this._clear();
- var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
+ var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
- queries = queries.map(function (selector) {
- return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
- });
- var $link = $$$1(queries.join(','));
+ queries = queries.map(function (selector) {
+ return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
+ });
+ var $link = $$$1(queries.join(','));
- if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
- $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
- $link.addClass(ClassName.ACTIVE);
- } else {
- // Set triggered link as active
- $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
- // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+ if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
+ $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ $link.addClass(ClassName.ACTIVE);
+ } else {
+ // Set triggered link as active
+ $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
+ $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
- $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
- }
+ $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
+ }
- $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
- relatedTarget: target
- });
- };
+ $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
+ relatedTarget: target
+ });
+ };
- _proto._clear = function _clear() {
- $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
- }; // Static
+ _proto._clear = function _clear() {
+ $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+ }; // Static
- ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var data = $$$1(this).data(DATA_KEY);
+ ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $$$1(this).data(DATA_KEY);
- var _config = typeof config === 'object' && config;
+ var _config = typeof config === 'object' && config;
- if (!data) {
- data = new ScrollSpy(this, _config);
- $$$1(this).data(DATA_KEY, data);
- }
+ if (!data) {
+ data = new ScrollSpy(this, _config);
+ $$$1(this).data(DATA_KEY, data);
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
+
+ data[config]();
}
+ });
+ };
- data[config]();
+ _createClass(ScrollSpy, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
-
- _createClass(ScrollSpy, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }, {
- key: "Default",
- get: function get() {
- return Default;
- }
- }]);
- return ScrollSpy;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
+ return ScrollSpy;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(window).on(Event.LOAD_DATA_API, function () {
- var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
- for (var i = scrollSpys.length; i--;) {
- var $spy = $$$1(scrollSpys[i]);
+ $$$1(window).on(Event.LOAD_DATA_API, function () {
+ var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
- ScrollSpy._jQueryInterface.call($spy, $spy.data());
- }
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ for (var i = scrollSpys.length; i--;) {
+ var $spy = $$$1(scrollSpys[i]);
- $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
- $$$1.fn[NAME].Constructor = ScrollSpy;
+ ScrollSpy._jQueryInterface.call($spy, $spy.data());
+ }
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return ScrollSpy._jQueryInterface;
- };
+ $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
+ $$$1.fn[NAME].Constructor = ScrollSpy;
- return ScrollSpy;
-}($);
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return ScrollSpy._jQueryInterface;
+ };
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0): tab.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ return ScrollSpy;
+ }($);
-var Tab = function ($$$1) {
/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.1.0): tab.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
*/
- var NAME = 'tab';
- var VERSION = '4.0.0';
- var DATA_KEY = 'bs.tab';
- var EVENT_KEY = "." + DATA_KEY;
- var DATA_API_KEY = '.data-api';
- var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
- var TRANSITION_DURATION = 150;
- var Event = {
- HIDE: "hide" + EVENT_KEY,
- HIDDEN: "hidden" + EVENT_KEY,
- SHOW: "show" + EVENT_KEY,
- SHOWN: "shown" + EVENT_KEY,
- CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
- };
- var ClassName = {
- DROPDOWN_MENU: 'dropdown-menu',
- ACTIVE: 'active',
- DISABLED: 'disabled',
- FADE: 'fade',
- SHOW: 'show'
- };
- var Selector = {
- DROPDOWN: '.dropdown',
- NAV_LIST_GROUP: '.nav, .list-group',
- ACTIVE: '.active',
- ACTIVE_UL: '> li > .active',
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
- DROPDOWN_TOGGLE: '.dropdown-toggle',
- DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+
+ var Tab = function ($$$1) {
/**
* ------------------------------------------------------------------------
- * Class Definition
+ * Constants
* ------------------------------------------------------------------------
*/
+ var NAME = 'tab';
+ var VERSION = '4.1.0';
+ var DATA_KEY = 'bs.tab';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DROPDOWN_MENU: 'dropdown-menu',
+ ACTIVE: 'active',
+ DISABLED: 'disabled',
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ DROPDOWN: '.dropdown',
+ NAV_LIST_GROUP: '.nav, .list-group',
+ ACTIVE: '.active',
+ ACTIVE_UL: '> li > .active',
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
+ DROPDOWN_TOGGLE: '.dropdown-toggle',
+ DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
- };
+ };
- var Tab =
- /*#__PURE__*/
- function () {
- function Tab(element) {
- this._element = element;
- } // Getters
+ var Tab =
+ /*#__PURE__*/
+ function () {
+ function Tab(element) {
+ this._element = element;
+ } // Getters
- var _proto = Tab.prototype;
+ var _proto = Tab.prototype;
- // Public
- _proto.show = function show() {
- var _this = this;
+ // Public
+ _proto.show = function show() {
+ var _this = this;
- if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
- return;
- }
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
+ return;
+ }
- var target;
- var previous;
- var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
- var selector = Util.getSelectorFromElement(this._element);
-
- if (listElement) {
- var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
- previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
- previous = previous[previous.length - 1];
- }
+ var target;
+ var previous;
+ var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
+ var selector = Util.getSelectorFromElement(this._element);
- var hideEvent = $$$1.Event(Event.HIDE, {
- relatedTarget: this._element
- });
- var showEvent = $$$1.Event(Event.SHOW, {
- relatedTarget: previous
- });
+ if (listElement) {
+ var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
+ previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
+ previous = previous[previous.length - 1];
+ }
- if (previous) {
- $$$1(previous).trigger(hideEvent);
- }
+ var hideEvent = $$$1.Event(Event.HIDE, {
+ relatedTarget: this._element
+ });
+ var showEvent = $$$1.Event(Event.SHOW, {
+ relatedTarget: previous
+ });
- $$$1(this._element).trigger(showEvent);
+ if (previous) {
+ $$$1(previous).trigger(hideEvent);
+ }
- if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
- return;
- }
+ $$$1(this._element).trigger(showEvent);
- if (selector) {
- target = $$$1(selector)[0];
- }
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
+ return;
+ }
- this._activate(this._element, listElement);
+ if (selector) {
+ target = $$$1(selector)[0];
+ }
- var complete = function complete() {
- var hiddenEvent = $$$1.Event(Event.HIDDEN, {
- relatedTarget: _this._element
- });
- var shownEvent = $$$1.Event(Event.SHOWN, {
- relatedTarget: previous
- });
- $$$1(previous).trigger(hiddenEvent);
- $$$1(_this._element).trigger(shownEvent);
+ this._activate(this._element, listElement);
+
+ var complete = function complete() {
+ var hiddenEvent = $$$1.Event(Event.HIDDEN, {
+ relatedTarget: _this._element
+ });
+ var shownEvent = $$$1.Event(Event.SHOWN, {
+ relatedTarget: previous
+ });
+ $$$1(previous).trigger(hiddenEvent);
+ $$$1(_this._element).trigger(shownEvent);
+ };
+
+ if (target) {
+ this._activate(target, target.parentNode, complete);
+ } else {
+ complete();
+ }
};
- if (target) {
- this._activate(target, target.parentNode, complete);
- } else {
- complete();
- }
- };
+ _proto.dispose = function dispose() {
+ $$$1.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // Private
- _proto.dispose = function dispose() {
- $$$1.removeData(this._element, DATA_KEY);
- this._element = null;
- }; // Private
+ _proto._activate = function _activate(element, container, callback) {
+ var _this2 = this;
- _proto._activate = function _activate(element, container, callback) {
- var _this2 = this;
+ var activeElements;
- var activeElements;
+ if (container.nodeName === 'UL') {
+ activeElements = $$$1(container).find(Selector.ACTIVE_UL);
+ } else {
+ activeElements = $$$1(container).children(Selector.ACTIVE);
+ }
- if (container.nodeName === 'UL') {
- activeElements = $$$1(container).find(Selector.ACTIVE_UL);
- } else {
- activeElements = $$$1(container).children(Selector.ACTIVE);
- }
+ var active = activeElements[0];
+ var isTransitioning = callback && active && $$$1(active).hasClass(ClassName.FADE);
- var active = activeElements[0];
- var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);
+ var complete = function complete() {
+ return _this2._transitionComplete(element, active, callback);
+ };
- var complete = function complete() {
- return _this2._transitionComplete(element, active, callback);
+ if (active && isTransitioning) {
+ var transitionDuration = Util.getTransitionDurationFromElement(active);
+ $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
+ } else {
+ complete();
+ }
};
- if (active && isTransitioning) {
- $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
- } else {
- complete();
- }
- };
+ _proto._transitionComplete = function _transitionComplete(element, active, callback) {
+ if (active) {
+ $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
+ var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
- _proto._transitionComplete = function _transitionComplete(element, active, callback) {
- if (active) {
- $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
- var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
+ if (dropdownChild) {
+ $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
+ }
- if (dropdownChild) {
- $$$1(dropdownChild).removeClass(ClassName.ACTIVE);
+ if (active.getAttribute('role') === 'tab') {
+ active.setAttribute('aria-selected', false);
+ }
}
- if (active.getAttribute('role') === 'tab') {
- active.setAttribute('aria-selected', false);
- }
- }
+ $$$1(element).addClass(ClassName.ACTIVE);
- $$$1(element).addClass(ClassName.ACTIVE);
+ if (element.getAttribute('role') === 'tab') {
+ element.setAttribute('aria-selected', true);
+ }
- if (element.getAttribute('role') === 'tab') {
- element.setAttribute('aria-selected', true);
- }
+ Util.reflow(element);
+ $$$1(element).addClass(ClassName.SHOW);
- Util.reflow(element);
- $$$1(element).addClass(ClassName.SHOW);
+ if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
+ var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
- if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
- var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
+ if (dropdownElement) {
+ $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ }
- if (dropdownElement) {
- $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ element.setAttribute('aria-expanded', true);
}
- element.setAttribute('aria-expanded', true);
- }
+ if (callback) {
+ callback();
+ }
+ }; // Static
- if (callback) {
- callback();
- }
- }; // Static
+ Tab._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $this = $$$1(this);
+ var data = $this.data(DATA_KEY);
- Tab._jQueryInterface = function _jQueryInterface(config) {
- return this.each(function () {
- var $this = $$$1(this);
- var data = $this.data(DATA_KEY);
+ if (!data) {
+ data = new Tab(this);
+ $this.data(DATA_KEY, data);
+ }
- if (!data) {
- data = new Tab(this);
- $this.data(DATA_KEY, data);
- }
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError("No method named \"" + config + "\"");
+ }
- if (typeof config === 'string') {
- if (typeof data[config] === 'undefined') {
- throw new TypeError("No method named \"" + config + "\"");
+ data[config]();
}
+ });
+ };
- data[config]();
+ _createClass(Tab, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
}
- });
- };
+ }]);
- _createClass(Tab, null, [{
- key: "VERSION",
- get: function get() {
- return VERSION;
- }
- }]);
- return Tab;
- }();
- /**
- * ------------------------------------------------------------------------
- * Data Api implementation
- * ------------------------------------------------------------------------
- */
+ return Tab;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
- $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- event.preventDefault();
+ $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ event.preventDefault();
- Tab._jQueryInterface.call($$$1(this), 'show');
- });
- /**
- * ------------------------------------------------------------------------
- * jQuery
- * ------------------------------------------------------------------------
- */
+ Tab._jQueryInterface.call($$$1(this), 'show');
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
- $$$1.fn[NAME] = Tab._jQueryInterface;
- $$$1.fn[NAME].Constructor = Tab;
+ $$$1.fn[NAME] = Tab._jQueryInterface;
+ $$$1.fn[NAME].Constructor = Tab;
- $$$1.fn[NAME].noConflict = function () {
- $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
- return Tab._jQueryInterface;
- };
+ $$$1.fn[NAME].noConflict = function () {
+ $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tab._jQueryInterface;
+ };
- return Tab;
-}($);
+ return Tab;
+ }($);
-/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.0.0-alpha.6): index.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
+ /**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0): index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
-(function ($$$1) {
- if (typeof $$$1 === 'undefined') {
- throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
- }
+ (function ($$$1) {
+ if (typeof $$$1 === 'undefined') {
+ throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
+ }
- var version = $$$1.fn.jquery.split(' ')[0].split('.');
- var minMajor = 1;
- var ltMajor = 2;
- var minMinor = 9;
- var minPatch = 1;
- var maxMajor = 4;
+ var version = $$$1.fn.jquery.split(' ')[0].split('.');
+ var minMajor = 1;
+ var ltMajor = 2;
+ var minMinor = 9;
+ var minPatch = 1;
+ var maxMajor = 4;
- if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
- throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
- }
-})($);
-
-exports.Util = Util;
-exports.Alert = Alert;
-exports.Button = Button;
-exports.Carousel = Carousel;
-exports.Collapse = Collapse;
-exports.Dropdown = Dropdown;
-exports.Modal = Modal;
-exports.Popover = Popover;
-exports.Scrollspy = ScrollSpy;
-exports.Tab = Tab;
-exports.Tooltip = Tooltip;
-
-Object.defineProperty(exports, '__esModule', { value: true });
+ if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
+ throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
+ }
+ })($);
+
+ exports.Util = Util;
+ exports.Alert = Alert;
+ exports.Button = Button;
+ exports.Carousel = Carousel;
+ exports.Collapse = Collapse;
+ exports.Dropdown = Dropdown;
+ exports.Modal = Modal;
+ exports.Popover = Popover;
+ exports.Scrollspy = ScrollSpy;
+ exports.Tab = Tab;
+ exports.Tooltip = Tooltip;
+
+ Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=bootstrap.js.map
diff --git a/library/bootstrap/js/bootstrap.js.map b/library/bootstrap/js/bootstrap.js.map
index cafe4cb3d..7b50f7d47 100644
--- a/library/bootstrap/js/bootstrap.js.map
+++ b/library/bootstrap/js/bootstrap.js.map
@@ -1 +1 @@
-{"version":3,"file":"bootstrap.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndTest() {\n if (typeof window !== 'undefined' && window.QUnit) {\n return false\n }\n\n return {\n end: 'transitionend'\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n function escapeId(selector) {\n // We escape IDs in case of special selectors (selector = '#myId:something')\n // $.escapeSelector does not exist in jQuery < 3\n selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1)\n : selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n return selector\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n // If it's an ID\n if (selector.charAt(0) === '#') {\n selector = escapeId(selector)\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!Util.supportsTransitionEnd() ||\n !$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n let element = this._element\n // For dropup with alignment we use the parent as popper container\n if ($(parent).hasClass(ClassName.DROPUP)) {\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent\n }\n }\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(element, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $('body').css('padding-right')\n $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('body').css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (Util.supportsTransitionEnd() &&\n $(this.tip).hasClass(ClassName.FADE)) {\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...config\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n Util.supportsTransitionEnd() &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"names":["Util","$","transition","MAX_UID","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","end","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","escapeId","selector","escapeSelector","substr","replace","prefix","Math","random","document","getElementById","element","getAttribute","charAt","$selector","find","length","err","offsetHeight","trigger","Boolean","nodeType","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","isElement","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Selector","Event","ClassName","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","ALERT","closeEvent","CLOSE","removeClass","SHOW","hasClass","FADE","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","DISMISS","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","DATA_TOGGLE","input","INPUT","type","checked","ACTIVE","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","DATA_TOGGLE_CARROT","button","BUTTON","FOCUS_BLUR_DATA_API","FOCUS","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","NEXT","nextWhenVisible","hidden","css","prev","PREV","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","typeCheckConfig","keyboard","KEYDOWN","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","wrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","LEFT","RIGHT","slidEvent","reflow","action","slide","TypeError","_dataApiClickHandler","CAROUSEL","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","not","startEvent","dimension","_getDimension","COLLAPSE","COLLAPSING","style","COLLAPSED","attr","setTransitioning","complete","SHOWN","capitalizedDimension","slice","scrollSize","HIDE","getBoundingClientRect","$elem","HIDDEN","isTransitioning","hasWidth","WIDTH","HEIGHT","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","DISABLED","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","DROPUP","MENULEFT","MENURIGHT","boundary","POSITION_STATIC","_getPopperConfig","NAVBAR_NAV","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","MENU","_getPlacement","$parentDropdown","placement","BOTTOM","TOP","TOPEND","DROPRIGHT","DROPLEFT","BOTTOMEND","offsetConf","offset","offsets","popperConfig","flip","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","VISIBLE_ITEMS","get","KEYDOWN_DATA_API","KEYUP_DATA_API","FORM_CHILD","e","Modal","BACKDROP_TRANSITION_DURATION","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","OPEN","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","KEYDOWN_DISMISS","RESIZE","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","backdrop","doAnimate","createElement","className","BACKDROP","appendTo","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","SCROLLBAR_MEASURER","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","ARROW","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","OUT","_TRANSITION_DURATION","_cleanTipClass","HOVER","getTitle","template","$tip","setElementContent","TOOLTIP_INNER","content","html","empty","append","text","title","triggers","split","forEach","MANUAL","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","key","tabClass","join","initConfigAnimation","Popover","_getContent","TITLE","CONTENT","ScrollSpy","OffsetMethod","_scrollElement","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","OFFSET","POSITION","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","DROPDOWN_ITEM","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","ACTIVE_UL","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","DROPDOWN_ACTIVE_CHILD","DROPDOWN_MENU","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"bootstrap.js","sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(document.body).css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...config\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"names":["Util","$","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","$selector","find","length","err","getTransitionDurationFromElement","transitionDuration","css","floatTransitionDuration","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","Alert","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","Carousel","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CAROUSEL","ITEM","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","Collapse","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","_isTransitioning","_triggerArray","id","tabToggles","i","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","slice","scrollSize","getBoundingClientRect","$elem","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","get","e","Modal","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","Tooltip","CLASS_PREFIX","BSCLS_PREFIX_REGEX","animation","template","title","delay","html","container","fallbackPlacement","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","ARROW","Trigger","HOVER","MANUAL","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","triggers","forEach","eventIn","eventOut","_fixTitle","titleType","key","tabClass","join","initConfigAnimation","Popover","TITLE","CONTENT","_getContent","ScrollSpy","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","isActiveTarget","queries","$link","parents","scrollSpys","$spy","Tab","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","previous","listElement","itemSelector","nodeName","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","version","minMajor","ltMajor","minMinor","minPatch","maxMajor"],"mappings":"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"} \ No newline at end of file
diff --git a/library/bootstrap/js/bootstrap.min.js b/library/bootstrap/js/bootstrap.min.js
index 534d53343..eac9842d7 100644
--- a/library/bootstrap/js/bootstrap.min.js
+++ b/library/bootstrap/js/bootstrap.min.js
@@ -1,7 +1,7 @@
/*!
- * Bootstrap v4.0.0 (https://getbootstrap.com)
+ * Bootstrap v4.1.0 (https://getbootstrap.com/)
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function s(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function r(){return(r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}e=e&&e.hasOwnProperty("default")?e.default:e,n=n&&n.hasOwnProperty("default")?n.default:n;var o,a,l,h,c,u,f,d,_,g,p,m,v,E,T,y,C,I,A,b,D,S,w,N,O,k,P=function(t){var e=!1;function n(e){var n=this,s=!1;return t(this).one(i.TRANSITION_END,function(){s=!0}),setTimeout(function(){s||i.triggerTransitionEnd(n)},e),this}var i={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(e){var n,i=e.getAttribute("data-target");i&&"#"!==i||(i=e.getAttribute("href")||""),"#"===i.charAt(0)&&(n=i,i=n="function"==typeof t.escapeSelector?t.escapeSelector(n).substr(1):n.replace(/(:|\.|\[|\]|,|=|@)/g,"\\$1"));try{return t(document).find(i).length>0?i:null}catch(t){return null}},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(n){t(n).trigger(e.end)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var s in n)if(Object.prototype.hasOwnProperty.call(n,s)){var r=n[s],o=e[s],a=o&&i.isElement(o)?"element":(l=o,{}.toString.call(l).match(/\s([a-zA-Z]+)/)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+s+'" provided type "'+a+'" but expected type "'+r+'".')}var l}};return e=("undefined"==typeof window||!window.QUnit)&&{end:"transitionend"},t.fn.emulateTransitionEnd=n,i.supportsTransitionEnd()&&(t.event.special[i.TRANSITION_END]={bindType:e.end,delegateType:e.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}),i}(e),L=(a="alert",h="."+(l="bs.alert"),c=(o=e).fn[a],u={CLOSE:"close"+h,CLOSED:"closed"+h,CLICK_DATA_API:"click"+h+".data-api"},f="alert",d="fade",_="show",g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.removeData(this._element,l),this._element=null},e._getRootElement=function(t){var e=P.getSelectorFromElement(t),n=!1;return e&&(n=o(e)[0]),n||(n=o(t).closest("."+f)[0]),n},e._triggerCloseEvent=function(t){var e=o.Event(u.CLOSE);return o(t).trigger(e),e},e._removeElement=function(t){var e=this;o(t).removeClass(_),P.supportsTransitionEnd()&&o(t).hasClass(d)?o(t).one(P.TRANSITION_END,function(n){return e._destroyElement(t,n)}).emulateTransitionEnd(150):this._destroyElement(t)},e._destroyElement=function(t){o(t).detach().trigger(u.CLOSED).remove()},t._jQueryInterface=function(e){return this.each(function(){var n=o(this),i=n.data(l);i||(i=new t(this),n.data(l,i)),"close"===e&&i[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},s(t,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),t}(),o(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),o.fn[a]=g._jQueryInterface,o.fn[a].Constructor=g,o.fn[a].noConflict=function(){return o.fn[a]=c,g._jQueryInterface},g),R=(m="button",E="."+(v="bs.button"),T=".data-api",y=(p=e).fn[m],C="active",I="btn",A="focus",b='[data-toggle^="button"]',D='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+T,FOCUS_BLUR_DATA_API:"focus"+E+T+" blur"+E+T},k=function(){function t(t){this._element=t}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=p(this._element).closest(D)[0];if(n){var i=p(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&p(this._element).hasClass(C))t=!1;else{var s=p(n).find(w)[0];s&&p(s).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!p(this._element).hasClass(C),p(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!p(this._element).hasClass(C)),t&&p(this._element).toggleClass(C)},e.dispose=function(){p.removeData(this._element,v),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=p(this).data(v);n||(n=new t(this),p(this).data(v,n)),"toggle"===e&&n[e]()})},s(t,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),t}(),p(document).on(O.CLICK_DATA_API,b,function(t){t.preventDefault();var e=t.target;p(e).hasClass(I)||(e=p(e).closest(N)),k._jQueryInterface.call(p(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,b,function(t){var e=p(t.target).closest(N)[0];p(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),p.fn[m]=k._jQueryInterface,p.fn[m].Constructor=k,p.fn[m].noConflict=function(){return p.fn[m]=y,k._jQueryInterface},k),j=function(t){var e="carousel",n="bs.carousel",i="."+n,o=t.fn[e],a={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},l={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},h="next",c="prev",u="left",f="right",d={SLIDE:"slide"+i,SLID:"slid"+i,KEYDOWN:"keydown"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i,TOUCHEND:"touchend"+i,LOAD_DATA_API:"load"+i+".data-api",CLICK_DATA_API:"click"+i+".data-api"},_="carousel",g="active",p="slide",m="carousel-item-right",v="carousel-item-left",E="carousel-item-next",T="carousel-item-prev",y={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},C=function(){function o(e,n){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(n),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(y.INDICATORS)[0],this._addEventListeners()}var C=o.prototype;return C.next=function(){this._isSliding||this._slide(h)},C.nextWhenVisible=function(){!document.hidden&&t(this._element).is(":visible")&&"hidden"!==t(this._element).css("visibility")&&this.next()},C.prev=function(){this._isSliding||this._slide(c)},C.pause=function(e){e||(this._isPaused=!0),t(this._element).find(y.NEXT_PREV)[0]&&P.supportsTransitionEnd()&&(P.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},C.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},C.to=function(e){var n=this;this._activeElement=t(this._element).find(y.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)t(this._element).one(d.SLID,function(){return n.to(e)});else{if(i===e)return this.pause(),void this.cycle();var s=e>i?h:c;this._slide(s,this._items[e])}},C.dispose=function(){t(this._element).off(i),t.removeData(this._element,n),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},C._getConfig=function(t){return t=r({},a,t),P.typeCheckConfig(e,t,l),t},C._addEventListeners=function(){var e=this;this._config.keyboard&&t(this._element).on(d.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(t(this._element).on(d.MOUSEENTER,function(t){return e.pause(t)}).on(d.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&t(this._element).on(d.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},C._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},C._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(y.ITEM)),this._items.indexOf(e)},C._getItemByDirection=function(t,e){var n=t===h,i=t===c,s=this._getItemIndex(e),r=this._items.length-1;if((i&&0===s||n&&s===r)&&!this._config.wrap)return e;var o=(s+(t===c?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},C._triggerSlideEvent=function(e,n){var i=this._getItemIndex(e),s=this._getItemIndex(t(this._element).find(y.ACTIVE_ITEM)[0]),r=t.Event(d.SLIDE,{relatedTarget:e,direction:n,from:s,to:i});return t(this._element).trigger(r),r},C._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(y.ACTIVE).removeClass(g);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&t(n).addClass(g)}},C._slide=function(e,n){var i,s,r,o=this,a=t(this._element).find(y.ACTIVE_ITEM)[0],l=this._getItemIndex(a),c=n||a&&this._getItemByDirection(e,a),_=this._getItemIndex(c),C=Boolean(this._interval);if(e===h?(i=v,s=E,r=u):(i=m,s=T,r=f),c&&t(c).hasClass(g))this._isSliding=!1;else if(!this._triggerSlideEvent(c,r).isDefaultPrevented()&&a&&c){this._isSliding=!0,C&&this.pause(),this._setActiveIndicatorElement(c);var I=t.Event(d.SLID,{relatedTarget:c,direction:r,from:l,to:_});P.supportsTransitionEnd()&&t(this._element).hasClass(p)?(t(c).addClass(s),P.reflow(c),t(a).addClass(i),t(c).addClass(i),t(a).one(P.TRANSITION_END,function(){t(c).removeClass(i+" "+s).addClass(g),t(a).removeClass(g+" "+s+" "+i),o._isSliding=!1,setTimeout(function(){return t(o._element).trigger(I)},0)}).emulateTransitionEnd(600)):(t(a).removeClass(g),t(c).addClass(g),this._isSliding=!1,t(this._element).trigger(I)),C&&this.cycle()}},o._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s=r({},a,t(this).data());"object"==typeof e&&(s=r({},s,e));var l="string"==typeof e?e:s.slide;if(i||(i=new o(this,s),t(this).data(n,i)),"number"==typeof e)i.to(e);else if("string"==typeof l){if("undefined"==typeof i[l])throw new TypeError('No method named "'+l+'"');i[l]()}else s.interval&&(i.pause(),i.cycle())})},o._dataApiClickHandler=function(e){var i=P.getSelectorFromElement(this);if(i){var s=t(i)[0];if(s&&t(s).hasClass(_)){var a=r({},t(s).data(),t(this).data()),l=this.getAttribute("data-slide-to");l&&(a.interval=!1),o._jQueryInterface.call(t(s),a),l&&t(s).data(n).to(l),e.preventDefault()}}},s(o,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),o}();return t(document).on(d.CLICK_DATA_API,y.DATA_SLIDE,C._dataApiClickHandler),t(window).on(d.LOAD_DATA_API,function(){t(y.DATA_RIDE).each(function(){var e=t(this);C._jQueryInterface.call(e,e.data())})}),t.fn[e]=C._jQueryInterface,t.fn[e].Constructor=C,t.fn[e].noConflict=function(){return t.fn[e]=o,C._jQueryInterface},C}(e),H=function(t){var e="collapse",n="bs.collapse",i="."+n,o=t.fn[e],a={toggle:!0,parent:""},l={toggle:"boolean",parent:"(string|element)"},h={SHOW:"show"+i,SHOWN:"shown"+i,HIDE:"hide"+i,HIDDEN:"hidden"+i,CLICK_DATA_API:"click"+i+".data-api"},c="show",u="collapse",f="collapsing",d="collapsed",_="width",g="height",p={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},m=function(){function i(e,n){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(n),this._triggerArray=t.makeArray(t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var i=t(p.DATA_TOGGLE),s=0;s<i.length;s++){var r=i[s],o=P.getSelectorFromElement(r);null!==o&&t(o).filter(e).length>0&&(this._selector=o,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var o=i.prototype;return o.toggle=function(){t(this._element).hasClass(c)?this.hide():this.show()},o.show=function(){var e,s,r=this;if(!this._isTransitioning&&!t(this._element).hasClass(c)&&(this._parent&&0===(e=t.makeArray(t(this._parent).find(p.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(e=null),!(e&&(s=t(e).not(this._selector).data(n))&&s._isTransitioning))){var o=t.Event(h.SHOW);if(t(this._element).trigger(o),!o.isDefaultPrevented()){e&&(i._jQueryInterface.call(t(e).not(this._selector),"hide"),s||t(e).data(n,null));var a=this._getDimension();t(this._element).removeClass(u).addClass(f),this._element.style[a]=0,this._triggerArray.length>0&&t(this._triggerArray).removeClass(d).attr("aria-expanded",!0),this.setTransitioning(!0);var l=function(){t(r._element).removeClass(f).addClass(u).addClass(c),r._element.style[a]="",r.setTransitioning(!1),t(r._element).trigger(h.SHOWN)};if(P.supportsTransitionEnd()){var _="scroll"+(a[0].toUpperCase()+a.slice(1));t(this._element).one(P.TRANSITION_END,l).emulateTransitionEnd(600),this._element.style[a]=this._element[_]+"px"}else l()}}},o.hide=function(){var e=this;if(!this._isTransitioning&&t(this._element).hasClass(c)){var n=t.Event(h.HIDE);if(t(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();if(this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",P.reflow(this._element),t(this._element).addClass(f).removeClass(u).removeClass(c),this._triggerArray.length>0)for(var s=0;s<this._triggerArray.length;s++){var r=this._triggerArray[s],o=P.getSelectorFromElement(r);if(null!==o)t(o).hasClass(c)||t(r).addClass(d).attr("aria-expanded",!1)}this.setTransitioning(!0);var a=function(){e.setTransitioning(!1),t(e._element).removeClass(f).addClass(u).trigger(h.HIDDEN)};this._element.style[i]="",P.supportsTransitionEnd()?t(this._element).one(P.TRANSITION_END,a).emulateTransitionEnd(600):a()}}},o.setTransitioning=function(t){this._isTransitioning=t},o.dispose=function(){t.removeData(this._element,n),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},o._getConfig=function(t){return(t=r({},a,t)).toggle=Boolean(t.toggle),P.typeCheckConfig(e,t,l),t},o._getDimension=function(){return t(this._element).hasClass(_)?_:g},o._getParent=function(){var e=this,n=null;P.isElement(this._config.parent)?(n=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(n=this._config.parent[0])):n=t(this._config.parent)[0];var s='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return t(n).find(s).each(function(t,n){e._addAriaAndCollapsedClass(i._getTargetFromElement(n),[n])}),n},o._addAriaAndCollapsedClass=function(e,n){if(e){var i=t(e).hasClass(c);n.length>0&&t(n).toggleClass(d,!i).attr("aria-expanded",i)}},i._getTargetFromElement=function(e){var n=P.getSelectorFromElement(e);return n?t(n)[0]:null},i._jQueryInterface=function(e){return this.each(function(){var s=t(this),o=s.data(n),l=r({},a,s.data(),"object"==typeof e&&e);if(!o&&l.toggle&&/show|hide/.test(e)&&(l.toggle=!1),o||(o=new i(this,l),s.data(n,o)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),i}();return t(document).on(h.CLICK_DATA_API,p.DATA_TOGGLE,function(e){"A"===e.currentTarget.tagName&&e.preventDefault();var i=t(this),s=P.getSelectorFromElement(this);t(s).each(function(){var e=t(this),s=e.data(n)?"toggle":i.data();m._jQueryInterface.call(e,s)})}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=o,m._jQueryInterface},m}(e),W=function(t){var e="dropdown",i="bs.dropdown",o="."+i,a=".data-api",l=t.fn[e],h=new RegExp("38|40|27"),c={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,CLICK:"click"+o,CLICK_DATA_API:"click"+o+a,KEYDOWN_DATA_API:"keydown"+o+a,KEYUP_DATA_API:"keyup"+o+a},u="disabled",f="show",d="dropup",_="dropright",g="dropleft",p="dropdown-menu-right",m="dropdown-menu-left",v="position-static",E='[data-toggle="dropdown"]',T=".dropdown form",y=".dropdown-menu",C=".navbar-nav",I=".dropdown-menu .dropdown-item:not(.disabled)",A="top-start",b="top-end",D="bottom-start",S="bottom-end",w="right-start",N="left-start",O={offset:0,flip:!0,boundary:"scrollParent"},k={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)"},L=function(){function a(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var l=a.prototype;return l.toggle=function(){if(!this._element.disabled&&!t(this._element).hasClass(u)){var e=a._getParentFromElement(this._element),i=t(this._menu).hasClass(f);if(a._clearMenus(),!i){var s={relatedTarget:this._element},r=t.Event(c.SHOW,s);if(t(e).trigger(r),!r.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof n)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var o=this._element;t(e).hasClass(d)&&(t(this._menu).hasClass(m)||t(this._menu).hasClass(p))&&(o=e),"scrollParent"!==this._config.boundary&&t(e).addClass(v),this._popper=new n(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===t(e).closest(C).length&&t("body").children().on("mouseover",null,t.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),t(this._menu).toggleClass(f),t(e).toggleClass(f).trigger(t.Event(c.SHOWN,s))}}}},l.dispose=function(){t.removeData(this._element,i),t(this._element).off(o),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},l.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},l._addEventListeners=function(){var e=this;t(this._element).on(c.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},l._getConfig=function(n){return n=r({},this.constructor.Default,t(this._element).data(),n),P.typeCheckConfig(e,n,this.constructor.DefaultType),n},l._getMenuElement=function(){if(!this._menu){var e=a._getParentFromElement(this._element);this._menu=t(e).find(y)[0]}return this._menu},l._getPlacement=function(){var e=t(this._element).parent(),n=D;return e.hasClass(d)?(n=A,t(this._menu).hasClass(p)&&(n=b)):e.hasClass(_)?n=w:e.hasClass(g)?n=N:t(this._menu).hasClass(p)&&(n=S),n},l._detectNavbar=function(){return t(this._element).closest(".navbar").length>0},l._getPopperConfig=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets)||{}),e}:e.offset=this._config.offset,{placement:this._getPlacement(),modifiers:{offset:e,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}}},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(i);if(n||(n=new a(this,"object"==typeof e?e:null),t(this).data(i,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},a._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=t.makeArray(t(E)),s=0;s<n.length;s++){var r=a._getParentFromElement(n[s]),o=t(n[s]).data(i),l={relatedTarget:n[s]};if(o){var h=o._menu;if(t(r).hasClass(f)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&t.contains(r,e.target))){var u=t.Event(c.HIDE,l);t(r).trigger(u),u.isDefaultPrevented()||("ontouchstart"in document.documentElement&&t("body").children().off("mouseover",null,t.noop),n[s].setAttribute("aria-expanded","false"),t(h).removeClass(f),t(r).removeClass(f).trigger(t.Event(c.HIDDEN,l)))}}}},a._getParentFromElement=function(e){var n,i=P.getSelectorFromElement(e);return i&&(n=t(i)[0]),n||e.parentNode},a._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||t(e.target).closest(y).length)):h.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!t(this).hasClass(u))){var n=a._getParentFromElement(this),i=t(n).hasClass(f);if((i||27===e.which&&32===e.which)&&(!i||27!==e.which&&32!==e.which)){var s=t(n).find(I).get();if(0!==s.length){var r=s.indexOf(e.target);38===e.which&&r>0&&r--,40===e.which&&r<s.length-1&&r++,r<0&&(r=0),s[r].focus()}}else{if(27===e.which){var o=t(n).find(E)[0];t(o).trigger("focus")}t(this).trigger("click")}}},s(a,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return O}},{key:"DefaultType",get:function(){return k}}]),a}();return t(document).on(c.KEYDOWN_DATA_API,E,L._dataApiKeydownHandler).on(c.KEYDOWN_DATA_API,y,L._dataApiKeydownHandler).on(c.CLICK_DATA_API+" "+c.KEYUP_DATA_API,L._clearMenus).on(c.CLICK_DATA_API,E,function(e){e.preventDefault(),e.stopPropagation(),L._jQueryInterface.call(t(this),"toggle")}).on(c.CLICK_DATA_API,T,function(t){t.stopPropagation()}),t.fn[e]=L._jQueryInterface,t.fn[e].Constructor=L,t.fn[e].noConflict=function(){return t.fn[e]=l,L._jQueryInterface},L}(e),M=function(t){var e="modal",n="bs.modal",i="."+n,o=t.fn.modal,a={backdrop:!0,keyboard:!0,focus:!0,show:!0},l={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},h={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,FOCUSIN:"focusin"+i,RESIZE:"resize"+i,CLICK_DISMISS:"click.dismiss"+i,KEYDOWN_DISMISS:"keydown.dismiss"+i,MOUSEUP_DISMISS:"mouseup.dismiss"+i,MOUSEDOWN_DISMISS:"mousedown.dismiss"+i,CLICK_DATA_API:"click"+i+".data-api"},c="modal-scrollbar-measure",u="modal-backdrop",f="modal-open",d="fade",_="show",g={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},p=function(){function o(e,n){this._config=this._getConfig(n),this._element=e,this._dialog=t(e).find(g.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}var p=o.prototype;return p.toggle=function(t){return this._isShown?this.hide():this.show(t)},p.show=function(e){var n=this;if(!this._isTransitioning&&!this._isShown){P.supportsTransitionEnd()&&t(this._element).hasClass(d)&&(this._isTransitioning=!0);var i=t.Event(h.SHOW,{relatedTarget:e});t(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),t(document.body).addClass(f),this._setEscapeEvent(),this._setResizeEvent(),t(this._element).on(h.CLICK_DISMISS,g.DATA_DISMISS,function(t){return n.hide(t)}),t(this._dialog).on(h.MOUSEDOWN_DISMISS,function(){t(n._element).one(h.MOUSEUP_DISMISS,function(e){t(e.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(e)}))}},p.hide=function(e){var n=this;if(e&&e.preventDefault(),!this._isTransitioning&&this._isShown){var i=t.Event(h.HIDE);if(t(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var s=P.supportsTransitionEnd()&&t(this._element).hasClass(d);s&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),t(document).off(h.FOCUSIN),t(this._element).removeClass(_),t(this._element).off(h.CLICK_DISMISS),t(this._dialog).off(h.MOUSEDOWN_DISMISS),s?t(this._element).one(P.TRANSITION_END,function(t){return n._hideModal(t)}).emulateTransitionEnd(300):this._hideModal()}}},p.dispose=function(){t.removeData(this._element,n),t(window,document,this._element,this._backdrop).off(i),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},p.handleUpdate=function(){this._adjustDialog()},p._getConfig=function(t){return t=r({},a,t),P.typeCheckConfig(e,t,l),t},p._showElement=function(e){var n=this,i=P.supportsTransitionEnd()&&t(this._element).hasClass(d);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,i&&P.reflow(this._element),t(this._element).addClass(_),this._config.focus&&this._enforceFocus();var s=t.Event(h.SHOWN,{relatedTarget:e}),r=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,t(n._element).trigger(s)};i?t(this._dialog).one(P.TRANSITION_END,r).emulateTransitionEnd(300):r()},p._enforceFocus=function(){var e=this;t(document).off(h.FOCUSIN).on(h.FOCUSIN,function(n){document!==n.target&&e._element!==n.target&&0===t(e._element).has(n.target).length&&e._element.focus()})},p._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?t(this._element).on(h.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||t(this._element).off(h.KEYDOWN_DISMISS)},p._setResizeEvent=function(){var e=this;this._isShown?t(window).on(h.RESIZE,function(t){return e.handleUpdate(t)}):t(window).off(h.RESIZE)},p._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){t(document.body).removeClass(f),e._resetAdjustments(),e._resetScrollbar(),t(e._element).trigger(h.HIDDEN)})},p._removeBackdrop=function(){this._backdrop&&(t(this._backdrop).remove(),this._backdrop=null)},p._showBackdrop=function(e){var n=this,i=t(this._element).hasClass(d)?d:"";if(this._isShown&&this._config.backdrop){var s=P.supportsTransitionEnd()&&i;if(this._backdrop=document.createElement("div"),this._backdrop.className=u,i&&t(this._backdrop).addClass(i),t(this._backdrop).appendTo(document.body),t(this._element).on(h.CLICK_DISMISS,function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===n._config.backdrop?n._element.focus():n.hide())}),s&&P.reflow(this._backdrop),t(this._backdrop).addClass(_),!e)return;if(!s)return void e();t(this._backdrop).one(P.TRANSITION_END,e).emulateTransitionEnd(150)}else if(!this._isShown&&this._backdrop){t(this._backdrop).removeClass(_);var r=function(){n._removeBackdrop(),e&&e()};P.supportsTransitionEnd()&&t(this._element).hasClass(d)?t(this._backdrop).one(P.TRANSITION_END,r).emulateTransitionEnd(150):r()}else e&&e()},p._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},p._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},p._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},p._setScrollbar=function(){var e=this;if(this._isBodyOverflowing){t(g.FIXED_CONTENT).each(function(n,i){var s=t(i)[0].style.paddingRight,r=t(i).css("padding-right");t(i).data("padding-right",s).css("padding-right",parseFloat(r)+e._scrollbarWidth+"px")}),t(g.STICKY_CONTENT).each(function(n,i){var s=t(i)[0].style.marginRight,r=t(i).css("margin-right");t(i).data("margin-right",s).css("margin-right",parseFloat(r)-e._scrollbarWidth+"px")}),t(g.NAVBAR_TOGGLER).each(function(n,i){var s=t(i)[0].style.marginRight,r=t(i).css("margin-right");t(i).data("margin-right",s).css("margin-right",parseFloat(r)+e._scrollbarWidth+"px")});var n=document.body.style.paddingRight,i=t("body").css("padding-right");t("body").data("padding-right",n).css("padding-right",parseFloat(i)+this._scrollbarWidth+"px")}},p._resetScrollbar=function(){t(g.FIXED_CONTENT).each(function(e,n){var i=t(n).data("padding-right");"undefined"!=typeof i&&t(n).css("padding-right",i).removeData("padding-right")}),t(g.STICKY_CONTENT+", "+g.NAVBAR_TOGGLER).each(function(e,n){var i=t(n).data("margin-right");"undefined"!=typeof i&&t(n).css("margin-right",i).removeData("margin-right")});var e=t("body").data("padding-right");"undefined"!=typeof e&&t("body").css("padding-right",e).removeData("padding-right")},p._getScrollbarWidth=function(){var t=document.createElement("div");t.className=c,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},o._jQueryInterface=function(e,i){return this.each(function(){var s=t(this).data(n),a=r({},o.Default,t(this).data(),"object"==typeof e&&e);if(s||(s=new o(this,a),t(this).data(n,s)),"string"==typeof e){if("undefined"==typeof s[e])throw new TypeError('No method named "'+e+'"');s[e](i)}else a.show&&s.show(i)})},s(o,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),o}();return t(document).on(h.CLICK_DATA_API,g.DATA_TOGGLE,function(e){var i,s=this,o=P.getSelectorFromElement(this);o&&(i=t(o)[0]);var a=t(i).data(n)?"toggle":r({},t(i).data(),t(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault();var l=t(i).one(h.SHOW,function(e){e.isDefaultPrevented()||l.one(h.HIDDEN,function(){t(s).is(":visible")&&s.focus()})});p._jQueryInterface.call(t(i),a,this)}),t.fn.modal=p._jQueryInterface,t.fn.modal.Constructor=p,t.fn.modal.noConflict=function(){return t.fn.modal=o,p._jQueryInterface},p}(e),U=function(t){var e="tooltip",i="bs.tooltip",o="."+i,a=t.fn[e],l=new RegExp("(^|\\s)bs-tooltip\\S+","g"),h={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"},c={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},u={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},f="show",d="out",_={HIDE:"hide"+o,HIDDEN:"hidden"+o,SHOW:"show"+o,SHOWN:"shown"+o,INSERTED:"inserted"+o,CLICK:"click"+o,FOCUSIN:"focusin"+o,FOCUSOUT:"focusout"+o,MOUSEENTER:"mouseenter"+o,MOUSELEAVE:"mouseleave"+o},g="fade",p="show",m=".tooltip-inner",v=".arrow",E="hover",T="focus",y="click",C="manual",I=function(){function a(t,e){if("undefined"==typeof n)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var I=a.prototype;return I.enable=function(){this._isEnabled=!0},I.disable=function(){this._isEnabled=!1},I.toggleEnabled=function(){this._isEnabled=!this._isEnabled},I.toggle=function(e){if(this._isEnabled)if(e){var n=this.constructor.DATA_KEY,i=t(e.currentTarget).data(n);i||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(t(this.getTipElement()).hasClass(p))return void this._leave(null,this);this._enter(null,this)}},I.dispose=function(){clearTimeout(this._timeout),t.removeData(this.element,this.constructor.DATA_KEY),t(this.element).off(this.constructor.EVENT_KEY),t(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&t(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},I.show=function(){var e=this;if("none"===t(this.element).css("display"))throw new Error("Please use show on visible elements");var i=t.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){t(this.element).trigger(i);var s=t.contains(this.element.ownerDocument.documentElement,this.element);if(i.isDefaultPrevented()||!s)return;var r=this.getTipElement(),o=P.getUID(this.constructor.NAME);r.setAttribute("id",o),this.element.setAttribute("aria-describedby",o),this.setContent(),this.config.animation&&t(r).addClass(g);var l="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,h=this._getAttachment(l);this.addAttachmentClass(h);var c=!1===this.config.container?document.body:t(this.config.container);t(r).data(this.constructor.DATA_KEY,this),t.contains(this.element.ownerDocument.documentElement,this.tip)||t(r).appendTo(c),t(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new n(this.element,r,{placement:h,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:v},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),t(r).addClass(p),"ontouchstart"in document.documentElement&&t("body").children().on("mouseover",null,t.noop);var u=function(){e.config.animation&&e._fixTransition();var n=e._hoverState;e._hoverState=null,t(e.element).trigger(e.constructor.Event.SHOWN),n===d&&e._leave(null,e)};P.supportsTransitionEnd()&&t(this.tip).hasClass(g)?t(this.tip).one(P.TRANSITION_END,u).emulateTransitionEnd(a._TRANSITION_DURATION):u()}},I.hide=function(e){var n=this,i=this.getTipElement(),s=t.Event(this.constructor.Event.HIDE),r=function(){n._hoverState!==f&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),t(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),e&&e()};t(this.element).trigger(s),s.isDefaultPrevented()||(t(i).removeClass(p),"ontouchstart"in document.documentElement&&t("body").children().off("mouseover",null,t.noop),this._activeTrigger[y]=!1,this._activeTrigger[T]=!1,this._activeTrigger[E]=!1,P.supportsTransitionEnd()&&t(this.tip).hasClass(g)?t(i).one(P.TRANSITION_END,r).emulateTransitionEnd(150):r(),this._hoverState="")},I.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},I.isWithContent=function(){return Boolean(this.getTitle())},I.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-tooltip-"+e)},I.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},I.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(m),this.getTitle()),e.removeClass(g+" "+p)},I.setElementContent=function(e,n){var i=this.config.html;"object"==typeof n&&(n.nodeType||n.jquery)?i?t(n).parent().is(e)||e.empty().append(n):e.text(t(n).text()):e[i?"html":"text"](n)},I.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},I._getAttachment=function(t){return c[t.toUpperCase()]},I._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)t(e.element).on(e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(n!==C){var i=n===E?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,s=n===E?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;t(e.element).on(i,e.config.selector,function(t){return e._enter(t)}).on(s,e.config.selector,function(t){return e._leave(t)})}t(e.element).closest(".modal").on("hide.bs.modal",function(){return e.hide()})}),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},I._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},I._enter=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusin"===e.type?T:E]=!0),t(n.getTipElement()).hasClass(p)||n._hoverState===f?n._hoverState=f:(clearTimeout(n._timeout),n._hoverState=f,n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){n._hoverState===f&&n.show()},n.config.delay.show):n.show())},I._leave=function(e,n){var i=this.constructor.DATA_KEY;(n=n||t(e.currentTarget).data(i))||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusout"===e.type?T:E]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState=d,n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){n._hoverState===d&&n.hide()},n.config.delay.hide):n.hide())},I._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},I._getConfig=function(n){return"number"==typeof(n=r({},this.constructor.Default,t(this.element).data(),n)).delay&&(n.delay={show:n.delay,hide:n.delay}),"number"==typeof n.title&&(n.title=n.title.toString()),"number"==typeof n.content&&(n.content=n.content.toString()),P.typeCheckConfig(e,n,this.constructor.DefaultType),n},I._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},I._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(l);null!==n&&n.length>0&&e.removeClass(n.join(""))},I._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},I._fixTransition=function(){var e=this.getTipElement(),n=this.config.animation;null===e.getAttribute("x-placement")&&(t(e).removeClass(g),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},a._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(i),s="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new a(this,s),t(this).data(i,n)),"string"==typeof e)){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},s(a,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return u}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return i}},{key:"Event",get:function(){return _}},{key:"EVENT_KEY",get:function(){return o}},{key:"DefaultType",get:function(){return h}}]),a}();return t.fn[e]=I._jQueryInterface,t.fn[e].Constructor=I,t.fn[e].noConflict=function(){return t.fn[e]=a,I._jQueryInterface},I}(e),x=function(t){var e="popover",n="bs.popover",i="."+n,o=t.fn[e],a=new RegExp("(^|\\s)bs-popover\\S+","g"),l=r({},U.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),h=r({},U.DefaultType,{content:"(string|element|function)"}),c="fade",u="show",f=".popover-header",d=".popover-body",_={HIDE:"hide"+i,HIDDEN:"hidden"+i,SHOW:"show"+i,SHOWN:"shown"+i,INSERTED:"inserted"+i,CLICK:"click"+i,FOCUSIN:"focusin"+i,FOCUSOUT:"focusout"+i,MOUSEENTER:"mouseenter"+i,MOUSELEAVE:"mouseleave"+i},g=function(r){var o,g;function p(){return r.apply(this,arguments)||this}g=r,(o=p).prototype=Object.create(g.prototype),o.prototype.constructor=o,o.__proto__=g;var m=p.prototype;return m.isWithContent=function(){return this.getTitle()||this._getContent()},m.addAttachmentClass=function(e){t(this.getTipElement()).addClass("bs-popover-"+e)},m.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0],this.tip},m.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(f),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(e.find(d),n),e.removeClass(c+" "+u)},m._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},m._cleanTipClass=function(){var e=t(this.getTipElement()),n=e.attr("class").match(a);null!==n&&n.length>0&&e.removeClass(n.join(""))},p._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n),s="object"==typeof e?e:null;if((i||!/destroy|hide/.test(e))&&(i||(i=new p(this,s),t(this).data(n,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},s(p,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return l}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return n}},{key:"Event",get:function(){return _}},{key:"EVENT_KEY",get:function(){return i}},{key:"DefaultType",get:function(){return h}}]),p}(U);return t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=o,g._jQueryInterface},g}(e),K=function(t){var e="scrollspy",n="bs.scrollspy",i="."+n,o=t.fn[e],a={offset:10,method:"auto",target:""},l={offset:"number",method:"string",target:"(string|element)"},h={ACTIVATE:"activate"+i,SCROLL:"scroll"+i,LOAD_DATA_API:"load"+i+".data-api"},c="dropdown-item",u="active",f={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},d="offset",_="position",g=function(){function o(e,n){var i=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(n),this._selector=this._config.target+" "+f.NAV_LINKS+","+this._config.target+" "+f.LIST_ITEMS+","+this._config.target+" "+f.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,t(this._scrollElement).on(h.SCROLL,function(t){return i._process(t)}),this.refresh(),this._process()}var g=o.prototype;return g.refresh=function(){var e=this,n=this._scrollElement===this._scrollElement.window?d:_,i="auto"===this._config.method?n:this._config.method,s=i===_?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.makeArray(t(this._selector)).map(function(e){var n,r=P.getSelectorFromElement(e);if(r&&(n=t(r)[0]),n){var o=n.getBoundingClientRect();if(o.width||o.height)return[t(n)[i]().top+s,r]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},g.dispose=function(){t.removeData(this._element,n),t(this._scrollElement).off(i),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},g._getConfig=function(n){if("string"!=typeof(n=r({},a,n)).target){var i=t(n.target).attr("id");i||(i=P.getUID(e),t(n.target).attr("id",i)),n.target="#"+i}return P.typeCheckConfig(e,n,l),n},g._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},g._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},g._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},g._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var s=this._offsets.length;s--;){this._activeTarget!==this._targets[s]&&t>=this._offsets[s]&&("undefined"==typeof this._offsets[s+1]||t<this._offsets[s+1])&&this._activate(this._targets[s])}}},g._activate=function(e){this._activeTarget=e,this._clear();var n=this._selector.split(",");n=n.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var i=t(n.join(","));i.hasClass(c)?(i.closest(f.DROPDOWN).find(f.DROPDOWN_TOGGLE).addClass(u),i.addClass(u)):(i.addClass(u),i.parents(f.NAV_LIST_GROUP).prev(f.NAV_LINKS+", "+f.LIST_ITEMS).addClass(u),i.parents(f.NAV_LIST_GROUP).prev(f.NAV_ITEMS).children(f.NAV_LINKS).addClass(u)),t(this._scrollElement).trigger(h.ACTIVATE,{relatedTarget:e})},g._clear=function(){t(this._selector).filter(f.ACTIVE).removeClass(u)},o._jQueryInterface=function(e){return this.each(function(){var i=t(this).data(n);if(i||(i=new o(this,"object"==typeof e&&e),t(this).data(n,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}})},s(o,null,[{key:"VERSION",get:function(){return"4.0.0"}},{key:"Default",get:function(){return a}}]),o}();return t(window).on(h.LOAD_DATA_API,function(){for(var e=t.makeArray(t(f.DATA_SPY)),n=e.length;n--;){var i=t(e[n]);g._jQueryInterface.call(i,i.data())}}),t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=o,g._jQueryInterface},g}(e),V=function(t){var e="bs.tab",n="."+e,i=t.fn.tab,r={HIDE:"hide"+n,HIDDEN:"hidden"+n,SHOW:"show"+n,SHOWN:"shown"+n,CLICK_DATA_API:"click.bs.tab.data-api"},o="dropdown-menu",a="active",l="disabled",h="fade",c="show",u=".dropdown",f=".nav, .list-group",d=".active",_="> li > .active",g='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',p=".dropdown-toggle",m="> .dropdown-menu .active",v=function(){function n(t){this._element=t}var i=n.prototype;return i.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&t(this._element).hasClass(a)||t(this._element).hasClass(l))){var n,i,s=t(this._element).closest(f)[0],o=P.getSelectorFromElement(this._element);if(s){var h="UL"===s.nodeName?_:d;i=(i=t.makeArray(t(s).find(h)))[i.length-1]}var c=t.Event(r.HIDE,{relatedTarget:this._element}),u=t.Event(r.SHOW,{relatedTarget:i});if(i&&t(i).trigger(c),t(this._element).trigger(u),!u.isDefaultPrevented()&&!c.isDefaultPrevented()){o&&(n=t(o)[0]),this._activate(this._element,s);var g=function(){var n=t.Event(r.HIDDEN,{relatedTarget:e._element}),s=t.Event(r.SHOWN,{relatedTarget:i});t(i).trigger(n),t(e._element).trigger(s)};n?this._activate(n,n.parentNode,g):g()}}},i.dispose=function(){t.removeData(this._element,e),this._element=null},i._activate=function(e,n,i){var s=this,r=("UL"===n.nodeName?t(n).find(_):t(n).children(d))[0],o=i&&P.supportsTransitionEnd()&&r&&t(r).hasClass(h),a=function(){return s._transitionComplete(e,r,i)};r&&o?t(r).one(P.TRANSITION_END,a).emulateTransitionEnd(150):a()},i._transitionComplete=function(e,n,i){if(n){t(n).removeClass(c+" "+a);var s=t(n.parentNode).find(m)[0];s&&t(s).removeClass(a),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(t(e).addClass(a),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),P.reflow(e),t(e).addClass(c),e.parentNode&&t(e.parentNode).hasClass(o)){var r=t(e).closest(u)[0];r&&t(r).find(p).addClass(a),e.setAttribute("aria-expanded",!0)}i&&i()},n._jQueryInterface=function(i){return this.each(function(){var s=t(this),r=s.data(e);if(r||(r=new n(this),s.data(e,r)),"string"==typeof i){if("undefined"==typeof r[i])throw new TypeError('No method named "'+i+'"');r[i]()}})},s(n,null,[{key:"VERSION",get:function(){return"4.0.0"}}]),n}();return t(document).on(r.CLICK_DATA_API,g,function(e){e.preventDefault(),v._jQueryInterface.call(t(this),"show")}),t.fn.tab=v._jQueryInterface,t.fn.tab.Constructor=v,t.fn.tab.noConflict=function(){return t.fn.tab=i,v._jQueryInterface},v}(e);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||e[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=P,t.Alert=L,t.Button=R,t.Carousel=j,t.Collapse=H,t.Dropdown=W,t.Modal=M,t.Popover=x,t.Scrollspy=K,t.Tab=V,t.Tooltip=U,Object.defineProperty(t,"__esModule",{value:!0})});
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e(t.bootstrap={},t.jQuery,t.Popper)}(this,function(t,e,c){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function h(r){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{},e=Object.keys(s);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(s).filter(function(t){return Object.getOwnPropertyDescriptor(s,t).enumerable}))),e.forEach(function(t){var e,n,i;e=r,i=s[n=t],n in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i})}return r}e=e&&e.hasOwnProperty("default")?e.default:e,c=c&&c.hasOwnProperty("default")?c.default:c;var r,n,s,a,l,u,f,d,_,g,m,p,v,E,y,T,C,I,A,D,b,S,w,N,O,k,P,L,j,R,H,W,M,x,U,K,F,V,Q,B,Y,G,q,z,X,J,Z,$,tt,et,nt,it,rt,st,ot,at,lt,ht,ct,ut,ft,dt,_t,gt,mt,pt,vt,Et,yt,Tt,Ct,It,At,Dt,bt,St,wt,Nt,Ot,kt,Pt,Lt,jt,Rt,Ht,Wt,Mt,xt,Ut,Kt,Ft,Vt,Qt,Bt,Yt,Gt,qt,zt,Xt,Jt,Zt,$t,te,ee,ne,ie,re,se,oe,ae,le,he,ce,ue,fe,de,_e,ge,me,pe,ve,Ee,ye,Te,Ce,Ie,Ae,De,be,Se,we,Ne,Oe,ke,Pe,Le,je,Re,He,We,Me,xe,Ue,Ke,Fe,Ve,Qe,Be,Ye,Ge,qe,ze,Xe,Je,Ze,$e,tn,en,nn,rn,sn,on,an,ln,hn,cn,un,fn,dn,_n,gn,mn,pn,vn,En,yn,Tn,Cn=function(i){var e="transitionend";function t(t){var e=this,n=!1;return i(this).one(l.TRANSITION_END,function(){n=!0}),setTimeout(function(){n||l.triggerTransitionEnd(e)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");e&&"#"!==e||(e=t.getAttribute("href")||"");try{return 0<i(document).find(e).length?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=i(t).css("transition-duration");return parseFloat(e)?(e=e.split(",")[0],1e3*parseFloat(e)):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){i(t).trigger(e)},supportsTransitionEnd:function(){return Boolean(e)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var r=n[i],s=e[i],o=s&&l.isElement(s)?"element":(a=s,{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(o))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')}var a}};return i.fn.emulateTransitionEnd=t,i.event.special[l.TRANSITION_END]={bindType:e,delegateType:e,handle:function(t){if(i(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}},l}(e),In=(n="alert",a="."+(s="bs.alert"),l=(r=e).fn[n],u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},f="alert",d="fade",_="show",g=function(){function i(t){this._element=t}var t=i.prototype;return t.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},t.dispose=function(){r.removeData(this._element,s),this._element=null},t._getRootElement=function(t){var e=Cn.getSelectorFromElement(t),n=!1;return e&&(n=r(e)[0]),n||(n=r(t).closest("."+f)[0]),n},t._triggerCloseEvent=function(t){var e=r.Event(u.CLOSE);return r(t).trigger(e),e},t._removeElement=function(e){var n=this;if(r(e).removeClass(_),r(e).hasClass(d)){var t=Cn.getTransitionDurationFromElement(e);r(e).one(Cn.TRANSITION_END,function(t){return n._destroyElement(e,t)}).emulateTransitionEnd(t)}else this._destroyElement(e)},t._destroyElement=function(t){r(t).detach().trigger(u.CLOSED).remove()},i._jQueryInterface=function(n){return this.each(function(){var t=r(this),e=t.data(s);e||(e=new i(this),t.data(s,e)),"close"===n&&e[n](this)})},i._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),r(document).on(u.CLICK_DATA_API,'[data-dismiss="alert"]',g._handleDismiss(new g)),r.fn[n]=g._jQueryInterface,r.fn[n].Constructor=g,r.fn[n].noConflict=function(){return r.fn[n]=l,g._jQueryInterface},g),An=(p="button",E="."+(v="bs.button"),y=".data-api",T=(m=e).fn[p],C="active",I="btn",D='[data-toggle^="button"]',b='[data-toggle="buttons"]',S="input",w=".active",N=".btn",O={CLICK_DATA_API:"click"+E+y,FOCUS_BLUR_DATA_API:(A="focus")+E+y+" blur"+E+y},k=function(){function n(t){this._element=t}var t=n.prototype;return t.toggle=function(){var t=!0,e=!0,n=m(this._element).closest(b)[0];if(n){var i=m(this._element).find(S)[0];if(i){if("radio"===i.type)if(i.checked&&m(this._element).hasClass(C))t=!1;else{var r=m(n).find(w)[0];r&&m(r).removeClass(C)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!m(this._element).hasClass(C),m(i).trigger("change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!m(this._element).hasClass(C)),t&&m(this._element).toggleClass(C)},t.dispose=function(){m.removeData(this._element,v),this._element=null},n._jQueryInterface=function(e){return this.each(function(){var t=m(this).data(v);t||(t=new n(this),m(this).data(v,t)),"toggle"===e&&t[e]()})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),n}(),m(document).on(O.CLICK_DATA_API,D,function(t){t.preventDefault();var e=t.target;m(e).hasClass(I)||(e=m(e).closest(N)),k._jQueryInterface.call(m(e),"toggle")}).on(O.FOCUS_BLUR_DATA_API,D,function(t){var e=m(t.target).closest(N)[0];m(e).toggleClass(A,/^focus(in)?$/.test(t.type))}),m.fn[p]=k._jQueryInterface,m.fn[p].Constructor=k,m.fn[p].noConflict=function(){return m.fn[p]=T,k._jQueryInterface},k),Dn=(L="carousel",R="."+(j="bs.carousel"),H=".data-api",W=(P=e).fn[L],M={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},x={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},U="next",K="prev",F="left",V="right",Q={SLIDE:"slide"+R,SLID:"slid"+R,KEYDOWN:"keydown"+R,MOUSEENTER:"mouseenter"+R,MOUSELEAVE:"mouseleave"+R,TOUCHEND:"touchend"+R,LOAD_DATA_API:"load"+R+H,CLICK_DATA_API:"click"+R+H},B="carousel",Y="active",G="slide",q="carousel-item-right",z="carousel-item-left",X="carousel-item-next",J="carousel-item-prev",Z={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},$=function(){function s(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this._config=this._getConfig(e),this._element=P(t)[0],this._indicatorsElement=P(this._element).find(Z.INDICATORS)[0],this._addEventListeners()}var t=s.prototype;return t.next=function(){this._isSliding||this._slide(U)},t.nextWhenVisible=function(){!document.hidden&&P(this._element).is(":visible")&&"hidden"!==P(this._element).css("visibility")&&this.next()},t.prev=function(){this._isSliding||this._slide(K)},t.pause=function(t){t||(this._isPaused=!0),P(this._element).find(Z.NEXT_PREV)[0]&&(Cn.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(t){var e=this;this._activeElement=P(this._element).find(Z.ACTIVE_ITEM)[0];var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)P(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=n<t?U:K;this._slide(i,this._items[t])}},t.dispose=function(){P(this._element).off(R),P.removeData(this._element,j),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(t){return t=h({},M,t),Cn.typeCheckConfig(L,t,x),t},t._addEventListeners=function(){var e=this;this._config.keyboard&&P(this._element).on(Q.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(P(this._element).on(Q.MOUSEENTER,function(t){return e.pause(t)}).on(Q.MOUSELEAVE,function(t){return e.cycle(t)}),"ontouchstart"in document.documentElement&&P(this._element).on(Q.TOUCHEND,function(){e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},500+e._config.interval)}))},t._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},t._getItemIndex=function(t){return this._items=P.makeArray(P(t).parent().find(Z.ITEM)),this._items.indexOf(t)},t._getItemByDirection=function(t,e){var n=t===U,i=t===K,r=this._getItemIndex(e),s=this._items.length-1;if((i&&0===r||n&&r===s)&&!this._config.wrap)return e;var o=(r+(t===K?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},t._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(P(this._element).find(Z.ACTIVE_ITEM)[0]),r=P.Event(Q.SLIDE,{relatedTarget:t,direction:e,from:i,to:n});return P(this._element).trigger(r),r},t._setActiveIndicatorElement=function(t){if(this._indicatorsElement){P(this._indicatorsElement).find(Z.ACTIVE).removeClass(Y);var e=this._indicatorsElement.children[this._getItemIndex(t)];e&&P(e).addClass(Y)}},t._slide=function(t,e){var n,i,r,s=this,o=P(this._element).find(Z.ACTIVE_ITEM)[0],a=this._getItemIndex(o),l=e||o&&this._getItemByDirection(t,o),h=this._getItemIndex(l),c=Boolean(this._interval);if(t===U?(n=z,i=X,r=F):(n=q,i=J,r=V),l&&P(l).hasClass(Y))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).isDefaultPrevented()&&o&&l){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(l);var u=P.Event(Q.SLID,{relatedTarget:l,direction:r,from:a,to:h});if(P(this._element).hasClass(G)){P(l).addClass(i),Cn.reflow(l),P(o).addClass(n),P(l).addClass(n);var f=Cn.getTransitionDurationFromElement(o);P(o).one(Cn.TRANSITION_END,function(){P(l).removeClass(n+" "+i).addClass(Y),P(o).removeClass(Y+" "+i+" "+n),s._isSliding=!1,setTimeout(function(){return P(s._element).trigger(u)},0)}).emulateTransitionEnd(f)}else P(o).removeClass(Y),P(l).addClass(Y),this._isSliding=!1,P(this._element).trigger(u);c&&this.cycle()}},s._jQueryInterface=function(i){return this.each(function(){var t=P(this).data(j),e=h({},M,P(this).data());"object"==typeof i&&(e=h({},e,i));var n="string"==typeof i?i:e.slide;if(t||(t=new s(this,e),P(this).data(j,t)),"number"==typeof i)t.to(i);else if("string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}else e.interval&&(t.pause(),t.cycle())})},s._dataApiClickHandler=function(t){var e=Cn.getSelectorFromElement(this);if(e){var n=P(e)[0];if(n&&P(n).hasClass(B)){var i=h({},P(n).data(),P(this).data()),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),s._jQueryInterface.call(P(n),i),r&&P(n).data(j).to(r),t.preventDefault()}}},o(s,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return M}}]),s}(),P(document).on(Q.CLICK_DATA_API,Z.DATA_SLIDE,$._dataApiClickHandler),P(window).on(Q.LOAD_DATA_API,function(){P(Z.DATA_RIDE).each(function(){var t=P(this);$._jQueryInterface.call(t,t.data())})}),P.fn[L]=$._jQueryInterface,P.fn[L].Constructor=$,P.fn[L].noConflict=function(){return P.fn[L]=W,$._jQueryInterface},$),bn=(et="collapse",it="."+(nt="bs.collapse"),rt=(tt=e).fn[et],st={toggle:!0,parent:""},ot={toggle:"boolean",parent:"(string|element)"},at={SHOW:"show"+it,SHOWN:"shown"+it,HIDE:"hide"+it,HIDDEN:"hidden"+it,CLICK_DATA_API:"click"+it+".data-api"},lt="show",ht="collapse",ct="collapsing",ut="collapsed",ft="width",dt="height",_t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},gt=function(){function a(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=tt.makeArray(tt('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=tt(_t.DATA_TOGGLE),i=0;i<n.length;i++){var r=n[i],s=Cn.getSelectorFromElement(r);null!==s&&0<tt(s).filter(t).length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var t=a.prototype;return t.toggle=function(){tt(this._element).hasClass(lt)?this.hide():this.show()},t.show=function(){var t,e,n=this;if(!this._isTransitioning&&!tt(this._element).hasClass(lt)&&(this._parent&&0===(t=tt.makeArray(tt(this._parent).find(_t.ACTIVES).filter('[data-parent="'+this._config.parent+'"]'))).length&&(t=null),!(t&&(e=tt(t).not(this._selector).data(nt))&&e._isTransitioning))){var i=tt.Event(at.SHOW);if(tt(this._element).trigger(i),!i.isDefaultPrevented()){t&&(a._jQueryInterface.call(tt(t).not(this._selector),"hide"),e||tt(t).data(nt,null));var r=this._getDimension();tt(this._element).removeClass(ht).addClass(ct),(this._element.style[r]=0)<this._triggerArray.length&&tt(this._triggerArray).removeClass(ut).attr("aria-expanded",!0),this.setTransitioning(!0);var s="scroll"+(r[0].toUpperCase()+r.slice(1)),o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){tt(n._element).removeClass(ct).addClass(ht).addClass(lt),n._element.style[r]="",n.setTransitioning(!1),tt(n._element).trigger(at.SHOWN)}).emulateTransitionEnd(o),this._element.style[r]=this._element[s]+"px"}}},t.hide=function(){var t=this;if(!this._isTransitioning&&tt(this._element).hasClass(lt)){var e=tt.Event(at.HIDE);if(tt(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();if(this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",Cn.reflow(this._element),tt(this._element).addClass(ct).removeClass(ht).removeClass(lt),0<this._triggerArray.length)for(var i=0;i<this._triggerArray.length;i++){var r=this._triggerArray[i],s=Cn.getSelectorFromElement(r);if(null!==s)tt(s).hasClass(lt)||tt(r).addClass(ut).attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[n]="";var o=Cn.getTransitionDurationFromElement(this._element);tt(this._element).one(Cn.TRANSITION_END,function(){t.setTransitioning(!1),tt(t._element).removeClass(ct).addClass(ht).trigger(at.HIDDEN)}).emulateTransitionEnd(o)}}},t.setTransitioning=function(t){this._isTransitioning=t},t.dispose=function(){tt.removeData(this._element,nt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(t){return(t=h({},st,t)).toggle=Boolean(t.toggle),Cn.typeCheckConfig(et,t,ot),t},t._getDimension=function(){return tt(this._element).hasClass(ft)?ft:dt},t._getParent=function(){var n=this,t=null;Cn.isElement(this._config.parent)?(t=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(t=this._config.parent[0])):t=tt(this._config.parent)[0];var e='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return tt(t).find(e).each(function(t,e){n._addAriaAndCollapsedClass(a._getTargetFromElement(e),[e])}),t},t._addAriaAndCollapsedClass=function(t,e){if(t){var n=tt(t).hasClass(lt);0<e.length&&tt(e).toggleClass(ut,!n).attr("aria-expanded",n)}},a._getTargetFromElement=function(t){var e=Cn.getSelectorFromElement(t);return e?tt(e)[0]:null},a._jQueryInterface=function(i){return this.each(function(){var t=tt(this),e=t.data(nt),n=h({},st,t.data(),"object"==typeof i&&i);if(!e&&n.toggle&&/show|hide/.test(i)&&(n.toggle=!1),e||(e=new a(this,n),t.data(nt,e)),"string"==typeof i){if("undefined"==typeof e[i])throw new TypeError('No method named "'+i+'"');e[i]()}})},o(a,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return st}}]),a}(),tt(document).on(at.CLICK_DATA_API,_t.DATA_TOGGLE,function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=tt(this),e=Cn.getSelectorFromElement(this);tt(e).each(function(){var t=tt(this),e=t.data(nt)?"toggle":n.data();gt._jQueryInterface.call(t,e)})}),tt.fn[et]=gt._jQueryInterface,tt.fn[et].Constructor=gt,tt.fn[et].noConflict=function(){return tt.fn[et]=rt,gt._jQueryInterface},gt),Sn=(pt="dropdown",Et="."+(vt="bs.dropdown"),yt=".data-api",Tt=(mt=e).fn[pt],Ct=new RegExp("38|40|27"),It={HIDE:"hide"+Et,HIDDEN:"hidden"+Et,SHOW:"show"+Et,SHOWN:"shown"+Et,CLICK:"click"+Et,CLICK_DATA_API:"click"+Et+yt,KEYDOWN_DATA_API:"keydown"+Et+yt,KEYUP_DATA_API:"keyup"+Et+yt},At="disabled",Dt="show",bt="dropup",St="dropright",wt="dropleft",Nt="dropdown-menu-right",Ot="position-static",kt='[data-toggle="dropdown"]',Pt=".dropdown form",Lt=".dropdown-menu",jt=".navbar-nav",Rt=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ht="top-start",Wt="top-end",Mt="bottom-start",xt="bottom-end",Ut="right-start",Kt="left-start",Ft={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Vt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Qt=function(){function l(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var t=l.prototype;return t.toggle=function(){if(!this._element.disabled&&!mt(this._element).hasClass(At)){var t=l._getParentFromElement(this._element),e=mt(this._menu).hasClass(Dt);if(l._clearMenus(),!e){var n={relatedTarget:this._element},i=mt.Event(It.SHOW,n);if(mt(t).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar){if("undefined"==typeof c)throw new TypeError("Bootstrap dropdown require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:Cn.isElement(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&mt(t).addClass(Ot),this._popper=new c(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===mt(t).closest(jt).length&&mt(document.body).children().on("mouseover",null,mt.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),mt(this._menu).toggleClass(Dt),mt(t).toggleClass(Dt).trigger(mt.Event(It.SHOWN,n))}}}},t.dispose=function(){mt.removeData(this._element,vt),mt(this._element).off(Et),this._element=null,(this._menu=null)!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;mt(this._element).on(It.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(t){return t=h({},this.constructor.Default,mt(this._element).data(),t),Cn.typeCheckConfig(pt,t,this.constructor.DefaultType),t},t._getMenuElement=function(){if(!this._menu){var t=l._getParentFromElement(this._element);this._menu=mt(t).find(Lt)[0]}return this._menu},t._getPlacement=function(){var t=mt(this._element).parent(),e=Mt;return t.hasClass(bt)?(e=Ht,mt(this._menu).hasClass(Nt)&&(e=Wt)):t.hasClass(St)?e=Ut:t.hasClass(wt)?e=Kt:mt(this._menu).hasClass(Nt)&&(e=xt),e},t._detectNavbar=function(){return 0<mt(this._element).closest(".navbar").length},t._getPopperConfig=function(){var e=this,t={};"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=h({},t.offsets,e._config.offset(t.offsets)||{}),t}:t.offset=this._config.offset;var n={placement:this._getPlacement(),modifiers:{offset:t,flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(n.modifiers.applyStyle={enabled:!1}),n},l._jQueryInterface=function(e){return this.each(function(){var t=mt(this).data(vt);if(t||(t=new l(this,"object"==typeof e?e:null),mt(this).data(vt,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},l._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var e=mt.makeArray(mt(kt)),n=0;n<e.length;n++){var i=l._getParentFromElement(e[n]),r=mt(e[n]).data(vt),s={relatedTarget:e[n]};if(r){var o=r._menu;if(mt(i).hasClass(Dt)&&!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&mt.contains(i,t.target))){var a=mt.Event(It.HIDE,s);mt(i).trigger(a),a.isDefaultPrevented()||("ontouchstart"in document.documentElement&&mt(document.body).children().off("mouseover",null,mt.noop),e[n].setAttribute("aria-expanded","false"),mt(o).removeClass(Dt),mt(i).removeClass(Dt).trigger(mt.Event(It.HIDDEN,s)))}}}},l._getParentFromElement=function(t){var e,n=Cn.getSelectorFromElement(t);return n&&(e=mt(n)[0]),e||t.parentNode},l._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||mt(t.target).closest(Lt).length)):Ct.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!mt(this).hasClass(At))){var e=l._getParentFromElement(this),n=mt(e).hasClass(Dt);if((n||27===t.which&&32===t.which)&&(!n||27!==t.which&&32!==t.which)){var i=mt(e).find(Rt).get();if(0!==i.length){var r=i.indexOf(t.target);38===t.which&&0<r&&r--,40===t.which&&r<i.length-1&&r++,r<0&&(r=0),i[r].focus()}}else{if(27===t.which){var s=mt(e).find(kt)[0];mt(s).trigger("focus")}mt(this).trigger("click")}}},o(l,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Ft}},{key:"DefaultType",get:function(){return Vt}}]),l}(),mt(document).on(It.KEYDOWN_DATA_API,kt,Qt._dataApiKeydownHandler).on(It.KEYDOWN_DATA_API,Lt,Qt._dataApiKeydownHandler).on(It.CLICK_DATA_API+" "+It.KEYUP_DATA_API,Qt._clearMenus).on(It.CLICK_DATA_API,kt,function(t){t.preventDefault(),t.stopPropagation(),Qt._jQueryInterface.call(mt(this),"toggle")}).on(It.CLICK_DATA_API,Pt,function(t){t.stopPropagation()}),mt.fn[pt]=Qt._jQueryInterface,mt.fn[pt].Constructor=Qt,mt.fn[pt].noConflict=function(){return mt.fn[pt]=Tt,Qt._jQueryInterface},Qt),wn=(Yt="modal",qt="."+(Gt="bs.modal"),zt=(Bt=e).fn[Yt],Xt={backdrop:!0,keyboard:!0,focus:!0,show:!0},Jt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Zt={HIDE:"hide"+qt,HIDDEN:"hidden"+qt,SHOW:"show"+qt,SHOWN:"shown"+qt,FOCUSIN:"focusin"+qt,RESIZE:"resize"+qt,CLICK_DISMISS:"click.dismiss"+qt,KEYDOWN_DISMISS:"keydown.dismiss"+qt,MOUSEUP_DISMISS:"mouseup.dismiss"+qt,MOUSEDOWN_DISMISS:"mousedown.dismiss"+qt,CLICK_DATA_API:"click"+qt+".data-api"},$t="modal-scrollbar-measure",te="modal-backdrop",ee="modal-open",ne="fade",ie="show",re={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top",NAVBAR_TOGGLER:".navbar-toggler"},se=function(){function r(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=Bt(t).find(re.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._scrollbarWidth=0}var t=r.prototype;return t.toggle=function(t){return this._isShown?this.hide():this.show(t)},t.show=function(t){var e=this;if(!this._isTransitioning&&!this._isShown){Bt(this._element).hasClass(ne)&&(this._isTransitioning=!0);var n=Bt.Event(Zt.SHOW,{relatedTarget:t});Bt(this._element).trigger(n),this._isShown||n.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),Bt(document.body).addClass(ee),this._setEscapeEvent(),this._setResizeEvent(),Bt(this._element).on(Zt.CLICK_DISMISS,re.DATA_DISMISS,function(t){return e.hide(t)}),Bt(this._dialog).on(Zt.MOUSEDOWN_DISMISS,function(){Bt(e._element).one(Zt.MOUSEUP_DISMISS,function(t){Bt(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},t.hide=function(t){var e=this;if(t&&t.preventDefault(),!this._isTransitioning&&this._isShown){var n=Bt.Event(Zt.HIDE);if(Bt(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=Bt(this._element).hasClass(ne);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Bt(document).off(Zt.FOCUSIN),Bt(this._element).removeClass(ie),Bt(this._element).off(Zt.CLICK_DISMISS),Bt(this._dialog).off(Zt.MOUSEDOWN_DISMISS),i){var r=Cn.getTransitionDurationFromElement(this._element);Bt(this._element).one(Cn.TRANSITION_END,function(t){return e._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},t.dispose=function(){Bt.removeData(this._element,Gt),Bt(window,document,this._element,this._backdrop).off(qt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(t){return t=h({},Xt,t),Cn.typeCheckConfig(Yt,t,Jt),t},t._showElement=function(t){var e=this,n=Bt(this._element).hasClass(ne);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,n&&Cn.reflow(this._element),Bt(this._element).addClass(ie),this._config.focus&&this._enforceFocus();var i=Bt.Event(Zt.SHOWN,{relatedTarget:t}),r=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Bt(e._element).trigger(i)};if(n){var s=Cn.getTransitionDurationFromElement(this._element);Bt(this._dialog).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()},t._enforceFocus=function(){var e=this;Bt(document).off(Zt.FOCUSIN).on(Zt.FOCUSIN,function(t){document!==t.target&&e._element!==t.target&&0===Bt(e._element).has(t.target).length&&e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?Bt(this._element).on(Zt.KEYDOWN_DISMISS,function(t){27===t.which&&(t.preventDefault(),e.hide())}):this._isShown||Bt(this._element).off(Zt.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?Bt(window).on(Zt.RESIZE,function(t){return e.handleUpdate(t)}):Bt(window).off(Zt.RESIZE)},t._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._isTransitioning=!1,this._showBackdrop(function(){Bt(document.body).removeClass(ee),t._resetAdjustments(),t._resetScrollbar(),Bt(t._element).trigger(Zt.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(Bt(this._backdrop).remove(),this._backdrop=null)},t._showBackdrop=function(t){var e=this,n=Bt(this._element).hasClass(ne)?ne:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=te,n&&Bt(this._backdrop).addClass(n),Bt(this._backdrop).appendTo(document.body),Bt(this._element).on(Zt.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&Cn.reflow(this._backdrop),Bt(this._backdrop).addClass(ie),!t)return;if(!n)return void t();var i=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){Bt(this._backdrop).removeClass(ie);var r=function(){e._removeBackdrop(),t&&t()};if(Bt(this._element).hasClass(ne)){var s=Cn.getTransitionDurationFromElement(this._backdrop);Bt(this._backdrop).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r()}else t&&t()},t._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var r=this;if(this._isBodyOverflowing){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e)[0].style.paddingRight,i=Bt(e).css("padding-right");Bt(e).data("padding-right",n).css("padding-right",parseFloat(i)+r._scrollbarWidth+"px")}),Bt(re.STICKY_CONTENT).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)-r._scrollbarWidth+"px")}),Bt(re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e)[0].style.marginRight,i=Bt(e).css("margin-right");Bt(e).data("margin-right",n).css("margin-right",parseFloat(i)+r._scrollbarWidth+"px")});var t=document.body.style.paddingRight,e=Bt(document.body).css("padding-right");Bt(document.body).data("padding-right",t).css("padding-right",parseFloat(e)+this._scrollbarWidth+"px")}},t._resetScrollbar=function(){Bt(re.FIXED_CONTENT).each(function(t,e){var n=Bt(e).data("padding-right");"undefined"!=typeof n&&Bt(e).css("padding-right",n).removeData("padding-right")}),Bt(re.STICKY_CONTENT+", "+re.NAVBAR_TOGGLER).each(function(t,e){var n=Bt(e).data("margin-right");"undefined"!=typeof n&&Bt(e).css("margin-right",n).removeData("margin-right")});var t=Bt(document.body).data("padding-right");"undefined"!=typeof t&&Bt(document.body).css("padding-right",t).removeData("padding-right")},t._getScrollbarWidth=function(){var t=document.createElement("div");t.className=$t,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},r._jQueryInterface=function(n,i){return this.each(function(){var t=Bt(this).data(Gt),e=h({},r.Default,Bt(this).data(),"object"==typeof n&&n);if(t||(t=new r(this,e),Bt(this).data(Gt,t)),"string"==typeof n){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n](i)}else e.show&&t.show(i)})},o(r,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Xt}}]),r}(),Bt(document).on(Zt.CLICK_DATA_API,re.DATA_TOGGLE,function(t){var e,n=this,i=Cn.getSelectorFromElement(this);i&&(e=Bt(i)[0]);var r=Bt(e).data(Gt)?"toggle":h({},Bt(e).data(),Bt(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=Bt(e).one(Zt.SHOW,function(t){t.isDefaultPrevented()||s.one(Zt.HIDDEN,function(){Bt(n).is(":visible")&&n.focus()})});se._jQueryInterface.call(Bt(e),r,this)}),Bt.fn[Yt]=se._jQueryInterface,Bt.fn[Yt].Constructor=se,Bt.fn[Yt].noConflict=function(){return Bt.fn[Yt]=zt,se._jQueryInterface},se),Nn=(ae="tooltip",he="."+(le="bs.tooltip"),ce=(oe=e).fn[ae],ue="bs-tooltip",fe=new RegExp("(^|\\s)"+ue+"\\S+","g"),ge={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!(_e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"}),selector:!(de={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)"}),placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent"},pe="out",ve={HIDE:"hide"+he,HIDDEN:"hidden"+he,SHOW:(me="show")+he,SHOWN:"shown"+he,INSERTED:"inserted"+he,CLICK:"click"+he,FOCUSIN:"focusin"+he,FOCUSOUT:"focusout"+he,MOUSEENTER:"mouseenter"+he,MOUSELEAVE:"mouseleave"+he},Ee="fade",ye="show",Te=".tooltip-inner",Ce=".arrow",Ie="hover",Ae="focus",De="click",be="manual",Se=function(){function i(t,e){if("undefined"==typeof c)throw new TypeError("Bootstrap tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=oe(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(oe(this.getTipElement()).hasClass(ye))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),oe.removeData(this.element,this.constructor.DATA_KEY),oe(this.element).off(this.constructor.EVENT_KEY),oe(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&oe(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===oe(this.element).css("display"))throw new Error("Please use show on visible elements");var t=oe.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){oe(this.element).trigger(t);var n=oe.contains(this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!n)return;var i=this.getTipElement(),r=Cn.getUID(this.constructor.NAME);i.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&oe(i).addClass(Ee);var s="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(s);this.addAttachmentClass(o);var a=!1===this.config.container?document.body:oe(this.config.container);oe(i).data(this.constructor.DATA_KEY,this),oe.contains(this.element.ownerDocument.documentElement,this.tip)||oe(i).appendTo(a),oe(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new c(this.element,i,{placement:o,modifiers:{offset:{offset:this.config.offset},flip:{behavior:this.config.fallbackPlacement},arrow:{element:Ce},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){e._handlePopperPlacementChange(t)}}),oe(i).addClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().on("mouseover",null,oe.noop);var l=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,oe(e.element).trigger(e.constructor.Event.SHOWN),t===pe&&e._leave(null,e)};if(oe(this.tip).hasClass(Ee)){var h=Cn.getTransitionDurationFromElement(this.tip);oe(this.tip).one(Cn.TRANSITION_END,l).emulateTransitionEnd(h)}else l()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=oe.Event(this.constructor.Event.HIDE),r=function(){e._hoverState!==me&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),oe(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(oe(this.element).trigger(i),!i.isDefaultPrevented()){if(oe(n).removeClass(ye),"ontouchstart"in document.documentElement&&oe(document.body).children().off("mouseover",null,oe.noop),this._activeTrigger[De]=!1,this._activeTrigger[Ae]=!1,this._activeTrigger[Ie]=!1,oe(this.tip).hasClass(Ee)){var s=Cn.getTransitionDurationFromElement(n);oe(n).one(Cn.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){oe(this.getTipElement()).addClass(ue+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||oe(this.config.template)[0],this.tip},t.setContent=function(){var t=oe(this.getTipElement());this.setElementContent(t.find(Te),this.getTitle()),t.removeClass(Ee+" "+ye)},t.setElementContent=function(t,e){var n=this.config.html;"object"==typeof e&&(e.nodeType||e.jquery)?n?oe(e).parent().is(t)||t.empty().append(e):t.text(oe(e).text()):t[n?"html":"text"](e)},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getAttachment=function(t){return _e[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)oe(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==be){var e=t===Ie?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===Ie?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;oe(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}oe(i.element).closest(".modal").on("hide.bs.modal",function(){return i.hide()})}),this.config.selector?this.config=h({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Ae:Ie]=!0),oe(e.getTipElement()).hasClass(ye)||e._hoverState===me?e._hoverState=me:(clearTimeout(e._timeout),e._hoverState=me,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===me&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||oe(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),oe(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Ae:Ie]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=pe,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===pe&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){return"number"==typeof(t=h({},this.constructor.Default,oe(this.element).data(),t)).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),Cn.typeCheckConfig(ae,t,this.constructor.DefaultType),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=oe(this.getTipElement()),e=t.attr("class").match(fe);null!==e&&0<e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(oe(t).removeClass(Ee),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=oe(this).data(le),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),oe(this).data(le,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return ge}},{key:"NAME",get:function(){return ae}},{key:"DATA_KEY",get:function(){return le}},{key:"Event",get:function(){return ve}},{key:"EVENT_KEY",get:function(){return he}},{key:"DefaultType",get:function(){return de}}]),i}(),oe.fn[ae]=Se._jQueryInterface,oe.fn[ae].Constructor=Se,oe.fn[ae].noConflict=function(){return oe.fn[ae]=ce,Se._jQueryInterface},Se),On=(Ne="popover",ke="."+(Oe="bs.popover"),Pe=(we=e).fn[Ne],Le="bs-popover",je=new RegExp("(^|\\s)"+Le+"\\S+","g"),Re=h({},Nn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),He=h({},Nn.DefaultType,{content:"(string|element|function)"}),We="fade",xe=".popover-header",Ue=".popover-body",Ke={HIDE:"hide"+ke,HIDDEN:"hidden"+ke,SHOW:(Me="show")+ke,SHOWN:"shown"+ke,INSERTED:"inserted"+ke,CLICK:"click"+ke,FOCUSIN:"focusin"+ke,FOCUSOUT:"focusout"+ke,MOUSEENTER:"mouseenter"+ke,MOUSELEAVE:"mouseleave"+ke},Fe=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var r=i.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){we(this.getTipElement()).addClass(Le+"-"+t)},r.getTipElement=function(){return this.tip=this.tip||we(this.config.template)[0],this.tip},r.setContent=function(){var t=we(this.getTipElement());this.setElementContent(t.find(xe),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(Ue),e),t.removeClass(We+" "+Me)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=we(this.getTipElement()),e=t.attr("class").match(je);null!==e&&0<e.length&&t.removeClass(e.join(""))},i._jQueryInterface=function(n){return this.each(function(){var t=we(this).data(Oe),e="object"==typeof n?n:null;if((t||!/destroy|hide/.test(n))&&(t||(t=new i(this,e),we(this).data(Oe,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return Re}},{key:"NAME",get:function(){return Ne}},{key:"DATA_KEY",get:function(){return Oe}},{key:"Event",get:function(){return Ke}},{key:"EVENT_KEY",get:function(){return ke}},{key:"DefaultType",get:function(){return He}}]),i}(Nn),we.fn[Ne]=Fe._jQueryInterface,we.fn[Ne].Constructor=Fe,we.fn[Ne].noConflict=function(){return we.fn[Ne]=Pe,Fe._jQueryInterface},Fe),kn=(Qe="scrollspy",Ye="."+(Be="bs.scrollspy"),Ge=(Ve=e).fn[Qe],qe={offset:10,method:"auto",target:""},ze={offset:"number",method:"string",target:"(string|element)"},Xe={ACTIVATE:"activate"+Ye,SCROLL:"scroll"+Ye,LOAD_DATA_API:"load"+Ye+".data-api"},Je="dropdown-item",Ze="active",$e={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},tn="offset",en="position",nn=function(){function n(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+$e.NAV_LINKS+","+this._config.target+" "+$e.LIST_ITEMS+","+this._config.target+" "+$e.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Ve(this._scrollElement).on(Xe.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process()}var t=n.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?tn:en,r="auto"===this._config.method?t:this._config.method,s=r===en?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),Ve.makeArray(Ve(this._selector)).map(function(t){var e,n=Cn.getSelectorFromElement(t);if(n&&(e=Ve(n)[0]),e){var i=e.getBoundingClientRect();if(i.width||i.height)return[Ve(e)[r]().top+s,n]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Ve.removeData(this._element,Be),Ve(this._scrollElement).off(Ye),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(t){if("string"!=typeof(t=h({},qe,t)).target){var e=Ve(t.target).attr("id");e||(e=Cn.getUID(Qe),Ve(t.target).attr("id",e)),t.target="#"+e}return Cn.typeCheckConfig(Qe,t,ze),t},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),n<=t){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&0<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&("undefined"==typeof this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",");t=t.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var n=Ve(t.join(","));n.hasClass(Je)?(n.closest($e.DROPDOWN).find($e.DROPDOWN_TOGGLE).addClass(Ze),n.addClass(Ze)):(n.addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_LINKS+", "+$e.LIST_ITEMS).addClass(Ze),n.parents($e.NAV_LIST_GROUP).prev($e.NAV_ITEMS).children($e.NAV_LINKS).addClass(Ze)),Ve(this._scrollElement).trigger(Xe.ACTIVATE,{relatedTarget:e})},t._clear=function(){Ve(this._selector).filter($e.ACTIVE).removeClass(Ze)},n._jQueryInterface=function(e){return this.each(function(){var t=Ve(this).data(Be);if(t||(t=new n(this,"object"==typeof e&&e),Ve(this).data(Be,t)),"string"==typeof e){if("undefined"==typeof t[e])throw new TypeError('No method named "'+e+'"');t[e]()}})},o(n,null,[{key:"VERSION",get:function(){return"4.1.0"}},{key:"Default",get:function(){return qe}}]),n}(),Ve(window).on(Xe.LOAD_DATA_API,function(){for(var t=Ve.makeArray(Ve($e.DATA_SPY)),e=t.length;e--;){var n=Ve(t[e]);nn._jQueryInterface.call(n,n.data())}}),Ve.fn[Qe]=nn._jQueryInterface,Ve.fn[Qe].Constructor=nn,Ve.fn[Qe].noConflict=function(){return Ve.fn[Qe]=Ge,nn._jQueryInterface},nn),Pn=(on="."+(sn="bs.tab"),an=(rn=e).fn.tab,ln={HIDE:"hide"+on,HIDDEN:"hidden"+on,SHOW:"show"+on,SHOWN:"shown"+on,CLICK_DATA_API:"click"+on+".data-api"},hn="dropdown-menu",cn="active",un="disabled",fn="fade",dn="show",_n=".dropdown",gn=".nav, .list-group",mn=".active",pn="> li > .active",vn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',En=".dropdown-toggle",yn="> .dropdown-menu .active",Tn=function(){function i(t){this._element=t}var t=i.prototype;return t.show=function(){var n=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&rn(this._element).hasClass(cn)||rn(this._element).hasClass(un))){var t,i,e=rn(this._element).closest(gn)[0],r=Cn.getSelectorFromElement(this._element);if(e){var s="UL"===e.nodeName?pn:mn;i=(i=rn.makeArray(rn(e).find(s)))[i.length-1]}var o=rn.Event(ln.HIDE,{relatedTarget:this._element}),a=rn.Event(ln.SHOW,{relatedTarget:i});if(i&&rn(i).trigger(o),rn(this._element).trigger(a),!a.isDefaultPrevented()&&!o.isDefaultPrevented()){r&&(t=rn(r)[0]),this._activate(this._element,e);var l=function(){var t=rn.Event(ln.HIDDEN,{relatedTarget:n._element}),e=rn.Event(ln.SHOWN,{relatedTarget:i});rn(i).trigger(t),rn(n._element).trigger(e)};t?this._activate(t,t.parentNode,l):l()}}},t.dispose=function(){rn.removeData(this._element,sn),this._element=null},t._activate=function(t,e,n){var i=this,r=("UL"===e.nodeName?rn(e).find(pn):rn(e).children(mn))[0],s=n&&r&&rn(r).hasClass(fn),o=function(){return i._transitionComplete(t,r,n)};if(r&&s){var a=Cn.getTransitionDurationFromElement(r);rn(r).one(Cn.TRANSITION_END,o).emulateTransitionEnd(a)}else o()},t._transitionComplete=function(t,e,n){if(e){rn(e).removeClass(dn+" "+cn);var i=rn(e.parentNode).find(yn)[0];i&&rn(i).removeClass(cn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}if(rn(t).addClass(cn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),Cn.reflow(t),rn(t).addClass(dn),t.parentNode&&rn(t.parentNode).hasClass(hn)){var r=rn(t).closest(_n)[0];r&&rn(r).find(En).addClass(cn),t.setAttribute("aria-expanded",!0)}n&&n()},i._jQueryInterface=function(n){return this.each(function(){var t=rn(this),e=t.data(sn);if(e||(e=new i(this),t.data(sn,e)),"string"==typeof n){if("undefined"==typeof e[n])throw new TypeError('No method named "'+n+'"');e[n]()}})},o(i,null,[{key:"VERSION",get:function(){return"4.1.0"}}]),i}(),rn(document).on(ln.CLICK_DATA_API,vn,function(t){t.preventDefault(),Tn._jQueryInterface.call(rn(this),"show")}),rn.fn.tab=Tn._jQueryInterface,rn.fn.tab.Constructor=Tn,rn.fn.tab.noConflict=function(){return rn.fn.tab=an,Tn._jQueryInterface},Tn);!function(t){if("undefined"==typeof t)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1===e[0]&&9===e[1]&&e[2]<1||4<=e[0])throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(e),t.Util=Cn,t.Alert=In,t.Button=An,t.Carousel=Dn,t.Collapse=bn,t.Dropdown=Sn,t.Modal=wn,t.Popover=On,t.Scrollspy=kn,t.Tab=Pn,t.Tooltip=Nn,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file
diff --git a/library/bootstrap/js/bootstrap.min.js.map b/library/bootstrap/js/bootstrap.min.js.map
index a2100fa39..2cbfeaca8 100644
--- a/library/bootstrap/js/bootstrap.min.js.map
+++ b/library/bootstrap/js/bootstrap.min.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Util","transition","transitionEndEmulator","duration","called","one","TRANSITION_END","triggerTransitionEnd","_this","prefix","Math","random","document","getElementById","element","selector","getAttribute","charAt","escapeSelector","substr","replace","find","err","offsetHeight","trigger","end","Boolean","obj","nodeType","componentName","config","configTypes","property","expectedTypes","value","valueType","isElement","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","window","QUnit","fn","emulateTransitionEnd","supportsTransitionEnd","event","special","is","handleObj","handler","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","getSelectorFromElement","parent","closest","closeEvent","CLOSE","removeClass","hasClass","_destroyElement","detach","CLOSED","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","CLICK_DATA_API","noConflict","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","FOCUS_BLUR_DATA_API","Carousel","Default","DefaultType","Direction","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","INDICATORS","_addEventListeners","next","_slide","nextWhenVisible","hidden","css","prev","pause","NEXT_PREV","cycle","interval","setInterval","visibilityState","bind","to","index","ACTIVE_ITEM","activeIndex","_getItemIndex","SLID","direction","off","typeCheckConfig","keyboard","KEYDOWN","_this2","_keydown","MOUSEENTER","MOUSELEAVE","documentElement","TOUCHEND","setTimeout","tagName","which","makeArray","ITEM","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","wrap","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","SLIDE","_setActiveIndicatorElement","ACTIVE","nextIndicator","children","addClass","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","reflow","_this3","action","slide","TypeError","_dataApiClickHandler","slideIndex","DATA_SLIDE","LOAD_DATA_API","DATA_RIDE","$carousel","Collapse","Dimension","_isTransitioning","_triggerArray","id","tabToggles","DATA_TOGGLE","elem","filter","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","ACTIVES","not","startEvent","SHOW","dimension","_getDimension","style","attr","setTransitioning","complete","SHOWN","scrollSize","slice","HIDE","getBoundingClientRect","HIDDEN","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","Dropdown","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","AttachmentMap","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","boundary","_getPopperConfig","noop","destroy","update","scheduleUpdate","CLICK","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offset","offsets","flip","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","get","KEYDOWN_DATA_API","KEYUP_DATA_API","e","Modal","_dialog","DIALOG","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","body","_setEscapeEvent","_setResizeEvent","CLICK_DISMISS","DATA_DISMISS","MOUSEDOWN_DISMISS","MOUSEUP_DISMISS","_showBackdrop","_showElement","FOCUSIN","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","display","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this4","has","KEYDOWN_DISMISS","RESIZE","_this6","_resetAdjustments","_resetScrollbar","_this7","_removeBackdrop","callback","animate","backdrop","doAnimate","createElement","className","appendTo","_this8","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","FIXED_CONTENT","actualPadding","calculatedPadding","parseFloat","_this9","STICKY_CONTENT","actualMargin","marginRight","calculatedMargin","NAVBAR_TOGGLER","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","Tooltip","BSCLS_PREFIX_REGEX","HoverState","Trigger","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","getUID","setContent","animation","attachment","_getAttachment","addAttachmentClass","container","INSERTED","fallbackPlacement","originalPlacement","_handlePopperPlacementChange","_fixTransition","prevHoverState","_TRANSITION_DURATION","_cleanTipClass","getTitle","CLASS_PREFIX","template","$tip","setElementContent","content","html","empty","append","text","title","split","forEach","eventIn","eventOut","FOCUSOUT","_fixTitle","titleType","delay","tabClass","join","initConfigAnimation","Popover","subClass","superClass","create","__proto__","_getContent","ScrollSpy","OffsetMethod","_scrollElement","NAV_LINKS","LIST_ITEMS","DROPDOWN_ITEMS","_offsets","_targets","_activeTarget","_scrollHeight","SCROLL","_process","refresh","autoMethod","offsetMethod","method","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","DROPDOWN","DROPDOWN_TOGGLE","parents","NAV_LIST_GROUP","NAV_ITEMS","ACTIVATE","scrollSpys","DATA_SPY","$spy","Tab","previous","listElement","itemSelector","nodeName","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","version"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _extends as extends, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndTest() {\n if (typeof window !== 'undefined' && window.QUnit) {\n return false\n }\n\n return {\n end: 'transitionend'\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n function escapeId(selector) {\n // We escape IDs in case of special selectors (selector = '#myId:something')\n // $.escapeSelector does not exist in jQuery < 3\n selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1)\n : selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n return selector\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n // If it's an ID\n if (selector.charAt(0) === '#') {\n selector = escapeId(selector)\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!Util.supportsTransitionEnd() ||\n !$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n let element = this._element\n // For dropup with alignment we use the parent as popper container\n if ($(parent).hasClass(ClassName.DROPUP)) {\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent\n }\n }\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(element, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $('body').css('padding-right')\n $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('body').css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $('body').children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (Util.supportsTransitionEnd() &&\n $(this.tip).hasClass(ClassName.FADE)) {\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...config\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n Util.supportsTransitionEnd() &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]} \ No newline at end of file
+{"version":3,"sources":["../../rollupPluginBabelHelpers","../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/index.js"],"names":["_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_objectSpread","arguments","source","ownKeys","keys","getOwnPropertySymbols","concat","filter","sym","getOwnPropertyDescriptor","forEach","obj","value","$","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","ClassName","Alert","DATA_API_KEY","Selector","Button","Default","DefaultType","Direction","Carousel","Dimension","Collapse","REGEXP_KEYDOWN","AttachmentMap","Dropdown","Modal","CLASS_PREFIX","BSCLS_PREFIX_REGEX","HoverState","Trigger","Tooltip","Popover","OffsetMethod","ScrollSpy","Tab","Util","TRANSITION_END","transitionEndEmulator","duration","_this","this","called","one","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","find","err","getTransitionDurationFromElement","transitionDuration","css","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","hasOwnProperty","call","expectedTypes","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","is","handleObj","handler","apply","CLOSE","CLOSED","CLICK_DATA_API","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","get","on","noConflict","FOCUS_BLUR_DATA_API","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","activeElement","hasAttribute","classList","contains","focus","setAttribute","toggleClass","button","interval","keyboard","slide","pause","wrap","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_indicatorsElement","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_this2","_keydown","documentElement","clearTimeout","tagName","which","makeArray","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","nextIndicator","children","addClass","directionalClassName","orderClassName","_this3","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","action","TypeError","_dataApiClickHandler","slideIndex","window","$carousel","SHOW","SHOWN","HIDE","HIDDEN","ACTIVES","DATA_TOGGLE","_isTransitioning","_triggerArray","id","tabToggles","elem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","slice","getBoundingClientRect","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","$target","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","offset","flip","boundary","reference","display","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","offsetConf","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","dropdownMenu","hideEvent","parentNode","_dataApiKeydownHandler","items","e","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","_this4","has","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","_this10","animation","template","title","delay","html","AUTO","TOP","RIGHT","BOTTOM","LEFT","container","fallbackPlacement","INSERTED","FOCUSOUT","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","$tip","setElementContent","content","empty","append","text","eventIn","eventOut","_fixTitle","titleType","tabClass","join","initConfigAnimation","_Tooltip","subClass","superClass","create","__proto__","_getContent","method","ACTIVATE","SCROLL","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","height","top","item","sort","a","b","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","parents","scrollSpys","$spy","previous","listElement","itemSelector","nodeName","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","version"],"mappings":"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","sourcesContent":["export { _createClass as createClass, _defineProperty as defineProperty, _objectSpread as objectSpread, _inheritsLoose as inheritsLoose };\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n const TRANSITION_END = 'transitionend'\n const MAX_UID = 1000000\n const MILLISECONDS_MULTIPLIER = 1000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n const floatTransitionDuration = parseFloat(transitionDuration)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n\n return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Alert = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'alert'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.alert'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n }\n\n const Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n element = element || this._element\n\n const rootElement = this._getRootElement(element)\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n )\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n\n return Alert\n})($)\n\nexport default Alert\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'button'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.button'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n }\n\n const Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input',\n ACTIVE : '.active',\n BUTTON : '.btn'\n }\n\n const Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = $(this._element).find(Selector.INPUT)[0]\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n $(this._element).hasClass(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = $(rootElement).find(Selector.ACTIVE)[0]\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !$(this._element).hasClass(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n\n return Button\n})($)\n\nexport default Button\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0]) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n }\n\n const Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n }\n\n const AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n }\n\n const Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n }\n\n const DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n this._menu = $(parent).find(Selector.MENU)[0]\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element).parent()\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getPopperConfig() {\n const offsetConf = {}\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets) || {}\n }\n return data\n }\n } else {\n offsetConf.offset = this._config.offset\n }\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) ||\n isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n})($, Popper)\n\nexport default Dropdown\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(document.body).css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-tooltip'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)'\n }\n\n const AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n }\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: {\n offset: this.config.offset\n },\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => {\n this._handlePopperPlacementChange(data)\n }\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this.element).data(),\n ...config\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(data) {\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(data.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n})($, Popper)\n\nexport default Tooltip\n","import $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const CLASS_PREFIX = 'bs-popover'\n const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n }\n\n const DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n})($)\n\nexport default Popover\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n let queries = this._selector.split(',')\n // eslint-disable-next-line arrow-body-style\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n})($)\n\nexport default ScrollSpy\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.1.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"]} \ No newline at end of file
diff --git a/library/justifiedGallery/jquery.justifiedGallery.js b/library/justifiedGallery/jquery.justifiedGallery.js
index 82445b403..85a4168bd 100644
--- a/library/justifiedGallery/jquery.justifiedGallery.js
+++ b/library/justifiedGallery/jquery.justifiedGallery.js
@@ -1,7 +1,7 @@
/*!
- * Justified Gallery - v3.6.3
+ * Justified Gallery - v3.6.5
* http://miromannino.github.io/Justified-Gallery/
- * Copyright (c) 2016 Miro Mannino
+ * Copyright (c) 2018 Miro Mannino
* Licensed under the MIT license.
*/
(function($) {
@@ -130,7 +130,7 @@
if (callback) callback();
} else {
$entry.stop().fadeTo(this.settings.imagesAnimationDuration, 1.0, callback);
- $entry.find('> img, > a > img').stop().fadeTo(this.settings.imagesAnimationDuration, 1.0, callback);
+ $entry.find(this.settings.imgSelector).stop().fadeTo(this.settings.imagesAnimationDuration, 1.0, callback);
}
};
@@ -149,8 +149,7 @@
/** @returns {jQuery} the image in the given entry */
JustifiedGallery.prototype.imgFromEntry = function ($entry) {
- var $img = $entry.find('> img');
- if ($img.length === 0) $img = $entry.find('> a > img');
+ var $img = $entry.find(this.settings.imgSelector);
return $img.length === 0 ? null : $img;
};
@@ -320,6 +319,15 @@
};
/**
+ * Clear the building row data to be used for a new row
+ */
+ JustifiedGallery.prototype.clearBuildingRow = function () {
+ this.buildingRow.entriesBuff = [];
+ this.buildingRow.aspectRatio = 0;
+ this.buildingRow.width = 0;
+ };
+
+ /**
* Justify the building row, preparing it to
*
* @param isLastRow
@@ -381,15 +389,6 @@
};
/**
- * Clear the building row data to be used for a new row
- */
- JustifiedGallery.prototype.clearBuildingRow = function () {
- this.buildingRow.entriesBuff = [];
- this.buildingRow.aspectRatio = 0;
- this.buildingRow.width = 0;
- };
-
- /**
* Flush a row: justify it, modify the gallery height accordingly to the row height
*
* @param isLastRow
@@ -404,16 +403,12 @@
return;
}
- if (this.maxRowHeight) {
- if (this.maxRowHeight.isPercentage && this.maxRowHeight.value * settings.rowHeight < this.buildingRow.height) {
- this.buildingRow.height = this.maxRowHeight.value * settings.rowHeight;
- } else if (this.maxRowHeight.value >= settings.rowHeight && this.maxRowHeight.value < this.buildingRow.height) {
- this.buildingRow.height = this.maxRowHeight.value;
- }
+ if(this.maxRowHeight) {
+ if(this.maxRowHeight < this.buildingRow.height) this.buildingRow.height = this.maxRowHeight;
}
//Align last (unjustified) row
- if (settings.lastRow === 'center' || settings.lastRow === 'right') {
+ if (isLastRow && (settings.lastRow === 'center' || settings.lastRow === 'right')) {
var availableWidth = this.galleryWidth - 2 * this.border - (this.buildingRow.entriesBuff.length - 1) * settings.margins;
for (i = 0; i < this.buildingRow.entriesBuff.length; i++) {
@@ -427,15 +422,16 @@
offX += availableWidth;
}
- for (i = 0; i < this.buildingRow.entriesBuff.length; i++) {
- $entry = this.buildingRow.entriesBuff[i];
+ var lastEntryIdx = this.buildingRow.entriesBuff.length - 1;
+ for (i = 0; i <= lastEntryIdx; i++) {
+ $entry = this.buildingRow.entriesBuff[ this.settings.rtl ? lastEntryIdx - i : i ];
this.displayEntry($entry, offX, this.offY, $entry.data('jg.jwidth'), $entry.data('jg.jheight'), this.buildingRow.height);
offX += $entry.data('jg.jwidth') + settings.margins;
}
//Gallery Height
this.galleryHeightToSet = this.offY + this.buildingRow.height + this.border;
- this.$gallery.height(this.galleryHeightToSet + this.getSpinnerHeight());
+ this.setGalleryTempHeight(this.galleryHeightToSet + this.getSpinnerHeight());
if (!isLastRow || (this.buildingRow.height <= settings.rowHeight && buildingRowRes)) {
//Ready for a new row
@@ -446,18 +442,45 @@
}
};
+
+ // Scroll position not restoring: https://github.com/miromannino/Justified-Gallery/issues/221
+ var galleryPrevStaticHeight = 0;
+
+ JustifiedGallery.prototype.rememberGalleryHeight = function () {
+ galleryPrevStaticHeight = this.$gallery.height();
+ this.$gallery.height(galleryPrevStaticHeight);
+ };
+
+ // grow only
+ JustifiedGallery.prototype.setGalleryTempHeight = function (height) {
+ galleryPrevStaticHeight = Math.max(height, galleryPrevStaticHeight);
+ this.$gallery.height(galleryPrevStaticHeight);
+ };
+
+ JustifiedGallery.prototype.setGalleryFinalHeight = function (height) {
+ galleryPrevStaticHeight = height;
+ this.$gallery.height(height);
+ };
+
+
/**
* Checks the width of the gallery container, to know if a new justification is needed
*/
var scrollBarOn = false;
JustifiedGallery.prototype.checkWidth = function () {
this.checkWidthIntervalId = setInterval($.proxy(function () {
+
+ // if the gallery is not currently visible, abort.
+ if (!this.$gallery.is(":visible")) return;
+
var galleryWidth = parseFloat(this.$gallery.width());
if (hasScrollBar() === scrollBarOn) {
if (Math.abs(galleryWidth - this.galleryWidth) > this.settings.refreshSensitivity) {
this.galleryWidth = galleryWidth;
this.rewind();
+ this.rememberGalleryHeight();
+
// Restart to analyze
this.startImgAnalyzer(true);
}
@@ -488,7 +511,7 @@
JustifiedGallery.prototype.stopLoadingSpinnerAnimation = function () {
clearInterval(this.spinner.intervalId);
this.spinner.intervalId = null;
- this.$gallery.height(this.$gallery.height() - this.getSpinnerHeight());
+ this.setGalleryTempHeight(this.$gallery.height() - this.getSpinnerHeight());
this.spinner.$el.detach();
};
@@ -500,7 +523,7 @@
var $spinnerPoints = spinnerContext.$el.find('span');
clearInterval(spinnerContext.intervalId);
this.$gallery.append(spinnerContext.$el);
- this.$gallery.height(this.offY + this.buildingRow.height + this.getSpinnerHeight());
+ this.setGalleryTempHeight(this.offY + this.buildingRow.height + this.getSpinnerHeight());
spinnerContext.intervalId = setInterval(function () {
if (spinnerContext.phase < $spinnerPoints.length) {
$spinnerPoints.eq(spinnerContext.phase).fadeTo(spinnerContext.timeSlot, 1);
@@ -636,7 +659,7 @@
// Filter using the passed function
var filteredArr = a.filter(settings.filter);
for (var i = 0; i < a.length; i++) {
- if (filteredArr.indexOf(a[i]) == -1) {
+ if (filteredArr.indexOf(a[i]) === -1) {
$(a[i]).addClass('jg-filtered').removeClass('jg-visible');
} else {
$(a[i]).removeClass('jg-filtered');
@@ -710,6 +733,7 @@
var imgAspectRatio = $entry.data('jg.width') / $entry.data('jg.height');
if (availableWidth / (this.buildingRow.aspectRatio + imgAspectRatio) < this.settings.rowHeight) {
this.flushRow(false);
+
if(++this.yield.flushed >= this.yield.every) {
this.startImgAnalyzer(isForResize);
return;
@@ -741,7 +765,7 @@
//On complete callback
this.$gallery.trigger(isForResize ? 'jg.resize' : 'jg.complete');
- this.$gallery.height(this.galleryHeightToSet);
+ this.setGalleryFinalHeight(this.galleryHeightToSet);
};
/**
@@ -749,7 +773,10 @@
*/
JustifiedGallery.prototype.stopImgAnalyzerStarter = function () {
this.yield.flushed = 0;
- if (this.imgAnalyzerTimeout !== null) clearTimeout(this.imgAnalyzerTimeout);
+ if (this.imgAnalyzerTimeout !== null) {
+ clearTimeout(this.imgAnalyzerTimeout);
+ this.imgAnalyzerTimeout = null;
+ }
};
/**
@@ -822,8 +849,8 @@
/* If we have the height and the width, we don't wait that the image is loaded, but we start directly
* with the justification */
if (that.settings.waitThumbnailsLoad === false) {
- var width = parseFloat($image.attr('width'));
- var height = parseFloat($image.attr('height'));
+ var width = parseFloat($image.prop('width'));
+ var height = parseFloat($image.prop('height'));
if (!isNaN(width) && !isNaN(height)) {
$entry.data('jg.width', width);
$entry.data('jg.height', height);
@@ -915,36 +942,33 @@
/**
* check and convert the maxRowHeight setting
+ * requires rowHeight to be already set
+ * TODO: should be always called when only rowHeight is changed
+ * @return number or null
*/
JustifiedGallery.prototype.retrieveMaxRowHeight = function () {
- var newMaxRowHeight = { };
+ var newMaxRowHeight = null;
+ var rowHeight = this.settings.rowHeight;
if ($.type(this.settings.maxRowHeight) === 'string') {
if (this.settings.maxRowHeight.match(/^[0-9]+%$/)) {
- newMaxRowHeight.value = parseFloat(this.settings.maxRowHeight.match(/^([0-9]+)%$/)[1]) / 100;
- newMaxRowHeight.isPercentage = false;
+ newMaxRowHeight = rowHeight * parseFloat(this.settings.maxRowHeight.match(/^([0-9]+)%$/)[1]) / 100;
} else {
- newMaxRowHeight.value = parseFloat(this.settings.maxRowHeight);
- newMaxRowHeight.isPercentage = true;
+ newMaxRowHeight = parseFloat(this.settings.maxRowHeight);
}
} else if ($.type(this.settings.maxRowHeight) === 'number') {
- newMaxRowHeight.value = this.settings.maxRowHeight;
- newMaxRowHeight.isPercentage = false;
- } else if (this.settings.maxRowHeight === false ||
- this.settings.maxRowHeight === null ||
- typeof this.settings.maxRowHeight == 'undefined') {
+ newMaxRowHeight = this.settings.maxRowHeight;
+ } else if (this.settings.maxRowHeight === false || this.settings.maxRowHeight == null) {
return null;
} else {
throw 'maxRowHeight must be a number or a percentage';
}
// check if the converted value is not a number
- if (isNaN(newMaxRowHeight.value)) throw 'invalid number for maxRowHeight';
+ if (isNaN(newMaxRowHeight)) throw 'invalid number for maxRowHeight';
- // check values
- if (newMaxRowHeight.isPercentage) {
- if (newMaxRowHeight.value < 100) newMaxRowHeight.value = 100;
- }
+ // check values, maxRowHeight must be >= rowHeight
+ if (newMaxRowHeight < rowHeight) newMaxRowHeight = rowHeight;
return newMaxRowHeight;
};
@@ -1102,7 +1126,7 @@
thumbnailPath: undefined, /* If defined, sizeRangeSuffixes is not used, and this function is used to determine the
path relative to a specific thumbnail size. The function should accept respectively three arguments:
current path, width and height */
- rowHeight: 120,
+ rowHeight: 120, // required? required to be > 0?
maxRowHeight: false, // false or negative value to deactivate. Positive number to express the value in pixels,
// A string '[0-9]+%' to express in percentage (e.g. 300% means that the row height
// can't exceed 3 * rowHeight)
@@ -1128,6 +1152,7 @@
refreshTime: 200, // time interval (in ms) to check if the page changes its width
refreshSensitivity: 0, // change in width allowed (in px) without re-building the gallery
randomize: false,
+ rtl: false, // right-to-left mode
sort: false, /*
- false: to do not sort
- function: to sort them using the function as comparator (see Array.prototype.sort())
@@ -1139,7 +1164,8 @@
- a function: invoked with arguments (entry, index, array). Return true to keep the entry, false otherwise.
It follows the specifications of the Array.prototype.filter() function of JavaScript.
*/
- selector: 'a, div:not(.spinner)' // The selector that is used to know what are the entries of the gallery
+ selector: 'a, div:not(.spinner)', // The selector that is used to know what are the entries of the gallery
+ imgSelector: '> img, > a > img' // The selector that is used to know what are the images of each entry
};
}(jQuery));
diff --git a/library/justifiedGallery/jquery.justifiedGallery.min.js b/library/justifiedGallery/jquery.justifiedGallery.min.js
index 91ebcd259..87519987b 100644
--- a/library/justifiedGallery/jquery.justifiedGallery.min.js
+++ b/library/justifiedGallery/jquery.justifiedGallery.min.js
@@ -1,7 +1,7 @@
/*!
- * Justified Gallery - v3.6.3
+ * Justified Gallery - v3.6.5
* http://miromannino.github.io/Justified-Gallery/
- * Copyright (c) 2016 Miro Mannino
+ * Copyright (c) 2018 Miro Mannino
* Licensed under the MIT license.
*/
-!function(a){function b(){return a("body").height()>a(window).height()}var c=function(b,c){this.settings=c,this.checkSettings(),this.imgAnalyzerTimeout=null,this.entries=null,this.buildingRow={entriesBuff:[],width:0,height:0,aspectRatio:0},this.lastFetchedEntry=null,this.lastAnalyzedIndex=-1,this.yield={every:2,flushed:0},this.border=c.border>=0?c.border:c.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges(),this.offY=this.border,this.rows=0,this.spinner={phase:0,timeSlot:150,$el:a('<div class="spinner"><span></span><span></span><span></span></div>'),intervalId:null},this.checkWidthIntervalId=null,this.galleryWidth=b.width(),this.$gallery=b};c.prototype.getSuffix=function(a,b){var c,d;for(c=a>b?a:b,d=0;d<this.suffixRanges.length;d++)if(c<=this.suffixRanges[d])return this.settings.sizeRangeSuffixes[this.suffixRanges[d]];return this.settings.sizeRangeSuffixes[this.suffixRanges[d-1]]},c.prototype.removeSuffix=function(a,b){return a.substring(0,a.length-b.length)},c.prototype.endsWith=function(a,b){return-1!==a.indexOf(b,a.length-b.length)},c.prototype.getUsedSuffix=function(a){for(var b in this.settings.sizeRangeSuffixes)if(this.settings.sizeRangeSuffixes.hasOwnProperty(b)){if(0===this.settings.sizeRangeSuffixes[b].length)continue;if(this.endsWith(a,this.settings.sizeRangeSuffixes[b]))return this.settings.sizeRangeSuffixes[b]}return""},c.prototype.newSrc=function(a,b,c,d){var e;if(this.settings.thumbnailPath)e=this.settings.thumbnailPath(a,b,c,d);else{var f=a.match(this.settings.extension),g=null!==f?f[0]:"";e=a.replace(this.settings.extension,""),e=this.removeSuffix(e,this.getUsedSuffix(e)),e+=this.getSuffix(b,c)+g}return e},c.prototype.showImg=function(a,b){this.settings.cssAnimation?(a.addClass("entry-visible"),b&&b()):(a.stop().fadeTo(this.settings.imagesAnimationDuration,1,b),a.find("> img, > a > img").stop().fadeTo(this.settings.imagesAnimationDuration,1,b))},c.prototype.extractImgSrcFromImage=function(a){var b="undefined"!=typeof a.data("safe-src")?a.data("safe-src"):a.attr("src");return a.data("jg.originalSrc",b),b},c.prototype.imgFromEntry=function(a){var b=a.find("> img");return 0===b.length&&(b=a.find("> a > img")),0===b.length?null:b},c.prototype.captionFromEntry=function(a){var b=a.find("> .caption");return 0===b.length?null:b},c.prototype.displayEntry=function(b,c,d,e,f,g){b.width(e),b.height(g),b.css("top",d),b.css("left",c);var h=this.imgFromEntry(b);if(null!==h){h.css("width",e),h.css("height",f),h.css("margin-left",-e/2),h.css("margin-top",-f/2);var i=h.attr("src"),j=this.newSrc(i,e,f,h[0]);h.one("error",function(){h.attr("src",h.data("jg.originalSrc"))});var k=function(){i!==j&&h.attr("src",j)};"skipped"===b.data("jg.loaded")?this.onImageEvent(i,a.proxy(function(){this.showImg(b,k),b.data("jg.loaded",!0)},this)):this.showImg(b,k)}else this.showImg(b);this.displayEntryCaption(b)},c.prototype.displayEntryCaption=function(b){var c=this.imgFromEntry(b);if(null!==c&&this.settings.captions){var d=this.captionFromEntry(b);if(null===d){var e=c.attr("alt");this.isValidCaption(e)||(e=b.attr("title")),this.isValidCaption(e)&&(d=a('<div class="caption">'+e+"</div>"),b.append(d),b.data("jg.createdCaption",!0))}null!==d&&(this.settings.cssAnimation||d.stop().fadeTo(0,this.settings.captionSettings.nonVisibleOpacity),this.addCaptionEventsHandlers(b))}else this.removeCaptionEventsHandlers(b)},c.prototype.isValidCaption=function(a){return"undefined"!=typeof a&&a.length>0},c.prototype.onEntryMouseEnterForCaption=function(b){var c=this.captionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.addClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.visibleOpacity)},c.prototype.onEntryMouseLeaveForCaption=function(b){var c=this.captionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.removeClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.nonVisibleOpacity)},c.prototype.addCaptionEventsHandlers=function(b){var c=b.data("jg.captionMouseEvents");"undefined"==typeof c&&(c={mouseenter:a.proxy(this.onEntryMouseEnterForCaption,this),mouseleave:a.proxy(this.onEntryMouseLeaveForCaption,this)},b.on("mouseenter",void 0,void 0,c.mouseenter),b.on("mouseleave",void 0,void 0,c.mouseleave),b.data("jg.captionMouseEvents",c))},c.prototype.removeCaptionEventsHandlers=function(a){var b=a.data("jg.captionMouseEvents");"undefined"!=typeof b&&(a.off("mouseenter",void 0,b.mouseenter),a.off("mouseleave",void 0,b.mouseleave),a.removeData("jg.captionMouseEvents"))},c.prototype.prepareBuildingRow=function(a){var b,c,d,e,f,g=!0,h=0,i=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,j=i/this.buildingRow.aspectRatio,k=this.settings.rowHeight,l=this.buildingRow.width/i>this.settings.justifyThreshold;if(a&&"hide"===this.settings.lastRow&&!l){for(b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],this.settings.cssAnimation?c.removeClass("entry-visible"):(c.stop().fadeTo(0,.1),c.find("> img, > a > img").fadeTo(0,0));return-1}for(a&&!l&&"justify"!==this.settings.lastRow&&"hide"!==this.settings.lastRow&&(g=!1,this.rows>0&&(k=(this.offY-this.border-this.settings.margins*this.rows)/this.rows,g=k*this.buildingRow.aspectRatio/i>this.settings.justifyThreshold)),b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],d=c.data("jg.width")/c.data("jg.height"),g?(e=b===this.buildingRow.entriesBuff.length-1?i:j*d,f=j):(e=k*d,f=k),i-=Math.round(e),c.data("jg.jwidth",Math.round(e)),c.data("jg.jheight",Math.ceil(f)),(0===b||h>f)&&(h=f);return this.buildingRow.height=h,g},c.prototype.clearBuildingRow=function(){this.buildingRow.entriesBuff=[],this.buildingRow.aspectRatio=0,this.buildingRow.width=0},c.prototype.flushRow=function(a){var b,c,d,e=this.settings,f=this.border;if(c=this.prepareBuildingRow(a),a&&"hide"===e.lastRow&&-1===c)return void this.clearBuildingRow();if(this.maxRowHeight&&(this.maxRowHeight.isPercentage&&this.maxRowHeight.value*e.rowHeight<this.buildingRow.height?this.buildingRow.height=this.maxRowHeight.value*e.rowHeight:this.maxRowHeight.value>=e.rowHeight&&this.maxRowHeight.value<this.buildingRow.height&&(this.buildingRow.height=this.maxRowHeight.value)),"center"===e.lastRow||"right"===e.lastRow){var g=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*e.margins;for(d=0;d<this.buildingRow.entriesBuff.length;d++)b=this.buildingRow.entriesBuff[d],g-=b.data("jg.jwidth");"center"===e.lastRow?f+=g/2:"right"===e.lastRow&&(f+=g)}for(d=0;d<this.buildingRow.entriesBuff.length;d++)b=this.buildingRow.entriesBuff[d],this.displayEntry(b,f,this.offY,b.data("jg.jwidth"),b.data("jg.jheight"),this.buildingRow.height),f+=b.data("jg.jwidth")+e.margins;this.galleryHeightToSet=this.offY+this.buildingRow.height+this.border,this.$gallery.height(this.galleryHeightToSet+this.getSpinnerHeight()),(!a||this.buildingRow.height<=e.rowHeight&&c)&&(this.offY+=this.buildingRow.height+e.margins,this.rows+=1,this.clearBuildingRow(),this.$gallery.trigger("jg.rowflush"))};var d=!1;c.prototype.checkWidth=function(){this.checkWidthIntervalId=setInterval(a.proxy(function(){var a=parseFloat(this.$gallery.width());b()===d?Math.abs(a-this.galleryWidth)>this.settings.refreshSensitivity&&(this.galleryWidth=a,this.rewind(),this.startImgAnalyzer(!0)):(d=b(),this.galleryWidth=a)},this),this.settings.refreshTime)},c.prototype.isSpinnerActive=function(){return null!==this.spinner.intervalId},c.prototype.getSpinnerHeight=function(){return this.spinner.$el.innerHeight()},c.prototype.stopLoadingSpinnerAnimation=function(){clearInterval(this.spinner.intervalId),this.spinner.intervalId=null,this.$gallery.height(this.$gallery.height()-this.getSpinnerHeight()),this.spinner.$el.detach()},c.prototype.startLoadingSpinnerAnimation=function(){var a=this.spinner,b=a.$el.find("span");clearInterval(a.intervalId),this.$gallery.append(a.$el),this.$gallery.height(this.offY+this.buildingRow.height+this.getSpinnerHeight()),a.intervalId=setInterval(function(){a.phase<b.length?b.eq(a.phase).fadeTo(a.timeSlot,1):b.eq(a.phase-b.length).fadeTo(a.timeSlot,0),a.phase=(a.phase+1)%(2*b.length)},a.timeSlot)},c.prototype.rewind=function(){this.lastFetchedEntry=null,this.lastAnalyzedIndex=-1,this.offY=this.border,this.rows=0,this.clearBuildingRow()},c.prototype.updateEntries=function(b){var c;return b&&null!=this.lastFetchedEntry?c=a(this.lastFetchedEntry).nextAll(this.settings.selector).toArray():(this.entries=[],c=this.$gallery.children(this.settings.selector).toArray()),c.length>0&&(a.isFunction(this.settings.sort)?c=this.sortArray(c):this.settings.randomize&&(c=this.shuffleArray(c)),this.lastFetchedEntry=c[c.length-1],this.settings.filter?c=this.filterArray(c):this.resetFilters(c)),this.entries=this.entries.concat(c),!0},c.prototype.insertToGallery=function(b){var c=this;a.each(b,function(){a(this).appendTo(c.$gallery)})},c.prototype.shuffleArray=function(a){var b,c,d;for(b=a.length-1;b>0;b--)c=Math.floor(Math.random()*(b+1)),d=a[b],a[b]=a[c],a[c]=d;return this.insertToGallery(a),a},c.prototype.sortArray=function(a){return a.sort(this.settings.sort),this.insertToGallery(a),a},c.prototype.resetFilters=function(b){for(var c=0;c<b.length;c++)a(b[c]).removeClass("jg-filtered")},c.prototype.filterArray=function(b){var c=this.settings;if("string"===a.type(c.filter))return b.filter(function(b){var d=a(b);return d.is(c.filter)?(d.removeClass("jg-filtered"),!0):(d.addClass("jg-filtered").removeClass("jg-visible"),!1)});if(a.isFunction(c.filter)){for(var d=b.filter(c.filter),e=0;e<b.length;e++)-1==d.indexOf(b[e])?a(b[e]).addClass("jg-filtered").removeClass("jg-visible"):a(b[e]).removeClass("jg-filtered");return d}},c.prototype.destroy=function(){clearInterval(this.checkWidthIntervalId),a.each(this.entries,a.proxy(function(b,c){var d=a(c);d.css("width",""),d.css("height",""),d.css("top",""),d.css("left",""),d.data("jg.loaded",void 0),d.removeClass("jg-entry");var e=this.imgFromEntry(d);e.css("width",""),e.css("height",""),e.css("margin-left",""),e.css("margin-top",""),e.attr("src",e.data("jg.originalSrc")),e.data("jg.originalSrc",void 0),this.removeCaptionEventsHandlers(d);var f=this.captionFromEntry(d);d.data("jg.createdCaption")?(d.data("jg.createdCaption",void 0),null!==f&&f.remove()):null!==f&&f.fadeTo(0,1)},this)),this.$gallery.css("height",""),this.$gallery.removeClass("justified-gallery"),this.$gallery.data("jg.controller",void 0)},c.prototype.analyzeImages=function(b){for(var c=this.lastAnalyzedIndex+1;c<this.entries.length;c++){var d=a(this.entries[c]);if(d.data("jg.loaded")===!0||"skipped"===d.data("jg.loaded")){var e=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,f=d.data("jg.width")/d.data("jg.height");if(e/(this.buildingRow.aspectRatio+f)<this.settings.rowHeight&&(this.flushRow(!1),++this.yield.flushed>=this.yield.every))return void this.startImgAnalyzer(b);this.buildingRow.entriesBuff.push(d),this.buildingRow.aspectRatio+=f,this.buildingRow.width+=f*this.settings.rowHeight,this.lastAnalyzedIndex=c}else if("error"!==d.data("jg.loaded"))return}this.buildingRow.entriesBuff.length>0&&this.flushRow(!0),this.isSpinnerActive()&&this.stopLoadingSpinnerAnimation(),this.stopImgAnalyzerStarter(),this.$gallery.trigger(b?"jg.resize":"jg.complete"),this.$gallery.height(this.galleryHeightToSet)},c.prototype.stopImgAnalyzerStarter=function(){this.yield.flushed=0,null!==this.imgAnalyzerTimeout&&clearTimeout(this.imgAnalyzerTimeout)},c.prototype.startImgAnalyzer=function(a){var b=this;this.stopImgAnalyzerStarter(),this.imgAnalyzerTimeout=setTimeout(function(){b.analyzeImages(a)},.001)},c.prototype.onImageEvent=function(b,c,d){if(c||d){var e=new Image,f=a(e);c&&f.one("load",function(){f.off("load error"),c(e)}),d&&f.one("error",function(){f.off("load error"),d(e)}),e.src=b}},c.prototype.init=function(){var b=!1,c=!1,d=this;a.each(this.entries,function(e,f){var g=a(f),h=d.imgFromEntry(g);if(g.addClass("jg-entry"),g.data("jg.loaded")!==!0&&"skipped"!==g.data("jg.loaded"))if(null!==d.settings.rel&&g.attr("rel",d.settings.rel),null!==d.settings.target&&g.attr("target",d.settings.target),null!==h){var i=d.extractImgSrcFromImage(h);if(h.attr("src",i),d.settings.waitThumbnailsLoad===!1){var j=parseFloat(h.attr("width")),k=parseFloat(h.attr("height"));if(!isNaN(j)&&!isNaN(k))return g.data("jg.width",j),g.data("jg.height",k),g.data("jg.loaded","skipped"),c=!0,d.startImgAnalyzer(!1),!0}g.data("jg.loaded",!1),b=!0,d.isSpinnerActive()||d.startLoadingSpinnerAnimation(),d.onImageEvent(i,function(a){g.data("jg.width",a.width),g.data("jg.height",a.height),g.data("jg.loaded",!0),d.startImgAnalyzer(!1)},function(){g.data("jg.loaded","error"),d.startImgAnalyzer(!1)})}else g.data("jg.loaded",!0),g.data("jg.width",g.width()|parseFloat(g.css("width"))|1),g.data("jg.height",g.height()|parseFloat(g.css("height"))|1)}),b||c||this.startImgAnalyzer(!1),this.checkWidth()},c.prototype.checkOrConvertNumber=function(b,c){if("string"===a.type(b[c])&&(b[c]=parseFloat(b[c])),"number"!==a.type(b[c]))throw c+" must be a number";if(isNaN(b[c]))throw"invalid number for "+c},c.prototype.checkSizeRangesSuffixes=function(){if("object"!==a.type(this.settings.sizeRangeSuffixes))throw"sizeRangeSuffixes must be defined and must be an object";var b=[];for(var c in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(c)&&b.push(c);for(var d={0:""},e=0;e<b.length;e++)if("string"===a.type(b[e]))try{var f=parseInt(b[e].replace(/^[a-z]+/,""),10);d[f]=this.settings.sizeRangeSuffixes[b[e]]}catch(g){throw"sizeRangeSuffixes keys must contains correct numbers ("+g+")"}else d[b[e]]=this.settings.sizeRangeSuffixes[b[e]];this.settings.sizeRangeSuffixes=d},c.prototype.retrieveMaxRowHeight=function(){var b={};if("string"===a.type(this.settings.maxRowHeight))this.settings.maxRowHeight.match(/^[0-9]+%$/)?(b.value=parseFloat(this.settings.maxRowHeight.match(/^([0-9]+)%$/)[1])/100,b.isPercentage=!1):(b.value=parseFloat(this.settings.maxRowHeight),b.isPercentage=!0);else{if("number"!==a.type(this.settings.maxRowHeight)){if(this.settings.maxRowHeight===!1||null===this.settings.maxRowHeight||"undefined"==typeof this.settings.maxRowHeight)return null;throw"maxRowHeight must be a number or a percentage"}b.value=this.settings.maxRowHeight,b.isPercentage=!1}if(isNaN(b.value))throw"invalid number for maxRowHeight";return b.isPercentage&&b.value<100&&(b.value=100),b},c.prototype.checkSettings=function(){this.checkSizeRangesSuffixes(),this.checkOrConvertNumber(this.settings,"rowHeight"),this.checkOrConvertNumber(this.settings,"margins"),this.checkOrConvertNumber(this.settings,"border");var b=["justify","nojustify","left","center","right","hide"];if(-1===b.indexOf(this.settings.lastRow))throw"lastRow must be one of: "+b.join(", ");if(this.checkOrConvertNumber(this.settings,"justifyThreshold"),this.settings.justifyThreshold<0||this.settings.justifyThreshold>1)throw"justifyThreshold must be in the interval [0,1]";if("boolean"!==a.type(this.settings.cssAnimation))throw"cssAnimation must be a boolean";if("boolean"!==a.type(this.settings.captions))throw"captions must be a boolean";if(this.checkOrConvertNumber(this.settings.captionSettings,"animationDuration"),this.checkOrConvertNumber(this.settings.captionSettings,"visibleOpacity"),this.settings.captionSettings.visibleOpacity<0||this.settings.captionSettings.visibleOpacity>1)throw"captionSettings.visibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings.captionSettings,"nonVisibleOpacity"),this.settings.captionSettings.nonVisibleOpacity<0||this.settings.captionSettings.nonVisibleOpacity>1)throw"captionSettings.nonVisibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings,"imagesAnimationDuration"),this.checkOrConvertNumber(this.settings,"refreshTime"),this.checkOrConvertNumber(this.settings,"refreshSensitivity"),"boolean"!==a.type(this.settings.randomize))throw"randomize must be a boolean";if("string"!==a.type(this.settings.selector))throw"selector must be a string";if(this.settings.sort!==!1&&!a.isFunction(this.settings.sort))throw"sort must be false or a comparison function";if(this.settings.filter!==!1&&!a.isFunction(this.settings.filter)&&"string"!==a.type(this.settings.filter))throw"filter must be false, a string or a filter function"},c.prototype.retrieveSuffixRanges=function(){var a=[];for(var b in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(b)&&a.push(parseInt(b,10));return a.sort(function(a,b){return a>b?1:b>a?-1:0}),a},c.prototype.updateSettings=function(b){this.settings=a.extend({},this.settings,b),this.checkSettings(),this.border=this.settings.border>=0?this.settings.border:this.settings.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges()},a.fn.justifiedGallery=function(b){return this.each(function(d,e){var f=a(e);f.addClass("justified-gallery");var g=f.data("jg.controller");if("undefined"==typeof g){if("undefined"!=typeof b&&null!==b&&"object"!==a.type(b)){if("destroy"===b)return;throw"The argument must be an object"}g=new c(f,a.extend({},a.fn.justifiedGallery.defaults,b)),f.data("jg.controller",g)}else if("norewind"===b);else{if("destroy"===b)return void g.destroy();g.updateSettings(b),g.rewind()}g.updateEntries("norewind"===b)&&g.init()})},a.fn.justifiedGallery.defaults={sizeRangeSuffixes:{},thumbnailPath:void 0,rowHeight:120,maxRowHeight:!1,margins:1,border:-1,lastRow:"nojustify",justifyThreshold:.9,waitThumbnailsLoad:!0,captions:!0,cssAnimation:!0,imagesAnimationDuration:500,captionSettings:{animationDuration:500,visibleOpacity:.7,nonVisibleOpacity:0},rel:null,target:null,extension:/\.[^.\\/]+$/,refreshTime:200,refreshSensitivity:0,randomize:!1,sort:!1,filter:!1,selector:"a, div:not(.spinner)"}}(jQuery); \ No newline at end of file
+!function(a){function b(){return a("body").height()>a(window).height()}var c=function(b,c){this.settings=c,this.checkSettings(),this.imgAnalyzerTimeout=null,this.entries=null,this.buildingRow={entriesBuff:[],width:0,height:0,aspectRatio:0},this.lastFetchedEntry=null,this.lastAnalyzedIndex=-1,this.yield={every:2,flushed:0},this.border=c.border>=0?c.border:c.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges(),this.offY=this.border,this.rows=0,this.spinner={phase:0,timeSlot:150,$el:a('<div class="spinner"><span></span><span></span><span></span></div>'),intervalId:null},this.checkWidthIntervalId=null,this.galleryWidth=b.width(),this.$gallery=b};c.prototype.getSuffix=function(a,b){var c,d;for(c=a>b?a:b,d=0;d<this.suffixRanges.length;d++)if(c<=this.suffixRanges[d])return this.settings.sizeRangeSuffixes[this.suffixRanges[d]];return this.settings.sizeRangeSuffixes[this.suffixRanges[d-1]]},c.prototype.removeSuffix=function(a,b){return a.substring(0,a.length-b.length)},c.prototype.endsWith=function(a,b){return-1!==a.indexOf(b,a.length-b.length)},c.prototype.getUsedSuffix=function(a){for(var b in this.settings.sizeRangeSuffixes)if(this.settings.sizeRangeSuffixes.hasOwnProperty(b)){if(0===this.settings.sizeRangeSuffixes[b].length)continue;if(this.endsWith(a,this.settings.sizeRangeSuffixes[b]))return this.settings.sizeRangeSuffixes[b]}return""},c.prototype.newSrc=function(a,b,c,d){var e;if(this.settings.thumbnailPath)e=this.settings.thumbnailPath(a,b,c,d);else{var f=a.match(this.settings.extension),g=null!==f?f[0]:"";e=a.replace(this.settings.extension,""),e=this.removeSuffix(e,this.getUsedSuffix(e)),e+=this.getSuffix(b,c)+g}return e},c.prototype.showImg=function(a,b){this.settings.cssAnimation?(a.addClass("entry-visible"),b&&b()):(a.stop().fadeTo(this.settings.imagesAnimationDuration,1,b),a.find(this.settings.imgSelector).stop().fadeTo(this.settings.imagesAnimationDuration,1,b))},c.prototype.extractImgSrcFromImage=function(a){var b="undefined"!=typeof a.data("safe-src")?a.data("safe-src"):a.attr("src");return a.data("jg.originalSrc",b),b},c.prototype.imgFromEntry=function(a){var b=a.find(this.settings.imgSelector);return 0===b.length?null:b},c.prototype.captionFromEntry=function(a){var b=a.find("> .caption");return 0===b.length?null:b},c.prototype.displayEntry=function(b,c,d,e,f,g){b.width(e),b.height(g),b.css("top",d),b.css("left",c);var h=this.imgFromEntry(b);if(null!==h){h.css("width",e),h.css("height",f),h.css("margin-left",-e/2),h.css("margin-top",-f/2);var i=h.attr("src"),j=this.newSrc(i,e,f,h[0]);h.one("error",function(){h.attr("src",h.data("jg.originalSrc"))});var k=function(){i!==j&&h.attr("src",j)};"skipped"===b.data("jg.loaded")?this.onImageEvent(i,a.proxy(function(){this.showImg(b,k),b.data("jg.loaded",!0)},this)):this.showImg(b,k)}else this.showImg(b);this.displayEntryCaption(b)},c.prototype.displayEntryCaption=function(b){var c=this.imgFromEntry(b);if(null!==c&&this.settings.captions){var d=this.captionFromEntry(b);if(null===d){var e=c.attr("alt");this.isValidCaption(e)||(e=b.attr("title")),this.isValidCaption(e)&&(d=a('<div class="caption">'+e+"</div>"),b.append(d),b.data("jg.createdCaption",!0))}null!==d&&(this.settings.cssAnimation||d.stop().fadeTo(0,this.settings.captionSettings.nonVisibleOpacity),this.addCaptionEventsHandlers(b))}else this.removeCaptionEventsHandlers(b)},c.prototype.isValidCaption=function(a){return"undefined"!=typeof a&&a.length>0},c.prototype.onEntryMouseEnterForCaption=function(b){var c=this.captionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.addClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.visibleOpacity)},c.prototype.onEntryMouseLeaveForCaption=function(b){var c=this.captionFromEntry(a(b.currentTarget));this.settings.cssAnimation?c.removeClass("caption-visible").removeClass("caption-hidden"):c.stop().fadeTo(this.settings.captionSettings.animationDuration,this.settings.captionSettings.nonVisibleOpacity)},c.prototype.addCaptionEventsHandlers=function(b){var c=b.data("jg.captionMouseEvents");"undefined"==typeof c&&(c={mouseenter:a.proxy(this.onEntryMouseEnterForCaption,this),mouseleave:a.proxy(this.onEntryMouseLeaveForCaption,this)},b.on("mouseenter",void 0,void 0,c.mouseenter),b.on("mouseleave",void 0,void 0,c.mouseleave),b.data("jg.captionMouseEvents",c))},c.prototype.removeCaptionEventsHandlers=function(a){var b=a.data("jg.captionMouseEvents");"undefined"!=typeof b&&(a.off("mouseenter",void 0,b.mouseenter),a.off("mouseleave",void 0,b.mouseleave),a.removeData("jg.captionMouseEvents"))},c.prototype.clearBuildingRow=function(){this.buildingRow.entriesBuff=[],this.buildingRow.aspectRatio=0,this.buildingRow.width=0},c.prototype.prepareBuildingRow=function(a){var b,c,d,e,f,g=!0,h=0,i=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,j=i/this.buildingRow.aspectRatio,k=this.settings.rowHeight,l=this.buildingRow.width/i>this.settings.justifyThreshold;if(a&&"hide"===this.settings.lastRow&&!l){for(b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],this.settings.cssAnimation?c.removeClass("entry-visible"):(c.stop().fadeTo(0,.1),c.find("> img, > a > img").fadeTo(0,0));return-1}for(a&&!l&&"justify"!==this.settings.lastRow&&"hide"!==this.settings.lastRow&&(g=!1,this.rows>0&&(k=(this.offY-this.border-this.settings.margins*this.rows)/this.rows,g=k*this.buildingRow.aspectRatio/i>this.settings.justifyThreshold)),b=0;b<this.buildingRow.entriesBuff.length;b++)c=this.buildingRow.entriesBuff[b],d=c.data("jg.width")/c.data("jg.height"),g?(e=b===this.buildingRow.entriesBuff.length-1?i:j*d,f=j):(e=k*d,f=k),i-=Math.round(e),c.data("jg.jwidth",Math.round(e)),c.data("jg.jheight",Math.ceil(f)),(0===b||h>f)&&(h=f);return this.buildingRow.height=h,g},c.prototype.flushRow=function(a){var b,c,d,e=this.settings,f=this.border;if(c=this.prepareBuildingRow(a),a&&"hide"===e.lastRow&&-1===c)return void this.clearBuildingRow();if(this.maxRowHeight&&this.maxRowHeight<this.buildingRow.height&&(this.buildingRow.height=this.maxRowHeight),a&&("center"===e.lastRow||"right"===e.lastRow)){var g=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*e.margins;for(d=0;d<this.buildingRow.entriesBuff.length;d++)b=this.buildingRow.entriesBuff[d],g-=b.data("jg.jwidth");"center"===e.lastRow?f+=g/2:"right"===e.lastRow&&(f+=g)}var h=this.buildingRow.entriesBuff.length-1;for(d=0;h>=d;d++)b=this.buildingRow.entriesBuff[this.settings.rtl?h-d:d],this.displayEntry(b,f,this.offY,b.data("jg.jwidth"),b.data("jg.jheight"),this.buildingRow.height),f+=b.data("jg.jwidth")+e.margins;this.galleryHeightToSet=this.offY+this.buildingRow.height+this.border,this.setGalleryTempHeight(this.galleryHeightToSet+this.getSpinnerHeight()),(!a||this.buildingRow.height<=e.rowHeight&&c)&&(this.offY+=this.buildingRow.height+e.margins,this.rows+=1,this.clearBuildingRow(),this.$gallery.trigger("jg.rowflush"))};var d=0;c.prototype.rememberGalleryHeight=function(){d=this.$gallery.height(),this.$gallery.height(d)},c.prototype.setGalleryTempHeight=function(a){d=Math.max(a,d),this.$gallery.height(d)},c.prototype.setGalleryFinalHeight=function(a){d=a,this.$gallery.height(a)};var e=!1;c.prototype.checkWidth=function(){this.checkWidthIntervalId=setInterval(a.proxy(function(){if(this.$gallery.is(":visible")){var a=parseFloat(this.$gallery.width());b()===e?Math.abs(a-this.galleryWidth)>this.settings.refreshSensitivity&&(this.galleryWidth=a,this.rewind(),this.rememberGalleryHeight(),this.startImgAnalyzer(!0)):(e=b(),this.galleryWidth=a)}},this),this.settings.refreshTime)},c.prototype.isSpinnerActive=function(){return null!==this.spinner.intervalId},c.prototype.getSpinnerHeight=function(){return this.spinner.$el.innerHeight()},c.prototype.stopLoadingSpinnerAnimation=function(){clearInterval(this.spinner.intervalId),this.spinner.intervalId=null,this.setGalleryTempHeight(this.$gallery.height()-this.getSpinnerHeight()),this.spinner.$el.detach()},c.prototype.startLoadingSpinnerAnimation=function(){var a=this.spinner,b=a.$el.find("span");clearInterval(a.intervalId),this.$gallery.append(a.$el),this.setGalleryTempHeight(this.offY+this.buildingRow.height+this.getSpinnerHeight()),a.intervalId=setInterval(function(){a.phase<b.length?b.eq(a.phase).fadeTo(a.timeSlot,1):b.eq(a.phase-b.length).fadeTo(a.timeSlot,0),a.phase=(a.phase+1)%(2*b.length)},a.timeSlot)},c.prototype.rewind=function(){this.lastFetchedEntry=null,this.lastAnalyzedIndex=-1,this.offY=this.border,this.rows=0,this.clearBuildingRow()},c.prototype.updateEntries=function(b){var c;return b&&null!=this.lastFetchedEntry?c=a(this.lastFetchedEntry).nextAll(this.settings.selector).toArray():(this.entries=[],c=this.$gallery.children(this.settings.selector).toArray()),c.length>0&&(a.isFunction(this.settings.sort)?c=this.sortArray(c):this.settings.randomize&&(c=this.shuffleArray(c)),this.lastFetchedEntry=c[c.length-1],this.settings.filter?c=this.filterArray(c):this.resetFilters(c)),this.entries=this.entries.concat(c),!0},c.prototype.insertToGallery=function(b){var c=this;a.each(b,function(){a(this).appendTo(c.$gallery)})},c.prototype.shuffleArray=function(a){var b,c,d;for(b=a.length-1;b>0;b--)c=Math.floor(Math.random()*(b+1)),d=a[b],a[b]=a[c],a[c]=d;return this.insertToGallery(a),a},c.prototype.sortArray=function(a){return a.sort(this.settings.sort),this.insertToGallery(a),a},c.prototype.resetFilters=function(b){for(var c=0;c<b.length;c++)a(b[c]).removeClass("jg-filtered")},c.prototype.filterArray=function(b){var c=this.settings;if("string"===a.type(c.filter))return b.filter(function(b){var d=a(b);return d.is(c.filter)?(d.removeClass("jg-filtered"),!0):(d.addClass("jg-filtered").removeClass("jg-visible"),!1)});if(a.isFunction(c.filter)){for(var d=b.filter(c.filter),e=0;e<b.length;e++)-1===d.indexOf(b[e])?a(b[e]).addClass("jg-filtered").removeClass("jg-visible"):a(b[e]).removeClass("jg-filtered");return d}},c.prototype.destroy=function(){clearInterval(this.checkWidthIntervalId),a.each(this.entries,a.proxy(function(b,c){var d=a(c);d.css("width",""),d.css("height",""),d.css("top",""),d.css("left",""),d.data("jg.loaded",void 0),d.removeClass("jg-entry");var e=this.imgFromEntry(d);e.css("width",""),e.css("height",""),e.css("margin-left",""),e.css("margin-top",""),e.attr("src",e.data("jg.originalSrc")),e.data("jg.originalSrc",void 0),this.removeCaptionEventsHandlers(d);var f=this.captionFromEntry(d);d.data("jg.createdCaption")?(d.data("jg.createdCaption",void 0),null!==f&&f.remove()):null!==f&&f.fadeTo(0,1)},this)),this.$gallery.css("height",""),this.$gallery.removeClass("justified-gallery"),this.$gallery.data("jg.controller",void 0)},c.prototype.analyzeImages=function(b){for(var c=this.lastAnalyzedIndex+1;c<this.entries.length;c++){var d=a(this.entries[c]);if(d.data("jg.loaded")===!0||"skipped"===d.data("jg.loaded")){var e=this.galleryWidth-2*this.border-(this.buildingRow.entriesBuff.length-1)*this.settings.margins,f=d.data("jg.width")/d.data("jg.height");if(e/(this.buildingRow.aspectRatio+f)<this.settings.rowHeight&&(this.flushRow(!1),++this.yield.flushed>=this.yield.every))return void this.startImgAnalyzer(b);this.buildingRow.entriesBuff.push(d),this.buildingRow.aspectRatio+=f,this.buildingRow.width+=f*this.settings.rowHeight,this.lastAnalyzedIndex=c}else if("error"!==d.data("jg.loaded"))return}this.buildingRow.entriesBuff.length>0&&this.flushRow(!0),this.isSpinnerActive()&&this.stopLoadingSpinnerAnimation(),this.stopImgAnalyzerStarter(),this.$gallery.trigger(b?"jg.resize":"jg.complete"),this.setGalleryFinalHeight(this.galleryHeightToSet)},c.prototype.stopImgAnalyzerStarter=function(){this.yield.flushed=0,null!==this.imgAnalyzerTimeout&&(clearTimeout(this.imgAnalyzerTimeout),this.imgAnalyzerTimeout=null)},c.prototype.startImgAnalyzer=function(a){var b=this;this.stopImgAnalyzerStarter(),this.imgAnalyzerTimeout=setTimeout(function(){b.analyzeImages(a)},.001)},c.prototype.onImageEvent=function(b,c,d){if(c||d){var e=new Image,f=a(e);c&&f.one("load",function(){f.off("load error"),c(e)}),d&&f.one("error",function(){f.off("load error"),d(e)}),e.src=b}},c.prototype.init=function(){var b=!1,c=!1,d=this;a.each(this.entries,function(e,f){var g=a(f),h=d.imgFromEntry(g);if(g.addClass("jg-entry"),g.data("jg.loaded")!==!0&&"skipped"!==g.data("jg.loaded"))if(null!==d.settings.rel&&g.attr("rel",d.settings.rel),null!==d.settings.target&&g.attr("target",d.settings.target),null!==h){var i=d.extractImgSrcFromImage(h);if(h.attr("src",i),d.settings.waitThumbnailsLoad===!1){var j=parseFloat(h.prop("width")),k=parseFloat(h.prop("height"));if(!isNaN(j)&&!isNaN(k))return g.data("jg.width",j),g.data("jg.height",k),g.data("jg.loaded","skipped"),c=!0,d.startImgAnalyzer(!1),!0}g.data("jg.loaded",!1),b=!0,d.isSpinnerActive()||d.startLoadingSpinnerAnimation(),d.onImageEvent(i,function(a){g.data("jg.width",a.width),g.data("jg.height",a.height),g.data("jg.loaded",!0),d.startImgAnalyzer(!1)},function(){g.data("jg.loaded","error"),d.startImgAnalyzer(!1)})}else g.data("jg.loaded",!0),g.data("jg.width",g.width()|parseFloat(g.css("width"))|1),g.data("jg.height",g.height()|parseFloat(g.css("height"))|1)}),b||c||this.startImgAnalyzer(!1),this.checkWidth()},c.prototype.checkOrConvertNumber=function(b,c){if("string"===a.type(b[c])&&(b[c]=parseFloat(b[c])),"number"!==a.type(b[c]))throw c+" must be a number";if(isNaN(b[c]))throw"invalid number for "+c},c.prototype.checkSizeRangesSuffixes=function(){if("object"!==a.type(this.settings.sizeRangeSuffixes))throw"sizeRangeSuffixes must be defined and must be an object";var b=[];for(var c in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(c)&&b.push(c);for(var d={0:""},e=0;e<b.length;e++)if("string"===a.type(b[e]))try{var f=parseInt(b[e].replace(/^[a-z]+/,""),10);d[f]=this.settings.sizeRangeSuffixes[b[e]]}catch(g){throw"sizeRangeSuffixes keys must contains correct numbers ("+g+")"}else d[b[e]]=this.settings.sizeRangeSuffixes[b[e]];this.settings.sizeRangeSuffixes=d},c.prototype.retrieveMaxRowHeight=function(){var b=null,c=this.settings.rowHeight;if("string"===a.type(this.settings.maxRowHeight))b=this.settings.maxRowHeight.match(/^[0-9]+%$/)?c*parseFloat(this.settings.maxRowHeight.match(/^([0-9]+)%$/)[1])/100:parseFloat(this.settings.maxRowHeight);else{if("number"!==a.type(this.settings.maxRowHeight)){if(this.settings.maxRowHeight===!1||null==this.settings.maxRowHeight)return null;throw"maxRowHeight must be a number or a percentage"}b=this.settings.maxRowHeight}if(isNaN(b))throw"invalid number for maxRowHeight";return c>b&&(b=c),b},c.prototype.checkSettings=function(){this.checkSizeRangesSuffixes(),this.checkOrConvertNumber(this.settings,"rowHeight"),this.checkOrConvertNumber(this.settings,"margins"),this.checkOrConvertNumber(this.settings,"border");var b=["justify","nojustify","left","center","right","hide"];if(-1===b.indexOf(this.settings.lastRow))throw"lastRow must be one of: "+b.join(", ");if(this.checkOrConvertNumber(this.settings,"justifyThreshold"),this.settings.justifyThreshold<0||this.settings.justifyThreshold>1)throw"justifyThreshold must be in the interval [0,1]";if("boolean"!==a.type(this.settings.cssAnimation))throw"cssAnimation must be a boolean";if("boolean"!==a.type(this.settings.captions))throw"captions must be a boolean";if(this.checkOrConvertNumber(this.settings.captionSettings,"animationDuration"),this.checkOrConvertNumber(this.settings.captionSettings,"visibleOpacity"),this.settings.captionSettings.visibleOpacity<0||this.settings.captionSettings.visibleOpacity>1)throw"captionSettings.visibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings.captionSettings,"nonVisibleOpacity"),this.settings.captionSettings.nonVisibleOpacity<0||this.settings.captionSettings.nonVisibleOpacity>1)throw"captionSettings.nonVisibleOpacity must be in the interval [0, 1]";if(this.checkOrConvertNumber(this.settings,"imagesAnimationDuration"),this.checkOrConvertNumber(this.settings,"refreshTime"),this.checkOrConvertNumber(this.settings,"refreshSensitivity"),"boolean"!==a.type(this.settings.randomize))throw"randomize must be a boolean";if("string"!==a.type(this.settings.selector))throw"selector must be a string";if(this.settings.sort!==!1&&!a.isFunction(this.settings.sort))throw"sort must be false or a comparison function";if(this.settings.filter!==!1&&!a.isFunction(this.settings.filter)&&"string"!==a.type(this.settings.filter))throw"filter must be false, a string or a filter function"},c.prototype.retrieveSuffixRanges=function(){var a=[];for(var b in this.settings.sizeRangeSuffixes)this.settings.sizeRangeSuffixes.hasOwnProperty(b)&&a.push(parseInt(b,10));return a.sort(function(a,b){return a>b?1:b>a?-1:0}),a},c.prototype.updateSettings=function(b){this.settings=a.extend({},this.settings,b),this.checkSettings(),this.border=this.settings.border>=0?this.settings.border:this.settings.margins,this.maxRowHeight=this.retrieveMaxRowHeight(),this.suffixRanges=this.retrieveSuffixRanges()},a.fn.justifiedGallery=function(b){return this.each(function(d,e){var f=a(e);f.addClass("justified-gallery");var g=f.data("jg.controller");if("undefined"==typeof g){if("undefined"!=typeof b&&null!==b&&"object"!==a.type(b)){if("destroy"===b)return;throw"The argument must be an object"}g=new c(f,a.extend({},a.fn.justifiedGallery.defaults,b)),f.data("jg.controller",g)}else if("norewind"===b);else{if("destroy"===b)return void g.destroy();g.updateSettings(b),g.rewind()}g.updateEntries("norewind"===b)&&g.init()})},a.fn.justifiedGallery.defaults={sizeRangeSuffixes:{},thumbnailPath:void 0,rowHeight:120,maxRowHeight:!1,margins:1,border:-1,lastRow:"nojustify",justifyThreshold:.9,waitThumbnailsLoad:!0,captions:!0,cssAnimation:!0,imagesAnimationDuration:500,captionSettings:{animationDuration:500,visibleOpacity:.7,nonVisibleOpacity:0},rel:null,target:null,extension:/\.[^.\\/]+$/,refreshTime:200,refreshSensitivity:0,randomize:!1,rtl:!1,sort:!1,filter:!1,selector:"a, div:not(.spinner)",imgSelector:"> img, > a > img"}}(jQuery); \ No newline at end of file
diff --git a/library/justifiedGallery/justifiedGallery.css b/library/justifiedGallery/justifiedGallery.css
index 00c84fda0..3b1da6850 100644
--- a/library/justifiedGallery/justifiedGallery.css
+++ b/library/justifiedGallery/justifiedGallery.css
@@ -1,7 +1,7 @@
/*!
- * Justified Gallery - v3.6.3
+ * Justified Gallery - v3.6.5
* http://miromannino.github.io/Justified-Gallery/
- * Copyright (c) 2016 Miro Mannino
+ * Copyright (c) 2018 Miro Mannino
* Licensed under the MIT license.
*/
.justified-gallery {
@@ -10,18 +10,23 @@
overflow: hidden;
}
.justified-gallery > a,
-.justified-gallery > div {
+.justified-gallery > div,
+.justified-gallery > figure {
position: absolute;
display: inline-block;
overflow: hidden;
/* background: #888888; To have gray placeholders while the gallery is loading with waitThumbnailsLoad = false */
filter: "alpha(opacity=10)";
opacity: 0.1;
+ margin: 0;
+ padding: 0;
}
.justified-gallery > a > img,
.justified-gallery > div > img,
+.justified-gallery > figure > img,
.justified-gallery > a > a > img,
-.justified-gallery > div > a > img {
+.justified-gallery > div > a > img,
+.justified-gallery > figure > a > img {
position: absolute;
top: 50%;
left: 50%;
@@ -32,7 +37,8 @@
opacity: 0;
}
.justified-gallery > a > .caption,
-.justified-gallery > div > .caption {
+.justified-gallery > div > .caption,
+.justified-gallery > figure > .caption {
display: none;
position: absolute;
bottom: 0;
@@ -47,7 +53,8 @@
font-family: sans-serif;
}
.justified-gallery > a > .caption.caption-visible,
-.justified-gallery > div > .caption.caption-visible {
+.justified-gallery > div > .caption.caption-visible,
+.justified-gallery > figure > .caption.caption-visible {
display: initial;
filter: "alpha(opacity=70)";
opacity: 0.7;
diff --git a/library/justifiedGallery/justifiedGallery.min.css b/library/justifiedGallery/justifiedGallery.min.css
index 78ca2f8d4..ba8b177d7 100644
--- a/library/justifiedGallery/justifiedGallery.min.css
+++ b/library/justifiedGallery/justifiedGallery.min.css
@@ -1,7 +1,7 @@
/*!
- * Justified Gallery - v3.6.3
+ * Justified Gallery - v3.6.5
* http://miromannino.github.io/Justified-Gallery/
- * Copyright (c) 2016 Miro Mannino
+ * Copyright (c) 2018 Miro Mannino
* Licensed under the MIT license.
*/
-.justified-gallery{width:100%;position:relative;overflow:hidden}.justified-gallery>a,.justified-gallery>div{position:absolute;display:inline-block;overflow:hidden;filter:"alpha(opacity=10)";opacity:.1}.justified-gallery>a>img,.justified-gallery>div>img,.justified-gallery>a>a>img,.justified-gallery>div>a>img{position:absolute;top:50%;left:50%;margin:0;padding:0;border:0;filter:"alpha(opacity=0)";opacity:0}.justified-gallery>a>.caption,.justified-gallery>div>.caption{display:none;position:absolute;bottom:0;padding:5px;background-color:#000;left:0;right:0;margin:0;color:#fff;font-size:12px;font-weight:300;font-family:sans-serif}.justified-gallery>a>.caption.caption-visible,.justified-gallery>div>.caption.caption-visible{display:initial;filter:"alpha(opacity=70)";opacity:.7;-webkit-transition:opacity 500ms ease-in;-moz-transition:opacity 500ms ease-in;-o-transition:opacity 500ms ease-in;transition:opacity 500ms ease-in}.justified-gallery>.entry-visible{filter:"alpha(opacity=100)";opacity:1;background:0 0}.justified-gallery>.entry-visible>img,.justified-gallery>.entry-visible>a>img{filter:"alpha(opacity=100)";opacity:1;-webkit-transition:opacity 500ms ease-in;-moz-transition:opacity 500ms ease-in;-o-transition:opacity 500ms ease-in;transition:opacity 500ms ease-in}.justified-gallery>.jg-filtered{display:none}.justified-gallery>.spinner{position:absolute;bottom:0;margin-left:-24px;padding:10px 0;left:50%;filter:"alpha(opacity=100)";opacity:1;overflow:initial}.justified-gallery>.spinner>span{display:inline-block;filter:"alpha(opacity=0)";opacity:0;width:8px;height:8px;margin:0 4px;background-color:#000;border-radius:6px} \ No newline at end of file
+.justified-gallery{width:100%;position:relative;overflow:hidden}.justified-gallery>a,.justified-gallery>div,.justified-gallery>figure{position:absolute;display:inline-block;overflow:hidden;filter:"alpha(opacity=10)";opacity:.1;margin:0;padding:0}.justified-gallery>a>img,.justified-gallery>div>img,.justified-gallery>figure>img,.justified-gallery>a>a>img,.justified-gallery>div>a>img,.justified-gallery>figure>a>img{position:absolute;top:50%;left:50%;margin:0;padding:0;border:0;filter:"alpha(opacity=0)";opacity:0}.justified-gallery>a>.caption,.justified-gallery>div>.caption,.justified-gallery>figure>.caption{display:none;position:absolute;bottom:0;padding:5px;background-color:#000;left:0;right:0;margin:0;color:#fff;font-size:12px;font-weight:300;font-family:sans-serif}.justified-gallery>a>.caption.caption-visible,.justified-gallery>div>.caption.caption-visible,.justified-gallery>figure>.caption.caption-visible{display:initial;filter:"alpha(opacity=70)";opacity:.7;-webkit-transition:opacity 500ms ease-in;-moz-transition:opacity 500ms ease-in;-o-transition:opacity 500ms ease-in;transition:opacity 500ms ease-in}.justified-gallery>.entry-visible{filter:"alpha(opacity=100)";opacity:1;background:0 0}.justified-gallery>.entry-visible>img,.justified-gallery>.entry-visible>a>img{filter:"alpha(opacity=100)";opacity:1;-webkit-transition:opacity 500ms ease-in;-moz-transition:opacity 500ms ease-in;-o-transition:opacity 500ms ease-in;transition:opacity 500ms ease-in}.justified-gallery>.jg-filtered{display:none}.justified-gallery>.spinner{position:absolute;bottom:0;margin-left:-24px;padding:10px 0;left:50%;filter:"alpha(opacity=100)";opacity:1;overflow:initial}.justified-gallery>.spinner>span{display:inline-block;filter:"alpha(opacity=0)";opacity:0;width:8px;height:8px;margin:0 4px;background-color:#000;border-radius:6px} \ No newline at end of file
diff --git a/tests/travis/prepare_pgsql.sh b/tests/travis/prepare_pgsql.sh
index 0175b9858..c6b12e4d6 100755
--- a/tests/travis/prepare_pgsql.sh
+++ b/tests/travis/prepare_pgsql.sh
@@ -27,14 +27,19 @@ set -e
echo "Preparing for PostgreSQL ..."
+if [[ "$POSTGRESQL_VERSION" == "10" ]]; then
+ echo "Using PostgreSQL in Docker container, need to use TCP"
+ export PROTO="-h localhost"
+fi
+
# Print out some PostgreSQL information
psql --version
# Why does this hang further execution of the job?
-psql -U postgres -c "SELECT VERSION();"
+psql $PROTO -U postgres -c "SELECT VERSION();"
# Create Hubzilla database
-psql -U postgres -c "DROP DATABASE IF EXISTS travis_hubzilla;"
-psql -U postgres -v ON_ERROR_STOP=1 <<-EOSQL
+psql $PROTO -U postgres -c "DROP DATABASE IF EXISTS travis_hubzilla;"
+psql $PROTO -U postgres -v ON_ERROR_STOP=1 <<-EOSQL
CREATE USER travis_hz WITH PASSWORD 'hubzilla';
CREATE DATABASE travis_hubzilla;
ALTER DATABASE travis_hubzilla OWNER TO travis_hz;
@@ -42,8 +47,8 @@ psql -U postgres -v ON_ERROR_STOP=1 <<-EOSQL
EOSQL
# Import table structure
-psql -U travis_hz -v ON_ERROR_STOP=1 travis_hubzilla < ./install/schema_postgres.sql
+psql $PROTO -U travis_hz -v ON_ERROR_STOP=1 travis_hubzilla < ./install/schema_postgres.sql
# Show databases and tables
-psql -U postgres -l
-psql -U postgres -d travis_hubzilla -c "\dt;"
+psql $PROTO -U postgres -l
+psql $PROTO -U postgres -d travis_hubzilla -c "\dt;"
diff --git a/tests/unit/Access/PermissionLimitsTest.php b/tests/unit/Access/PermissionLimitsTest.php
index 58595111a..57ad42a19 100644
--- a/tests/unit/Access/PermissionLimitsTest.php
+++ b/tests/unit/Access/PermissionLimitsTest.php
@@ -66,7 +66,7 @@ class PermissionLimitsTest extends UnitTestCase {
$this->assertEquals(PERMS_SPECIFIC, $stdlimits['write_pages']);
$this->assertEquals(PERMS_SPECIFIC, $stdlimits['write_wiki']);
$this->assertEquals(PERMS_SPECIFIC, $stdlimits['post_wall']);
- $this->assertEquals(PERMS_PUBLIC, $stdlimits['post_comments']);
+ $this->assertEquals(PERMS_SPECIFIC, $stdlimits['post_comments']);
$this->assertEquals(PERMS_SPECIFIC, $stdlimits['post_mail']);
$this->assertEquals(PERMS_SPECIFIC, $stdlimits['post_like']);
$this->assertEquals(PERMS_SPECIFIC, $stdlimits['tag_deliver']);
diff --git a/tests/unit/Access/PermissionRolesTest.php b/tests/unit/Access/PermissionRolesTest.php
index 5e64e773a..58fd88bb1 100644
--- a/tests/unit/Access/PermissionRolesTest.php
+++ b/tests/unit/Access/PermissionRolesTest.php
@@ -62,6 +62,7 @@ class PermissionRolesTest extends UnitTestCase {
$this->assertEquals($roles, $r->roles());
$socialNetworking = [
+ 'social_federation' => 'Social - Federation',
'social' => 'Social - Mostly Public',
'social_restricted' => 'Social - Restricted',
'social_private' => 'Social - Private'
@@ -97,4 +98,4 @@ class PermissionRolesTest extends UnitTestCase {
$this->assertEquals(['role' => 'nonexistent'], $rp_nonexistent);
}
-} \ No newline at end of file
+}
diff --git a/tests/unit/Web/HttpSigTest.php b/tests/unit/Web/HttpSigTest.php
new file mode 100644
index 000000000..18f2ce92b
--- /dev/null
+++ b/tests/unit/Web/HttpSigTest.php
@@ -0,0 +1,125 @@
+<?php
+/*
+ * Copyright (c) 2018 Hubzilla
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+namespace Zotlabs\Tests\Unit\Web;
+
+use phpmock\phpunit\PHPMock;
+use Zotlabs\Tests\Unit\UnitTestCase;
+
+use Zotlabs\Web\HTTPSig;
+
+/**
+ * @brief Unit Test case for HTTPSig class.
+ *
+ * @covers Zotlabs\Web\HTTPSig
+ */
+class PermissionDescriptionTest extends UnitTestCase {
+
+ use PHPMock;
+
+ /**
+ * @dataProvider generate_digestProvider
+ */
+ function testGenerate_digest($text, $digest) {
+ $this->assertSame(
+ $digest,
+ HTTPSig::generate_digest($text, false)
+ );
+ }
+ public function generate_digestProvider() {
+ return [
+ 'empty body text' => [
+ '',
+ '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='
+ ],
+ 'sample body text' => [
+ 'body text',
+ '2fu8kUkvuzuo5XyhWwORNOcJgDColXgxWkw1T5EXzPI='
+ ],
+ 'NULL body text' => [
+ null,
+ '47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='
+ ],
+ ];
+ }
+
+ function testGeneratedDigestsOfDifferentTextShouldNotBeEqual() {
+ $this->assertNotSame(
+ HTTPSig::generate_digest('text1', false),
+ HTTPSig::generate_digest('text2', false)
+ );
+ }
+
+ /**
+ * Process separation needed for header() check.
+ * @runInSeparateProcess
+ */
+ function testGenerate_digestSendsHttpHeader() {
+ $ret = HTTPSig::generate_digest('body text', true);
+
+ $this->assertSame('2fu8kUkvuzuo5XyhWwORNOcJgDColXgxWkw1T5EXzPI=', $ret);
+ $this->assertContains(
+ 'Digest: SHA-256=2fu8kUkvuzuo5XyhWwORNOcJgDColXgxWkw1T5EXzPI=',
+ xdebug_get_headers(),
+ 'HTTP header Digest does not match'
+ );
+ }
+
+ /**
+ * @uses ::crypto_unencapsulate
+ */
+ function testDecrypt_sigheader() {
+ $header = 'Header: iv="value_iv" key="value_key" alg="value_alg" data="value_data"';
+ $result = [
+ 'iv' => 'value_iv',
+ 'key' => 'value_key',
+ 'alg' => 'value_alg',
+ 'data' => 'value_data'
+ ];
+
+ $this->assertSame($result, HTTPSig::decrypt_sigheader($header, 'site private key'));
+ }
+ /**
+ * @uses ::crypto_unencapsulate
+ */
+ function testDecrypt_sigheaderUseSitePrivateKey() {
+ // Create a stub for global function get_config() with expectation
+ $t = $this->getFunctionMock('Zotlabs\Web', 'get_config');
+ $t->expects($this->once())->willReturn('system.prvkey');
+
+ $header = 'Header: iv="value_iv" key="value_key" alg="value_alg" data="value_data"';
+ $result = [
+ 'iv' => 'value_iv',
+ 'key' => 'value_key',
+ 'alg' => 'value_alg',
+ 'data' => 'value_data'
+ ];
+
+ $this->assertSame($result, HTTPSig::decrypt_sigheader($header));
+ }
+ function testDecrypt_sigheaderIncompleteHeaderShouldReturnEmptyString() {
+ $header = 'Header: iv="value_iv" key="value_key"';
+
+ $this->assertEmpty(HTTPSig::decrypt_sigheader($header, 'site private key'));
+ }
+}
diff --git a/util/dcp b/util/dcp
index 677882193..ecef67804 100755
--- a/util/dcp
+++ b/util/dcp
@@ -28,9 +28,14 @@ if($argc < 3) {
if(strpos($dstfile,'store/') === 0)
$dstfile = substr($dstfile,6);
- $nick = substr($dstfile,0,strpos($dstfile,'/'));
-
- $dstfile = substr($dstfile,strlen($nick)+1);
+ if(strpos($dstfile,'/'))
+ $nick = substr($dstfile,0,strpos($dstfile,'/'));
+ $dstfile = substr($dstfile,strlen($nick)+1);
+ }
+ else {
+ $nick = $dstfile;
+ $dstfile = '';
+ }
$channel = channelx_by_nick($nick);
if(! $channel)
@@ -43,38 +48,45 @@ if($argc < 3) {
}
}
-
+ $rootdir = ((strlen(trim($dstfile,'/'))) ? false : true);
+
$isadir = false;
if(($recursive) || ($argc > 3))
$isadir = true;
- $r = q("select * from attach where display_path = '%s' and uid = %d limit 1",
- dbesc($dstfile),
- intval($channel['channel_id'])
- );
-
- if($r && $r[0]['is_dir']) {
- $isadir = true;
- $basepath = $dstfile;
- $folder = $r[0]['hash'];
+ if($rootdir) {
+ $folder = '';
}
else {
- $pathname = (($isadir) ? $dstfile : dirname($dstfile));
- $arr = [
- 'pathname' => $pathname,
- 'allow_cid' => $channel['channel_allow_cid'],
- 'allow_gid' => $channel['channel_allow_gid'],
- 'deny_cid' => $channel['channel_deny_cid'],
- 'deny_gid' => $channel['channel_deny_gid'],
- ];
- $folder = '';
- if($pathname && $isadir) {
- $x = attach_mkdirp($channel,$channel['channel_hash'],$arr);
- if($x['success'])
- $folder = $x['data']['hash'];
+ $r = q("select * from attach where display_path = '%s' and uid = %d limit 1",
+ dbesc($dstfile),
+ intval($channel['channel_id'])
+ );
+
+ if($r && $r[0]['is_dir']) {
+ $isadir = true;
+ $basepath = $dstfile;
+ $folder = $r[0]['hash'];
+ }
+ else {
+ $pathname = (($isadir) ? $dstfile : dirname($dstfile));
+ $arr = [
+ 'pathname' => $pathname,
+ 'allow_cid' => $channel['channel_allow_cid'],
+ 'allow_gid' => $channel['channel_allow_gid'],
+ 'deny_cid' => $channel['channel_deny_cid'],
+ 'deny_gid' => $channel['channel_deny_gid'],
+ ];
+
+ $folder = '';
+ if($pathname && $isadir) {
+ $x = attach_mkdirp($channel,$channel['channel_hash'],$arr);
+ if($x['success'])
+ $folder = $x['data']['hash'];
+ }
}
}
diff --git a/util/hmessages.po b/util/hmessages.po
index b3f7ba431..adf2c2459 100644
--- a/util/hmessages.po
+++ b/util/hmessages.po
@@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: 3.3.1\n"
+"Project-Id-Version: 3.5\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-03-01 08:51+0100\n"
+"POT-Creation-Date: 2018-04-23 11:34+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -89,75 +89,79 @@ msgstr ""
msgid "Can administer my channel"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:265
+#: ../../Zotlabs/Access/PermissionRoles.php:283
msgid "Social Networking"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:266
+#: ../../Zotlabs/Access/PermissionRoles.php:284
+msgid "Social - Federation"
+msgstr ""
+
+#: ../../Zotlabs/Access/PermissionRoles.php:285
msgid "Social - Mostly Public"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:267
+#: ../../Zotlabs/Access/PermissionRoles.php:286
msgid "Social - Restricted"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:268
+#: ../../Zotlabs/Access/PermissionRoles.php:287
msgid "Social - Private"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:271
+#: ../../Zotlabs/Access/PermissionRoles.php:290
msgid "Community Forum"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:272
+#: ../../Zotlabs/Access/PermissionRoles.php:291
msgid "Forum - Mostly Public"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:273
+#: ../../Zotlabs/Access/PermissionRoles.php:292
msgid "Forum - Restricted"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:274
+#: ../../Zotlabs/Access/PermissionRoles.php:293
msgid "Forum - Private"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:277
+#: ../../Zotlabs/Access/PermissionRoles.php:296
msgid "Feed Republish"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:278
+#: ../../Zotlabs/Access/PermissionRoles.php:297
msgid "Feed - Mostly Public"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:279
+#: ../../Zotlabs/Access/PermissionRoles.php:298
msgid "Feed - Restricted"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:282
+#: ../../Zotlabs/Access/PermissionRoles.php:301
msgid "Special Purpose"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:283
+#: ../../Zotlabs/Access/PermissionRoles.php:302
msgid "Special - Celebrity/Soapbox"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:284
+#: ../../Zotlabs/Access/PermissionRoles.php:303
msgid "Special - Group Repository"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:287
-#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Settings/Channel.php:473
-#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:798
+#: ../../Zotlabs/Access/PermissionRoles.php:306
+#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:144
+#: ../../Zotlabs/Module/Settings/Channel.php:479
+#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:795
#: ../../Zotlabs/Module/Register.php:224 ../../include/selectors.php:49
#: ../../include/selectors.php:66 ../../include/selectors.php:104
#: ../../include/selectors.php:140 ../../include/event.php:1315
-#: ../../include/event.php:1322 ../../include/connections.php:689
-#: ../../include/connections.php:696
+#: ../../include/event.php:1322 ../../include/connections.php:697
+#: ../../include/connections.php:704
msgid "Other"
msgstr ""
-#: ../../Zotlabs/Access/PermissionRoles.php:288
+#: ../../Zotlabs/Access/PermissionRoles.php:307
msgid "Custom/Expert Mode"
msgstr ""
@@ -167,7 +171,7 @@ msgstr ""
#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20
#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Editwebpage.php:32
#: ../../Zotlabs/Module/Cards.php:33 ../../Zotlabs/Module/Webpages.php:33
-#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1198
+#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1197
msgid "Requested profile is not available."
msgstr ""
@@ -178,26 +182,27 @@ msgstr ""
#: ../../Zotlabs/Module/Channel.php:248 ../../Zotlabs/Module/Channel.php:288
#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Events.php:271
-#: ../../Zotlabs/Module/Appman.php:86 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:21
#: ../../Zotlabs/Module/Article_edit.php:51
-#: ../../Zotlabs/Module/New_channel.php:77
-#: ../../Zotlabs/Module/New_channel.php:102
+#: ../../Zotlabs/Module/New_channel.php:91
+#: ../../Zotlabs/Module/New_channel.php:116
#: ../../Zotlabs/Module/Sharedwithme.php:16 ../../Zotlabs/Module/Setup.php:209
#: ../../Zotlabs/Module/Moderate.php:13
-#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:275
-#: ../../Zotlabs/Module/Thing.php:295 ../../Zotlabs/Module/Thing.php:336
+#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:280
+#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Connections.php:29
#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:64
#: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:50
-#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:404
#: ../../Zotlabs/Module/Pdledit.php:29 ../../Zotlabs/Module/Poke.php:149
#: ../../Zotlabs/Module/Profile_photo.php:302
#: ../../Zotlabs/Module/Profile_photo.php:315
#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:229
#: ../../Zotlabs/Module/Item.php:246 ../../Zotlabs/Module/Item.php:256
-#: ../../Zotlabs/Module/Item.php:1099 ../../Zotlabs/Module/Page.php:34
+#: ../../Zotlabs/Module/Item.php:1106 ../../Zotlabs/Module/Page.php:34
#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:389
#: ../../Zotlabs/Module/Chat.php:100 ../../Zotlabs/Module/Chat.php:105
#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Layouts.php:71
@@ -216,7 +221,7 @@ msgstr ""
#: ../../Zotlabs/Module/Register.php:77
#: ../../Zotlabs/Module/Cover_photo.php:281
#: ../../Zotlabs/Module/Cover_photo.php:294
-#: ../../Zotlabs/Module/Display.php:406 ../../Zotlabs/Module/Network.php:15
+#: ../../Zotlabs/Module/Display.php:449 ../../Zotlabs/Module/Network.php:15
#: ../../Zotlabs/Module/Filestorage.php:15
#: ../../Zotlabs/Module/Filestorage.php:70
#: ../../Zotlabs/Module/Filestorage.php:85
@@ -227,15 +232,14 @@ msgstr ""
#: ../../Zotlabs/Module/Card_edit.php:51
#: ../../Zotlabs/Module/Notifications.php:11 ../../Zotlabs/Lib/Chatroom.php:133
#: ../../Zotlabs/Web/WebServer.php:123 ../../addon/keepout/keepout.php:36
-#: ../../addon/openid/Mod_Id.php:53 ../../addon/gitwiki/Mod_Gitwiki.php:196
-#: ../../addon/gitwiki/Mod_Gitwiki.php:292 ../../addon/pumpio/pumpio.php:40
+#: ../../addon/openid/Mod_Id.php:53 ../../addon/pumpio/pumpio.php:40
#: ../../include/attach.php:150 ../../include/attach.php:197
#: ../../include/attach.php:270 ../../include/attach.php:284
#: ../../include/attach.php:293 ../../include/attach.php:366
#: ../../include/attach.php:380 ../../include/attach.php:387
-#: ../../include/attach.php:469 ../../include/attach.php:1019
-#: ../../include/attach.php:1093 ../../include/attach.php:1258
-#: ../../include/items.php:3656 ../../include/photos.php:27
+#: ../../include/attach.php:469 ../../include/attach.php:1029
+#: ../../include/attach.php:1103 ../../include/attach.php:1268
+#: ../../include/items.php:3706 ../../include/photos.php:27
msgid "Permission denied."
msgstr ""
@@ -244,7 +248,7 @@ msgstr ""
msgid "Block Name"
msgstr ""
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2402
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2422
msgid "Blocks"
msgstr ""
@@ -263,9 +267,9 @@ msgid "Edited"
msgstr ""
#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:96
-#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:146
+#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:160
#: ../../Zotlabs/Module/Connedit.php:921 ../../Zotlabs/Module/Menu.php:118
-#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798
#: ../../Zotlabs/Module/Cards.php:100 ../../Zotlabs/Module/Webpages.php:239
#: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:382
#: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
@@ -274,43 +278,44 @@ msgstr ""
#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Editlayout.php:114
#: ../../Zotlabs/Module/Article_edit.php:99
-#: ../../Zotlabs/Module/Admin/Profs.php:154
-#: ../../Zotlabs/Module/Settings/Oauth.php:149
-#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Module/Editblock.php:114
-#: ../../Zotlabs/Module/Connections.php:265
-#: ../../Zotlabs/Module/Connections.php:303
-#: ../../Zotlabs/Module/Connections.php:323 ../../Zotlabs/Module/Wiki.php:202
-#: ../../Zotlabs/Module/Wiki.php:358 ../../Zotlabs/Module/Menu.php:112
+#: ../../Zotlabs/Module/Admin/Profs.php:175
+#: ../../Zotlabs/Module/Settings/Oauth2.php:149
+#: ../../Zotlabs/Module/Settings/Oauth.php:150
+#: ../../Zotlabs/Module/Thing.php:266 ../../Zotlabs/Module/Editblock.php:114
+#: ../../Zotlabs/Module/Connections.php:281
+#: ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Connections.php:339 ../../Zotlabs/Module/Wiki.php:202
+#: ../../Zotlabs/Module/Wiki.php:362 ../../Zotlabs/Module/Menu.php:112
#: ../../Zotlabs/Module/Layouts.php:193
#: ../../Zotlabs/Module/Editwebpage.php:142
-#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Editpost.php:85
-#: ../../Zotlabs/Module/Card_edit.php:99 ../../Zotlabs/Lib/Apps.php:409
-#: ../../Zotlabs/Lib/ThreadItem.php:121 ../../Zotlabs/Storage/Browser.php:288
-#: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162
-#: ../../addon/gitwiki/Mod_Gitwiki.php:151
-#: ../../addon/gitwiki/Mod_Gitwiki.php:252 ../../include/channel.php:1297
-#: ../../include/channel.php:1301 ../../include/menu.php:113
+#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Card_edit.php:99
+#: ../../Zotlabs/Lib/Apps.php:409 ../../Zotlabs/Lib/ThreadItem.php:121
+#: ../../Zotlabs/Storage/Browser.php:288 ../../Zotlabs/Widget/Cdav.php:126
+#: ../../Zotlabs/Widget/Cdav.php:162 ../../include/channel.php:1296
+#: ../../include/channel.php:1300 ../../include/menu.php:113
msgid "Edit"
msgstr ""
#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1102
-#: ../../Zotlabs/Module/Layouts.php:194 ../../Zotlabs/Module/Webpages.php:241
-#: ../../Zotlabs/Widget/Cdav.php:124 ../../include/conversation.php:1363
+#: ../../Zotlabs/Module/Wiki.php:287 ../../Zotlabs/Module/Layouts.php:194
+#: ../../Zotlabs/Module/Webpages.php:241 ../../Zotlabs/Widget/Cdav.php:124
+#: ../../include/conversation.php:1366
msgid "Share"
msgstr ""
#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editlayout.php:138
#: ../../Zotlabs/Module/Cdav.php:897 ../../Zotlabs/Module/Cdav.php:1187
#: ../../Zotlabs/Module/Article_edit.php:129
-#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Admin/Accounts.php:175
#: ../../Zotlabs/Module/Admin/Channels.php:149
-#: ../../Zotlabs/Module/Admin/Profs.php:155
-#: ../../Zotlabs/Module/Settings/Oauth.php:150
-#: ../../Zotlabs/Module/Thing.php:262 ../../Zotlabs/Module/Editblock.php:139
-#: ../../Zotlabs/Module/Connections.php:273
+#: ../../Zotlabs/Module/Admin/Profs.php:176
+#: ../../Zotlabs/Module/Settings/Oauth2.php:150
+#: ../../Zotlabs/Module/Settings/Oauth.php:151
+#: ../../Zotlabs/Module/Thing.php:267 ../../Zotlabs/Module/Editblock.php:139
+#: ../../Zotlabs/Module/Connections.php:289
#: ../../Zotlabs/Module/Photos.php:1203 ../../Zotlabs/Module/Connedit.php:654
#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Group.php:179
-#: ../../Zotlabs/Module/Profiles.php:803
+#: ../../Zotlabs/Module/Profiles.php:800
#: ../../Zotlabs/Module/Editwebpage.php:167
#: ../../Zotlabs/Module/Webpages.php:242 ../../Zotlabs/Module/Card_edit.php:129
#: ../../Zotlabs/Lib/Apps.php:410 ../../Zotlabs/Lib/ThreadItem.php:141
@@ -322,7 +327,6 @@ msgstr ""
#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Events.php:694
#: ../../Zotlabs/Module/Wiki.php:204 ../../Zotlabs/Module/Layouts.php:198
#: ../../Zotlabs/Module/Webpages.php:246 ../../Zotlabs/Module/Pubsites.php:60
-#: ../../addon/gitwiki/Mod_Gitwiki.php:153
msgid "View"
msgstr ""
@@ -398,29 +402,30 @@ msgstr ""
#: ../../Zotlabs/Module/Invite.php:151 ../../Zotlabs/Module/Locs.php:121
#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Events.php:493
-#: ../../Zotlabs/Module/Appman.php:152
+#: ../../Zotlabs/Module/Appman.php:153
#: ../../Zotlabs/Module/Import_items.php:129 ../../Zotlabs/Module/Setup.php:308
#: ../../Zotlabs/Module/Setup.php:349 ../../Zotlabs/Module/Connect.php:98
#: ../../Zotlabs/Module/Admin/Features.php:66
#: ../../Zotlabs/Module/Admin/Plugins.php:438
-#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:168
#: ../../Zotlabs/Module/Admin/Logs.php:84
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Themes.php:158
-#: ../../Zotlabs/Module/Admin/Site.php:289
-#: ../../Zotlabs/Module/Admin/Profs.php:157
+#: ../../Zotlabs/Module/Admin/Site.php:296
+#: ../../Zotlabs/Module/Admin/Profs.php:178
#: ../../Zotlabs/Module/Admin/Account_edit.php:74
#: ../../Zotlabs/Module/Admin/Security.php:104
-#: ../../Zotlabs/Module/Settings/Permcats.php:110
-#: ../../Zotlabs/Module/Settings/Channel.php:488
-#: ../../Zotlabs/Module/Settings/Features.php:47
+#: ../../Zotlabs/Module/Settings/Permcats.php:115
+#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Features.php:79
#: ../../Zotlabs/Module/Settings/Tokens.php:168
+#: ../../Zotlabs/Module/Settings/Oauth2.php:84
#: ../../Zotlabs/Module/Settings/Account.php:118
#: ../../Zotlabs/Module/Settings/Featured.php:54
#: ../../Zotlabs/Module/Settings/Display.php:192
-#: ../../Zotlabs/Module/Settings/Oauth.php:87
-#: ../../Zotlabs/Module/Thing.php:321 ../../Zotlabs/Module/Thing.php:374
-#: ../../Zotlabs/Module/Import.php:529 ../../Zotlabs/Module/Cal.php:345
+#: ../../Zotlabs/Module/Settings/Oauth.php:88
+#: ../../Zotlabs/Module/Thing.php:326 ../../Zotlabs/Module/Thing.php:379
+#: ../../Zotlabs/Module/Import.php:530 ../../Zotlabs/Module/Cal.php:345
#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Photos.php:1082
#: ../../Zotlabs/Module/Photos.php:1122 ../../Zotlabs/Module/Photos.php:1240
#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Module/Pdledit.php:98
@@ -428,16 +433,17 @@ msgstr ""
#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:242
#: ../../Zotlabs/Module/Email_validation.php:40
#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Defperms.php:249
-#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:726
-#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149
-#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Module/Mail.php:431
-#: ../../Zotlabs/Module/Filestorage.php:160 ../../Zotlabs/Module/Rate.php:166
-#: ../../Zotlabs/Lib/ThreadItem.php:750 ../../Zotlabs/Widget/Eventstools.php:16
+#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:723
+#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:114
+#: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Lib/ThreadItem.php:752
+#: ../../Zotlabs/Widget/Eventstools.php:16
#: ../../Zotlabs/Widget/Wiki_pages.php:40
#: ../../Zotlabs/Widget/Wiki_pages.php:97
#: ../../view/theme/redbasic_c/php/config.php:95
#: ../../view/theme/redbasic/php/config.php:93
-#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:275
#: ../../addon/planets/planets.php:153
#: ../../addon/openclipatar/openclipatar.php:53
#: ../../addon/wppost/wppost.php:113 ../../addon/nsfw/nsfw.php:92
@@ -445,16 +451,16 @@ msgstr ""
#: ../../addon/likebanner/likebanner.php:57
#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53
#: ../../addon/ljpost/ljpost.php:86 ../../addon/startpage/startpage.php:113
-#: ../../addon/diaspora/diaspora.php:822
-#: ../../addon/gitwiki/Mod_Gitwiki.php:155
+#: ../../addon/diaspora/diaspora.php:825
#: ../../addon/rainbowtag/rainbowtag.php:85 ../../addon/hzfiles/hzfiles.php:84
#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161
#: ../../addon/mailtest/mailtest.php:100
#: ../../addon/openstreetmap/openstreetmap.php:168
-#: ../../addon/rtof/rtof.php:101 ../../addon/jappixmini/jappixmini.php:371
+#: ../../addon/fuzzloc/fuzzloc.php:191 ../../addon/rtof/rtof.php:101
+#: ../../addon/jappixmini/jappixmini.php:371
#: ../../addon/superblock/superblock.php:120 ../../addon/nofed/nofed.php:80
#: ../../addon/redred/redred.php:119 ../../addon/logrot/logrot.php:35
-#: ../../addon/frphotos/frphotos.php:96 ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/frphotos/frphotos.php:97 ../../addon/pubcrawl/pubcrawl.php:1072
#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85
#: ../../addon/flattrwidget/flattrwidget.php:124
#: ../../addon/statusnet/statusnet.php:322
@@ -462,16 +468,16 @@ msgstr ""
#: ../../addon/statusnet/statusnet.php:432
#: ../../addon/statusnet/statusnet.php:900 ../../addon/twitter/twitter.php:218
#: ../../addon/twitter/twitter.php:265
-#: ../../addon/smileybutton/smileybutton.php:219 ../../addon/piwik/piwik.php:95
-#: ../../addon/pageheader/pageheader.php:48
+#: ../../addon/smileybutton/smileybutton.php:219 ../../addon/cart/cart.php:1104
+#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/pageheader.php:48
#: ../../addon/authchoose/authchoose.php:71 ../../addon/xmpp/xmpp.php:69
#: ../../addon/pumpio/pumpio.php:237 ../../addon/redfiles/redfiles.php:124
#: ../../addon/hubwall/hubwall.php:95 ../../include/js_strings.php:22
msgid "Submit"
msgstr ""
-#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:179
-#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:124
+#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:191
+#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:133
#: ../../include/nav.php:469
msgid "Articles"
msgstr ""
@@ -503,11 +509,11 @@ msgid "Edit Layout"
msgstr ""
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86
-#: ../../Zotlabs/Module/Import_items.php:120 ../../Zotlabs/Module/Cloud.php:111
+#: ../../Zotlabs/Module/Import_items.php:120 ../../Zotlabs/Module/Cloud.php:117
#: ../../Zotlabs/Module/Group.php:74 ../../Zotlabs/Module/Dreport.php:10
#: ../../Zotlabs/Module/Dreport.php:68 ../../Zotlabs/Module/Like.php:296
#: ../../Zotlabs/Web/WebServer.php:122 ../../addon/redphotos/redphotos.php:119
-#: ../../addon/hzfiles/hzfiles.php:73 ../../addon/frphotos/frphotos.php:81
+#: ../../addon/hzfiles/hzfiles.php:73 ../../addon/frphotos/frphotos.php:82
#: ../../addon/redfiles/redfiles.php:109 ../../include/items.php:358
msgid "Permission denied"
msgstr ""
@@ -520,7 +526,7 @@ msgstr ""
msgid "Profile Visibility Editor"
msgstr ""
-#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1634
+#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1644
msgid "Profile"
msgstr ""
@@ -533,7 +539,7 @@ msgid "Visible To"
msgstr ""
#: ../../Zotlabs/Module/Profperm.php:140
-#: ../../Zotlabs/Module/Connections.php:140
+#: ../../Zotlabs/Module/Connections.php:200
msgid "All Connections"
msgstr ""
@@ -548,9 +554,9 @@ msgstr ""
#: ../../Zotlabs/Module/Cdav.php:786 ../../Zotlabs/Module/Cdav.php:787
#: ../../Zotlabs/Module/Cdav.php:794 ../../Zotlabs/Module/Embedphotos.php:146
#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1273
-#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:832
+#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:833
#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Widget/Portfolio.php:95
-#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:853
+#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:891
#: ../../include/conversation.php:1160
msgid "Unknown"
msgstr ""
@@ -588,14 +594,14 @@ msgid "End date and time"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:871 ../../Zotlabs/Module/Events.php:473
-#: ../../Zotlabs/Module/Appman.php:142 ../../Zotlabs/Module/Rbmark.php:101
+#: ../../Zotlabs/Module/Appman.php:143 ../../Zotlabs/Module/Rbmark.php:101
#: ../../addon/rendezvous/rendezvous.php:173
msgid "Description"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:872 ../../Zotlabs/Module/Locs.php:117
#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Profiles.php:509
-#: ../../Zotlabs/Module/Profiles.php:737 ../../Zotlabs/Module/Pubsites.php:52
+#: ../../Zotlabs/Module/Profiles.php:734 ../../Zotlabs/Module/Pubsites.php:52
#: ../../include/js_strings.php:25
msgid "Location"
msgstr ""
@@ -660,17 +666,17 @@ msgstr ""
#: ../../Zotlabs/Module/Cdav.php:899 ../../Zotlabs/Module/Cdav.php:1188
#: ../../Zotlabs/Module/Admin/Plugins.php:423
-#: ../../Zotlabs/Module/Settings/Oauth.php:88
-#: ../../Zotlabs/Module/Settings/Oauth.php:114
-#: ../../Zotlabs/Module/Wiki.php:345 ../../Zotlabs/Module/Wiki.php:375
+#: ../../Zotlabs/Module/Settings/Oauth2.php:85
+#: ../../Zotlabs/Module/Settings/Oauth2.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:89
+#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Wiki.php:347 ../../Zotlabs/Module/Wiki.php:379
#: ../../Zotlabs/Module/Profile_photo.php:464
#: ../../Zotlabs/Module/Connedit.php:924 ../../Zotlabs/Module/Fbrowser.php:66
-#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:804
-#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:365
+#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:366
#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138
-#: ../../addon/gitwiki/Mod_Gitwiki.php:244
-#: ../../addon/gitwiki/Mod_Gitwiki.php:267 ../../include/conversation.php:1386
-#: ../../include/conversation.php:1435
+#: ../../include/conversation.php:1389 ../../include/conversation.php:1438
msgid "Cancel"
msgstr ""
@@ -680,14 +686,15 @@ msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1170 ../../Zotlabs/Module/Sharedwithme.php:105
#: ../../Zotlabs/Module/Admin/Channels.php:159
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+#: ../../Zotlabs/Module/Settings/Oauth.php:116
#: ../../Zotlabs/Module/Wiki.php:209 ../../Zotlabs/Module/Connedit.php:906
#: ../../Zotlabs/Module/Chat.php:251 ../../Zotlabs/Lib/NativeWikiPage.php:558
#: ../../Zotlabs/Storage/Browser.php:283
#: ../../Zotlabs/Widget/Wiki_page_history.php:22
#: ../../addon/rendezvous/rendezvous.php:172
-#: ../../addon/gitwiki/Mod_Gitwiki.php:158
msgid "Name"
msgstr ""
@@ -700,76 +707,78 @@ msgid "Title"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1173 ../../Zotlabs/Module/Connedit.php:909
-#: ../../Zotlabs/Module/Profiles.php:789
+#: ../../Zotlabs/Module/Profiles.php:786
msgid "Phone"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1174
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
-#: ../../Zotlabs/Module/Admin/Accounts.php:182
-#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:790
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:183
+#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:787
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93
-#: ../../addon/redred/redred.php:107 ../../include/network.php:1775
+#: ../../addon/redred/redred.php:107 ../../include/network.php:1770
msgid "Email"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1175 ../../Zotlabs/Module/Connedit.php:911
-#: ../../Zotlabs/Module/Profiles.php:791
+#: ../../Zotlabs/Module/Profiles.php:788
msgid "Instant messenger"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1176 ../../Zotlabs/Module/Connedit.php:912
-#: ../../Zotlabs/Module/Profiles.php:792
+#: ../../Zotlabs/Module/Profiles.php:789
msgid "Website"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1177 ../../Zotlabs/Module/Locs.php:118
#: ../../Zotlabs/Module/Admin/Channels.php:160
#: ../../Zotlabs/Module/Connedit.php:913 ../../Zotlabs/Module/Profiles.php:502
-#: ../../Zotlabs/Module/Profiles.php:793
+#: ../../Zotlabs/Module/Profiles.php:790
msgid "Address"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1178 ../../Zotlabs/Module/Connedit.php:914
-#: ../../Zotlabs/Module/Profiles.php:794
+#: ../../Zotlabs/Module/Profiles.php:791
msgid "Note"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1179 ../../Zotlabs/Module/Connedit.php:915
-#: ../../Zotlabs/Module/Profiles.php:795 ../../include/event.php:1308
-#: ../../include/connections.php:682
+#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1308
+#: ../../include/connections.php:690
msgid "Mobile"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1180 ../../Zotlabs/Module/Connedit.php:916
-#: ../../Zotlabs/Module/Profiles.php:796 ../../include/event.php:1309
-#: ../../include/connections.php:683
+#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1309
+#: ../../include/connections.php:691
msgid "Home"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1181 ../../Zotlabs/Module/Connedit.php:917
-#: ../../Zotlabs/Module/Profiles.php:797 ../../include/event.php:1312
-#: ../../include/connections.php:686
+#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1312
+#: ../../include/connections.php:694
msgid "Work"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1183 ../../Zotlabs/Module/Connedit.php:919
-#: ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Profiles.php:796
#: ../../addon/jappixmini/jappixmini.php:368
msgid "Add Contact"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1184 ../../Zotlabs/Module/Connedit.php:920
-#: ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Profiles.php:797
msgid "Add Field"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1186
#: ../../Zotlabs/Module/Admin/Plugins.php:453
-#: ../../Zotlabs/Module/Settings/Oauth.php:42
-#: ../../Zotlabs/Module/Settings/Oauth.php:113
-#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:802
+#: ../../Zotlabs/Module/Settings/Oauth2.php:39
+#: ../../Zotlabs/Module/Settings/Oauth2.php:112
+#: ../../Zotlabs/Module/Settings/Oauth.php:43
+#: ../../Zotlabs/Module/Settings/Oauth.php:114
+#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:799
#: ../../Zotlabs/Lib/Apps.php:393
msgid "Update"
msgstr ""
@@ -799,7 +808,7 @@ msgid "ZIP Code"
msgstr ""
#: ../../Zotlabs/Module/Cdav.php:1195 ../../Zotlabs/Module/Connedit.php:931
-#: ../../Zotlabs/Module/Profiles.php:760
+#: ../../Zotlabs/Module/Profiles.php:757
msgid "Country"
msgstr ""
@@ -815,8 +824,8 @@ msgstr ""
msgid "This site is not a directory server"
msgstr ""
-#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Chat.php:25
-#: ../../addon/gitwiki/Mod_Gitwiki.php:28 ../../addon/chess/chess.php:508
+#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Chat.php:25 ../../addon/chess/chess.php:508
msgid "You must be logged in to see this page."
msgstr ""
@@ -907,24 +916,24 @@ msgstr ""
msgid "Public access denied."
msgstr ""
-#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:335
#: ../../Zotlabs/Lib/Apps.php:256 ../../Zotlabs/Widget/Sitesearch.php:31
#: ../../include/text.php:1051 ../../include/text.php:1063
#: ../../include/acl_selectors.php:118 ../../include/nav.php:179
msgid "Search"
msgstr ""
-#: ../../Zotlabs/Module/Search.php:226
+#: ../../Zotlabs/Module/Search.php:230
#, php-format
msgid "Items tagged with: %s"
msgstr ""
-#: ../../Zotlabs/Module/Search.php:228
+#: ../../Zotlabs/Module/Search.php:232
#, php-format
msgid "Search results for: %s"
msgstr ""
-#: ../../Zotlabs/Module/Pubstream.php:93
+#: ../../Zotlabs/Module/Pubstream.php:95
#: ../../Zotlabs/Widget/Notifications.php:131
msgid "Public Stream"
msgstr ""
@@ -1025,7 +1034,7 @@ msgid "Menu Item Permissions"
msgstr ""
#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231
-#: ../../Zotlabs/Module/Settings/Channel.php:521
+#: ../../Zotlabs/Module/Settings/Channel.php:528
msgid "(click to open/close)"
msgstr ""
@@ -1048,8 +1057,8 @@ msgstr ""
#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:163
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
-#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Admin/Site.php:252
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:99 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1058,7 +1067,7 @@ msgstr ""
#: ../../Zotlabs/Module/Defperms.php:180 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1067,9 +1076,9 @@ msgstr ""
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/fuzzloc/fuzzloc.php:178 ../../addon/rtof/rtof.php:81
#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
@@ -1086,7 +1095,8 @@ msgstr ""
#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:243
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
-#: ../../addon/smileybutton/smileybutton.php:215
+#: ../../addon/smileybutton/smileybutton.php:215 ../../addon/cart/cart.php:1075
+#: ../../addon/cart/cart.php:1082 ../../addon/cart/cart.php:1090
#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
@@ -1098,8 +1108,8 @@ msgstr ""
#: ../../Zotlabs/Module/Mitem.php:162 ../../Zotlabs/Module/Mitem.php:163
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
-#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Admin/Site.php:254
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:98 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1108,7 +1118,7 @@ msgstr ""
#: ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1117,9 +1127,9 @@ msgstr ""
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/fuzzloc/fuzzloc.php:178 ../../addon/rtof/rtof.php:81
#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
@@ -1136,7 +1146,8 @@ msgstr ""
#: ../../addon/statusnet/statusnet.php:424 ../../addon/twitter/twitter.php:243
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
-#: ../../addon/smileybutton/smileybutton.php:215
+#: ../../addon/smileybutton/smileybutton.php:215 ../../addon/cart/cart.php:1075
+#: ../../addon/cart/cart.php:1082 ../../addon/cart/cart.php:1090
#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
@@ -1251,8 +1262,8 @@ msgid "Event not found."
msgstr ""
#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73
-#: ../../Zotlabs/Module/Like.php:385 ../../include/conversation.php:119
-#: ../../include/text.php:2007 ../../include/event.php:1153
+#: ../../Zotlabs/Module/Like.php:386 ../../include/conversation.php:119
+#: ../../include/text.php:2008 ../../include/event.php:1153
msgid "event"
msgstr ""
@@ -1261,9 +1272,9 @@ msgid "Edit event title"
msgstr ""
#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:465
-#: ../../Zotlabs/Module/Appman.php:140 ../../Zotlabs/Module/Appman.php:141
-#: ../../Zotlabs/Module/Profiles.php:748 ../../Zotlabs/Module/Profiles.php:752
-#: ../../include/datetime.php:205
+#: ../../Zotlabs/Module/Appman.php:141 ../../Zotlabs/Module/Appman.php:142
+#: ../../Zotlabs/Module/Profiles.php:745 ../../Zotlabs/Module/Profiles.php:749
+#: ../../include/datetime.php:211
msgid "Required"
msgstr ""
@@ -1314,12 +1325,12 @@ msgid "Edit Location"
msgstr ""
#: ../../Zotlabs/Module/Events.php:478 ../../Zotlabs/Module/Photos.php:1123
-#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:760
-#: ../../include/conversation.php:1330
+#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:762
+#: ../../include/conversation.php:1333
msgid "Preview"
msgstr ""
-#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1402
+#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1405
msgid "Permission settings"
msgstr ""
@@ -1344,7 +1355,7 @@ msgid "Delete event"
msgstr ""
#: ../../Zotlabs/Module/Events.php:660 ../../Zotlabs/Module/Cal.php:315
-#: ../../include/text.php:1826
+#: ../../include/text.php:1827
msgid "Link to Source"
msgstr ""
@@ -1361,7 +1372,7 @@ msgid "Create Event"
msgstr ""
#: ../../Zotlabs/Module/Events.php:691 ../../Zotlabs/Module/Cal.php:341
-#: ../../include/channel.php:1637
+#: ../../include/channel.php:1647
msgid "Export"
msgstr ""
@@ -1373,55 +1384,55 @@ msgstr ""
msgid "Failed to remove event"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:38 ../../Zotlabs/Module/Appman.php:55
+#: ../../Zotlabs/Module/Appman.php:39 ../../Zotlabs/Module/Appman.php:56
msgid "App installed."
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:48
+#: ../../Zotlabs/Module/Appman.php:49
msgid "Malformed app."
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:129
+#: ../../Zotlabs/Module/Appman.php:130
msgid "Embed code"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Edit App"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Create App"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:140
+#: ../../Zotlabs/Module/Appman.php:141
msgid "Name of app"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:141
+#: ../../Zotlabs/Module/Appman.php:142
msgid "Location (URL) of app"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "Photo icon URL"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "80 x 80 pixels - optional"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:144
+#: ../../Zotlabs/Module/Appman.php:145
msgid "Categories (optional, comma separated list)"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:145
+#: ../../Zotlabs/Module/Appman.php:146
msgid "Version ID"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:146
+#: ../../Zotlabs/Module/Appman.php:147
msgid "Price of app"
msgstr ""
-#: ../../Zotlabs/Module/Appman.php:147
+#: ../../Zotlabs/Module/Appman.php:148
msgid "Location (URL) to purchase app"
msgstr ""
@@ -1434,16 +1445,16 @@ msgid "Hub not found."
msgstr ""
#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69
-#: ../../Zotlabs/Module/Like.php:383
+#: ../../Zotlabs/Module/Like.php:384
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:116 ../../include/text.php:2004
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1405
+#: ../../include/conversation.php:116 ../../include/text.php:2005
msgid "photo"
msgstr ""
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:383
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:144 ../../include/text.php:2010
+#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1405
+#: ../../include/conversation.php:144 ../../include/text.php:2011
msgid "status"
msgstr ""
@@ -1473,8 +1484,9 @@ msgid "Insert web link"
msgstr ""
#: ../../Zotlabs/Module/Article_edit.php:117
-#: ../../Zotlabs/Module/Editblock.php:129
-#: ../../Zotlabs/Module/Card_edit.php:117 ../../include/conversation.php:1398
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:698
+#: ../../Zotlabs/Module/Photos.php:1068 ../../Zotlabs/Module/Card_edit.php:117
+#: ../../include/conversation.php:1401
msgid "Title (optional)"
msgstr ""
@@ -1495,7 +1507,7 @@ msgstr ""
msgid "Imported file is empty."
msgstr ""
-#: ../../Zotlabs/Module/Import_items.php:93 ../../Zotlabs/Module/Import.php:121
+#: ../../Zotlabs/Module/Import_items.php:93
#, php-format
msgid "Warning: Database versions differ by %1$d updates."
msgstr ""
@@ -1513,33 +1525,33 @@ msgid "Use this form to import existing posts and content from an export file."
msgstr ""
#: ../../Zotlabs/Module/Import_items.php:127
-#: ../../Zotlabs/Module/Import.php:516
+#: ../../Zotlabs/Module/Import.php:517
msgid "File to Upload"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:119 ../../Zotlabs/Module/Manage.php:138
+#: ../../Zotlabs/Module/New_channel.php:133 ../../Zotlabs/Module/Manage.php:138
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Name or caption"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid ""
"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation "
"Group\""
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
msgid "Choose a short nickname"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
#, php-format
msgid ""
@@ -1547,38 +1559,47 @@ msgid ""
"g. nickname%s"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
+#: ../../Zotlabs/Module/Settings/Channel.php:539
#: ../../Zotlabs/Module/Register.php:257
msgid "Channel role and privacy"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Select a channel role with your privacy requirements."
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Read more about roles"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:138
+#: ../../Zotlabs/Module/New_channel.php:152
msgid "Create Channel"
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:139
+#: ../../Zotlabs/Module/New_channel.php:153
+msgid ""
+"A channel is a unique network identity. It can represent a person (social "
+"network profile), a forum (group), a business or celebrity page, a newsfeed, "
+"and many other things. Channels can make connections with other channels to "
+"share information with each other."
+msgstr ""
+
+#: ../../Zotlabs/Module/New_channel.php:153
msgid ""
-"A channel is your identity on this network. It can represent a person, a "
-"blog, or a forum to name a few. Channels can make connections with other "
-"channels to share information with highly detailed permissions."
+"The type of channel you create affects the basic privacy settings, the "
+"permissions that are granted to connections/friends, and also the channel's "
+"visibility across the network."
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:140
+#: ../../Zotlabs/Module/New_channel.php:154
msgid ""
"or <a href=\"import\">import an existing channel</a> from another location."
msgstr ""
-#: ../../Zotlabs/Module/New_channel.php:145
+#: ../../Zotlabs/Module/New_channel.php:159
msgid "Validate"
msgstr ""
@@ -1624,7 +1645,7 @@ msgid ""
msgstr ""
#: ../../Zotlabs/Module/Removeme.php:64
-#: ../../Zotlabs/Module/Settings/Channel.php:592
+#: ../../Zotlabs/Module/Settings/Channel.php:600
msgid "Remove Channel"
msgstr ""
@@ -1683,7 +1704,7 @@ msgid ""
msgstr ""
#: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262
-#: ../../Zotlabs/Module/Setup.php:745
+#: ../../Zotlabs/Module/Setup.php:749
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr ""
@@ -1944,114 +1965,106 @@ msgstr ""
msgid "Error: zip PHP module required but not installed."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:569
+#: ../../Zotlabs/Module/Setup.php:570 ../../Zotlabs/Module/Setup.php:579
+msgid ".htconfig.php is writable"
+msgstr ""
+
+#: ../../Zotlabs/Module/Setup.php:575
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\" "
"in the top folder of your web server and it is unable to do so."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:570
+#: ../../Zotlabs/Module/Setup.php:576
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:571
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
-msgstr ""
-
-#: ../../Zotlabs/Module/Setup.php:572
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation. "
-"Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr ""
-
-#: ../../Zotlabs/Module/Setup.php:575
-msgid ".htconfig.php is writable"
+#: ../../Zotlabs/Module/Setup.php:577
+msgid "Please see install/INSTALL.txt for additional information."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:589
+#: ../../Zotlabs/Module/Setup.php:593
msgid ""
"This software uses the Smarty3 template engine to render its web views. "
"Smarty3 compiles templates to PHP to speed up rendering."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:590
+#: ../../Zotlabs/Module/Setup.php:594
#, php-format
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory %s under the top level web folder."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:591 ../../Zotlabs/Module/Setup.php:612
+#: ../../Zotlabs/Module/Setup.php:595 ../../Zotlabs/Module/Setup.php:616
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has "
"write access to this folder."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:592
+#: ../../Zotlabs/Module/Setup.php:596
#, php-format
msgid ""
"Note: as a security measure, you should give the web server write access to "
"%s only--not the template files (.tpl) that it contains."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:595
+#: ../../Zotlabs/Module/Setup.php:599
#, php-format
msgid "%s is writable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:611
+#: ../../Zotlabs/Module/Setup.php:615
msgid ""
"This software uses the store directory to save uploaded files. The web "
"server needs to have write access to the store directory under the top level "
"web folder"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:615
+#: ../../Zotlabs/Module/Setup.php:619
msgid "store is writable"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:647
+#: ../../Zotlabs/Module/Setup.php:651
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access "
"to this site."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:648
+#: ../../Zotlabs/Module/Setup.php:652
msgid ""
"If you have https access to your website or allow connections to TCP port "
"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
"NOT use self-signed certificates!"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:649
+#: ../../Zotlabs/Module/Setup.php:653
msgid ""
"This restriction is incorporated because public posts from you may for "
"example contain references to images on your own hub."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:650
+#: ../../Zotlabs/Module/Setup.php:654
msgid ""
"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:651
+#: ../../Zotlabs/Module/Setup.php:655
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:652
+#: ../../Zotlabs/Module/Setup.php:656
msgid ""
"Providers are available that issue free certificates which are browser-valid."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:654
+#: ../../Zotlabs/Module/Setup.php:658
msgid ""
"If you are confident that the certificate is valid and signed by a trusted "
"authority, check to see if you have failed to install an intermediate cert. "
@@ -2059,36 +2072,36 @@ msgid ""
"server communications."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:656
+#: ../../Zotlabs/Module/Setup.php:660
msgid "SSL certificate validation"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:662
+#: ../../Zotlabs/Module/Setup.php:666
msgid ""
"Url rewrite in .htaccess is not working. Check your server configuration."
"Test: "
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:665
+#: ../../Zotlabs/Module/Setup.php:669
msgid "Url rewrite is working"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:679
+#: ../../Zotlabs/Module/Setup.php:683
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:703 ../../addon/rendezvous/rendezvous.php:401
+#: ../../Zotlabs/Module/Setup.php:707 ../../addon/rendezvous/rendezvous.php:401
msgid "Errors encountered creating database tables."
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:743
+#: ../../Zotlabs/Module/Setup.php:747
msgid "<h1>What next?</h1>"
msgstr ""
-#: ../../Zotlabs/Module/Setup.php:744
+#: ../../Zotlabs/Module/Setup.php:748
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the poller."
msgstr ""
@@ -2166,13 +2179,13 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "Off"
msgstr ""
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "On"
msgstr ""
@@ -2226,10 +2239,10 @@ msgid "No failed updates."
msgstr ""
#: ../../Zotlabs/Module/Admin/Plugins.php:259
-#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:89
+#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:94
#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:46
-#: ../../Zotlabs/Module/Display.php:410 ../../Zotlabs/Module/Filestorage.php:24
-#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3569
+#: ../../Zotlabs/Module/Display.php:453 ../../Zotlabs/Module/Filestorage.php:24
+#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3619
msgid "Item not found."
msgstr ""
@@ -2255,12 +2268,12 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Plugins.php:341
#: ../../Zotlabs/Module/Admin/Plugins.php:436
-#: ../../Zotlabs/Module/Admin/Accounts.php:165
+#: ../../Zotlabs/Module/Admin/Accounts.php:166
#: ../../Zotlabs/Module/Admin/Logs.php:82
#: ../../Zotlabs/Module/Admin/Channels.php:145
#: ../../Zotlabs/Module/Admin/Themes.php:122
#: ../../Zotlabs/Module/Admin/Themes.php:156
-#: ../../Zotlabs/Module/Admin/Site.php:287
+#: ../../Zotlabs/Module/Admin/Site.php:294
#: ../../Zotlabs/Module/Admin/Security.php:86
#: ../../Zotlabs/Module/Admin.php:136
msgid "Administration"
@@ -2278,8 +2291,8 @@ msgstr ""
#: ../../Zotlabs/Module/Admin/Plugins.php:344
#: ../../Zotlabs/Module/Admin/Themes.php:125 ../../Zotlabs/Lib/Apps.php:242
-#: ../../Zotlabs/Widget/Newmember.php:55
-#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/nav.php:105
+#: ../../Zotlabs/Widget/Newmember.php:46
+#: ../../Zotlabs/Widget/Settings_menu.php:141 ../../include/nav.php:105
#: ../../include/nav.php:192
msgid "Settings"
msgstr ""
@@ -2387,7 +2400,7 @@ msgstr[1] ""
msgid "Account not found"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2462
+#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2473
#, php-format
msgid "Account '%s' deleted"
msgstr ""
@@ -2402,79 +2415,80 @@ msgstr ""
msgid "Account '%s' unblocked"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:166
-#: ../../Zotlabs/Module/Admin/Accounts.php:179
+#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:180
#: ../../Zotlabs/Module/Admin.php:96 ../../Zotlabs/Widget/Admin.php:23
msgid "Accounts"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:168
+#: ../../Zotlabs/Module/Admin/Accounts.php:169
#: ../../Zotlabs/Module/Admin/Channels.php:148
msgid "select all"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:169
+#: ../../Zotlabs/Module/Admin/Accounts.php:170
msgid "Registrations waiting for confirm"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
msgid "Request date"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:172
msgid "No registrations."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:172
-#: ../../Zotlabs/Module/Connections.php:287 ../../include/conversation.php:732
+#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Connections.php:303 ../../include/conversation.php:732
msgid "Approve"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Authorize.php:26
msgid "Deny"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:175
+#: ../../Zotlabs/Module/Admin/Accounts.php:176
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Block"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:176
+#: ../../Zotlabs/Module/Admin/Accounts.php:177
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Unblock"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:181
+#: ../../Zotlabs/Module/Admin/Accounts.php:182
msgid "ID"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:183 ../../include/group.php:284
+#: ../../Zotlabs/Module/Admin/Accounts.php:184 ../../include/group.php:284
msgid "All Channels"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:184
+#: ../../Zotlabs/Module/Admin/Accounts.php:185
msgid "Register date"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:185
+#: ../../Zotlabs/Module/Admin/Accounts.php:186
msgid "Last login"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:186
+#: ../../Zotlabs/Module/Admin/Accounts.php:187
msgid "Expires"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:187
+#: ../../Zotlabs/Module/Admin/Accounts.php:188
msgid "Service Class"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:189
+#: ../../Zotlabs/Module/Admin/Accounts.php:190
msgid ""
"Selected accounts will be deleted!\\n\\nEverything these accounts had posted "
"on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Accounts.php:190
+#: ../../Zotlabs/Module/Admin/Accounts.php:191
msgid ""
"The account {0} will be deleted!\\n\\nEverything this account has posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
@@ -2583,7 +2597,7 @@ msgid "Disallow Code"
msgstr ""
#: ../../Zotlabs/Module/Admin/Channels.php:154
-#: ../../include/conversation.php:1808 ../../include/nav.php:378
+#: ../../include/conversation.php:1811 ../../include/nav.php:378
msgid "Channel"
msgstr ""
@@ -2628,549 +2642,546 @@ msgstr ""
msgid "[Unsupported]"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:158
+#: ../../Zotlabs/Module/Admin/Site.php:165
msgid "Site settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:184
+#: ../../Zotlabs/Module/Admin/Site.php:191
#: ../../view/theme/redbasic_c/php/config.php:15
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3082
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3106
msgid "Default"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:195
+#: ../../Zotlabs/Module/Admin/Site.php:202
#: ../../Zotlabs/Module/Settings/Display.php:130
#, php-format
msgid "%s - (Incompatible)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:202
+#: ../../Zotlabs/Module/Admin/Site.php:209
msgid "mobile"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:204
+#: ../../Zotlabs/Module/Admin/Site.php:211
msgid "experimental"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:206
+#: ../../Zotlabs/Module/Admin/Site.php:213
msgid "unsupported"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:253
+#: ../../Zotlabs/Module/Admin/Site.php:260
msgid "Yes - with approval"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Admin/Site.php:266
msgid "My site is not a public server"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:260
+#: ../../Zotlabs/Module/Admin/Site.php:267
msgid "My site has paid access only"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Admin/Site.php:268
msgid "My site has free access only"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:262
+#: ../../Zotlabs/Module/Admin/Site.php:269
msgid "My site offers free accounts with optional paid upgrades"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:274
+#: ../../Zotlabs/Module/Admin/Site.php:281
msgid "Beginner/Basic"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:275
+#: ../../Zotlabs/Module/Admin/Site.php:282
msgid "Novice - not skilled but willing to learn"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:276
+#: ../../Zotlabs/Module/Admin/Site.php:283
msgid "Intermediate - somewhat comfortable"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:284
msgid "Advanced - very comfortable"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:278
+#: ../../Zotlabs/Module/Admin/Site.php:285
msgid "Expert - I can write computer code"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:279
+#: ../../Zotlabs/Module/Admin/Site.php:286
msgid "Wizard - I probably know more than you do"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:288 ../../Zotlabs/Widget/Admin.php:22
+#: ../../Zotlabs/Module/Admin/Site.php:295 ../../Zotlabs/Widget/Admin.php:22
msgid "Site"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:290
+#: ../../Zotlabs/Module/Admin/Site.php:297
#: ../../Zotlabs/Module/Register.php:269
msgid "Registration"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:291
+#: ../../Zotlabs/Module/Admin/Site.php:298
msgid "File upload"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:292
+#: ../../Zotlabs/Module/Admin/Site.php:299
msgid "Policies"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:293 ../../include/contact_widgets.php:16
+#: ../../Zotlabs/Module/Admin/Site.php:300 ../../include/contact_widgets.php:16
msgid "Advanced"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:304
#: ../../addon/statusnet/statusnet.php:891
msgid "Site name"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Site default technical skill level"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Used to provide a member experience matched to technical comfort level"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Lock the technical skill level setting"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Members can set their own technical comfort level by default"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Banner/Logo"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Unfiltered HTML/CSS/JS is allowed"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid "Administrator Information"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:305 ../../Zotlabs/Module/Siteinfo.php:21
+#: ../../Zotlabs/Module/Admin/Site.php:312 ../../Zotlabs/Module/Siteinfo.php:21
msgid "Site Information"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
msgid ""
"Publicly visible description of this site. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:306
+#: ../../Zotlabs/Module/Admin/Site.php:313
msgid "System language"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid "System theme"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Mobile system theme"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Theme for mobile devices"
-msgstr ""
-
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "Allow Feeds as Connections"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "(Heavy system resource usage)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid "Maximum image size"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid "Does this site allow new member registration?"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid "Invitation only"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age (in years) for who may register on this site."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid "Which best describes the types of account offered by this hub?"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Register text"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Will be displayed prominently on the registration page."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid "Site homepage to show visitors (default: login box)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid ""
"example: 'public' to show public stream, 'page/sys/home' to show a system "
"webpage called 'home' or 'include:home.html' to include a file."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid "Preserve site homepage URL"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid "Accounts abandoned after x days"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid "Allowed friend domains"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid "Verify Email Addresses"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid "Force publish"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid "Import Public Streams"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid "Site only Public Streams"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid ""
"Allow access to public content originating only from this site if Imported "
"Public Streams are disabled."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid "Allow anybody on the internet to access the Public streams"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid ""
"Disable to require authentication before viewing. Warning: this content is "
"unmoderated."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid "Login on Homepage"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid "Enable context help"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid ""
"Display contextual help for the current page when the help button is pressed."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:329
+#: ../../Zotlabs/Module/Admin/Site.php:336
msgid "Reply-to email address for system generated email."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:330
+#: ../../Zotlabs/Module/Admin/Site.php:337
msgid "Sender (From) email address for system generated email."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:331
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Name of email sender for system generated email."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Directory Server URL"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Default directory server"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:335
+#: ../../Zotlabs/Module/Admin/Site.php:342
msgid "Proxy user"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:343
msgid "Proxy URL"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Network timeout"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid "Delivery interval"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid "Deliveries per process"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust "
"if necessary to tune system performance. Recommend: 1-5."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid "Queue Threshold"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid ""
"Always defer immediate delivery if queue contains more than this number of "
"entries."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid "Poll interval"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid "Path to ImageMagick convert program"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid ""
"If set, use this program to generate photo thumbnails for huge images ( > "
"4000 pixels in either dimension), otherwise memory exhaustion may occur. "
"Example: /usr/bin/convert"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "Allow SVG thumbnails in file browser"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "WARNING: SVG images may contain malicious code."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid "Maximum Load Average"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "Expiration period in days for imported (grid/network) content"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "0 for no expiration of imported content"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:353
+msgid ""
+"Do not expire any posts which have comments less than this many days ago"
+msgstr ""
+
+#: ../../Zotlabs/Module/Admin/Site.php:355
msgid ""
"Public servers: Optional landing (marketing) webpage for new registrants"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:355
#, php-format
msgid "Create this page first. Default is %s/register"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Page to display after creating a new channel"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Recommend: profiles, go, or settings"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Optional: site location"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Region or country"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:69
+#: ../../Zotlabs/Module/Admin/Profs.php:89
msgid "New Profile Field"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "Field nickname"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "System name of field"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:71
#: ../../Zotlabs/Module/Admin/Profs.php:91
+#: ../../Zotlabs/Module/Admin/Profs.php:111
msgid "Input type"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Field Name"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Label on profile pages"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Help text"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Additional info (optional)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:74
-#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32
+#: ../../Zotlabs/Module/Admin/Profs.php:94
+#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
#: ../../Zotlabs/Widget/Notes.php:18 ../../include/text.php:1052
#: ../../include/text.php:1064
msgid "Save"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:83
+#: ../../Zotlabs/Module/Admin/Profs.php:103
msgid "Field definition not found"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:89
+#: ../../Zotlabs/Module/Admin/Profs.php:109
msgid "Edit Profile Field"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../Zotlabs/Widget/Admin.php:30
+#: ../../Zotlabs/Module/Admin/Profs.php:168 ../../Zotlabs/Widget/Admin.php:30
msgid "Profile Fields"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:148
+#: ../../Zotlabs/Module/Admin/Profs.php:169
msgid "Basic Profile Fields"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "Advanced Profile Fields"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "(In addition to basic fields)"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:151
+#: ../../Zotlabs/Module/Admin/Profs.php:172
msgid "All available fields"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:152
+#: ../../Zotlabs/Module/Admin/Profs.php:173
msgid "Custom Fields"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Profs.php:156
+#: ../../Zotlabs/Module/Admin/Profs.php:177
msgid "Create Custom Field"
msgstr ""
@@ -3336,51 +3347,55 @@ msgctxt "acl"
msgid "Profile"
msgstr ""
-#: ../../Zotlabs/Module/Moderate.php:55
+#: ../../Zotlabs/Module/Moderate.php:65
msgid "Comment approved"
msgstr ""
-#: ../../Zotlabs/Module/Moderate.php:59
+#: ../../Zotlabs/Module/Moderate.php:69
msgid "Comment deleted"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:37
+#: ../../Zotlabs/Module/Settings/Permcats.php:23
+msgid "Permission Name is required."
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Permcats.php:42
msgid "Permission category saved."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:61
+#: ../../Zotlabs/Module/Settings/Permcats.php:66
msgid ""
"Use this form to create permission rules for various classes of people or "
"connections."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:94
+#: ../../Zotlabs/Module/Settings/Permcats.php:99
msgid "Permission Categories"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:102
+#: ../../Zotlabs/Module/Settings/Permcats.php:107
msgid "Permission Name"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:103
+#: ../../Zotlabs/Module/Settings/Permcats.php:108
#: ../../Zotlabs/Module/Settings/Tokens.php:161
#: ../../Zotlabs/Module/Connedit.php:891 ../../Zotlabs/Module/Defperms.php:250
msgid "My Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:105
+#: ../../Zotlabs/Module/Settings/Permcats.php:110
#: ../../Zotlabs/Module/Settings/Tokens.php:163
#: ../../Zotlabs/Module/Connedit.php:886 ../../Zotlabs/Module/Defperms.php:248
msgid "inherited"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:108
+#: ../../Zotlabs/Module/Settings/Permcats.php:113
#: ../../Zotlabs/Module/Settings/Tokens.php:166
#: ../../Zotlabs/Module/Connedit.php:893 ../../Zotlabs/Module/Defperms.php:253
msgid "Individual Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:109
+#: ../../Zotlabs/Module/Settings/Permcats.php:114
#: ../../Zotlabs/Module/Settings/Tokens.php:167
#: ../../Zotlabs/Module/Connedit.php:894
msgid ""
@@ -3400,7 +3415,7 @@ msgstr ""
msgid "Friends"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:262
+#: ../../Zotlabs/Module/Settings/Channel.php:264
#: ../../Zotlabs/Module/Defperms.php:103
#: ../../addon/rendezvous/rendezvous.php:82
#: ../../addon/openstreetmap/openstreetmap.php:184
@@ -3410,408 +3425,419 @@ msgstr ""
msgid "Settings updated."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:323
+#: ../../Zotlabs/Module/Settings/Channel.php:325
msgid "Nobody except yourself"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:324
+#: ../../Zotlabs/Module/Settings/Channel.php:326
msgid "Only those you specifically allow"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:325
+#: ../../Zotlabs/Module/Settings/Channel.php:327
msgid "Approved connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:326
+#: ../../Zotlabs/Module/Settings/Channel.php:328
msgid "Any connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:327
+#: ../../Zotlabs/Module/Settings/Channel.php:329
msgid "Anybody on this website"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:328
+#: ../../Zotlabs/Module/Settings/Channel.php:330
msgid "Anybody in this network"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:329
+#: ../../Zotlabs/Module/Settings/Channel.php:331
msgid "Anybody authenticated"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:330
+#: ../../Zotlabs/Module/Settings/Channel.php:332
msgid "Anybody on the internet"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:405
+#: ../../Zotlabs/Module/Settings/Channel.php:407
msgid "Publish your default profile in the network directory"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:410
+#: ../../Zotlabs/Module/Settings/Channel.php:412
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:414
+#: ../../Zotlabs/Module/Settings/Channel.php:416
msgid "or"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:419
+#: ../../Zotlabs/Module/Settings/Channel.php:425
msgid "Your channel address is"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:422
+#: ../../Zotlabs/Module/Settings/Channel.php:428
msgid "Your files/photos are accessible via WebDAV at"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:486
+#: ../../Zotlabs/Module/Settings/Channel.php:493
msgid "Channel Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:493
+#: ../../Zotlabs/Module/Settings/Channel.php:500
msgid "Basic Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:494 ../../include/channel.php:1522
+#: ../../Zotlabs/Module/Settings/Channel.php:501 ../../include/channel.php:1521
msgid "Full Name:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Channel.php:502
#: ../../Zotlabs/Module/Settings/Account.php:119
msgid "Email Address:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:496
+#: ../../Zotlabs/Module/Settings/Channel.php:503
msgid "Your Timezone:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Default Post Location:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Geographical location to display on your posts"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:498
+#: ../../Zotlabs/Module/Settings/Channel.php:505
msgid "Use Browser Location:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid "Adult Content"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:502
+#: ../../Zotlabs/Module/Settings/Channel.php:509
msgid "Security and Privacy Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:504
+#: ../../Zotlabs/Module/Settings/Channel.php:511
msgid "Your permissions are already configured. Click to view/adjust"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Hide my online presence"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Prevents displaying in your profile that you are online"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:508
+#: ../../Zotlabs/Module/Settings/Channel.php:515
msgid "Simple Privacy Settings:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:509
+#: ../../Zotlabs/Module/Settings/Channel.php:516
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:510
+#: ../../Zotlabs/Module/Settings/Channel.php:517
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:511
+#: ../../Zotlabs/Module/Settings/Channel.php:518
msgid "Private - <em>default private, never open or public</em>"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:512
+#: ../../Zotlabs/Module/Settings/Channel.php:519
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid "Allow others to tag your posts"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:516
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "Channel Permission Limits"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "Expire other channel content after this many days"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "0 or blank to use the website limit."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
#, php-format
msgid "This website expires after %d days."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "This website does not expire imported content."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "The website limit takes precedence if lower than your limit."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "Maximum Friend Requests/Day:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "May reduce spam activity"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:520
+#: ../../Zotlabs/Module/Settings/Channel.php:527
msgid "Default Privacy Group"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:522
+#: ../../Zotlabs/Module/Settings/Channel.php:529
msgid "Use my default audience setting for the type of object published"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:523
+#: ../../Zotlabs/Module/Settings/Channel.php:530
msgid "Profile to assign new connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:532
-msgid "Channel permissions category:"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Channel.php:533
+#: ../../Zotlabs/Module/Settings/Channel.php:540
msgid "Default Permissions Group"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Maximum private messages per day from unknown people:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Useful to reduce spamming"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:542
+#: ../../Zotlabs/Module/Settings/Channel.php:549
#: ../../Zotlabs/Lib/Enotify.php:68
msgid "Notification Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:543
+#: ../../Zotlabs/Module/Settings/Channel.php:550
msgid "By default post a status message when:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:544
+#: ../../Zotlabs/Module/Settings/Channel.php:551
msgid "accepting a friend request"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:545
+#: ../../Zotlabs/Module/Settings/Channel.php:552
msgid "joining a forum/community"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:546
+#: ../../Zotlabs/Module/Settings/Channel.php:553
msgid "making an <em>interesting</em> profile change"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:547
+#: ../../Zotlabs/Module/Settings/Channel.php:554
msgid "Send a notification email when:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:548
+#: ../../Zotlabs/Module/Settings/Channel.php:555
msgid "You receive a connection request"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:549
+#: ../../Zotlabs/Module/Settings/Channel.php:556
msgid "Your connections are confirmed"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:550
+#: ../../Zotlabs/Module/Settings/Channel.php:557
msgid "Someone writes on your profile wall"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:551
+#: ../../Zotlabs/Module/Settings/Channel.php:558
msgid "Someone writes a followup comment"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:552
+#: ../../Zotlabs/Module/Settings/Channel.php:559
msgid "You receive a private message"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:553
+#: ../../Zotlabs/Module/Settings/Channel.php:560
msgid "You receive a friend suggestion"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:554
+#: ../../Zotlabs/Module/Settings/Channel.php:561
msgid "You are tagged in a post"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:555
+#: ../../Zotlabs/Module/Settings/Channel.php:562
msgid "You are poked/prodded/etc. in a post"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:557
+#: ../../Zotlabs/Module/Settings/Channel.php:564
msgid "Someone likes your post/comment"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:560
+#: ../../Zotlabs/Module/Settings/Channel.php:567
msgid "Show visual notifications including:"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:562
+#: ../../Zotlabs/Module/Settings/Channel.php:569
msgid "Unseen grid activity"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:563
+#: ../../Zotlabs/Module/Settings/Channel.php:570
msgid "Unseen channel activity"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:564
+#: ../../Zotlabs/Module/Settings/Channel.php:571
msgid "Unseen private messages"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:564
-#: ../../Zotlabs/Module/Settings/Channel.php:569
-#: ../../Zotlabs/Module/Settings/Channel.php:570
#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:576
+#: ../../Zotlabs/Module/Settings/Channel.php:577
+#: ../../Zotlabs/Module/Settings/Channel.php:578
#: ../../addon/jappixmini/jappixmini.php:343
msgid "Recommended"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:565
+#: ../../Zotlabs/Module/Settings/Channel.php:572
msgid "Upcoming events"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:566
+#: ../../Zotlabs/Module/Settings/Channel.php:573
msgid "Events today"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Upcoming birthdays"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Not available in all themes"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:568
+#: ../../Zotlabs/Module/Settings/Channel.php:575
msgid "System (personal) notifications"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:569
+#: ../../Zotlabs/Module/Settings/Channel.php:576
msgid "System info messages"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:570
+#: ../../Zotlabs/Module/Settings/Channel.php:577
msgid "System critical alerts"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:578
msgid "New connections"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:572
+#: ../../Zotlabs/Module/Settings/Channel.php:579
msgid "System Registrations"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:573
+#: ../../Zotlabs/Module/Settings/Channel.php:580
msgid "Unseen shared files"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:574
+#: ../../Zotlabs/Module/Settings/Channel.php:581
msgid "Unseen public activity"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:582
+msgid "Unseen likes and dislikes"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Channel.php:583
msgid "Email notification hub (hostname)"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:583
#, php-format
msgid ""
"If your channel is mirrored to multiple hubs, set this to your preferred "
"location. This will prevent duplicate email notifications. Example: %s"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:576
-msgid ""
-"Also show new wall posts, private messages and connections under Notices"
+#: ../../Zotlabs/Module/Settings/Channel.php:584
+msgid "Show new wall posts, private messages and connections under Notices"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Notify me of events this many days in advance"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Must be greater than 0"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:584
+#: ../../Zotlabs/Module/Settings/Channel.php:592
msgid "Advanced Account/Page Type Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:585
+#: ../../Zotlabs/Module/Settings/Channel.php:593
msgid "Change the behaviour of this account for special situations"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:587
+#: ../../Zotlabs/Module/Settings/Channel.php:595
msgid "Miscellaneous Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:588
+#: ../../Zotlabs/Module/Settings/Channel.php:596
msgid "Default photo upload folder"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:588
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:596
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "%Y - current year, %m - current month"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "Default file upload folder"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:591
+#: ../../Zotlabs/Module/Settings/Channel.php:599
msgid "Personal menu to display in your channel pages"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:593
+#: ../../Zotlabs/Module/Settings/Channel.php:601
msgid "Remove this channel."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:594
+#: ../../Zotlabs/Module/Settings/Channel.php:602
msgid "Firefox Share $Projectname provider"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Channel.php:595
+#: ../../Zotlabs/Module/Settings/Channel.php:603
msgid "Start calendar week on Monday"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Features.php:45
+#: ../../Zotlabs/Module/Settings/Features.php:73
msgid "Additional Features"
msgstr ""
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid "Your technical skill level"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid ""
+"Used to provide a member experience and additional features consistent with "
+"your comfort level"
+msgstr ""
+
#: ../../Zotlabs/Module/Settings/Tokens.php:31
#, php-format
msgid "This channel is limited to %d tokens"
@@ -3840,7 +3866,7 @@ msgid ""
msgstr ""
#: ../../Zotlabs/Module/Settings/Tokens.php:150
-#: ../../Zotlabs/Widget/Settings_menu.php:92
+#: ../../Zotlabs/Widget/Settings_menu.php:100
msgid "Guest Access Tokens"
msgstr ""
@@ -3861,6 +3887,97 @@ msgstr ""
msgid "Their Settings"
msgstr ""
+#: ../../Zotlabs/Module/Settings/Oauth2.php:35
+msgid "Name and Secret are required"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:83
+msgid "Add OAuth2 application"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+msgid "Name of application"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+#: ../../Zotlabs/Module/Settings/Oauth.php:118
+#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
+msgid "Consumer Secret"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:119
+msgid "Redirect"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires this"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+msgid "Grant Types"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "leave blank unless your application sepcifically requires this"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "Authorization scope"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:102
+msgid "OAuth2 Application not found."
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:111
+#: ../../Zotlabs/Module/Settings/Oauth2.php:148
+#: ../../Zotlabs/Module/Settings/Oauth.php:87
+#: ../../Zotlabs/Module/Settings/Oauth.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:149
+msgid "Add application"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:147
+msgid "Connected OAuth2 Apps"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:151
+#: ../../Zotlabs/Module/Settings/Oauth.php:152
+msgid "Client key starts with"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:152
+#: ../../Zotlabs/Module/Settings/Oauth.php:153
+msgid "No name"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:153
+#: ../../Zotlabs/Module/Settings/Oauth.php:154
+msgid "Remove authorization"
+msgstr ""
+
#: ../../Zotlabs/Module/Settings/Account.php:20
msgid "Not valid email."
msgstr ""
@@ -3917,16 +4034,6 @@ msgstr ""
msgid "Leave password fields blank unless changing"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid "Your technical skill level"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid ""
-"Used to provide a member experience and additional features consistent with "
-"your comfort level"
-msgstr ""
-
#: ../../Zotlabs/Module/Settings/Account.php:120
#: ../../Zotlabs/Module/Removeaccount.php:61
msgid "Remove Account"
@@ -3964,11 +4071,11 @@ msgstr ""
msgid "Affinity Slider Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Featured.php:64
+#: ../../Zotlabs/Module/Settings/Featured.php:67
msgid "Addon Settings"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Featured.php:65
+#: ../../Zotlabs/Module/Settings/Featured.php:68
msgid "Please save/submit changes to any panel before opening another."
msgstr ""
@@ -4085,81 +4192,38 @@ msgstr ""
msgid "Grid page max height of content (in pixels)"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Oauth.php:34
+#: ../../Zotlabs/Module/Settings/Oauth.php:35
msgid "Name is required"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Oauth.php:38
+#: ../../Zotlabs/Module/Settings/Oauth.php:39
msgid "Key and Secret are required"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Oauth.php:86
-#: ../../Zotlabs/Module/Settings/Oauth.php:112
-#: ../../Zotlabs/Module/Settings/Oauth.php:148
-msgid "Add application"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-msgid "Name of application"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:116
-#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:781
-msgid "Consumer Key"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr ""
-
#: ../../Zotlabs/Module/Settings/Oauth.php:91
#: ../../Zotlabs/Module/Settings/Oauth.php:117
-#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
-msgid "Consumer Secret"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-#: ../../Zotlabs/Module/Settings/Oauth.php:118
-msgid "Redirect"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires this"
+#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:781
+msgid "Consumer Key"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
-#: ../../Zotlabs/Module/Settings/Oauth.php:119
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
+#: ../../Zotlabs/Module/Settings/Oauth.php:120
msgid "Icon url"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147
msgid "Optional"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Oauth.php:104
+#: ../../Zotlabs/Module/Settings/Oauth.php:105
msgid "Application not found."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Oauth.php:147
+#: ../../Zotlabs/Module/Settings/Oauth.php:148
msgid "Connected Apps"
msgstr ""
-#: ../../Zotlabs/Module/Settings/Oauth.php:151
-msgid "Client key starts with"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:152
-msgid "No name"
-msgstr ""
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:153
-msgid "Remove authorization"
-msgstr ""
-
#: ../../Zotlabs/Module/Embedphotos.php:140 ../../Zotlabs/Module/Photos.php:811
#: ../../Zotlabs/Module/Photos.php:1350 ../../Zotlabs/Widget/Portfolio.php:87
#: ../../Zotlabs/Widget/Album.php:78
@@ -4172,12 +4236,11 @@ msgid "Edit Album"
msgstr ""
#: ../../Zotlabs/Module/Embedphotos.php:158 ../../Zotlabs/Module/Photos.php:712
-#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Module/Photos.php:1381
#: ../../Zotlabs/Module/Profile_photo.php:458
-#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Storage/Browser.php:277 ../../Zotlabs/Storage/Browser.php:384
-#: ../../Zotlabs/Widget/Cdav.php:133 ../../Zotlabs/Widget/Cdav.php:169
-#: ../../Zotlabs/Widget/Portfolio.php:110 ../../Zotlabs/Widget/Album.php:97
+#: ../../Zotlabs/Module/Cover_photo.php:362
+#: ../../Zotlabs/Storage/Browser.php:384 ../../Zotlabs/Widget/Cdav.php:133
+#: ../../Zotlabs/Widget/Cdav.php:169 ../../Zotlabs/Widget/Portfolio.php:110
+#: ../../Zotlabs/Widget/Album.php:97
msgid "Upload"
msgstr ""
@@ -4185,67 +4248,67 @@ msgstr ""
msgid "Some blurb about what to do when you're new here"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:115
+#: ../../Zotlabs/Module/Thing.php:120
msgid "Thing updated"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:167
+#: ../../Zotlabs/Module/Thing.php:172
msgid "Object store: failed"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:171
+#: ../../Zotlabs/Module/Thing.php:176
msgid "Thing added"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:197
+#: ../../Zotlabs/Module/Thing.php:202
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:260
+#: ../../Zotlabs/Module/Thing.php:265
msgid "Show Thing"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:267
+#: ../../Zotlabs/Module/Thing.php:272
msgid "item not found."
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:300
+#: ../../Zotlabs/Module/Thing.php:305
msgid "Edit Thing"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:302 ../../Zotlabs/Module/Thing.php:359
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:364
msgid "Select a profile"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Post an activity"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Only sends to viewers of the applicable profile"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:308 ../../Zotlabs/Module/Thing.php:364
+#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:369
msgid "Name of thing e.g. something"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:310 ../../Zotlabs/Module/Thing.php:365
+#: ../../Zotlabs/Module/Thing.php:315 ../../Zotlabs/Module/Thing.php:370
msgid "URL of thing (optional)"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:312 ../../Zotlabs/Module/Thing.php:366
+#: ../../Zotlabs/Module/Thing.php:317 ../../Zotlabs/Module/Thing.php:371
msgid "URL for photo of thing (optional)"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:314 ../../Zotlabs/Module/Thing.php:367
+#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
#: ../../Zotlabs/Module/Photos.php:702 ../../Zotlabs/Module/Photos.php:1071
#: ../../Zotlabs/Module/Connedit.php:676 ../../Zotlabs/Module/Chat.php:235
#: ../../Zotlabs/Module/Filestorage.php:147 ../../include/acl_selectors.php:123
msgid "Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Thing.php:357
+#: ../../Zotlabs/Module/Thing.php:362
msgid "Add Thing to your Profile"
msgstr ""
@@ -4257,56 +4320,56 @@ msgstr ""
msgid "System Notifications"
msgstr ""
-#: ../../Zotlabs/Module/Follow.php:31
-msgid "Channel added."
+#: ../../Zotlabs/Module/Follow.php:36
+msgid "Connection added."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:143
+#: ../../Zotlabs/Module/Import.php:144
#, php-format
msgid "Your service plan only allows %d channels."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:157
+#: ../../Zotlabs/Module/Import.php:158
msgid "No channel. Import failed."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:481
+#: ../../Zotlabs/Module/Import.php:482
#: ../../addon/diaspora/import_diaspora.php:139
msgid "Import completed."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:509
+#: ../../Zotlabs/Module/Import.php:510
msgid "You must be logged in to use this feature."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:514
+#: ../../Zotlabs/Module/Import.php:515
msgid "Import Channel"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:515
+#: ../../Zotlabs/Module/Import.php:516
msgid ""
"Use this form to import an existing channel from a different server/hub. You "
"may retrieve the channel identity from the old server/hub via the network or "
"provide an export file."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:517
+#: ../../Zotlabs/Module/Import.php:518
msgid "Or provide the old server/hub details"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:518
+#: ../../Zotlabs/Module/Import.php:519
msgid "Your old identity address (xyz@example.com)"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:519
+#: ../../Zotlabs/Module/Import.php:520
msgid "Your old login email address"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:520
+#: ../../Zotlabs/Module/Import.php:521
msgid "Your old login password"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:521
+#: ../../Zotlabs/Module/Import.php:522
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be "
@@ -4314,19 +4377,19 @@ msgid ""
"location for files, photos, and media."
msgstr ""
-#: ../../Zotlabs/Module/Import.php:522
+#: ../../Zotlabs/Module/Import.php:523
msgid "Make this hub my primary location"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:523
+#: ../../Zotlabs/Module/Import.php:524
msgid "Move this channel (disable all previous locations)"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:524
+#: ../../Zotlabs/Module/Import.php:525
msgid "Import a few months of posts if possible (limited by available memory"
msgstr ""
-#: ../../Zotlabs/Module/Import.php:525
+#: ../../Zotlabs/Module/Import.php:526
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
@@ -4336,16 +4399,16 @@ msgstr ""
msgid "Authentication failed."
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1583
-#: ../../include/channel.php:2307
+#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1590
+#: ../../include/channel.php:2318
msgid "Remote Authentication"
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2308
+#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2319
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr ""
-#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2309
+#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2320
msgid "Authenticate"
msgstr ""
@@ -4353,7 +4416,7 @@ msgstr ""
msgid "Permissions denied."
msgstr ""
-#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2426
+#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2446
msgid "Import"
msgstr ""
@@ -4413,149 +4476,163 @@ msgstr ""
msgid "Set your current mood and tell your friends"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:54
-#: ../../Zotlabs/Module/Connections.php:156
-#: ../../Zotlabs/Module/Connections.php:245
+#: ../../Zotlabs/Module/Connections.php:55
+#: ../../Zotlabs/Module/Connections.php:112
+#: ../../Zotlabs/Module/Connections.php:256
+msgid "Active"
+msgstr ""
+
+#: ../../Zotlabs/Module/Connections.php:60
+#: ../../Zotlabs/Module/Connections.php:164
+#: ../../Zotlabs/Module/Connections.php:261
msgid "Blocked"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:59
-#: ../../Zotlabs/Module/Connections.php:163
-#: ../../Zotlabs/Module/Connections.php:244
+#: ../../Zotlabs/Module/Connections.php:65
+#: ../../Zotlabs/Module/Connections.php:171
+#: ../../Zotlabs/Module/Connections.php:260
msgid "Ignored"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:64
-#: ../../Zotlabs/Module/Connections.php:177
-#: ../../Zotlabs/Module/Connections.php:243
+#: ../../Zotlabs/Module/Connections.php:70
+#: ../../Zotlabs/Module/Connections.php:185
+#: ../../Zotlabs/Module/Connections.php:259
msgid "Hidden"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:69
-#: ../../Zotlabs/Module/Connections.php:170
+#: ../../Zotlabs/Module/Connections.php:75
+#: ../../Zotlabs/Module/Connections.php:178
msgid "Archived/Unreachable"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:74
-#: ../../Zotlabs/Module/Connections.php:83 ../../Zotlabs/Module/Menu.php:116
+#: ../../Zotlabs/Module/Connections.php:80
+#: ../../Zotlabs/Module/Connections.php:89 ../../Zotlabs/Module/Menu.php:116
#: ../../Zotlabs/Module/Notifications.php:52
-#: ../../include/conversation.php:1714
+#: ../../include/conversation.php:1717
msgid "New"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:88
-#: ../../Zotlabs/Module/Connections.php:102
+#: ../../Zotlabs/Module/Connections.php:94
+#: ../../Zotlabs/Module/Connections.php:108
#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:26
msgid "All"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:133
+#: ../../Zotlabs/Module/Connections.php:140
+msgid "Active Connections"
+msgstr ""
+
+#: ../../Zotlabs/Module/Connections.php:143
+msgid "Show active connections"
+msgstr ""
+
+#: ../../Zotlabs/Module/Connections.php:147
#: ../../Zotlabs/Widget/Notifications.php:84
msgid "New Connections"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:136
+#: ../../Zotlabs/Module/Connections.php:150
msgid "Show pending (new) connections"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:143
-msgid "Show all connections"
-msgstr ""
-
-#: ../../Zotlabs/Module/Connections.php:159
+#: ../../Zotlabs/Module/Connections.php:167
msgid "Only show blocked connections"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:166
+#: ../../Zotlabs/Module/Connections.php:174
msgid "Only show ignored connections"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:173
+#: ../../Zotlabs/Module/Connections.php:181
msgid "Only show archived/unreachable connections"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:180
+#: ../../Zotlabs/Module/Connections.php:188
msgid "Only show hidden connections"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:241
+#: ../../Zotlabs/Module/Connections.php:203
+msgid "Show all connections"
+msgstr ""
+
+#: ../../Zotlabs/Module/Connections.php:257
msgid "Pending approval"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:242
+#: ../../Zotlabs/Module/Connections.php:258
msgid "Archived"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:246
+#: ../../Zotlabs/Module/Connections.php:262
msgid "Not connected at this location"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:263
+#: ../../Zotlabs/Module/Connections.php:279
#, php-format
msgid "%1$s [%2$s]"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:264
+#: ../../Zotlabs/Module/Connections.php:280
msgid "Edit connection"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:266
+#: ../../Zotlabs/Module/Connections.php:282
msgid "Delete connection"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:275
+#: ../../Zotlabs/Module/Connections.php:291
msgid "Channel address"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:277
+#: ../../Zotlabs/Module/Connections.php:293
msgid "Network"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:280
+#: ../../Zotlabs/Module/Connections.php:296
msgid "Call"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:282
+#: ../../Zotlabs/Module/Connections.php:298
msgid "Status"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:284
+#: ../../Zotlabs/Module/Connections.php:300
msgid "Connected"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:286
+#: ../../Zotlabs/Module/Connections.php:302
msgid "Approve connection"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:288
+#: ../../Zotlabs/Module/Connections.php:304
msgid "Ignore connection"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:289
+#: ../../Zotlabs/Module/Connections.php:305
#: ../../Zotlabs/Module/Connedit.php:630
msgid "Ignore"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:290
+#: ../../Zotlabs/Module/Connections.php:306
msgid "Recent activity"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:315 ../../Zotlabs/Lib/Apps.php:235
+#: ../../Zotlabs/Module/Connections.php:331 ../../Zotlabs/Lib/Apps.php:235
#: ../../include/text.php:973
msgid "Connections"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:320
+#: ../../Zotlabs/Module/Connections.php:336
msgid "Search your connections"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:321
+#: ../../Zotlabs/Module/Connections.php:337
msgid "Connections search"
msgstr ""
-#: ../../Zotlabs/Module/Connections.php:322
-#: ../../Zotlabs/Module/Directory.php:396
-#: ../../Zotlabs/Module/Directory.php:401 ../../include/contact_widgets.php:23
+#: ../../Zotlabs/Module/Connections.php:338
+#: ../../Zotlabs/Module/Directory.php:401
+#: ../../Zotlabs/Module/Directory.php:406 ../../include/contact_widgets.php:23
msgid "Find"
msgstr ""
@@ -4657,12 +4734,8 @@ msgstr ""
msgid "Create a status post for this upload"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:698
-msgid "Caption (optional):"
-msgstr ""
-
#: ../../Zotlabs/Module/Photos.php:699
-msgid "Description (optional):"
+msgid "Description (optional)"
msgstr ""
#: ../../Zotlabs/Module/Photos.php:785
@@ -4673,6 +4746,10 @@ msgstr ""
msgid "Show Oldest First"
msgstr ""
+#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Module/Photos.php:1381
+msgid "Add Photos"
+msgstr ""
+
#: ../../Zotlabs/Module/Photos.php:892
msgid "Permission denied. Access to this item may be restricted."
msgstr ""
@@ -4721,10 +4798,6 @@ msgstr ""
msgid "or select an existing one (doubleclick)"
msgstr ""
-#: ../../Zotlabs/Module/Photos.php:1068
-msgid "Caption"
-msgstr ""
-
#: ../../Zotlabs/Module/Photos.php:1070
msgid "Add a Tag"
msgstr ""
@@ -4751,12 +4824,12 @@ msgid "Please wait"
msgstr ""
#: ../../Zotlabs/Module/Photos.php:1119 ../../Zotlabs/Module/Photos.php:1237
-#: ../../Zotlabs/Lib/ThreadItem.php:747
+#: ../../Zotlabs/Lib/ThreadItem.php:749
msgid "This is you"
msgstr ""
#: ../../Zotlabs/Module/Photos.php:1121 ../../Zotlabs/Module/Photos.php:1239
-#: ../../Zotlabs/Lib/ThreadItem.php:749 ../../include/js_strings.php:6
+#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/js_strings.php:6
msgid "Comment"
msgstr ""
@@ -4806,8 +4879,8 @@ msgid "View all"
msgstr ""
#: ../../Zotlabs/Module/Photos.php:1160 ../../Zotlabs/Lib/ThreadItem.php:205
-#: ../../include/conversation.php:1978 ../../include/channel.php:1540
-#: ../../include/taxonomy.php:597
+#: ../../include/conversation.php:1981 ../../include/channel.php:1539
+#: ../../include/taxonomy.php:661
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
@@ -4815,7 +4888,7 @@ msgstr[0] ""
msgstr[1] ""
#: ../../Zotlabs/Module/Photos.php:1165 ../../Zotlabs/Lib/ThreadItem.php:210
-#: ../../include/conversation.php:1981
+#: ../../include/conversation.php:1984
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
@@ -4850,78 +4923,76 @@ msgid "Close"
msgstr ""
#: ../../Zotlabs/Module/Photos.php:1365 ../../Zotlabs/Module/Photos.php:1378
-#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:656
+#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:667
msgid "Recent Photos"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:30
+#: ../../Zotlabs/Module/Wiki.php:30 ../../addon/cart/cart.php:1135
msgid "Profile Unavailable."
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:108
-#: ../../addon/gitwiki/Mod_Gitwiki.php:42
+#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:114
msgid "Not found"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/gitwiki/Mod_Gitwiki.php:62
+#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/cart/myshop.php:114
+#: ../../addon/cart/cart.php:1204 ../../addon/cart/manual_payments.php:58
msgid "Invalid channel"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:124 ../../addon/gitwiki/Mod_Gitwiki.php:107
+#: ../../Zotlabs/Module/Wiki.php:124
msgid "Error retrieving wiki"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:131 ../../addon/gitwiki/Mod_Gitwiki.php:114
+#: ../../Zotlabs/Module/Wiki.php:131
msgid "Error creating zip file export folder"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:182 ../../addon/gitwiki/Mod_Gitwiki.php:132
+#: ../../Zotlabs/Module/Wiki.php:182
msgid "Error downloading wiki: "
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:197 ../../addon/gitwiki/Mod_Gitwiki.php:146
-#: ../../include/conversation.php:1925 ../../include/nav.php:494
+#: ../../Zotlabs/Module/Wiki.php:197 ../../include/conversation.php:1928
+#: ../../include/nav.php:494
msgid "Wikis"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:203 ../../addon/gitwiki/Mod_Gitwiki.php:152
+#: ../../Zotlabs/Module/Wiki.php:203
msgid "Download"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:205 ../../Zotlabs/Module/Chat.php:256
-#: ../../Zotlabs/Module/Profiles.php:834 ../../Zotlabs/Module/Manage.php:145
-#: ../../addon/gitwiki/Mod_Gitwiki.php:154
+#: ../../Zotlabs/Module/Profiles.php:831 ../../Zotlabs/Module/Manage.php:145
msgid "Create New"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:207 ../../addon/gitwiki/Mod_Gitwiki.php:156
+#: ../../Zotlabs/Module/Wiki.php:207
msgid "Wiki name"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:208 ../../addon/gitwiki/Mod_Gitwiki.php:157
+#: ../../Zotlabs/Module/Wiki.php:208
msgid "Content type"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../addon/mdpost/mdpost.php:40
-#: ../../include/text.php:1868
+#: ../../include/text.php:1869
msgid "Markdown"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1866
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1867
msgid "BBcode"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1869
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1870
msgid "Text"
msgstr ""
#: ../../Zotlabs/Module/Wiki.php:210 ../../Zotlabs/Storage/Browser.php:284
-#: ../../addon/gitwiki/Mod_Gitwiki.php:159
msgid "Type"
msgstr ""
@@ -4933,7 +5004,7 @@ msgstr ""
msgid "Lock content type"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:219 ../../addon/gitwiki/Mod_Gitwiki.php:166
+#: ../../Zotlabs/Module/Wiki.php:219
msgid "Create a status post for this wiki"
msgstr ""
@@ -4941,137 +5012,135 @@ msgstr ""
msgid "Edit Wiki Name"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:262 ../../addon/gitwiki/Mod_Gitwiki.php:185
+#: ../../Zotlabs/Module/Wiki.php:262
msgid "Wiki not found"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:286 ../../addon/gitwiki/Mod_Gitwiki.php:210
+#: ../../Zotlabs/Module/Wiki.php:286
msgid "Rename page"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:305 ../../addon/gitwiki/Mod_Gitwiki.php:214
+#: ../../Zotlabs/Module/Wiki.php:307
msgid "Error retrieving page content"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:313 ../../Zotlabs/Module/Wiki.php:315
+#: ../../Zotlabs/Module/Wiki.php:315 ../../Zotlabs/Module/Wiki.php:317
msgid "New page"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:343 ../../addon/gitwiki/Mod_Gitwiki.php:242
+#: ../../Zotlabs/Module/Wiki.php:345
msgid "Revision Comparison"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:344 ../../addon/gitwiki/Mod_Gitwiki.php:243
+#: ../../Zotlabs/Module/Wiki.php:346
msgid "Revert"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:351
+#: ../../Zotlabs/Module/Wiki.php:353
msgid "Short description of your changes (optional)"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:358 ../../addon/gitwiki/Mod_Gitwiki.php:252
+#: ../../Zotlabs/Module/Wiki.php:362
msgid "Source"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:368 ../../addon/gitwiki/Mod_Gitwiki.php:260
+#: ../../Zotlabs/Module/Wiki.php:372
msgid "New page name"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:373 ../../addon/gitwiki/Mod_Gitwiki.php:265
-#: ../../include/conversation.php:1282
+#: ../../Zotlabs/Module/Wiki.php:377 ../../include/conversation.php:1282
msgid "Embed image from photo albums"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:374 ../../addon/gitwiki/Mod_Gitwiki.php:266
-#: ../../include/conversation.php:1385
+#: ../../Zotlabs/Module/Wiki.php:378 ../../include/conversation.php:1388
msgid "Embed an image from your albums"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:376 ../../Zotlabs/Module/Profile_photo.php:465
-#: ../../Zotlabs/Module/Cover_photo.php:366
-#: ../../addon/gitwiki/Mod_Gitwiki.php:268 ../../include/conversation.php:1387
-#: ../../include/conversation.php:1434
+#: ../../Zotlabs/Module/Wiki.php:380 ../../Zotlabs/Module/Profile_photo.php:465
+#: ../../Zotlabs/Module/Cover_photo.php:367 ../../include/conversation.php:1390
+#: ../../include/conversation.php:1437
msgid "OK"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:377 ../../addon/gitwiki/Mod_Gitwiki.php:269
-#: ../../include/conversation.php:1318
+#: ../../Zotlabs/Module/Wiki.php:381 ../../Zotlabs/Module/Profile_photo.php:466
+#: ../../Zotlabs/Module/Cover_photo.php:368 ../../include/conversation.php:1320
msgid "Choose images to embed"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:378 ../../addon/gitwiki/Mod_Gitwiki.php:270
-#: ../../include/conversation.php:1319
+#: ../../Zotlabs/Module/Wiki.php:382 ../../Zotlabs/Module/Profile_photo.php:467
+#: ../../Zotlabs/Module/Cover_photo.php:369 ../../include/conversation.php:1321
msgid "Choose an album"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:379 ../../addon/gitwiki/Mod_Gitwiki.php:271
+#: ../../Zotlabs/Module/Wiki.php:383 ../../Zotlabs/Module/Profile_photo.php:468
+#: ../../Zotlabs/Module/Cover_photo.php:370
msgid "Choose a different album"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:380 ../../addon/gitwiki/Mod_Gitwiki.php:272
-#: ../../include/conversation.php:1321
+#: ../../Zotlabs/Module/Wiki.php:384 ../../Zotlabs/Module/Profile_photo.php:469
+#: ../../Zotlabs/Module/Cover_photo.php:371 ../../include/conversation.php:1323
msgid "Error getting album list"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:381 ../../addon/gitwiki/Mod_Gitwiki.php:273
-#: ../../include/conversation.php:1322
+#: ../../Zotlabs/Module/Wiki.php:385 ../../Zotlabs/Module/Profile_photo.php:470
+#: ../../Zotlabs/Module/Cover_photo.php:372 ../../include/conversation.php:1324
msgid "Error getting photo link"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:382 ../../addon/gitwiki/Mod_Gitwiki.php:274
-#: ../../include/conversation.php:1323
+#: ../../Zotlabs/Module/Wiki.php:386 ../../Zotlabs/Module/Profile_photo.php:471
+#: ../../Zotlabs/Module/Cover_photo.php:373 ../../include/conversation.php:1325
msgid "Error getting album"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:458 ../../addon/gitwiki/Mod_Gitwiki.php:337
+#: ../../Zotlabs/Module/Wiki.php:462
msgid "Error creating wiki. Invalid name."
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:465
+#: ../../Zotlabs/Module/Wiki.php:469
msgid "A wiki with this name already exists."
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:478 ../../addon/gitwiki/Mod_Gitwiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:482
msgid "Wiki created, but error creating Home page."
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:485 ../../addon/gitwiki/Mod_Gitwiki.php:353
+#: ../../Zotlabs/Module/Wiki.php:489
msgid "Error creating wiki"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:508
+#: ../../Zotlabs/Module/Wiki.php:512
msgid "Error updating wiki. Invalid name."
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:528
+#: ../../Zotlabs/Module/Wiki.php:532
msgid "Error updating wiki"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:543
+#: ../../Zotlabs/Module/Wiki.php:547
msgid "Wiki delete permission denied."
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:553
+#: ../../Zotlabs/Module/Wiki.php:557
msgid "Error deleting wiki"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:586 ../../addon/gitwiki/Mod_Gitwiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:590
msgid "New page created"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:707
+#: ../../Zotlabs/Module/Wiki.php:711
msgid "Cannot delete Home"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Current Revision"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Selected Revision"
msgstr ""
-#: ../../Zotlabs/Module/Wiki.php:821
+#: ../../Zotlabs/Module/Wiki.php:825
msgid "You must be authenticated."
msgstr ""
@@ -5155,7 +5224,7 @@ msgstr ""
#: ../../Zotlabs/Module/Profile_photo.php:120
#: ../../Zotlabs/Module/Profile_photo.php:248
-#: ../../include/photo/photo_driver.php:740
+#: ../../include/photo/photo_driver.php:741
msgid "Profile Photos"
msgstr ""
@@ -5194,12 +5263,12 @@ msgid "Photo not available."
msgstr ""
#: ../../Zotlabs/Module/Profile_photo.php:455
-#: ../../Zotlabs/Module/Cover_photo.php:358
+#: ../../Zotlabs/Module/Cover_photo.php:359
msgid "Upload File:"
msgstr ""
#: ../../Zotlabs/Module/Profile_photo.php:456
-#: ../../Zotlabs/Module/Cover_photo.php:359
+#: ../../Zotlabs/Module/Cover_photo.php:360
msgid "Select a profile:"
msgstr ""
@@ -5217,28 +5286,28 @@ msgstr ""
#: ../../Zotlabs/Module/Profile_photo.php:462
#: ../../Zotlabs/Module/Profile_photo.php:463
-#: ../../Zotlabs/Module/Cover_photo.php:363
#: ../../Zotlabs/Module/Cover_photo.php:364
+#: ../../Zotlabs/Module/Cover_photo.php:365
msgid "Use a photo from your albums"
msgstr ""
-#: ../../Zotlabs/Module/Profile_photo.php:467
-#: ../../Zotlabs/Module/Cover_photo.php:369
+#: ../../Zotlabs/Module/Profile_photo.php:473
+#: ../../Zotlabs/Module/Cover_photo.php:376
msgid "Select existing photo"
msgstr ""
-#: ../../Zotlabs/Module/Profile_photo.php:486
-#: ../../Zotlabs/Module/Cover_photo.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:492
+#: ../../Zotlabs/Module/Cover_photo.php:393
msgid "Crop Image"
msgstr ""
-#: ../../Zotlabs/Module/Profile_photo.php:487
-#: ../../Zotlabs/Module/Cover_photo.php:387
+#: ../../Zotlabs/Module/Profile_photo.php:493
+#: ../../Zotlabs/Module/Cover_photo.php:394
msgid "Please adjust the image cropping for optimum viewing."
msgstr ""
-#: ../../Zotlabs/Module/Profile_photo.php:489
-#: ../../Zotlabs/Module/Cover_photo.php:389
+#: ../../Zotlabs/Module/Profile_photo.php:495
+#: ../../Zotlabs/Module/Cover_photo.php:396
msgid "Done Editing"
msgstr ""
@@ -5254,61 +5323,61 @@ msgstr ""
msgid "Unable to locate original post."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:476
+#: ../../Zotlabs/Module/Item.php:477
msgid "Empty post discarded."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:867
+#: ../../Zotlabs/Module/Item.php:874
msgid "Duplicate post suppressed."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1012
+#: ../../Zotlabs/Module/Item.php:1019
msgid "System error. Post not saved."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1048
+#: ../../Zotlabs/Module/Item.php:1055
msgid "Your comment is awaiting approval."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1153
+#: ../../Zotlabs/Module/Item.php:1160
msgid "Unable to obtain post information from database."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1182
+#: ../../Zotlabs/Module/Item.php:1189
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr ""
-#: ../../Zotlabs/Module/Item.php:1189
+#: ../../Zotlabs/Module/Item.php:1196
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:320
+#: ../../Zotlabs/Module/Ping.php:330
msgid "sent you a private message"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:372
+#: ../../Zotlabs/Module/Ping.php:383
msgid "added your channel"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:396
+#: ../../Zotlabs/Module/Ping.php:407
msgid "requires approval"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:406
+#: ../../Zotlabs/Module/Ping.php:417
msgid "g A l F d"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:424
+#: ../../Zotlabs/Module/Ping.php:435
msgid "[today]"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:433
+#: ../../Zotlabs/Module/Ping.php:444
msgid "posted an event"
msgstr ""
-#: ../../Zotlabs/Module/Ping.php:466
+#: ../../Zotlabs/Module/Ping.php:477
msgid "shared a file with you"
msgstr ""
@@ -5317,7 +5386,8 @@ msgid "Invalid item."
msgstr ""
#: ../../Zotlabs/Module/Page.php:136 ../../Zotlabs/Module/Block.php:77
-#: ../../Zotlabs/Module/Display.php:133
+#: ../../Zotlabs/Module/Display.php:141 ../../Zotlabs/Module/Display.php:158
+#: ../../Zotlabs/Module/Display.php:175
#: ../../Zotlabs/Lib/NativeWikiPage.php:519 ../../Zotlabs/Web/Router.php:167
#: ../../include/help.php:81
msgid "Page not found."
@@ -5398,7 +5468,7 @@ msgstr ""
msgid "Fetch updated photo"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:615
+#: ../../Zotlabs/Module/Connedit.php:615 ../../include/conversation.php:1042
msgid "Recent Activity"
msgstr ""
@@ -5542,11 +5612,11 @@ msgid ""
msgstr ""
#: ../../Zotlabs/Module/Connedit.php:850 ../../Zotlabs/Module/Defperms.php:238
-#: ../../Zotlabs/Widget/Settings_menu.php:109
+#: ../../Zotlabs/Widget/Settings_menu.php:117
msgid "Connection Default Permissions"
msgstr ""
-#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4164
+#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4214
#, php-format
msgid "Connection: %s"
msgstr ""
@@ -5681,13 +5751,13 @@ msgid "Bookmark this room"
msgstr ""
#: ../../Zotlabs/Module/Chat.php:205 ../../Zotlabs/Module/Mail.php:241
-#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1313
+#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1315
msgid "Please enter a link URL:"
msgstr ""
#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Module/Mail.php:294
-#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:764
-#: ../../include/conversation.php:1432
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:766
+#: ../../include/conversation.php:1435
msgid "Encrypt text"
msgstr ""
@@ -5721,12 +5791,12 @@ msgid "min"
msgstr ""
#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:248
-#: ../../include/conversation.php:1831 ../../include/nav.php:401
+#: ../../include/conversation.php:1834 ../../include/nav.php:401
msgid "Photos"
msgstr ""
#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:243
-#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1839
+#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1842
#: ../../include/nav.php:409
msgid "Files"
msgstr ""
@@ -5767,7 +5837,7 @@ msgstr ""
msgid "Submit and proceed"
msgstr ""
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2403
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2423
msgid "Menus"
msgstr ""
@@ -5819,7 +5889,7 @@ msgstr ""
msgid "Allow bookmarks"
msgstr ""
-#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2404
+#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2424
msgid "Layouts"
msgstr ""
@@ -5841,11 +5911,11 @@ msgstr ""
msgid "Download PDL file"
msgstr ""
-#: ../../Zotlabs/Module/Cloud.php:114
+#: ../../Zotlabs/Module/Cloud.php:120
msgid "Please refresh page"
msgstr ""
-#: ../../Zotlabs/Module/Cloud.php:117
+#: ../../Zotlabs/Module/Cloud.php:123
msgid "Unknown error"
msgstr ""
@@ -5879,16 +5949,16 @@ msgid "Post not found."
msgstr ""
#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:160
-#: ../../include/bbcode.php:339
+#: ../../include/bbcode.php:352
msgid "post"
msgstr ""
#: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146
-#: ../../include/text.php:2012
+#: ../../include/text.php:2013
msgid "comment"
msgstr ""
-#: ../../Zotlabs/Module/Tagger.php:117
+#: ../../Zotlabs/Module/Tagger.php:119
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr ""
@@ -5923,6 +5993,23 @@ msgid ""
"channel type and privacy settings."
msgstr ""
+#: ../../Zotlabs/Module/Authorize.php:17
+msgid "Unknown App"
+msgstr ""
+
+#: ../../Zotlabs/Module/Authorize.php:22
+msgid "Authorize"
+msgstr ""
+
+#: ../../Zotlabs/Module/Authorize.php:23
+#, php-format
+msgid "Do you authorize the app %s to access your channel data?"
+msgstr ""
+
+#: ../../Zotlabs/Module/Authorize.php:25
+msgid "Allow"
+msgstr ""
+
#: ../../Zotlabs/Module/Group.php:24
msgid "Privacy group created."
msgstr ""
@@ -5932,7 +6019,7 @@ msgid "Could not create privacy group."
msgstr ""
#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:143
-#: ../../include/items.php:4131
+#: ../../include/items.php:4181
msgid "Privacy group not found."
msgstr ""
@@ -6013,15 +6100,15 @@ msgstr ""
msgid "Romantic Partner"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:775
+#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:772
msgid "Likes"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:776
+#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:773
msgid "Dislikes"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:783
+#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:780
msgid "Work/Employment"
msgstr ""
@@ -6058,198 +6145,198 @@ msgstr ""
msgid "Hide your connections list from viewers of this profile"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:725
+#: ../../Zotlabs/Module/Profiles.php:722
msgid "Edit Profile Details"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:727
+#: ../../Zotlabs/Module/Profiles.php:724
msgid "View this profile"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:728 ../../Zotlabs/Module/Profiles.php:827
-#: ../../include/channel.php:1320
+#: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824
+#: ../../include/channel.php:1319
msgid "Edit visibility"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:729
+#: ../../Zotlabs/Module/Profiles.php:726
msgid "Profile Tools"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:730
+#: ../../Zotlabs/Module/Profiles.php:727
msgid "Change cover photo"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:731 ../../include/channel.php:1290
+#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1289
msgid "Change profile photo"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:732
+#: ../../Zotlabs/Module/Profiles.php:729
msgid "Create a new profile using these settings"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:733
+#: ../../Zotlabs/Module/Profiles.php:730
msgid "Clone this profile"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:734
+#: ../../Zotlabs/Module/Profiles.php:731
msgid "Delete this profile"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:735
+#: ../../Zotlabs/Module/Profiles.php:732
msgid "Add profile things"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:736 ../../include/conversation.php:1705
+#: ../../Zotlabs/Module/Profiles.php:733 ../../include/conversation.php:1708
msgid "Personal"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Relation"
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Relationship"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:739 ../../Zotlabs/Widget/Newmember.php:53
+#: ../../Zotlabs/Module/Profiles.php:736 ../../Zotlabs/Widget/Newmember.php:44
#: ../../include/datetime.php:58
msgid "Miscellaneous"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:741
+#: ../../Zotlabs/Module/Profiles.php:738
msgid "Import profile from file"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:742
+#: ../../Zotlabs/Module/Profiles.php:739
msgid "Export profile to file"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:743
+#: ../../Zotlabs/Module/Profiles.php:740
msgid "Your gender"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:744
+#: ../../Zotlabs/Module/Profiles.php:741
msgid "Marital status"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:745
+#: ../../Zotlabs/Module/Profiles.php:742
msgid "Sexual preference"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:748
+#: ../../Zotlabs/Module/Profiles.php:745
msgid "Profile name"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:750
+#: ../../Zotlabs/Module/Profiles.php:747
msgid "This is your default profile."
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:752
+#: ../../Zotlabs/Module/Profiles.php:749
msgid "Your full name"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:753
+#: ../../Zotlabs/Module/Profiles.php:750
msgid "Title/Description"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:756
+#: ../../Zotlabs/Module/Profiles.php:753
msgid "Street address"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:757
+#: ../../Zotlabs/Module/Profiles.php:754
msgid "Locality/City"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:758
+#: ../../Zotlabs/Module/Profiles.php:755
msgid "Region/State"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:759
+#: ../../Zotlabs/Module/Profiles.php:756
msgid "Postal/Zip code"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Who (if applicable)"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:766
+#: ../../Zotlabs/Module/Profiles.php:763
msgid "Since (date)"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:769
+#: ../../Zotlabs/Module/Profiles.php:766
msgid "Tell us about yourself"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:770
+#: ../../Zotlabs/Module/Profiles.php:767
#: ../../addon/openid/MysqlProvider.php:68
msgid "Homepage URL"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:771
+#: ../../Zotlabs/Module/Profiles.php:768
msgid "Hometown"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:772
+#: ../../Zotlabs/Module/Profiles.php:769
msgid "Political views"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:773
+#: ../../Zotlabs/Module/Profiles.php:770
msgid "Religious views"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Keywords used in directory listings"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Example: fishing photography software"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:777
+#: ../../Zotlabs/Module/Profiles.php:774
msgid "Musical interests"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Profiles.php:775
msgid "Books, literature"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:779
+#: ../../Zotlabs/Module/Profiles.php:776
msgid "Television"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:780
+#: ../../Zotlabs/Module/Profiles.php:777
msgid "Film/Dance/Culture/Entertainment"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:781
+#: ../../Zotlabs/Module/Profiles.php:778
msgid "Hobbies/Interests"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:782
+#: ../../Zotlabs/Module/Profiles.php:779
msgid "Love/Romance"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:784
+#: ../../Zotlabs/Module/Profiles.php:781
msgid "School/Education"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:785
+#: ../../Zotlabs/Module/Profiles.php:782
msgid "Contact information and social networks"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:786
+#: ../../Zotlabs/Module/Profiles.php:783
msgid "My other channels"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:788
+#: ../../Zotlabs/Module/Profiles.php:785
msgid "Communications"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:823 ../../include/channel.php:1316
+#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1315
msgid "Profile Image"
msgstr ""
-#: ../../Zotlabs/Module/Profiles.php:833 ../../include/channel.php:1297
+#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1296
#: ../../include/nav.php:117
msgid "Edit Profiles"
msgstr ""
@@ -6283,11 +6370,11 @@ msgstr ""
msgid "Edit your default profile"
msgstr ""
-#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:43
+#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:34
msgid "View friend suggestions"
msgstr ""
-#: ../../Zotlabs/Module/Go.php:39 ../../Zotlabs/Widget/Newmember.php:42
+#: ../../Zotlabs/Module/Go.php:39
msgid "View the channel directory"
msgstr ""
@@ -6364,9 +6451,9 @@ msgstr ""
msgid "Delegated Channel"
msgstr ""
-#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:181
-#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1890
-#: ../../include/features.php:114 ../../include/nav.php:458
+#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:194
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1893
+#: ../../include/features.php:123 ../../include/nav.php:458
msgid "Cards"
msgstr ""
@@ -6458,7 +6545,7 @@ msgid "Export selected"
msgstr ""
#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:244
-#: ../../include/conversation.php:1912 ../../include/nav.php:481
+#: ../../include/conversation.php:1915 ../../include/nav.php:481
msgid "Webpages"
msgstr ""
@@ -6531,7 +6618,7 @@ msgstr ""
msgid "Item is not editable"
msgstr ""
-#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:178
+#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:144
msgid "Edit post"
msgstr ""
@@ -6619,7 +6706,7 @@ msgid "Change profile photo"
msgstr ""
#: ../../Zotlabs/Module/Sources.php:96
-#: ../../Zotlabs/Widget/Settings_menu.php:125 ../../include/features.php:274
+#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/features.php:292
msgid "Channel Sources"
msgstr ""
@@ -6702,165 +6789,169 @@ msgstr ""
msgid "Previous action reversed."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:436 ../../addon/diaspora/Receiver.php:1547
-#: ../../addon/pubcrawl/as.php:1394 ../../include/conversation.php:160
+#: ../../Zotlabs/Module/Like.php:438 ../../addon/diaspora/Receiver.php:1529
+#: ../../addon/pubcrawl/as.php:1440 ../../include/conversation.php:160
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:438 ../../addon/pubcrawl/as.php:1396
+#: ../../Zotlabs/Module/Like.php:440 ../../addon/pubcrawl/as.php:1442
#: ../../include/conversation.php:163
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:440
+#: ../../Zotlabs/Module/Like.php:442
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:442
+#: ../../Zotlabs/Module/Like.php:444
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:444
+#: ../../Zotlabs/Module/Like.php:446
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:446 ../../addon/diaspora/Receiver.php:2031
+#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2072
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2033
+#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2074
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2035
+#: ../../Zotlabs/Module/Like.php:452 ../../addon/diaspora/Receiver.php:2076
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr ""
-#: ../../Zotlabs/Module/Like.php:562
+#: ../../Zotlabs/Module/Like.php:564
msgid "Action completed."
msgstr ""
-#: ../../Zotlabs/Module/Like.php:563
+#: ../../Zotlabs/Module/Like.php:565
msgid "Thank you."
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:250
+#: ../../Zotlabs/Module/Directory.php:106
+msgid "No default suggestions were found."
+msgstr ""
+
+#: ../../Zotlabs/Module/Directory.php:255
#, php-format
msgid "%d rating"
msgid_plural "%d ratings"
msgstr[0] ""
msgstr[1] ""
-#: ../../Zotlabs/Module/Directory.php:261
+#: ../../Zotlabs/Module/Directory.php:266
msgid "Gender: "
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:263
+#: ../../Zotlabs/Module/Directory.php:268
msgid "Status: "
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:265
+#: ../../Zotlabs/Module/Directory.php:270
msgid "Homepage: "
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1565
+#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1564
msgid "Age:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1392
+#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1391
#: ../../include/event.php:54 ../../include/event.php:86
msgid "Location:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:325
+#: ../../Zotlabs/Module/Directory.php:330
msgid "Description:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:330 ../../include/channel.php:1581
+#: ../../Zotlabs/Module/Directory.php:335 ../../include/channel.php:1593
msgid "Hometown:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:332 ../../include/channel.php:1589
+#: ../../Zotlabs/Module/Directory.php:337 ../../include/channel.php:1599
msgid "About:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:333 ../../Zotlabs/Module/Suggest.php:56
+#: ../../Zotlabs/Module/Directory.php:338 ../../Zotlabs/Module/Suggest.php:56
#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44
-#: ../../include/conversation.php:1052 ../../include/channel.php:1377
-#: ../../include/connections.php:111
+#: ../../include/conversation.php:1052 ../../include/channel.php:1376
+#: ../../include/connections.php:110
msgid "Connect"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:334
+#: ../../Zotlabs/Module/Directory.php:339
msgid "Public Forum:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:337
+#: ../../Zotlabs/Module/Directory.php:342
msgid "Keywords: "
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:340
+#: ../../Zotlabs/Module/Directory.php:345
msgid "Don't suggest"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:342
+#: ../../Zotlabs/Module/Directory.php:347
msgid "Common connections (estimated):"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Global Directory"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Local Directory"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:397
+#: ../../Zotlabs/Module/Directory.php:402
msgid "Finding:"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:400 ../../Zotlabs/Module/Suggest.php:64
+#: ../../Zotlabs/Module/Directory.php:405 ../../Zotlabs/Module/Suggest.php:64
#: ../../include/contact_widgets.php:24
msgid "Channel Suggestions"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "next page"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "previous page"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:403
+#: ../../Zotlabs/Module/Directory.php:408
msgid "Sort options"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:404
+#: ../../Zotlabs/Module/Directory.php:409
msgid "Alphabetic"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:405
+#: ../../Zotlabs/Module/Directory.php:410
msgid "Reverse Alphabetic"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:406
+#: ../../Zotlabs/Module/Directory.php:411
msgid "Newest to Oldest"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:407
+#: ../../Zotlabs/Module/Directory.php:412
msgid "Oldest to Newest"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:424
+#: ../../Zotlabs/Module/Directory.php:429
msgid "No entries (some entries may be hidden)."
msgstr ""
@@ -6943,7 +7034,7 @@ msgid "Subject:"
msgstr ""
#: ../../Zotlabs/Module/Mail.php:287 ../../Zotlabs/Module/Mail.php:429
-#: ../../include/conversation.php:1382
+#: ../../include/conversation.php:1385
msgid "Attach file"
msgstr ""
@@ -6952,7 +7043,7 @@ msgid "Send"
msgstr ""
#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1430
msgid "Set expiration date"
msgstr ""
@@ -7173,7 +7264,7 @@ msgstr ""
msgid "Membership on this site is by invitation only."
msgstr ""
-#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1563
+#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1570
#: ../../include/nav.php:164
msgid "Register"
msgstr ""
@@ -7189,34 +7280,34 @@ msgstr ""
msgid "Cover Photos"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4508
+#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4558
msgid "female"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4509
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4559
#, php-format
msgid "%1$s updated her %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4510
+#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4560
msgid "male"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4511
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4561
#, php-format
msgid "%1$s updated his %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4513
+#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4563
#, php-format
msgid "%1$s updated their %2$s"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2059
+#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2070
msgid "cover photo"
msgstr ""
-#: ../../Zotlabs/Module/Cover_photo.php:360
+#: ../../Zotlabs/Module/Cover_photo.php:361
msgid "Change Cover Photo"
msgstr ""
@@ -7224,7 +7315,7 @@ msgstr ""
msgid "Documentation Search"
msgstr ""
-#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1821
+#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1824
#: ../../include/nav.php:391
msgid "About"
msgstr ""
@@ -7249,11 +7340,11 @@ msgstr ""
msgid "Contents"
msgstr ""
-#: ../../Zotlabs/Module/Display.php:351
+#: ../../Zotlabs/Module/Display.php:394
msgid "Article"
msgstr ""
-#: ../../Zotlabs/Module/Display.php:403
+#: ../../Zotlabs/Module/Display.php:446
msgid "Item has been removed."
msgstr ""
@@ -7285,19 +7376,19 @@ msgstr ""
msgid "Search Results For:"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:230
+#: ../../Zotlabs/Module/Network.php:229
msgid "Privacy group is empty"
msgstr ""
-#: ../../Zotlabs/Module/Network.php:240
+#: ../../Zotlabs/Module/Network.php:238
msgid "Privacy group: "
msgstr ""
-#: ../../Zotlabs/Module/Network.php:268
+#: ../../Zotlabs/Module/Network.php:265
msgid "Invalid connection."
msgstr ""
-#: ../../Zotlabs/Module/Network.php:289 ../../addon/redred/redred.php:65
+#: ../../Zotlabs/Module/Network.php:285 ../../addon/redred/redred.php:65
msgid "Invalid channel."
msgstr ""
@@ -7498,7 +7589,7 @@ msgid ""
"Password reset failed."
msgstr ""
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1591
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1598
msgid "Password Reset"
msgstr ""
@@ -7596,11 +7687,11 @@ msgstr ""
msgid "Remote Diagnostics"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:390
+#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:417
msgid "Suggest Channels"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1582 ../../include/nav.php:126
+#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1589 ../../include/nav.php:126
#: ../../include/nav.php:130
msgid "Login"
msgstr ""
@@ -7609,8 +7700,8 @@ msgstr ""
msgid "Activity"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1928
-#: ../../include/features.php:87 ../../include/nav.php:497
+#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1931
+#: ../../include/features.php:96 ../../include/nav.php:497
msgid "Wiki"
msgstr ""
@@ -7618,8 +7709,8 @@ msgstr ""
msgid "Channel Home"
msgstr ""
-#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1850
-#: ../../include/conversation.php:1853
+#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1853
+#: ../../include/conversation.php:1856
msgid "Events"
msgstr ""
@@ -7776,9 +7867,8 @@ msgctxt "wiki_history"
msgid "Message"
msgstr ""
-#: ../../Zotlabs/Lib/NativeWikiPage.php:597
-#: ../../addon/gitwiki/gitwiki_backend.php:579 ../../include/bbcode.php:706
-#: ../../include/bbcode.php:865
+#: ../../Zotlabs/Lib/NativeWikiPage.php:597 ../../include/bbcode.php:744
+#: ../../include/bbcode.php:914
msgid "Different viewers will see this text differently"
msgstr ""
@@ -7900,60 +7990,60 @@ msgstr ""
msgid "To stop receiving these messages, please adjust your %s."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:120
+#: ../../Zotlabs/Lib/Enotify.php:123
#, php-format
msgid "%s <!item_type!>"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:124
+#: ../../Zotlabs/Lib/Enotify.php:127
#, php-format
msgid "[$Projectname:Notify] New mail received at %s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:126
+#: ../../Zotlabs/Lib/Enotify.php:129
#, php-format
-msgid "%1$s, %2$s sent you a new private message at %3$s."
+msgid "%1$s sent you a new private message at %2$s."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:127
+#: ../../Zotlabs/Lib/Enotify.php:130
#, php-format
msgid "%1$s sent you %2$s."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:127
+#: ../../Zotlabs/Lib/Enotify.php:130
msgid "a private message"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:128
+#: ../../Zotlabs/Lib/Enotify.php:131
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:141
+#: ../../Zotlabs/Lib/Enotify.php:144
msgid "commented on"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:152
+#: ../../Zotlabs/Lib/Enotify.php:155
msgid "liked"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:155
+#: ../../Zotlabs/Lib/Enotify.php:158
msgid "disliked"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:198
+#: ../../Zotlabs/Lib/Enotify.php:201
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]a %5$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]a %4$s[/zrl]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:207
+#: ../../Zotlabs/Lib/Enotify.php:209
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]%5$s's %6$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]%4$s's %5$s[/zrl]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:217
+#: ../../Zotlabs/Lib/Enotify.php:218
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]your %5$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]your %4$s[/zrl]"
msgstr ""
#: ../../Zotlabs/Lib/Enotify.php:230
@@ -7968,12 +8058,12 @@ msgstr ""
#: ../../Zotlabs/Lib/Enotify.php:233
#, php-format
-msgid "%1$s, %2$s commented on an item/conversation you have been following."
+msgid "%1$s commented on an item/conversation you have been following."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:318
-#: ../../Zotlabs/Lib/Enotify.php:335 ../../Zotlabs/Lib/Enotify.php:361
-#: ../../Zotlabs/Lib/Enotify.php:379 ../../Zotlabs/Lib/Enotify.php:393
+#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:317
+#: ../../Zotlabs/Lib/Enotify.php:333 ../../Zotlabs/Lib/Enotify.php:358
+#: ../../Zotlabs/Lib/Enotify.php:375 ../../Zotlabs/Lib/Enotify.php:388
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr ""
@@ -7985,151 +8075,149 @@ msgstr ""
#: ../../Zotlabs/Lib/Enotify.php:299
#, php-format
-msgid "%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]"
+msgid "%1$s liked [zrl=%2$s]your %3$s[/zrl]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:314
+#: ../../Zotlabs/Lib/Enotify.php:313
#, php-format
msgid "[$Projectname:Notify] Like received to conversation #%1$d by %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:315
+#: ../../Zotlabs/Lib/Enotify.php:314
#, php-format
-msgid "%1$s, %2$s liked an item/conversation you created."
+msgid "%1$s liked an item/conversation you created."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:326
+#: ../../Zotlabs/Lib/Enotify.php:325
#, php-format
msgid "[$Projectname:Notify] %s posted to your profile wall"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:328
+#: ../../Zotlabs/Lib/Enotify.php:327
#, php-format
-msgid "%1$s, %2$s posted to your profile wall at %3$s"
+msgid "%1$s posted to your profile wall at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:330
+#: ../../Zotlabs/Lib/Enotify.php:329
#, php-format
-msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
+msgid "%1$s posted to [zrl=%2$s]your wall[/zrl]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:354
+#: ../../Zotlabs/Lib/Enotify.php:352
#, php-format
msgid "[$Projectname:Notify] %s tagged you"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:355
+#: ../../Zotlabs/Lib/Enotify.php:353
#, php-format
-msgid "%1$s, %2$s tagged you at %3$s"
+msgid "%1$s tagged you at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:356
+#: ../../Zotlabs/Lib/Enotify.php:354
#, php-format
-msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
+msgid "%1$s [zrl=%2$s]tagged you[/zrl]."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:368
+#: ../../Zotlabs/Lib/Enotify.php:365
#, php-format
msgid "[$Projectname:Notify] %1$s poked you"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:369
+#: ../../Zotlabs/Lib/Enotify.php:366
#, php-format
-msgid "%1$s, %2$s poked you at %3$s"
+msgid "%1$s poked you at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:370
+#: ../../Zotlabs/Lib/Enotify.php:367
#, php-format
-msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
+msgid "%1$s [zrl=%2$s]poked you[/zrl]."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:386
+#: ../../Zotlabs/Lib/Enotify.php:382
#, php-format
msgid "[$Projectname:Notify] %s tagged your post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:387
+#: ../../Zotlabs/Lib/Enotify.php:383
#, php-format
-msgid "%1$s, %2$s tagged your post at %3$s"
+msgid "%1$s tagged your post at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:388
+#: ../../Zotlabs/Lib/Enotify.php:384
#, php-format
-msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
+msgid "%1$s tagged [zrl=%2$s]your post[/zrl]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:400
+#: ../../Zotlabs/Lib/Enotify.php:395
msgid "[$Projectname:Notify] Introduction received"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:401
+#: ../../Zotlabs/Lib/Enotify.php:396
#, php-format
-msgid "%1$s, you've received an new connection request from '%2$s' at %3$s"
+msgid "You've received an new connection request from '%1$s' at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:402
+#: ../../Zotlabs/Lib/Enotify.php:397
#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s."
+msgid "You've received [zrl=%1$s]a new connection request[/zrl] from %2$s."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:406 ../../Zotlabs/Lib/Enotify.php:425
+#: ../../Zotlabs/Lib/Enotify.php:400 ../../Zotlabs/Lib/Enotify.php:418
#, php-format
msgid "You may visit their profile at %s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:408
+#: ../../Zotlabs/Lib/Enotify.php:402
#, php-format
msgid "Please visit %s to approve or reject the connection request."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:415
+#: ../../Zotlabs/Lib/Enotify.php:409
msgid "[$Projectname:Notify] Friend suggestion received"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:416
+#: ../../Zotlabs/Lib/Enotify.php:410
#, php-format
-msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
+msgid "You've received a friend suggestion from '%1$s' at %2$s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:417
+#: ../../Zotlabs/Lib/Enotify.php:411
#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s."
+msgid "You've received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:423
+#: ../../Zotlabs/Lib/Enotify.php:416
msgid "Name:"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:424
+#: ../../Zotlabs/Lib/Enotify.php:417
msgid "Photo:"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:427
+#: ../../Zotlabs/Lib/Enotify.php:420
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:647
+#: ../../Zotlabs/Lib/Enotify.php:640
msgid "[$Projectname:Notify]"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:815
+#: ../../Zotlabs/Lib/Enotify.php:808
msgid "created a new post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:816
+#: ../../Zotlabs/Lib/Enotify.php:809
#, php-format
msgid "commented on %s's post"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:823
+#: ../../Zotlabs/Lib/Enotify.php:816
#, php-format
msgid "edited a post dated %s"
msgstr ""
-#: ../../Zotlabs/Lib/Enotify.php:827
+#: ../../Zotlabs/Lib/Enotify.php:820
#, php-format
msgid "edited a comment dated %s"
msgstr ""
@@ -8138,7 +8226,7 @@ msgstr ""
msgid "Wiki updated successfully"
msgstr ""
-#: ../../Zotlabs/Lib/NativeWiki.php:198
+#: ../../Zotlabs/Lib/NativeWiki.php:205
msgid "Wiki files deleted successfully"
msgstr ""
@@ -8212,11 +8300,11 @@ msgstr ""
msgid "Add Tag"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:510
+#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:575
msgid "like"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:511
+#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:576
msgid "dislike"
msgstr ""
@@ -8309,51 +8397,51 @@ msgstr ""
msgid "%s show all"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/conversation.php:1377
+#: ../../Zotlabs/Lib/ThreadItem.php:753 ../../include/conversation.php:1380
msgid "Bold"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:752 ../../include/conversation.php:1378
+#: ../../Zotlabs/Lib/ThreadItem.php:754 ../../include/conversation.php:1381
msgid "Italic"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:753 ../../include/conversation.php:1379
+#: ../../Zotlabs/Lib/ThreadItem.php:755 ../../include/conversation.php:1382
msgid "Underline"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:754 ../../include/conversation.php:1380
+#: ../../Zotlabs/Lib/ThreadItem.php:756 ../../include/conversation.php:1383
msgid "Quote"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:755 ../../include/conversation.php:1381
+#: ../../Zotlabs/Lib/ThreadItem.php:757 ../../include/conversation.php:1384
msgid "Code"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:756
+#: ../../Zotlabs/Lib/ThreadItem.php:758
msgid "Image"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:757
+#: ../../Zotlabs/Lib/ThreadItem.php:759
msgid "Attach File"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:758
+#: ../../Zotlabs/Lib/ThreadItem.php:760
msgid "Insert Link"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:759
+#: ../../Zotlabs/Lib/ThreadItem.php:761
msgid "Video"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:769
+#: ../../Zotlabs/Lib/ThreadItem.php:771
msgid "Your full name (required)"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:770
+#: ../../Zotlabs/Lib/ThreadItem.php:772
msgid "Your email address (required)"
msgstr ""
-#: ../../Zotlabs/Lib/ThreadItem.php:771
+#: ../../Zotlabs/Lib/ThreadItem.php:773
msgid "Your website URL (optional)"
msgstr ""
@@ -8373,7 +8461,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2821
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2845
msgid "Collection"
msgstr ""
@@ -8406,6 +8494,10 @@ msgstr ""
msgid "Shared"
msgstr ""
+#: ../../Zotlabs/Storage/Browser.php:277
+msgid "Add Files"
+msgstr ""
+
#: ../../Zotlabs/Storage/Browser.php:353
#, php-format
msgid "You are using %1$s of your available file storage."
@@ -8513,10 +8605,10 @@ msgid "Select an addressbook to import to"
msgstr ""
#: ../../Zotlabs/Widget/Appcategories.php:40
-#: ../../Zotlabs/Widget/Tagcloud.php:25 ../../include/contact_widgets.php:97
-#: ../../include/contact_widgets.php:141 ../../include/contact_widgets.php:186
-#: ../../include/taxonomy.php:344 ../../include/taxonomy.php:426
-#: ../../include/taxonomy.php:446 ../../include/taxonomy.php:467
+#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
+#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409
+#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:532
msgid "Categories"
msgstr ""
@@ -8571,7 +8663,7 @@ msgid "New Message"
msgstr ""
#: ../../Zotlabs/Widget/Chatroom_list.php:16
-#: ../../include/conversation.php:1864 ../../include/conversation.php:1867
+#: ../../include/conversation.php:1867 ../../include/conversation.php:1870
#: ../../include/nav.php:434 ../../include/nav.php:437
msgid "Chatrooms"
msgstr ""
@@ -8614,7 +8706,7 @@ msgstr ""
msgid "Examples: bob@example.com, https://example.com/barbara"
msgstr ""
-#: ../../Zotlabs/Widget/Wiki_list.php:15 ../../addon/gitwiki/gitwiki.php:95
+#: ../../Zotlabs/Widget/Wiki_list.php:15
msgid "Wiki List"
msgstr ""
@@ -8654,7 +8746,7 @@ msgstr ""
msgid "Remove term"
msgstr ""
-#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:354
+#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:381
msgid "Saved Searches"
msgstr ""
@@ -8667,15 +8759,15 @@ msgid "Notes"
msgstr ""
#: ../../Zotlabs/Widget/Wiki_pages.php:32
-#: ../../Zotlabs/Widget/Wiki_pages.php:89 ../../addon/gitwiki/gitwiki.php:81
+#: ../../Zotlabs/Widget/Wiki_pages.php:89
msgid "Add new page"
msgstr ""
-#: ../../Zotlabs/Widget/Wiki_pages.php:83 ../../addon/gitwiki/gitwiki.php:76
+#: ../../Zotlabs/Widget/Wiki_pages.php:83
msgid "Wiki Pages"
msgstr ""
-#: ../../Zotlabs/Widget/Wiki_pages.php:94 ../../addon/gitwiki/gitwiki.php:82
+#: ../../Zotlabs/Widget/Wiki_pages.php:94
msgid "Page name"
msgstr ""
@@ -8696,7 +8788,7 @@ msgid "See more..."
msgstr ""
#: ../../Zotlabs/Widget/Filer.php:28 ../../include/contact_widgets.php:53
-#: ../../include/features.php:443
+#: ../../include/features.php:470
msgid "Saved Folders"
msgstr ""
@@ -8704,51 +8796,60 @@ msgstr ""
msgid "Click to show more"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:33
+#: ../../Zotlabs/Widget/Tagcloud.php:22 ../../include/taxonomy.php:320
+#: ../../include/taxonomy.php:449 ../../include/taxonomy.php:470
+msgid "Tags"
+msgstr ""
+
+#: ../../Zotlabs/Widget/Newmember.php:24
msgid "Profile Creation"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:35
+#: ../../Zotlabs/Widget/Newmember.php:26
msgid "Upload profile photo"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:36
+#: ../../Zotlabs/Widget/Newmember.php:27
msgid "Upload cover photo"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:37 ../../include/nav.php:119
+#: ../../Zotlabs/Widget/Newmember.php:28 ../../include/nav.php:119
msgid "Edit your profile"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:40
+#: ../../Zotlabs/Widget/Newmember.php:31
msgid "Find and Connect with others"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:44
+#: ../../Zotlabs/Widget/Newmember.php:33
+msgid "View the directory"
+msgstr ""
+
+#: ../../Zotlabs/Widget/Newmember.php:35
msgid "Manage your connections"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:47
+#: ../../Zotlabs/Widget/Newmember.php:38
msgid "Communicate"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:49
+#: ../../Zotlabs/Widget/Newmember.php:40
msgid "View your channel homepage"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:50
+#: ../../Zotlabs/Widget/Newmember.php:41
msgid "View your network stream"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:56
+#: ../../Zotlabs/Widget/Newmember.php:47
msgid "Documentation"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:67
-msgid "View public stream. Warning: not moderated"
+#: ../../Zotlabs/Widget/Newmember.php:58
+msgid "View public stream"
msgstr ""
-#: ../../Zotlabs/Widget/Newmember.php:71
+#: ../../Zotlabs/Widget/Newmember.php:62 ../../include/features.php:60
msgid "New Member Links"
msgstr ""
@@ -8801,14 +8902,18 @@ msgid "Export channel"
msgstr ""
#: ../../Zotlabs/Widget/Settings_menu.php:84
-msgid "Connected apps"
+msgid "OAuth1 apps"
+msgstr ""
+
+#: ../../Zotlabs/Widget/Settings_menu.php:92
+msgid "OAuth2 apps"
msgstr ""
-#: ../../Zotlabs/Widget/Settings_menu.php:100 ../../include/features.php:231
+#: ../../Zotlabs/Widget/Settings_menu.php:108 ../../include/features.php:240
msgid "Permission Groups"
msgstr ""
-#: ../../Zotlabs/Widget/Settings_menu.php:117
+#: ../../Zotlabs/Widget/Settings_menu.php:125
msgid "Premium Channel Settings"
msgstr ""
@@ -8946,53 +9051,57 @@ msgstr ""
msgid "Source channel not found."
msgstr ""
-#: ../../boot.php:1562
+#: ../../boot.php:1569
msgid "Create an account to access services and applications"
msgstr ""
-#: ../../boot.php:1581 ../../include/nav.php:111 ../../include/nav.php:140
+#: ../../boot.php:1588 ../../include/nav.php:111 ../../include/nav.php:140
#: ../../include/nav.php:159
msgid "Logout"
msgstr ""
-#: ../../boot.php:1585
+#: ../../boot.php:1592
msgid "Login/Email"
msgstr ""
-#: ../../boot.php:1586
+#: ../../boot.php:1593
msgid "Password"
msgstr ""
-#: ../../boot.php:1587
+#: ../../boot.php:1594
msgid "Remember me"
msgstr ""
-#: ../../boot.php:1590
+#: ../../boot.php:1597
msgid "Forgot your password?"
msgstr ""
-#: ../../boot.php:2347
+#: ../../boot.php:2354
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr ""
-#: ../../boot.php:2352
+#: ../../boot.php:2359
msgid "Website SSL certificate is not valid. Please correct."
msgstr ""
-#: ../../boot.php:2468
+#: ../../boot.php:2475
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr ""
-#: ../../boot.php:2473
+#: ../../boot.php:2480
msgid "Cron/Scheduled tasks not running."
msgstr ""
-#: ../../boot.php:2474 ../../include/datetime.php:232
+#: ../../boot.php:2481 ../../include/datetime.php:238
msgid "never"
msgstr ""
+#: ../../store/[data]/smarty3/compiled/a0a1289f91f53b2c12e4e0b45ffe8291540ba895_0.file.cover_photo.tpl.php:123
+msgid "Cover Photo"
+msgstr ""
+
#: ../../view/theme/redbasic_c/php/config.php:16
#: ../../view/theme/redbasic_c/php/config.php:19
#: ../../view/theme/redbasic/php/config.php:16
@@ -9234,6 +9343,10 @@ msgid ""
"share their own locations with the group."
msgstr ""
+#: ../../addon/rendezvous/rendezvous.php:232
+msgid "You have no rendezvous. Press the button above to create a rendezvous!"
+msgstr ""
+
#: ../../addon/skeleton/skeleton.php:59
msgid "Some setting"
msgstr ""
@@ -9246,30 +9359,30 @@ msgstr ""
msgid "Skeleton Settings"
msgstr ""
-#: ../../addon/gnusoc/gnusoc.php:247
+#: ../../addon/gnusoc/gnusoc.php:249
msgid "GNU-Social Protocol Settings updated."
msgstr ""
-#: ../../addon/gnusoc/gnusoc.php:266
+#: ../../addon/gnusoc/gnusoc.php:268
msgid ""
"The GNU-Social protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr ""
-#: ../../addon/gnusoc/gnusoc.php:269
+#: ../../addon/gnusoc/gnusoc.php:271
msgid "Enable the GNU-Social protocol for this channel"
msgstr ""
-#: ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/gnusoc/gnusoc.php:275
msgid "GNU-Social Protocol Settings"
msgstr ""
-#: ../../addon/gnusoc/gnusoc.php:464
+#: ../../addon/gnusoc/gnusoc.php:471
msgid "Follow"
msgstr ""
-#: ../../addon/gnusoc/gnusoc.php:467
+#: ../../addon/gnusoc/gnusoc.php:474
#, php-format
msgid "%1$s is now following %2$s"
msgstr ""
@@ -9315,7 +9428,7 @@ msgstr ""
msgid "Page to load after image selection."
msgstr ""
-#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1301
+#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1300
#: ../../include/nav.php:119
msgid "Edit Profile"
msgstr ""
@@ -9804,17 +9917,17 @@ msgstr ""
msgid "OpenID protocol error. No ID returned."
msgstr ""
-#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:290
+#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:300
msgid "Login failed."
msgstr ""
#: ../../addon/openid/Mod_Id.php:85 ../../include/selectors.php:49
-#: ../../include/selectors.php:66 ../../include/channel.php:1481
+#: ../../include/selectors.php:66 ../../include/channel.php:1480
msgid "Male"
msgstr ""
#: ../../addon/openid/Mod_Id.php:87 ../../include/selectors.php:49
-#: ../../include/selectors.php:66 ../../include/channel.php:1479
+#: ../../include/selectors.php:66 ../../include/channel.php:1478
msgid "Female"
msgstr ""
@@ -10001,38 +10114,38 @@ msgstr ""
msgid "declared undying love for"
msgstr ""
-#: ../../addon/diaspora/diaspora.php:778
+#: ../../addon/diaspora/diaspora.php:781
msgid "Diaspora Protocol Settings updated."
msgstr ""
-#: ../../addon/diaspora/diaspora.php:797
+#: ../../addon/diaspora/diaspora.php:800
msgid ""
"The Diaspora protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr ""
-#: ../../addon/diaspora/diaspora.php:800
+#: ../../addon/diaspora/diaspora.php:803
msgid "Enable the Diaspora protocol for this channel"
msgstr ""
-#: ../../addon/diaspora/diaspora.php:804
+#: ../../addon/diaspora/diaspora.php:807
msgid "Allow any Diaspora member to comment on your public posts"
msgstr ""
-#: ../../addon/diaspora/diaspora.php:808
+#: ../../addon/diaspora/diaspora.php:811
msgid "Prevent your hashtags from being redirected to other sites"
msgstr ""
-#: ../../addon/diaspora/diaspora.php:812
+#: ../../addon/diaspora/diaspora.php:815
msgid "Sign and forward posts and comments with no existing Diaspora signature"
msgstr ""
-#: ../../addon/diaspora/diaspora.php:817
+#: ../../addon/diaspora/diaspora.php:820
msgid "Followed hashtags (comma separated, do not include the #)"
msgstr ""
-#: ../../addon/diaspora/diaspora.php:822
+#: ../../addon/diaspora/diaspora.php:825
msgid "Diaspora Protocol Settings"
msgstr ""
@@ -10040,7 +10153,7 @@ msgstr ""
msgid "No username found in import file."
msgstr ""
-#: ../../addon/diaspora/import_diaspora.php:41 ../../include/import.php:62
+#: ../../addon/diaspora/import_diaspora.php:41 ../../include/import.php:67
msgid "Unable to create a unique channel address. Import failed."
msgstr ""
@@ -10335,6 +10448,32 @@ msgstr ""
msgid "text to include in all outgoing posts from this site"
msgstr ""
+#: ../../addon/fuzzloc/fuzzloc.php:148
+msgid "Fuzzloc Settings updated."
+msgstr ""
+
+#: ../../addon/fuzzloc/fuzzloc.php:175
+msgid ""
+"Fuzzloc allows you to blur your precise location if your channel uses "
+"browser location mapping."
+msgstr ""
+
+#: ../../addon/fuzzloc/fuzzloc.php:178
+msgid "Enable Fuzzloc Plugin"
+msgstr ""
+
+#: ../../addon/fuzzloc/fuzzloc.php:182
+msgid "Minimum offset in meters"
+msgstr ""
+
+#: ../../addon/fuzzloc/fuzzloc.php:186
+msgid "Maximum offset in meters"
+msgstr ""
+
+#: ../../addon/fuzzloc/fuzzloc.php:191
+msgid "Fuzzloc Settings"
+msgstr ""
+
#: ../../addon/rtof/rtof.php:45
msgid "Post to Friendica"
msgstr ""
@@ -10371,8 +10510,8 @@ msgstr ""
msgid "Hubzilla to Friendica Post Settings"
msgstr ""
-#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1397
-#: ../../include/channel.php:1568
+#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1396
+#: ../../include/channel.php:1567
msgid "Status:"
msgstr ""
@@ -10434,7 +10573,7 @@ msgid "No channels currently blocked"
msgstr ""
#: ../../addon/superblock/superblock.php:120
-msgid "\"Superblock\" Settings"
+msgid "Superblock Settings"
msgstr ""
#: ../../addon/superblock/superblock.php:345
@@ -10517,55 +10656,55 @@ msgstr ""
msgid "Number of logfiles to retain"
msgstr ""
-#: ../../addon/frphotos/frphotos.php:91
+#: ../../addon/frphotos/frphotos.php:92
msgid "Friendica Photo Album Import"
msgstr ""
-#: ../../addon/frphotos/frphotos.php:92
+#: ../../addon/frphotos/frphotos.php:93
msgid "This will import all your Friendica photo albums to this Red channel."
msgstr ""
-#: ../../addon/frphotos/frphotos.php:93
+#: ../../addon/frphotos/frphotos.php:94
msgid "Friendica Server base URL"
msgstr ""
-#: ../../addon/frphotos/frphotos.php:94
+#: ../../addon/frphotos/frphotos.php:95
msgid "Friendica Login Username"
msgstr ""
-#: ../../addon/frphotos/frphotos.php:95
+#: ../../addon/frphotos/frphotos.php:96
msgid "Friendica Login Password"
msgstr ""
-#: ../../addon/pubcrawl/as.php:1101 ../../addon/pubcrawl/as.php:1228
-#: ../../addon/pubcrawl/as.php:1403 ../../include/network.php:1774
+#: ../../addon/pubcrawl/as.php:1146 ../../addon/pubcrawl/as.php:1273
+#: ../../addon/pubcrawl/as.php:1449 ../../include/network.php:1769
msgid "ActivityPub"
msgstr ""
-#: ../../addon/pubcrawl/pubcrawl.php:1034
+#: ../../addon/pubcrawl/pubcrawl.php:1053
msgid "ActivityPub Protocol Settings updated."
msgstr ""
-#: ../../addon/pubcrawl/pubcrawl.php:1043
+#: ../../addon/pubcrawl/pubcrawl.php:1062
msgid ""
"The ActivityPub protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr ""
-#: ../../addon/pubcrawl/pubcrawl.php:1046
+#: ../../addon/pubcrawl/pubcrawl.php:1065
msgid "Enable the ActivityPub protocol for this channel"
msgstr ""
-#: ../../addon/pubcrawl/pubcrawl.php:1049
+#: ../../addon/pubcrawl/pubcrawl.php:1068
msgid "Send multi-media HTML articles"
msgstr ""
-#: ../../addon/pubcrawl/pubcrawl.php:1049
+#: ../../addon/pubcrawl/pubcrawl.php:1068
msgid "Not supported by some microblog services such as Mastodon"
msgstr ""
-#: ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/pubcrawl/pubcrawl.php:1072
msgid "ActivityPub Protocol Settings"
msgstr ""
@@ -10954,7 +11093,7 @@ msgstr ""
msgid "Error creating new game."
msgstr ""
-#: ../../addon/chess/chess.php:486 ../../include/channel.php:1152
+#: ../../addon/chess/chess.php:486 ../../include/channel.php:1151
msgid "Requested channel is not available."
msgstr ""
@@ -11008,8 +11147,8 @@ msgstr ""
#: ../../addon/twitter/twitter.php:243
msgid ""
-"Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, "
-"E7b13b11 ..."
+"If enabled your public postings can be posted to the associated Twitter "
+"account"
msgstr ""
#: ../../addon/twitter/twitter.php:247
@@ -11046,6 +11185,78 @@ msgstr ""
msgid "Smileybutton Settings"
msgstr ""
+#: ../../addon/cart/myshop.php:138
+msgid "Order Not Found"
+msgstr ""
+
+#: ../../addon/cart/cart.php:810
+msgid "Order cannot be checked out."
+msgstr ""
+
+#: ../../addon/cart/cart.php:1073
+msgid "Enable Shopping Cart"
+msgstr ""
+
+#: ../../addon/cart/cart.php:1080
+msgid "Enable Test Catalog"
+msgstr ""
+
+#: ../../addon/cart/cart.php:1088
+msgid "Enable Manual Payments"
+msgstr ""
+
+#: ../../addon/cart/cart.php:1103
+msgid "Base Cart Settings"
+msgstr ""
+
+#: ../../addon/cart/cart.php:1151
+msgid "Add Item"
+msgstr ""
+
+#: ../../addon/cart/cart.php:1165
+msgid "Call cart_post_"
+msgstr ""
+
+#: ../../addon/cart/cart.php:1195
+msgid "Cart Not Enabled (profile: "
+msgstr ""
+
+#: ../../addon/cart/cart.php:1226 ../../addon/cart/manual_payments.php:36
+msgid "Order not found."
+msgstr ""
+
+#: ../../addon/cart/cart.php:1262 ../../addon/cart/cart.php:1389
+msgid "No Order Found"
+msgstr ""
+
+#: ../../addon/cart/cart.php:1270
+msgid "call: "
+msgstr ""
+
+#: ../../addon/cart/cart.php:1273
+msgid "An unknown error has occurred Please start again."
+msgstr ""
+
+#: ../../addon/cart/cart.php:1414
+msgid "Invalid Payment Type. Please start again."
+msgstr ""
+
+#: ../../addon/cart/cart.php:1421
+msgid "Order not found"
+msgstr ""
+
+#: ../../addon/cart/manual_payments.php:9
+msgid "Error: order mismatch. Please try again."
+msgstr ""
+
+#: ../../addon/cart/manual_payments.php:29
+msgid "Manual payments are not enabled."
+msgstr ""
+
+#: ../../addon/cart/manual_payments.php:44
+msgid "Finished"
+msgstr ""
+
#: ../../addon/piwik/piwik.php:85
msgid ""
"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
@@ -11090,157 +11301,157 @@ msgstr ""
msgid "This feature requires Piwik >= 2.2.0"
msgstr ""
-#: ../../addon/tour/tour.php:75
+#: ../../addon/tour/tour.php:76
msgid "Edit your profile and change settings."
msgstr ""
-#: ../../addon/tour/tour.php:76
+#: ../../addon/tour/tour.php:77
msgid "Click here to see activity from your connections."
msgstr ""
-#: ../../addon/tour/tour.php:77
+#: ../../addon/tour/tour.php:78
msgid "Click here to see your channel home."
msgstr ""
-#: ../../addon/tour/tour.php:78
+#: ../../addon/tour/tour.php:79
msgid "You can access your private messages from here."
msgstr ""
-#: ../../addon/tour/tour.php:79
+#: ../../addon/tour/tour.php:80
msgid "Create new events here."
msgstr ""
-#: ../../addon/tour/tour.php:80
+#: ../../addon/tour/tour.php:81
msgid ""
"You can accept new connections and change permissions for existing ones "
"here. You can also e.g. create groups of contacts."
msgstr ""
-#: ../../addon/tour/tour.php:81
+#: ../../addon/tour/tour.php:82
msgid "System notifications will arrive here"
msgstr ""
-#: ../../addon/tour/tour.php:82
+#: ../../addon/tour/tour.php:83
msgid "Search for content and users"
msgstr ""
-#: ../../addon/tour/tour.php:83
+#: ../../addon/tour/tour.php:84
msgid "Browse for new contacts"
msgstr ""
-#: ../../addon/tour/tour.php:84
+#: ../../addon/tour/tour.php:85
msgid "Launch installed apps"
msgstr ""
-#: ../../addon/tour/tour.php:85
+#: ../../addon/tour/tour.php:86
msgid "Looking for help? Click here."
msgstr ""
-#: ../../addon/tour/tour.php:86
+#: ../../addon/tour/tour.php:87
msgid ""
"New events have occurred in your network. Click here to see what has "
"happened!"
msgstr ""
-#: ../../addon/tour/tour.php:87
+#: ../../addon/tour/tour.php:88
msgid "You have received a new private message. Click here to see from who!"
msgstr ""
-#: ../../addon/tour/tour.php:88
+#: ../../addon/tour/tour.php:89
msgid "There are events this week. Click here too see which!"
msgstr ""
-#: ../../addon/tour/tour.php:89
+#: ../../addon/tour/tour.php:90
msgid "You have received a new introduction. Click here to see who!"
msgstr ""
-#: ../../addon/tour/tour.php:90
+#: ../../addon/tour/tour.php:91
msgid ""
"There is a new system notification. Click here to see what has happened!"
msgstr ""
-#: ../../addon/tour/tour.php:93
+#: ../../addon/tour/tour.php:94
msgid "Click here to share text, images, videos and sound."
msgstr ""
-#: ../../addon/tour/tour.php:94
+#: ../../addon/tour/tour.php:95
msgid "You can write an optional title for your update (good for long posts)."
msgstr ""
-#: ../../addon/tour/tour.php:95
+#: ../../addon/tour/tour.php:96
msgid "Entering some categories here makes it easier to find your post later."
msgstr ""
-#: ../../addon/tour/tour.php:96
+#: ../../addon/tour/tour.php:97
msgid "Share photos, links, location, etc."
msgstr ""
-#: ../../addon/tour/tour.php:97
+#: ../../addon/tour/tour.php:98
msgid ""
"Only want to share content for a while? Make it expire at a certain date."
msgstr ""
-#: ../../addon/tour/tour.php:98
+#: ../../addon/tour/tour.php:99
msgid "You can password protect content."
msgstr ""
-#: ../../addon/tour/tour.php:99
+#: ../../addon/tour/tour.php:100
msgid "Choose who you share with."
msgstr ""
-#: ../../addon/tour/tour.php:101
+#: ../../addon/tour/tour.php:102
msgid "Click here when you are done."
msgstr ""
-#: ../../addon/tour/tour.php:104
+#: ../../addon/tour/tour.php:105
msgid "Adjust from which channels posts should be displayed."
msgstr ""
-#: ../../addon/tour/tour.php:105
+#: ../../addon/tour/tour.php:106
msgid "Only show posts from channels in the specified privacy group."
msgstr ""
-#: ../../addon/tour/tour.php:109
+#: ../../addon/tour/tour.php:110
msgid ""
"Easily find posts containing tags (keywords preceded by the \"#\" symbol)."
msgstr ""
-#: ../../addon/tour/tour.php:110
+#: ../../addon/tour/tour.php:111
msgid "Easily find posts in given category."
msgstr ""
-#: ../../addon/tour/tour.php:111
+#: ../../addon/tour/tour.php:112
msgid "Easily find posts by date."
msgstr ""
-#: ../../addon/tour/tour.php:112
+#: ../../addon/tour/tour.php:113
msgid ""
"Suggested users who have volounteered to be shown as suggestions, and who we "
"think you might find interesting."
msgstr ""
-#: ../../addon/tour/tour.php:113
+#: ../../addon/tour/tour.php:114
msgid "Here you see channels you have connected to."
msgstr ""
-#: ../../addon/tour/tour.php:114
+#: ../../addon/tour/tour.php:115
msgid "Save your search so you can repeat it at a later date."
msgstr ""
-#: ../../addon/tour/tour.php:117
+#: ../../addon/tour/tour.php:118
msgid ""
"If you see this icon you can be sure that the sender is who it say it is. It "
"is normal that it is not always possible to verify the sender, so the icon "
"will be missing sometimes. There is usually no need to worry about that."
msgstr ""
-#: ../../addon/tour/tour.php:118
+#: ../../addon/tour/tour.php:119
msgid ""
"Danger! It seems someone tried to forge a message! This message is not "
"necessarily from who it says it is from!"
msgstr ""
-#: ../../addon/tour/tour.php:125
+#: ../../addon/tour/tour.php:126
msgid ""
"Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can "
"pause it at any time and continue where you left off by reloading the page, "
@@ -11639,11 +11850,11 @@ msgstr ""
msgid "Hermaphrodite"
msgstr ""
-#: ../../include/selectors.php:49 ../../include/channel.php:1485
+#: ../../include/selectors.php:49 ../../include/channel.php:1484
msgid "Neuter"
msgstr ""
-#: ../../include/selectors.php:49 ../../include/channel.php:1487
+#: ../../include/selectors.php:49 ../../include/channel.php:1486
msgid "Non-specific"
msgstr ""
@@ -11889,10 +12100,6 @@ msgstr ""
msgid "Unfollow Thread"
msgstr ""
-#: ../../include/conversation.php:1042
-msgid "Activity/Posts"
-msgstr ""
-
#: ../../include/conversation.php:1062
msgid "Edit Connection"
msgstr ""
@@ -11954,175 +12161,175 @@ msgstr ""
msgid "Clear browser location"
msgstr ""
-#: ../../include/conversation.php:1314
+#: ../../include/conversation.php:1316
msgid "Tag term:"
msgstr ""
-#: ../../include/conversation.php:1315
+#: ../../include/conversation.php:1317
msgid "Where are you right now?"
msgstr ""
-#: ../../include/conversation.php:1320
+#: ../../include/conversation.php:1322
msgid "Choose a different album..."
msgstr ""
-#: ../../include/conversation.php:1324
+#: ../../include/conversation.php:1326
msgid "Comments enabled"
msgstr ""
-#: ../../include/conversation.php:1325
+#: ../../include/conversation.php:1327
msgid "Comments disabled"
msgstr ""
-#: ../../include/conversation.php:1372
+#: ../../include/conversation.php:1375
msgid "Page link name"
msgstr ""
-#: ../../include/conversation.php:1375
+#: ../../include/conversation.php:1378
msgid "Post as"
msgstr ""
-#: ../../include/conversation.php:1389
+#: ../../include/conversation.php:1392
msgid "Toggle voting"
msgstr ""
-#: ../../include/conversation.php:1392
+#: ../../include/conversation.php:1395
msgid "Disable comments"
msgstr ""
-#: ../../include/conversation.php:1393
+#: ../../include/conversation.php:1396
msgid "Toggle comments"
msgstr ""
-#: ../../include/conversation.php:1401
+#: ../../include/conversation.php:1404
msgid "Categories (optional, comma-separated list)"
msgstr ""
-#: ../../include/conversation.php:1424
+#: ../../include/conversation.php:1427
msgid "Other networks and post services"
msgstr ""
-#: ../../include/conversation.php:1430
+#: ../../include/conversation.php:1433
msgid "Set publish date"
msgstr ""
-#: ../../include/conversation.php:1690
+#: ../../include/conversation.php:1693
msgid "Commented Order"
msgstr ""
-#: ../../include/conversation.php:1693
+#: ../../include/conversation.php:1696
msgid "Sort by Comment Date"
msgstr ""
-#: ../../include/conversation.php:1697
+#: ../../include/conversation.php:1700
msgid "Posted Order"
msgstr ""
-#: ../../include/conversation.php:1700
+#: ../../include/conversation.php:1703
msgid "Sort by Post Date"
msgstr ""
-#: ../../include/conversation.php:1708
+#: ../../include/conversation.php:1711
msgid "Posts that mention or involve you"
msgstr ""
-#: ../../include/conversation.php:1717
+#: ../../include/conversation.php:1720
msgid "Activity Stream - by date"
msgstr ""
-#: ../../include/conversation.php:1723
+#: ../../include/conversation.php:1726
msgid "Starred"
msgstr ""
-#: ../../include/conversation.php:1726
+#: ../../include/conversation.php:1729
msgid "Favourite Posts"
msgstr ""
-#: ../../include/conversation.php:1733
+#: ../../include/conversation.php:1736
msgid "Spam"
msgstr ""
-#: ../../include/conversation.php:1736
+#: ../../include/conversation.php:1739
msgid "Posts flagged as SPAM"
msgstr ""
-#: ../../include/conversation.php:1811 ../../include/nav.php:381
+#: ../../include/conversation.php:1814 ../../include/nav.php:381
msgid "Status Messages and Posts"
msgstr ""
-#: ../../include/conversation.php:1824 ../../include/nav.php:394
+#: ../../include/conversation.php:1827 ../../include/nav.php:394
msgid "Profile Details"
msgstr ""
-#: ../../include/conversation.php:1834 ../../include/nav.php:404
-#: ../../include/photos.php:655
+#: ../../include/conversation.php:1837 ../../include/nav.php:404
+#: ../../include/photos.php:666
msgid "Photo Albums"
msgstr ""
-#: ../../include/conversation.php:1842 ../../include/nav.php:412
+#: ../../include/conversation.php:1845 ../../include/nav.php:412
msgid "Files and Storage"
msgstr ""
-#: ../../include/conversation.php:1879 ../../include/nav.php:447
+#: ../../include/conversation.php:1882 ../../include/nav.php:447
msgid "Bookmarks"
msgstr ""
-#: ../../include/conversation.php:1882 ../../include/nav.php:450
+#: ../../include/conversation.php:1885 ../../include/nav.php:450
msgid "Saved Bookmarks"
msgstr ""
-#: ../../include/conversation.php:1893 ../../include/nav.php:461
+#: ../../include/conversation.php:1896 ../../include/nav.php:461
msgid "View Cards"
msgstr ""
-#: ../../include/conversation.php:1901
+#: ../../include/conversation.php:1904
msgid "articles"
msgstr ""
-#: ../../include/conversation.php:1904 ../../include/nav.php:472
+#: ../../include/conversation.php:1907 ../../include/nav.php:472
msgid "View Articles"
msgstr ""
-#: ../../include/conversation.php:1915 ../../include/nav.php:484
+#: ../../include/conversation.php:1918 ../../include/nav.php:484
msgid "View Webpages"
msgstr ""
-#: ../../include/conversation.php:1984
+#: ../../include/conversation.php:1987
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1987
+#: ../../include/conversation.php:1990
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1990
+#: ../../include/conversation.php:1993
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1993
+#: ../../include/conversation.php:1996
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1996
+#: ../../include/conversation.php:1999
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/conversation.php:1999
+#: ../../include/conversation.php:2002
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -12150,12 +12357,16 @@ msgstr ""
msgid "%1$s's bookmarks"
msgstr ""
-#: ../../include/import.php:41
+#: ../../include/import.php:25
+msgid "Unable to import a removed channel."
+msgstr ""
+
+#: ../../include/import.php:46
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr ""
-#: ../../include/import.php:106
+#: ../../include/import.php:111
msgid "Cloned channel not found. Import failed."
msgstr ""
@@ -12400,7 +12611,7 @@ msgstr ""
msgid "Unknown Attachment"
msgstr ""
-#: ../../include/text.php:1434 ../../include/feedutils.php:852
+#: ../../include/text.php:1434 ../../include/feedutils.php:860
msgid "unknown"
msgstr ""
@@ -12416,107 +12627,107 @@ msgstr ""
msgid "Download binary/encrypted content"
msgstr ""
-#: ../../include/text.php:1848 ../../include/language.php:397
+#: ../../include/text.php:1849 ../../include/language.php:397
msgid "default"
msgstr ""
-#: ../../include/text.php:1856
+#: ../../include/text.php:1857
msgid "Page layout"
msgstr ""
-#: ../../include/text.php:1856
+#: ../../include/text.php:1857
msgid "You can create your own with the layouts tool"
msgstr ""
-#: ../../include/text.php:1867
+#: ../../include/text.php:1868
msgid "HTML"
msgstr ""
-#: ../../include/text.php:1870
+#: ../../include/text.php:1871
msgid "Comanche Layout"
msgstr ""
-#: ../../include/text.php:1875
+#: ../../include/text.php:1876
msgid "PHP"
msgstr ""
-#: ../../include/text.php:1884
+#: ../../include/text.php:1885
msgid "Page content type"
msgstr ""
-#: ../../include/text.php:2017
+#: ../../include/text.php:2018
msgid "activity"
msgstr ""
-#: ../../include/text.php:2099
+#: ../../include/text.php:2100
msgid "a-z, 0-9, -, and _ only"
msgstr ""
-#: ../../include/text.php:2399
+#: ../../include/text.php:2419
msgid "Design Tools"
msgstr ""
-#: ../../include/text.php:2405
+#: ../../include/text.php:2425
msgid "Pages"
msgstr ""
-#: ../../include/text.php:2427
+#: ../../include/text.php:2447
msgid "Import website..."
msgstr ""
-#: ../../include/text.php:2428
+#: ../../include/text.php:2448
msgid "Select folder to import"
msgstr ""
-#: ../../include/text.php:2429
+#: ../../include/text.php:2449
msgid "Import from a zipped folder:"
msgstr ""
-#: ../../include/text.php:2430
+#: ../../include/text.php:2450
msgid "Import from cloud files:"
msgstr ""
-#: ../../include/text.php:2431
+#: ../../include/text.php:2451
msgid "/cloud/channel/path/to/folder"
msgstr ""
-#: ../../include/text.php:2432
+#: ../../include/text.php:2452
msgid "Enter path to website files"
msgstr ""
-#: ../../include/text.php:2433
+#: ../../include/text.php:2453
msgid "Select folder"
msgstr ""
-#: ../../include/text.php:2434
+#: ../../include/text.php:2454
msgid "Export website..."
msgstr ""
-#: ../../include/text.php:2435
+#: ../../include/text.php:2455
msgid "Export to a zip file"
msgstr ""
-#: ../../include/text.php:2436
+#: ../../include/text.php:2456
msgid "website.zip"
msgstr ""
-#: ../../include/text.php:2437
+#: ../../include/text.php:2457
msgid "Enter a name for the zip file."
msgstr ""
-#: ../../include/text.php:2438
+#: ../../include/text.php:2458
msgid "Export to cloud files"
msgstr ""
-#: ../../include/text.php:2439
+#: ../../include/text.php:2459
msgid "/path/to/export/folder"
msgstr ""
-#: ../../include/text.php:2440
+#: ../../include/text.php:2460
msgid "Enter a path to a cloud files destination."
msgstr ""
-#: ../../include/text.php:2441
+#: ../../include/text.php:2461
msgid "Specify folder"
msgstr ""
@@ -12564,7 +12775,7 @@ msgstr ""
msgid "View all %d common connections"
msgstr ""
-#: ../../include/markdown.php:158 ../../include/bbcode.php:343
+#: ../../include/markdown.php:158 ../../include/bbcode.php:356
#, php-format
msgid "%1$s wrote the following %2$s %3$s"
msgstr ""
@@ -12581,23 +12792,27 @@ msgstr ""
msgid "Response from remote channel was incomplete."
msgstr ""
-#: ../../include/follow.php:101
+#: ../../include/follow.php:96
+msgid "Premium channel - please visit:"
+msgstr ""
+
+#: ../../include/follow.php:110
msgid "Channel was deleted and no longer exists."
msgstr ""
-#: ../../include/follow.php:156
+#: ../../include/follow.php:165
msgid "Remote channel or protocol unavailable."
msgstr ""
-#: ../../include/follow.php:179
+#: ../../include/follow.php:188
msgid "Channel discovery failed."
msgstr ""
-#: ../../include/follow.php:191
+#: ../../include/follow.php:200
msgid "Protocol disabled."
msgstr ""
-#: ../../include/follow.php:202
+#: ../../include/follow.php:211
msgid "Cannot connect to yourself."
msgstr ""
@@ -12917,39 +13132,39 @@ msgstr ""
msgid "File upload failed. Possible system limit or action terminated."
msgstr ""
-#: ../../include/attach.php:959
+#: ../../include/attach.php:969
msgid "Stored file could not be verified. Upload failed."
msgstr ""
-#: ../../include/attach.php:1033 ../../include/attach.php:1049
+#: ../../include/attach.php:1043 ../../include/attach.php:1059
msgid "Path not available."
msgstr ""
-#: ../../include/attach.php:1098 ../../include/attach.php:1263
+#: ../../include/attach.php:1108 ../../include/attach.php:1273
msgid "Empty pathname"
msgstr ""
-#: ../../include/attach.php:1124
+#: ../../include/attach.php:1134
msgid "duplicate filename or path"
msgstr ""
-#: ../../include/attach.php:1149
+#: ../../include/attach.php:1159
msgid "Path not found."
msgstr ""
-#: ../../include/attach.php:1217
+#: ../../include/attach.php:1227
msgid "mkdir failed."
msgstr ""
-#: ../../include/attach.php:1221
+#: ../../include/attach.php:1231
msgid "database storage failed."
msgstr ""
-#: ../../include/attach.php:1269
+#: ../../include/attach.php:1279
msgid "Empty path"
msgstr ""
-#: ../../include/security.php:532
+#: ../../include/security.php:541
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
@@ -12959,67 +13174,67 @@ msgstr ""
msgid "(Unknown)"
msgstr ""
-#: ../../include/items.php:1129
+#: ../../include/items.php:1133
msgid "Visible to anybody on the internet."
msgstr ""
-#: ../../include/items.php:1131
+#: ../../include/items.php:1135
msgid "Visible to you only."
msgstr ""
-#: ../../include/items.php:1133
+#: ../../include/items.php:1137
msgid "Visible to anybody in this network."
msgstr ""
-#: ../../include/items.php:1135
+#: ../../include/items.php:1139
msgid "Visible to anybody authenticated."
msgstr ""
-#: ../../include/items.php:1137
+#: ../../include/items.php:1141
#, php-format
msgid "Visible to anybody on %s."
msgstr ""
-#: ../../include/items.php:1139
+#: ../../include/items.php:1143
msgid "Visible to all connections."
msgstr ""
-#: ../../include/items.php:1141
+#: ../../include/items.php:1145
msgid "Visible to approved connections."
msgstr ""
-#: ../../include/items.php:1143
+#: ../../include/items.php:1147
msgid "Visible to specific connections."
msgstr ""
-#: ../../include/items.php:4147
+#: ../../include/items.php:4197
msgid "Privacy group is empty."
msgstr ""
-#: ../../include/items.php:4154
+#: ../../include/items.php:4204
#, php-format
msgid "Privacy group: %s"
msgstr ""
-#: ../../include/items.php:4166
+#: ../../include/items.php:4216
msgid "Connection not found."
msgstr ""
-#: ../../include/items.php:4515
+#: ../../include/items.php:4565
msgid "profile photo"
msgstr ""
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
#, php-format
msgid "[Edited %s]"
msgstr ""
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
msgctxt "edit_activity"
msgid "Post"
msgstr ""
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
msgctxt "edit_activity"
msgid "Comment"
msgstr ""
@@ -13056,120 +13271,120 @@ msgstr ""
msgid "Unable to retrieve modified identity"
msgstr ""
-#: ../../include/channel.php:1298
+#: ../../include/channel.php:1297
msgid "Create New Profile"
msgstr ""
-#: ../../include/channel.php:1319
+#: ../../include/channel.php:1318
msgid "Visible to everybody"
msgstr ""
-#: ../../include/channel.php:1396 ../../include/channel.php:1524
+#: ../../include/channel.php:1395 ../../include/channel.php:1523
msgid "Gender:"
msgstr ""
-#: ../../include/channel.php:1398 ../../include/channel.php:1579
+#: ../../include/channel.php:1397 ../../include/channel.php:1591
msgid "Homepage:"
msgstr ""
-#: ../../include/channel.php:1399
+#: ../../include/channel.php:1398
msgid "Online Now"
msgstr ""
-#: ../../include/channel.php:1452
+#: ../../include/channel.php:1451
msgid "Change your profile photo"
msgstr ""
-#: ../../include/channel.php:1483
+#: ../../include/channel.php:1482
msgid "Trans"
msgstr ""
-#: ../../include/channel.php:1529
+#: ../../include/channel.php:1528
msgid "Like this channel"
msgstr ""
-#: ../../include/channel.php:1553
+#: ../../include/channel.php:1552
msgid "j F, Y"
msgstr ""
-#: ../../include/channel.php:1554
+#: ../../include/channel.php:1553
msgid "j F"
msgstr ""
-#: ../../include/channel.php:1561
+#: ../../include/channel.php:1560
msgid "Birthday:"
msgstr ""
-#: ../../include/channel.php:1574
+#: ../../include/channel.php:1573
#, php-format
msgid "for %1$d %2$s"
msgstr ""
-#: ../../include/channel.php:1577
-msgid "Sexual Preference:"
+#: ../../include/channel.php:1585
+msgid "Tags:"
msgstr ""
-#: ../../include/channel.php:1583
-msgid "Tags:"
+#: ../../include/channel.php:1589
+msgid "Sexual Preference:"
msgstr ""
-#: ../../include/channel.php:1585
+#: ../../include/channel.php:1595
msgid "Political Views:"
msgstr ""
-#: ../../include/channel.php:1587
+#: ../../include/channel.php:1597
msgid "Religion:"
msgstr ""
-#: ../../include/channel.php:1591
+#: ../../include/channel.php:1601
msgid "Hobbies/Interests:"
msgstr ""
-#: ../../include/channel.php:1593
+#: ../../include/channel.php:1603
msgid "Likes:"
msgstr ""
-#: ../../include/channel.php:1595
+#: ../../include/channel.php:1605
msgid "Dislikes:"
msgstr ""
-#: ../../include/channel.php:1597
+#: ../../include/channel.php:1607
msgid "Contact information and Social Networks:"
msgstr ""
-#: ../../include/channel.php:1599
+#: ../../include/channel.php:1609
msgid "My other channels:"
msgstr ""
-#: ../../include/channel.php:1601
+#: ../../include/channel.php:1611
msgid "Musical interests:"
msgstr ""
-#: ../../include/channel.php:1603
+#: ../../include/channel.php:1613
msgid "Books, literature:"
msgstr ""
-#: ../../include/channel.php:1605
+#: ../../include/channel.php:1615
msgid "Television:"
msgstr ""
-#: ../../include/channel.php:1607
+#: ../../include/channel.php:1617
msgid "Film/dance/culture/entertainment:"
msgstr ""
-#: ../../include/channel.php:1609
+#: ../../include/channel.php:1619
msgid "Love/Romance:"
msgstr ""
-#: ../../include/channel.php:1611
+#: ../../include/channel.php:1621
msgid "Work/employment:"
msgstr ""
-#: ../../include/channel.php:1613
+#: ../../include/channel.php:1623
msgid "School/education:"
msgstr ""
-#: ../../include/channel.php:1636
+#: ../../include/channel.php:1646
msgid "Like this thing"
msgstr ""
@@ -13209,19 +13424,19 @@ msgstr ""
msgid "Cancelled"
msgstr ""
-#: ../../include/event.php:1310 ../../include/connections.php:684
+#: ../../include/event.php:1310 ../../include/connections.php:692
msgid "Home, Voice"
msgstr ""
-#: ../../include/event.php:1311 ../../include/connections.php:685
+#: ../../include/event.php:1311 ../../include/connections.php:693
msgid "Home, Fax"
msgstr ""
-#: ../../include/event.php:1313 ../../include/connections.php:687
+#: ../../include/event.php:1313 ../../include/connections.php:695
msgid "Work, Voice"
msgstr ""
-#: ../../include/event.php:1314 ../../include/connections.php:688
+#: ../../include/event.php:1314 ../../include/connections.php:696
msgid "Work, Fax"
msgstr ""
@@ -13229,43 +13444,43 @@ msgstr ""
msgid "view full size"
msgstr ""
-#: ../../include/network.php:1769 ../../include/network.php:1770
+#: ../../include/network.php:1764 ../../include/network.php:1765
msgid "Friendica"
msgstr ""
-#: ../../include/network.php:1771
+#: ../../include/network.php:1766
msgid "OStatus"
msgstr ""
-#: ../../include/network.php:1772
+#: ../../include/network.php:1767
msgid "GNU-Social"
msgstr ""
-#: ../../include/network.php:1773
+#: ../../include/network.php:1768
msgid "RSS/Atom"
msgstr ""
-#: ../../include/network.php:1776
+#: ../../include/network.php:1771
msgid "Diaspora"
msgstr ""
-#: ../../include/network.php:1777
+#: ../../include/network.php:1772
msgid "Facebook"
msgstr ""
-#: ../../include/network.php:1778
+#: ../../include/network.php:1773
msgid "Zot"
msgstr ""
-#: ../../include/network.php:1779
+#: ../../include/network.php:1774
msgid "LinkedIn"
msgstr ""
-#: ../../include/network.php:1780
+#: ../../include/network.php:1775
msgid "XMPP/IM"
msgstr ""
-#: ../../include/network.php:1781
+#: ../../include/network.php:1776
msgid "MySpace"
msgstr ""
@@ -13307,17 +13522,17 @@ msgstr ""
msgid "Cannot locate DNS info for database server '%s'"
msgstr ""
-#: ../../include/bbcode.php:198 ../../include/bbcode.php:1151
-#: ../../include/bbcode.php:1154 ../../include/bbcode.php:1159
-#: ../../include/bbcode.php:1162 ../../include/bbcode.php:1165
-#: ../../include/bbcode.php:1168 ../../include/bbcode.php:1173
-#: ../../include/bbcode.php:1176 ../../include/bbcode.php:1181
-#: ../../include/bbcode.php:1184 ../../include/bbcode.php:1187
-#: ../../include/bbcode.php:1190
+#: ../../include/bbcode.php:198 ../../include/bbcode.php:1200
+#: ../../include/bbcode.php:1203 ../../include/bbcode.php:1208
+#: ../../include/bbcode.php:1211 ../../include/bbcode.php:1214
+#: ../../include/bbcode.php:1217 ../../include/bbcode.php:1222
+#: ../../include/bbcode.php:1225 ../../include/bbcode.php:1230
+#: ../../include/bbcode.php:1233 ../../include/bbcode.php:1236
+#: ../../include/bbcode.php:1239
msgid "Image/photo"
msgstr ""
-#: ../../include/bbcode.php:237 ../../include/bbcode.php:1201
+#: ../../include/bbcode.php:237 ../../include/bbcode.php:1250
msgid "Encrypted content"
msgstr ""
@@ -13335,565 +13550,587 @@ msgstr ""
msgid "card"
msgstr ""
-#: ../../include/bbcode.php:335
+#: ../../include/bbcode.php:348
msgid "card"
msgstr ""
-#: ../../include/bbcode.php:337
+#: ../../include/bbcode.php:350
msgid "article"
msgstr ""
-#: ../../include/bbcode.php:420 ../../include/bbcode.php:428
+#: ../../include/bbcode.php:433 ../../include/bbcode.php:441
msgid "Click to open/close"
msgstr ""
-#: ../../include/bbcode.php:428
+#: ../../include/bbcode.php:441
msgid "spoiler"
msgstr ""
-#: ../../include/bbcode.php:441
+#: ../../include/bbcode.php:454
msgid "View article"
msgstr ""
-#: ../../include/bbcode.php:441
+#: ../../include/bbcode.php:454
msgid "View summary"
msgstr ""
-#: ../../include/bbcode.php:1139
+#: ../../include/bbcode.php:1188
msgid "$1 wrote:"
msgstr ""
-#: ../../include/oembed.php:328
+#: ../../include/oembed.php:329
msgid " by "
msgstr ""
-#: ../../include/oembed.php:329
+#: ../../include/oembed.php:330
msgid " on "
msgstr ""
-#: ../../include/oembed.php:358
+#: ../../include/oembed.php:359
msgid "Embedded content"
msgstr ""
-#: ../../include/oembed.php:367
+#: ../../include/oembed.php:368
msgid "Embedding disabled"
msgstr ""
-#: ../../include/zid.php:346
+#: ../../include/zid.php:347
#, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr ""
-#: ../../include/features.php:54
+#: ../../include/features.php:56
msgid "General Features"
msgstr ""
-#: ../../include/features.php:60
+#: ../../include/features.php:61
+msgid "Display new member quick links menu"
+msgstr ""
+
+#: ../../include/features.php:69
msgid "Advanced Profiles"
msgstr ""
-#: ../../include/features.php:61
+#: ../../include/features.php:70
msgid "Additional profile sections and selections"
msgstr ""
-#: ../../include/features.php:69
+#: ../../include/features.php:78
msgid "Profile Import/Export"
msgstr ""
-#: ../../include/features.php:70
+#: ../../include/features.php:79
msgid "Save and load profile details across sites/channels"
msgstr ""
-#: ../../include/features.php:78
+#: ../../include/features.php:87
msgid "Web Pages"
msgstr ""
-#: ../../include/features.php:79
+#: ../../include/features.php:88
msgid "Provide managed web pages on your channel"
msgstr ""
-#: ../../include/features.php:88
+#: ../../include/features.php:97
msgid "Provide a wiki for your channel"
msgstr ""
-#: ../../include/features.php:105
+#: ../../include/features.php:114
msgid "Private Notes"
msgstr ""
-#: ../../include/features.php:106
+#: ../../include/features.php:115
msgid "Enables a tool to store notes and reminders (note: not encrypted)"
msgstr ""
-#: ../../include/features.php:115
+#: ../../include/features.php:124
msgid "Create personal planning cards"
msgstr ""
-#: ../../include/features.php:125
+#: ../../include/features.php:134
msgid "Create interactive articles"
msgstr ""
-#: ../../include/features.php:133
+#: ../../include/features.php:142
msgid "Navigation Channel Select"
msgstr ""
-#: ../../include/features.php:134
+#: ../../include/features.php:143
msgid "Change channels directly from within the navigation dropdown menu"
msgstr ""
-#: ../../include/features.php:142
+#: ../../include/features.php:151
msgid "Photo Location"
msgstr ""
-#: ../../include/features.php:143
+#: ../../include/features.php:152
msgid "If location data is available on uploaded photos, link this to a map."
msgstr ""
-#: ../../include/features.php:151
+#: ../../include/features.php:160
msgid "Access Controlled Chatrooms"
msgstr ""
-#: ../../include/features.php:152
+#: ../../include/features.php:161
msgid "Provide chatrooms and chat services with access control."
msgstr ""
-#: ../../include/features.php:161
+#: ../../include/features.php:170
msgid "Smart Birthdays"
msgstr ""
-#: ../../include/features.php:162
+#: ../../include/features.php:171
msgid ""
"Make birthday events timezone aware in case your friends are scattered "
"across the planet."
msgstr ""
-#: ../../include/features.php:170
+#: ../../include/features.php:179
msgid "Event Timezone Selection"
msgstr ""
-#: ../../include/features.php:171
+#: ../../include/features.php:180
msgid "Allow event creation in timezones other than your own."
msgstr ""
-#: ../../include/features.php:180
+#: ../../include/features.php:189
msgid "Premium Channel"
msgstr ""
-#: ../../include/features.php:181
+#: ../../include/features.php:190
msgid ""
"Allows you to set restrictions and terms on those that connect with your "
"channel"
msgstr ""
-#: ../../include/features.php:189
+#: ../../include/features.php:198
msgid "Advanced Directory Search"
msgstr ""
-#: ../../include/features.php:190
+#: ../../include/features.php:199
msgid "Allows creation of complex directory search queries"
msgstr ""
-#: ../../include/features.php:198
+#: ../../include/features.php:207
msgid "Advanced Theme and Layout Settings"
msgstr ""
-#: ../../include/features.php:199
+#: ../../include/features.php:208
msgid "Allows fine tuning of themes and page layouts"
msgstr ""
-#: ../../include/features.php:208
+#: ../../include/features.php:217
msgid "Access Control and Permissions"
msgstr ""
-#: ../../include/features.php:212 ../../include/group.php:328
+#: ../../include/features.php:221 ../../include/group.php:328
msgid "Privacy Groups"
msgstr ""
-#: ../../include/features.php:213
+#: ../../include/features.php:222
msgid "Enable management and selection of privacy groups"
msgstr ""
-#: ../../include/features.php:221
+#: ../../include/features.php:230
msgid "Multiple Profiles"
msgstr ""
-#: ../../include/features.php:222
+#: ../../include/features.php:231
msgid "Ability to create multiple profiles"
msgstr ""
-#: ../../include/features.php:232
+#: ../../include/features.php:241
msgid "Provide alternate connection permission roles."
msgstr ""
-#: ../../include/features.php:240
-msgid "OAuth Clients"
+#: ../../include/features.php:249
+msgid "OAuth1 Clients"
msgstr ""
-#: ../../include/features.php:241
-msgid "Manage authenticatication tokens for mobile and remote apps."
+#: ../../include/features.php:250
+msgid "Manage OAuth1 authenticatication tokens for mobile and remote apps."
msgstr ""
-#: ../../include/features.php:249
+#: ../../include/features.php:258
+msgid "OAuth2 Clients"
+msgstr ""
+
+#: ../../include/features.php:259
+msgid "Manage OAuth2 authenticatication tokens for mobile and remote apps."
+msgstr ""
+
+#: ../../include/features.php:267
msgid "Access Tokens"
msgstr ""
-#: ../../include/features.php:250
+#: ../../include/features.php:268
msgid "Create access tokens so that non-members can access private content."
msgstr ""
-#: ../../include/features.php:261
+#: ../../include/features.php:279
msgid "Post Composition Features"
msgstr ""
-#: ../../include/features.php:265
+#: ../../include/features.php:283
msgid "Large Photos"
msgstr ""
-#: ../../include/features.php:266
+#: ../../include/features.php:284
msgid ""
"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
"(640px) photo thumbnails"
msgstr ""
-#: ../../include/features.php:275
+#: ../../include/features.php:293
msgid "Automatically import channel content from other channels or feeds"
msgstr ""
-#: ../../include/features.php:283
+#: ../../include/features.php:301
msgid "Even More Encryption"
msgstr ""
-#: ../../include/features.php:284
+#: ../../include/features.php:302
msgid ""
"Allow optional encryption of content end-to-end with a shared secret key"
msgstr ""
-#: ../../include/features.php:292
+#: ../../include/features.php:310
msgid "Enable Voting Tools"
msgstr ""
-#: ../../include/features.php:293
+#: ../../include/features.php:311
msgid "Provide a class of post which others can vote on"
msgstr ""
-#: ../../include/features.php:301
+#: ../../include/features.php:319
msgid "Disable Comments"
msgstr ""
-#: ../../include/features.php:302
+#: ../../include/features.php:320
msgid "Provide the option to disable comments for a post"
msgstr ""
-#: ../../include/features.php:310
+#: ../../include/features.php:328
msgid "Delayed Posting"
msgstr ""
-#: ../../include/features.php:311
+#: ../../include/features.php:329
msgid "Allow posts to be published at a later date"
msgstr ""
-#: ../../include/features.php:319
+#: ../../include/features.php:337
msgid "Content Expiration"
msgstr ""
-#: ../../include/features.php:320
+#: ../../include/features.php:338
msgid "Remove posts/comments and/or private messages at a future time"
msgstr ""
-#: ../../include/features.php:328
+#: ../../include/features.php:346
msgid "Suppress Duplicate Posts/Comments"
msgstr ""
-#: ../../include/features.php:329
+#: ../../include/features.php:347
msgid ""
"Prevent posts with identical content to be published with less than two "
"minutes in between submissions."
msgstr ""
-#: ../../include/features.php:340
+#: ../../include/features.php:355
+msgid "Auto-save drafts of posts and comments"
+msgstr ""
+
+#: ../../include/features.php:356
+msgid ""
+"Automatically saves post and comment drafts in local browser storage to help "
+"prevent accidental loss of compositions"
+msgstr ""
+
+#: ../../include/features.php:367
msgid "Network and Stream Filtering"
msgstr ""
-#: ../../include/features.php:344
+#: ../../include/features.php:371
msgid "Search by Date"
msgstr ""
-#: ../../include/features.php:345
+#: ../../include/features.php:372
msgid "Ability to select posts by date ranges"
msgstr ""
-#: ../../include/features.php:355
+#: ../../include/features.php:382
msgid "Save search terms for re-use"
msgstr ""
-#: ../../include/features.php:363
+#: ../../include/features.php:390
msgid "Network Personal Tab"
msgstr ""
-#: ../../include/features.php:364
+#: ../../include/features.php:391
msgid "Enable tab to display only Network posts that you've interacted on"
msgstr ""
-#: ../../include/features.php:372
+#: ../../include/features.php:399
msgid "Network New Tab"
msgstr ""
-#: ../../include/features.php:373
+#: ../../include/features.php:400
msgid "Enable tab to display all new Network activity"
msgstr ""
-#: ../../include/features.php:381
+#: ../../include/features.php:408
msgid "Affinity Tool"
msgstr ""
-#: ../../include/features.php:382
+#: ../../include/features.php:409
msgid "Filter stream activity by depth of relationships"
msgstr ""
-#: ../../include/features.php:391
+#: ../../include/features.php:418
msgid "Show friend and connection suggestions"
msgstr ""
-#: ../../include/features.php:399
+#: ../../include/features.php:426
msgid "Connection Filtering"
msgstr ""
-#: ../../include/features.php:400
+#: ../../include/features.php:427
msgid "Filter incoming posts from connections based on keywords/content"
msgstr ""
-#: ../../include/features.php:412
+#: ../../include/features.php:439
msgid "Post/Comment Tools"
msgstr ""
-#: ../../include/features.php:416
+#: ../../include/features.php:443
msgid "Community Tagging"
msgstr ""
-#: ../../include/features.php:417
+#: ../../include/features.php:444
msgid "Ability to tag existing posts"
msgstr ""
-#: ../../include/features.php:425
+#: ../../include/features.php:452
msgid "Post Categories"
msgstr ""
-#: ../../include/features.php:426
+#: ../../include/features.php:453
msgid "Add categories to your posts"
msgstr ""
-#: ../../include/features.php:434
+#: ../../include/features.php:461
msgid "Emoji Reactions"
msgstr ""
-#: ../../include/features.php:435
+#: ../../include/features.php:462
msgid "Add emoji reaction ability to posts"
msgstr ""
-#: ../../include/features.php:444
+#: ../../include/features.php:471
msgid "Ability to file posts under folders"
msgstr ""
-#: ../../include/features.php:452
+#: ../../include/features.php:479
msgid "Dislike Posts"
msgstr ""
-#: ../../include/features.php:453
+#: ../../include/features.php:480
msgid "Ability to dislike posts/comments"
msgstr ""
-#: ../../include/features.php:461
+#: ../../include/features.php:488
msgid "Star Posts"
msgstr ""
-#: ../../include/features.php:462
+#: ../../include/features.php:489
msgid "Ability to mark special posts with a star indicator"
msgstr ""
-#: ../../include/features.php:470
+#: ../../include/features.php:497
msgid "Tag Cloud"
msgstr ""
-#: ../../include/features.php:471
+#: ../../include/features.php:498
msgid "Provide a personal tag cloud on your channel page"
msgstr ""
-#: ../../include/taxonomy.php:384 ../../include/taxonomy.php:405
-msgid "Tags"
+#: ../../include/taxonomy.php:320
+msgid "Trending"
msgstr ""
-#: ../../include/taxonomy.php:487
+#: ../../include/taxonomy.php:552
msgid "Keywords"
msgstr ""
-#: ../../include/taxonomy.php:508
+#: ../../include/taxonomy.php:573
msgid "have"
msgstr ""
-#: ../../include/taxonomy.php:508
+#: ../../include/taxonomy.php:573
msgid "has"
msgstr ""
-#: ../../include/taxonomy.php:509
+#: ../../include/taxonomy.php:574
msgid "want"
msgstr ""
-#: ../../include/taxonomy.php:509
+#: ../../include/taxonomy.php:574
msgid "wants"
msgstr ""
-#: ../../include/taxonomy.php:510
+#: ../../include/taxonomy.php:575
msgid "likes"
msgstr ""
-#: ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:576
msgid "dislikes"
msgstr ""
-#: ../../include/account.php:35
+#: ../../include/account.php:36
msgid "Not a valid email address"
msgstr ""
-#: ../../include/account.php:37
+#: ../../include/account.php:38
msgid "Your email domain is not among those allowed on this site"
msgstr ""
-#: ../../include/account.php:43
+#: ../../include/account.php:44
msgid "Your email address is already registered at this site."
msgstr ""
-#: ../../include/account.php:75
+#: ../../include/account.php:76
msgid "An invitation is required."
msgstr ""
-#: ../../include/account.php:79
+#: ../../include/account.php:80
msgid "Invitation could not be verified."
msgstr ""
-#: ../../include/account.php:157
+#: ../../include/account.php:158
msgid "Please enter the required information."
msgstr ""
-#: ../../include/account.php:224
+#: ../../include/account.php:225
msgid "Failed to store account information."
msgstr ""
-#: ../../include/account.php:313
+#: ../../include/account.php:314
#, php-format
msgid "Registration confirmation for %s"
msgstr ""
-#: ../../include/account.php:382
+#: ../../include/account.php:383
#, php-format
msgid "Registration request at %s"
msgstr ""
-#: ../../include/account.php:404
+#: ../../include/account.php:405
msgid "your registration password"
msgstr ""
-#: ../../include/account.php:410 ../../include/account.php:472
+#: ../../include/account.php:411 ../../include/account.php:473
#, php-format
msgid "Registration details for %s"
msgstr ""
-#: ../../include/account.php:483
+#: ../../include/account.php:484
msgid "Account approved."
msgstr ""
-#: ../../include/account.php:523
+#: ../../include/account.php:524
#, php-format
msgid "Registration revoked for %s"
msgstr ""
-#: ../../include/account.php:802 ../../include/account.php:804
+#: ../../include/account.php:803 ../../include/account.php:805
msgid "Click here to upgrade."
msgstr ""
-#: ../../include/account.php:810
+#: ../../include/account.php:811
msgid "This action exceeds the limits set by your subscription plan."
msgstr ""
-#: ../../include/account.php:815
+#: ../../include/account.php:816
msgid "This action is not available under your subscription plan."
msgstr ""
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "Birthday"
msgstr ""
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "Age: "
msgstr ""
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "YYYY-MM-DD or MM-DD"
msgstr ""
-#: ../../include/datetime.php:238
+#: ../../include/datetime.php:244
msgid "less than a second ago"
msgstr ""
-#: ../../include/datetime.php:256
+#: ../../include/datetime.php:262
#, php-format
msgctxt "e.g. 22 hours ago, 1 minute ago"
msgid "%1$d %2$s ago"
msgstr ""
-#: ../../include/datetime.php:267
+#: ../../include/datetime.php:273
msgctxt "relative_date"
msgid "year"
msgid_plural "years"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/datetime.php:270
+#: ../../include/datetime.php:276
msgctxt "relative_date"
msgid "month"
msgid_plural "months"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/datetime.php:273
+#: ../../include/datetime.php:279
msgctxt "relative_date"
msgid "week"
msgid_plural "weeks"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/datetime.php:276
+#: ../../include/datetime.php:282
msgctxt "relative_date"
msgid "day"
msgid_plural "days"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/datetime.php:279
+#: ../../include/datetime.php:285
msgctxt "relative_date"
msgid "hour"
msgid_plural "hours"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/datetime.php:282
+#: ../../include/datetime.php:288
msgctxt "relative_date"
msgid "minute"
msgid_plural "minutes"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/datetime.php:285
+#: ../../include/datetime.php:291
msgctxt "relative_date"
msgid "second"
msgid_plural "seconds"
msgstr[0] ""
msgstr[1] ""
-#: ../../include/datetime.php:514
+#: ../../include/datetime.php:520
#, php-format
msgid "%1$s's birthday"
msgstr ""
-#: ../../include/datetime.php:515
+#: ../../include/datetime.php:521
#, php-format
msgid "Happy Birthday %1$s"
msgstr ""
@@ -13947,7 +14184,7 @@ msgid "Help and documentation"
msgstr ""
#: ../../include/nav.php:179
-msgid "Search site @name, #tag, ?docs, content"
+msgid "Search site @name, !forum, #tag, ?docs, content"
msgstr ""
#: ../../include/nav.php:199
@@ -13955,7 +14192,7 @@ msgid "Site Setup and Configuration"
msgstr ""
#: ../../include/nav.php:290
-msgid "@name, #tag, ?doc, content"
+msgid "@name, !forum, #tag, ?doc, content"
msgstr ""
#: ../../include/nav.php:291
@@ -13983,38 +14220,38 @@ msgstr ""
msgid "Image file is empty."
msgstr ""
-#: ../../include/photos.php:322
+#: ../../include/photos.php:326
msgid "Photo storage failed."
msgstr ""
-#: ../../include/photos.php:364
+#: ../../include/photos.php:375
msgid "a new photo"
msgstr ""
-#: ../../include/photos.php:368
+#: ../../include/photos.php:379
#, php-format
msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr ""
-#: ../../include/photos.php:660
+#: ../../include/photos.php:671
msgid "Upload New Photos"
msgstr ""
-#: ../../include/zot.php:767
+#: ../../include/zot.php:772
msgid "Invalid data packet"
msgstr ""
-#: ../../include/zot.php:794
+#: ../../include/zot.php:799
msgid "Unable to verify channel signature"
msgstr ""
-#: ../../include/zot.php:2529
+#: ../../include/zot.php:2552
#, php-format
msgid "Unable to verify site signature for %s"
msgstr ""
-#: ../../include/zot.php:4180
+#: ../../include/zot.php:4219
msgid "invalid target signature"
msgstr ""
@@ -14045,23 +14282,27 @@ msgstr ""
msgid "Channels not in any privacy group"
msgstr ""
-#: ../../include/connections.php:128
+#: ../../include/connections.php:133
msgid "New window"
msgstr ""
-#: ../../include/connections.php:129
+#: ../../include/connections.php:134
msgid "Open the selected location in a different window or browser tab"
msgstr ""
-#: ../../include/auth.php:148
+#: ../../include/auth.php:152
+msgid "Delegation session ended."
+msgstr ""
+
+#: ../../include/auth.php:156
msgid "Logged out."
msgstr ""
-#: ../../include/auth.php:263
+#: ../../include/auth.php:273
msgid "Email validation is incomplete. Please check your email."
msgstr ""
-#: ../../include/auth.php:279
+#: ../../include/auth.php:289
msgid "Failed authentication"
msgstr ""
diff --git a/vendor/commerceguys/intl/.travis.yml b/vendor/commerceguys/intl/.travis.yml
new file mode 100644
index 000000000..20bf1805d
--- /dev/null
+++ b/vendor/commerceguys/intl/.travis.yml
@@ -0,0 +1,14 @@
+language: php
+
+php:
+ - 5.4
+ - 5.5
+ - 5.6
+ - hhvm
+
+install:
+ - composer self-update
+ - composer install
+
+script:
+ - ./vendor/bin/phpunit -c ./phpunit.xml --coverage-text --strict
diff --git a/vendor/commerceguys/intl/resources/country/af.json b/vendor/commerceguys/intl/resources/country/af.json
index 0e039f26c..66002168c 100644
--- a/vendor/commerceguys/intl/resources/country/af.json
+++ b/vendor/commerceguys/intl/resources/country/af.json
@@ -12,10 +12,7 @@
"name": "Algerië"
},
"AS": {
- "name": "Amerikaans-Samoa"
- },
- "VI": {
- "name": "Amerikaanse Maagde-eilande"
+ "name": "Amerikaanse Samoa"
},
"AD": {
"name": "Andorra"
@@ -333,16 +330,19 @@
"name": "Kerseiland"
},
"KG": {
- "name": "Kirgisië"
+ "name": "Kirgistan"
},
"KI": {
"name": "Kiribati"
},
+ "UM": {
+ "name": "Klein afgeleë eilande van die VSA"
+ },
"KW": {
"name": "Koeweit"
},
"CC": {
- "name": "Kokos-eilande"
+ "name": "Kokoseilande"
},
"CG": {
"name": "Kongo - Brazzaville"
@@ -593,9 +593,24 @@
"SH": {
"name": "Sint Helena"
},
+ "KN": {
+ "name": "Sint Kitts en Nevis"
+ },
+ "LC": {
+ "name": "Sint Lucia"
+ },
"SX": {
"name": "Sint Maarten"
},
+ "MF": {
+ "name": "Sint Martin"
+ },
+ "PM": {
+ "name": "Sint Pierre en Miquelon"
+ },
+ "VC": {
+ "name": "Sint Vincent en die Grenadine"
+ },
"CY": {
"name": "Siprus"
},
@@ -623,21 +638,6 @@
"LK": {
"name": "Sri Lanka"
},
- "KN": {
- "name": "St. Kitts en Nevis"
- },
- "LC": {
- "name": "St. Lucia"
- },
- "MF": {
- "name": "St. Martin"
- },
- "PM": {
- "name": "St. Pierre en Miquelon"
- },
- "VC": {
- "name": "St. Vincent en die Grenadine"
- },
"ZA": {
"name": "Suid-Afrika"
},
@@ -677,9 +677,6 @@
"TH": {
"name": "Thailand"
},
- "CZ": {
- "name": "Tjeggiese Republiek"
- },
"TG": {
"name": "Togo"
},
@@ -698,11 +695,14 @@
"TD": {
"name": "Tsjad"
},
+ "CZ": {
+ "name": "Tsjeggië"
+ },
"TN": {
"name": "Tunisië"
},
"TM": {
- "name": "Turkmenië"
+ "name": "Turkmenistan"
},
"TC": {
"name": "Turks- en Caicoseilande"
@@ -740,8 +740,8 @@
"VN": {
"name": "Viëtnam"
},
- "UM": {
- "name": "VS klein omliggende eilande"
+ "VI": {
+ "name": "VSA se Maagde-eilande"
},
"WF": {
"name": "Wallis en Futuna"
diff --git a/vendor/commerceguys/intl/resources/country/am.json b/vendor/commerceguys/intl/resources/country/am.json
index c0abf4fee..591195762 100644
--- a/vendor/commerceguys/intl/resources/country/am.json
+++ b/vendor/commerceguys/intl/resources/country/am.json
@@ -116,15 +116,15 @@
"MZ": {
"name": "ሞዛምቢክ"
},
+ "RU": {
+ "name": "ሩስያ"
+ },
"RW": {
"name": "ሩዋንዳ"
},
"RE": {
"name": "ሪዩኒየን"
},
- "RU": {
- "name": "ራሽያ"
- },
"RO": {
"name": "ሮሜኒያ"
},
@@ -227,6 +227,9 @@
"PM": {
"name": "ቅዱስ ፒዬር እና ሚኩኤሎን"
},
+ "BZ": {
+ "name": "በሊዝ"
+ },
"BT": {
"name": "ቡህታን"
},
@@ -248,9 +251,6 @@
"BD": {
"name": "ባንግላዲሽ"
},
- "BZ": {
- "name": "ቤሊዘ"
- },
"BY": {
"name": "ቤላሩስ"
},
@@ -342,7 +342,7 @@
"name": "ቻድ"
},
"CZ": {
- "name": "ቼክ ሪፑብሊክ"
+ "name": "ቼችኒያ"
},
"NU": {
"name": "ኒኡይ"
@@ -408,7 +408,7 @@
"name": "አንዶራ"
},
"AI": {
- "name": "አንጉኢላ"
+ "name": "አንጉይላ"
},
"AO": {
"name": "አንጐላ"
@@ -467,9 +467,6 @@
"IL": {
"name": "እስራኤል"
},
- "GB": {
- "name": "እንግሊዝ"
- },
"OM": {
"name": "ኦማን"
},
@@ -525,7 +522,7 @@
"name": "ኮሞሮስ"
},
"CR": {
- "name": "ኮስታ ሪካ"
+ "name": "ኮስታሪካ"
},
"XK": {
"name": "ኮሶቮ"
@@ -617,6 +614,9 @@
"US": {
"name": "ዩናይትድ ስቴትስ"
},
+ "GB": {
+ "name": "ዩናይትድ ኪንግደም"
+ },
"UA": {
"name": "ዩክሬን"
},
@@ -641,12 +641,12 @@
"DK": {
"name": "ዴንማርክ"
},
+ "DO": {
+ "name": "ዶመኒካን ሪፑብሊክ"
+ },
"DM": {
"name": "ዶሚኒካ"
},
- "DO": {
- "name": "ዶሚኒክ ሪፑብሊክ"
- },
"DE": {
"name": "ጀርመን"
},
diff --git a/vendor/commerceguys/intl/resources/country/ar-LY.json b/vendor/commerceguys/intl/resources/country/ar-LY.json
index 6796f6d00..18e3b5468 100644
--- a/vendor/commerceguys/intl/resources/country/ar-LY.json
+++ b/vendor/commerceguys/intl/resources/country/ar-LY.json
@@ -1,4 +1,7 @@
{
+ "IS": {
+ "name": "آيسلندا"
+ },
"ET": {
"name": "إثيوبيا"
},
@@ -68,6 +71,9 @@
"BA": {
"name": "البوسنة والهرسك"
},
+ "CZ": {
+ "name": "التشيك"
+ },
"ME": {
"name": "الجبل الأسود"
},
@@ -200,9 +206,6 @@
"IE": {
"name": "أيرلندا"
},
- "IS": {
- "name": "أيسلندا"
- },
"IT": {
"name": "إيطاليا"
},
@@ -218,9 +221,6 @@
"PW": {
"name": "بالاو"
},
- "BW": {
- "name": "بتسوانا"
- },
"BB": {
"name": "بربادوس"
},
@@ -251,6 +251,9 @@
"BT": {
"name": "بوتان"
},
+ "BW": {
+ "name": "بوتسوانا"
+ },
"PR": {
"name": "بورتوريكو"
},
@@ -288,7 +291,7 @@
"name": "تركيا"
},
"TA": {
- "name": "تريستان دي كونها"
+ "name": "تريستان دا كونا"
},
"TT": {
"name": "ترينيداد وتوباغو"
@@ -387,7 +390,7 @@
"name": "جزيرة أسينشيون"
},
"CX": {
- "name": "جزيرة الكريسماس"
+ "name": "جزيرة كريسماس"
},
"IM": {
"name": "جزيرة مان"
@@ -398,9 +401,6 @@
"CF": {
"name": "جمهورية أفريقيا الوسطى"
},
- "CZ": {
- "name": "جمهورية التشيك"
- },
"DO": {
"name": "جمهورية الدومينيكان"
},
@@ -458,12 +458,15 @@
"BL": {
"name": "سان بارتليمي"
},
+ "PM": {
+ "name": "سان بيير ومكويلون"
+ },
+ "MF": {
+ "name": "سان مارتن"
+ },
"SM": {
"name": "سان مارينو"
},
- "PM": {
- "name": "سانت بيير وميكولون"
- },
"VC": {
"name": "سانت فنسنت وجزر غرينادين"
},
@@ -473,11 +476,11 @@
"LC": {
"name": "سانت لوسيا"
},
- "MF": {
+ "SX": {
"name": "سانت مارتن"
},
"SH": {
- "name": "سانت هيلانة"
+ "name": "سانت هيلينا"
},
"ST": {
"name": "ساو تومي وبرينسيبي"
@@ -489,7 +492,7 @@
"name": "سريلانكا"
},
"SJ": {
- "name": "سفالبارد وجان مايان"
+ "name": "سفالبارد وجان ماين"
},
"SK": {
"name": "سلوفاكيا"
@@ -518,9 +521,6 @@
"SC": {
"name": "سيشل"
},
- "SX": {
- "name": "سينت مارتن"
- },
"RS": {
"name": "صربيا"
},
@@ -756,6 +756,6 @@
"name": "هولندا الكاريبية"
},
"HK": {
- "name": "هونغ كونغ الصينية"
+ "name": "هونغ كونغ الصينية (منطقة إدارية خاصة)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/ar-SA.json b/vendor/commerceguys/intl/resources/country/ar-SA.json
index c610e5e45..1c2a2ca43 100644
--- a/vendor/commerceguys/intl/resources/country/ar-SA.json
+++ b/vendor/commerceguys/intl/resources/country/ar-SA.json
@@ -1,4 +1,7 @@
{
+ "IS": {
+ "name": "آيسلندا"
+ },
"ET": {
"name": "إثيوبيا"
},
@@ -65,6 +68,9 @@
"BA": {
"name": "البوسنة والهرسك"
},
+ "CZ": {
+ "name": "التشيك"
+ },
"ME": {
"name": "الجبل الأسود"
},
@@ -197,9 +203,6 @@
"IE": {
"name": "أيرلندا"
},
- "IS": {
- "name": "أيسلندا"
- },
"IT": {
"name": "إيطاليا"
},
@@ -215,9 +218,6 @@
"PW": {
"name": "بالاو"
},
- "BW": {
- "name": "بتسوانا"
- },
"BB": {
"name": "بربادوس"
},
@@ -248,6 +248,9 @@
"BT": {
"name": "بوتان"
},
+ "BW": {
+ "name": "بوتسوانا"
+ },
"PR": {
"name": "بورتوريكو"
},
@@ -285,7 +288,7 @@
"name": "تركيا"
},
"TA": {
- "name": "تريستان دي كونها"
+ "name": "تريستان دا كونا"
},
"TT": {
"name": "ترينيداد وتوباغو"
@@ -384,10 +387,10 @@
"name": "جزر والس وفوتونا"
},
"AC": {
- "name": "جزيرة أسينشيون"
+ "name": "جزيرة أسينشين"
},
"CX": {
- "name": "جزيرة الكريسماس"
+ "name": "جزيرة كريسماس"
},
"IM": {
"name": "جزيرة مان"
@@ -398,9 +401,6 @@
"CF": {
"name": "جمهورية أفريقيا الوسطى"
},
- "CZ": {
- "name": "جمهورية التشيك"
- },
"DO": {
"name": "جمهورية الدومينيكان"
},
@@ -461,6 +461,9 @@
"PM": {
"name": "سان بيير وميكولون"
},
+ "MF": {
+ "name": "سان مارتن"
+ },
"SM": {
"name": "سان مارينو"
},
@@ -473,11 +476,11 @@
"LC": {
"name": "سانت لوسيا"
},
- "MF": {
+ "SX": {
"name": "سانت مارتن"
},
"SH": {
- "name": "سانت هيلانة"
+ "name": "سانت هيلينا"
},
"ST": {
"name": "ساو تومي وبرينسيبي"
@@ -489,7 +492,7 @@
"name": "سريلانكا"
},
"SJ": {
- "name": "سفالبارد وجان مايان"
+ "name": "سفالبارد وجان ماين"
},
"SK": {
"name": "سلوفاكيا"
@@ -518,9 +521,6 @@
"SC": {
"name": "سيشل"
},
- "SX": {
- "name": "سينت مارتن"
- },
"RS": {
"name": "صربيا"
},
@@ -665,6 +665,9 @@
"LS": {
"name": "ليسوتو"
},
+ "MO": {
+ "name": "ماكاو الصينية (منطقة إدارية خاصة)"
+ },
"MT": {
"name": "مالطا"
},
@@ -686,9 +689,6 @@
"MK": {
"name": "مقدونيا"
},
- "MO": {
- "name": "مكاو الصينية (منطقة إدارية خاصة)"
- },
"MW": {
"name": "ملاوي"
},
@@ -756,6 +756,6 @@
"name": "هولندا الكاريبية"
},
"HK": {
- "name": "هونغ كونغ الصينية"
+ "name": "هونغ كونغ الصينية (منطقة إدارية خاصة)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/ar.json b/vendor/commerceguys/intl/resources/country/ar.json
index 3a589a7f4..8d310edb4 100644
--- a/vendor/commerceguys/intl/resources/country/ar.json
+++ b/vendor/commerceguys/intl/resources/country/ar.json
@@ -1,4 +1,7 @@
{
+ "IS": {
+ "name": "آيسلندا"
+ },
"ET": {
"name": "إثيوبيا"
},
@@ -68,6 +71,9 @@
"BA": {
"name": "البوسنة والهرسك"
},
+ "CZ": {
+ "name": "التشيك"
+ },
"ME": {
"name": "الجبل الأسود"
},
@@ -200,9 +206,6 @@
"IE": {
"name": "أيرلندا"
},
- "IS": {
- "name": "أيسلندا"
- },
"IT": {
"name": "إيطاليا"
},
@@ -218,9 +221,6 @@
"PW": {
"name": "بالاو"
},
- "BW": {
- "name": "بتسوانا"
- },
"BB": {
"name": "بربادوس"
},
@@ -251,6 +251,9 @@
"BT": {
"name": "بوتان"
},
+ "BW": {
+ "name": "بوتسوانا"
+ },
"PR": {
"name": "بورتوريكو"
},
@@ -288,7 +291,7 @@
"name": "تركيا"
},
"TA": {
- "name": "تريستان دي كونها"
+ "name": "تريستان دا كونا"
},
"TT": {
"name": "ترينيداد وتوباغو"
@@ -387,7 +390,7 @@
"name": "جزيرة أسينشيون"
},
"CX": {
- "name": "جزيرة الكريسماس"
+ "name": "جزيرة كريسماس"
},
"IM": {
"name": "جزيرة مان"
@@ -398,9 +401,6 @@
"CF": {
"name": "جمهورية أفريقيا الوسطى"
},
- "CZ": {
- "name": "جمهورية التشيك"
- },
"DO": {
"name": "جمهورية الدومينيكان"
},
@@ -458,12 +458,15 @@
"BL": {
"name": "سان بارتليمي"
},
+ "PM": {
+ "name": "سان بيير ومكويلون"
+ },
+ "MF": {
+ "name": "سان مارتن"
+ },
"SM": {
"name": "سان مارينو"
},
- "PM": {
- "name": "سانت بيير وميكولون"
- },
"VC": {
"name": "سانت فنسنت وجزر غرينادين"
},
@@ -473,11 +476,11 @@
"LC": {
"name": "سانت لوسيا"
},
- "MF": {
+ "SX": {
"name": "سانت مارتن"
},
"SH": {
- "name": "سانت هيلانة"
+ "name": "سانت هيلينا"
},
"ST": {
"name": "ساو تومي وبرينسيبي"
@@ -486,7 +489,7 @@
"name": "سريلانكا"
},
"SJ": {
- "name": "سفالبارد وجان مايان"
+ "name": "سفالبارد وجان ماين"
},
"SK": {
"name": "سلوفاكيا"
@@ -515,9 +518,6 @@
"SC": {
"name": "سيشل"
},
- "SX": {
- "name": "سينت مارتن"
- },
"EA": {
"name": "سيوتا وميليلا"
},
@@ -756,6 +756,6 @@
"name": "هولندا الكاريبية"
},
"HK": {
- "name": "هونغ كونغ الصينية"
+ "name": "هونغ كونغ الصينية (منطقة إدارية خاصة)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/as.json b/vendor/commerceguys/intl/resources/country/as.json
new file mode 100644
index 000000000..9e680d7e0
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/as.json
@@ -0,0 +1,761 @@
+{
+ "AT": {
+ "name": "অস্ট্রিয়া"
+ },
+ "AU": {
+ "name": "অস্ট্রেলিয়া"
+ },
+ "AO": {
+ "name": "অ্যাঙ্গোলা"
+ },
+ "AC": {
+ "name": "অ্যাসেনশন আইল্যান্ড"
+ },
+ "CI": {
+ "name": "আইভরি কোস্ট"
+ },
+ "IM": {
+ "name": "আইল অফ ম্যান"
+ },
+ "IS": {
+ "name": "আইস্ল্যাণ্ড"
+ },
+ "AZ": {
+ "name": "আজেরবাইজান"
+ },
+ "AF": {
+ "name": "আফগানিস্তান"
+ },
+ "AS": {
+ "name": "আমেরিকান সামোয়া"
+ },
+ "IE": {
+ "name": "আয়ারল্যাণ্ড"
+ },
+ "AM": {
+ "name": "আরমেনিয়া"
+ },
+ "AR": {
+ "name": "আর্জিণ্টিনা"
+ },
+ "DZ": {
+ "name": "আলজেরিয়া"
+ },
+ "AX": {
+ "name": "আলে্যান্ড দ্বীপপুঞ্জ"
+ },
+ "AL": {
+ "name": "আল্বেনিয়া"
+ },
+ "UM": {
+ "name": "ইউ এস আউটলিং আইল্যান্ডস"
+ },
+ "UA": {
+ "name": "ইউক্রেইন্"
+ },
+ "EC": {
+ "name": "ইকোয়াডর"
+ },
+ "IT": {
+ "name": "ইটালি"
+ },
+ "ET": {
+ "name": "ইথিওপিয়া"
+ },
+ "ID": {
+ "name": "ইন্দোনেশিয়া"
+ },
+ "YE": {
+ "name": "ইমেন"
+ },
+ "IQ": {
+ "name": "ইরাক"
+ },
+ "IR": {
+ "name": "ইরান"
+ },
+ "ER": {
+ "name": "ইরিত্রিয়া"
+ },
+ "IL": {
+ "name": "ইস্রায়েল"
+ },
+ "UG": {
+ "name": "উগান্ডা"
+ },
+ "UZ": {
+ "name": "উজ্বেকিস্থান"
+ },
+ "KP": {
+ "name": "উত্তর কোরিয়া"
+ },
+ "MP": {
+ "name": "উত্তর মারিয়ানা দ্বীপপুঞ্জ"
+ },
+ "UY": {
+ "name": "উরুগুয়ে"
+ },
+ "GF": {
+ "name": "একটি দেশের নাম"
+ },
+ "AQ": {
+ "name": "এন্টাৰ্টিকা"
+ },
+ "EE": {
+ "name": "এস্তোনিয়াদেশ"
+ },
+ "AI": {
+ "name": "এ্যাঙ্গুইলা"
+ },
+ "AD": {
+ "name": "এ্যান্ডোরা"
+ },
+ "OM": {
+ "name": "ওমান"
+ },
+ "WF": {
+ "name": "ওয়ালিস ও ফুটুনা"
+ },
+ "CD": {
+ "name": "কঙ্গো - কিনসাসা"
+ },
+ "CG": {
+ "name": "কঙ্গো - ব্রাজাভিল"
+ },
+ "KM": {
+ "name": "কমোরোস"
+ },
+ "CO": {
+ "name": "কলোমবিয়া"
+ },
+ "XK": {
+ "name": "কসোভো"
+ },
+ "KZ": {
+ "name": "কাজাকস্থান"
+ },
+ "QA": {
+ "name": "কাতার"
+ },
+ "KH": {
+ "name": "কাম্বোজ"
+ },
+ "EA": {
+ "name": "কিউটা & ম্লিলা"
+ },
+ "KG": {
+ "name": "কিরগিজস্তান"
+ },
+ "KI": {
+ "name": "কিরিবাতি"
+ },
+ "CK": {
+ "name": "কুক দ্বীপপুঞ্জ"
+ },
+ "KW": {
+ "name": "কুয়েত"
+ },
+ "KE": {
+ "name": "কেনিয়া"
+ },
+ "CV": {
+ "name": "কেপ ভার্দে"
+ },
+ "CC": {
+ "name": "কোকোস (কিলিং) দ্বীপপুঞ্জ"
+ },
+ "IC": {
+ "name": "ক্যানারি দ্বীপপুঞ্জ"
+ },
+ "CM": {
+ "name": "ক্যামেরুন"
+ },
+ "CX": {
+ "name": "ক্রিস্টমাস দ্বীপ"
+ },
+ "HR": {
+ "name": "ক্রোয়েশিয়া"
+ },
+ "GA": {
+ "name": "গাবোনবাদ্যযন্ত্র"
+ },
+ "GM": {
+ "name": "গাম্বিয়াদেশ"
+ },
+ "GY": {
+ "name": "গায়ানা"
+ },
+ "GN": {
+ "name": "গিনি"
+ },
+ "GW": {
+ "name": "গিনি-বিসাউ"
+ },
+ "GU": {
+ "name": "গুয়াম"
+ },
+ "GG": {
+ "name": "গেঁজি"
+ },
+ "GR": {
+ "name": "গ্রীস"
+ },
+ "GH": {
+ "name": "ঘানা"
+ },
+ "CL": {
+ "name": "চিলি"
+ },
+ "CN": {
+ "name": "চীন"
+ },
+ "GE": {
+ "name": "জর্জিয়া"
+ },
+ "JO": {
+ "name": "জর্ডন"
+ },
+ "JP": {
+ "name": "জাপান"
+ },
+ "ZM": {
+ "name": "জাম্বিয়া"
+ },
+ "JE": {
+ "name": "জার্সি"
+ },
+ "DE": {
+ "name": "জাৰ্মানি"
+ },
+ "DJ": {
+ "name": "জিবুতি"
+ },
+ "GI": {
+ "name": "জিব্রালটার"
+ },
+ "ZW": {
+ "name": "জিম্বাবুয়ে"
+ },
+ "TO": {
+ "name": "টাঙ্গা"
+ },
+ "TN": {
+ "name": "টিউনিস্"
+ },
+ "TV": {
+ "name": "টুভালু"
+ },
+ "TK": {
+ "name": "টোকেলাউ"
+ },
+ "TA": {
+ "name": "ট্রিস্টান ডা কুনা"
+ },
+ "DK": {
+ "name": "ডেন্মার্ক্"
+ },
+ "TW": {
+ "name": "তাইওয়ান"
+ },
+ "TJ": {
+ "name": "তাজিকস্থান"
+ },
+ "TZ": {
+ "name": "তাঞ্জানিয়া"
+ },
+ "TR": {
+ "name": "তুরস্ক"
+ },
+ "TM": {
+ "name": "তুর্কমেনিয়া"
+ },
+ "TH": {
+ "name": "থাইল্যান্ড"
+ },
+ "KR": {
+ "name": "দক্ষিণ কোরিয়া"
+ },
+ "GS": {
+ "name": "দক্ষিণ জৰ্জিয়া আৰু দক্ষিণ চেণ্ডৱিচ্‌ দ্বীপপুঞ্জ"
+ },
+ "TF": {
+ "name": "দক্ষিণ ফ্ৰান্সৰ অঞ্চল"
+ },
+ "SS": {
+ "name": "দক্ষিণ সুদান"
+ },
+ "ZA": {
+ "name": "দক্ষিন আফ্রিকা"
+ },
+ "DG": {
+ "name": "দিয়েগো গার্সিয়া"
+ },
+ "NC": {
+ "name": "নতুন ক্যালেডোনিয়া"
+ },
+ "NO": {
+ "name": "নরত্তএদেশ"
+ },
+ "NF": {
+ "name": "নরফোক দ্বীপ"
+ },
+ "NE": {
+ "name": "নাইজারনদী"
+ },
+ "NG": {
+ "name": "নাইজিরিয়াদেশ"
+ },
+ "NR": {
+ "name": "নাউরু"
+ },
+ "NA": {
+ "name": "নামিবিয়া"
+ },
+ "NU": {
+ "name": "নিউই"
+ },
+ "NZ": {
+ "name": "নিউজিল্যান্ড"
+ },
+ "GQ": {
+ "name": "নিরক্ষীয় গিনি"
+ },
+ "NL": {
+ "name": "নেদারল্যান্ডস"
+ },
+ "NP": {
+ "name": "নেপাল"
+ },
+ "PT": {
+ "name": "পর্তুগাল"
+ },
+ "EH": {
+ "name": "পশ্চিম সাহারা"
+ },
+ "PK": {
+ "name": "পাকিস্তান"
+ },
+ "PG": {
+ "name": "পাপুয়া নিউ গিনি"
+ },
+ "PW": {
+ "name": "পালাউ"
+ },
+ "PN": {
+ "name": "পিটকেয়ার্ন দ্বীপপুঞ্জ"
+ },
+ "TL": {
+ "name": "পূর্ব তিমুর"
+ },
+ "PE": {
+ "name": "পেরু"
+ },
+ "PL": {
+ "name": "পোল্যান্ড"
+ },
+ "PY": {
+ "name": "প্যারাগুয়ে"
+ },
+ "FK": {
+ "name": "ফকল্যান্ড দ্বীপপুঞ্জ"
+ },
+ "PF": {
+ "name": "ফরাসি পলিনেশিয়া"
+ },
+ "FO": {
+ "name": "ফারো দ্বীপপুঞ্জ"
+ },
+ "FJ": {
+ "name": "ফিজি"
+ },
+ "FI": {
+ "name": "ফিনল্যাণ্ড"
+ },
+ "PH": {
+ "name": "ফিলিপাইন"
+ },
+ "PS": {
+ "name": "ফিলিস্তিন অঞ্চল"
+ },
+ "FR": {
+ "name": "ফ্ৰান্স"
+ },
+ "BA": {
+ "name": "বসনিয়া ও হারজেগোভিনা"
+ },
+ "BD": {
+ "name": "বাংলাদেশ"
+ },
+ "BH": {
+ "name": "বাহরাইন"
+ },
+ "BI": {
+ "name": "বুরুন্ডি"
+ },
+ "BF": {
+ "name": "বুর্কিনা ফাসো"
+ },
+ "BG": {
+ "name": "বুলগেরিয়া"
+ },
+ "BJ": {
+ "name": "বেনিন"
+ },
+ "BE": {
+ "name": "বেলজিয়াম"
+ },
+ "BY": {
+ "name": "বেলারুশ"
+ },
+ "BW": {
+ "name": "বোট্স্বানা"
+ },
+ "BO": {
+ "name": "বোলিভিয়া"
+ },
+ "BR": {
+ "name": "ব্রাজিল"
+ },
+ "BN": {
+ "name": "ব্রুনেই"
+ },
+ "IO": {
+ "name": "ব্ৰিটিশ্ব ইণ্ডিয়ান মহাসাগৰৰ অঞ্চল"
+ },
+ "VU": {
+ "name": "ভানুয়াতু"
+ },
+ "IN": {
+ "name": "ভারত"
+ },
+ "VN": {
+ "name": "ভিয়েতনাম"
+ },
+ "BT": {
+ "name": "ভুটান"
+ },
+ "VE": {
+ "name": "ভেনেজুয়েলা"
+ },
+ "VA": {
+ "name": "ভ্যাটিকান সিটি"
+ },
+ "MN": {
+ "name": "মঙ্গোলিআ"
+ },
+ "TD": {
+ "name": "মত্স্যবিশেষ"
+ },
+ "CF": {
+ "name": "মধ্য আফ্রিকান প্রজাতন্ত্র"
+ },
+ "ME": {
+ "name": "মন্টিনিগ্রো"
+ },
+ "MA": {
+ "name": "মরক্কো"
+ },
+ "MR": {
+ "name": "মরিতানিয়া"
+ },
+ "MU": {
+ "name": "মরিশাস"
+ },
+ "FM": {
+ "name": "মাইক্রোনেশিয়া"
+ },
+ "MM": {
+ "name": "মায়ানমার (বার্মা)"
+ },
+ "YT": {
+ "name": "মায়োত্তে"
+ },
+ "MH": {
+ "name": "মার্শাল দ্বীপপুঞ্জ"
+ },
+ "MT": {
+ "name": "মালটা"
+ },
+ "MV": {
+ "name": "মালদ্বীপ"
+ },
+ "MW": {
+ "name": "মালাউই"
+ },
+ "ML": {
+ "name": "মালি"
+ },
+ "MY": {
+ "name": "মাল্যাশিয়া"
+ },
+ "EG": {
+ "name": "মিশর"
+ },
+ "MZ": {
+ "name": "মোজাম্বিক"
+ },
+ "MC": {
+ "name": "মোনাকো"
+ },
+ "MD": {
+ "name": "মোল্দাভিয়া"
+ },
+ "MO": {
+ "name": "ম্যাকাও এসএআর চীন"
+ },
+ "MG": {
+ "name": "ম্যাডাগ্যাস্কার"
+ },
+ "MK": {
+ "name": "ম্যাসাডোনিয়া"
+ },
+ "TG": {
+ "name": "যাও"
+ },
+ "US": {
+ "name": "যুক্তৰাষ্ট্ৰ"
+ },
+ "RU": {
+ "name": "রাশিয়া"
+ },
+ "RO": {
+ "name": "রুমানিয়া"
+ },
+ "RW": {
+ "name": "রুয়ান্ডা"
+ },
+ "LR": {
+ "name": "লাইবেরিয়া"
+ },
+ "LU": {
+ "name": "লাক্সেমবার্গ"
+ },
+ "LA": {
+ "name": "লাত্তস"
+ },
+ "LI": {
+ "name": "লিচেনস্টেইন"
+ },
+ "LT": {
+ "name": "লিত্ভা"
+ },
+ "LY": {
+ "name": "লিবিয়া"
+ },
+ "LB": {
+ "name": "লেবানন"
+ },
+ "LS": {
+ "name": "লেসোথো"
+ },
+ "LV": {
+ "name": "ল্যাট্ভিআ"
+ },
+ "LK": {
+ "name": "শ্রীলংকা"
+ },
+ "SK": {
+ "name": "শ্লোভাকিয়া"
+ },
+ "GB": {
+ "name": "সংযুক্ত ৰাজ্য"
+ },
+ "SB": {
+ "name": "সলোমান দ্বীপপুঞ্জ"
+ },
+ "CY": {
+ "name": "সাইপ্রাসদ্বিপ"
+ },
+ "ST": {
+ "name": "সাও টোম এবং প্রিনসিপে"
+ },
+ "SM": {
+ "name": "সান মেরিনো"
+ },
+ "SJ": {
+ "name": "সাভালবার্ড ও জান মেন"
+ },
+ "WS": {
+ "name": "সামোয়া"
+ },
+ "RS": {
+ "name": "সার্বিয়া"
+ },
+ "RE": {
+ "name": "সাক্ষাৎ"
+ },
+ "SG": {
+ "name": "সিঙ্গাপুর"
+ },
+ "SL": {
+ "name": "সিয়েরা লিওন"
+ },
+ "SY": {
+ "name": "সিরিয়া"
+ },
+ "SC": {
+ "name": "সিসিলি"
+ },
+ "CH": {
+ "name": "সুইজর্লণ্ড"
+ },
+ "SE": {
+ "name": "সুইডেন"
+ },
+ "SD": {
+ "name": "সুদান"
+ },
+ "SR": {
+ "name": "সুরিনাম"
+ },
+ "SN": {
+ "name": "সেনেগাল"
+ },
+ "SH": {
+ "name": "সেন্ট হেলেনা"
+ },
+ "SO": {
+ "name": "সোমালিয়া"
+ },
+ "SZ": {
+ "name": "সোয়াজিল্যান্ড"
+ },
+ "SA": {
+ "name": "সৌদি আরব"
+ },
+ "ES": {
+ "name": "স্পেন"
+ },
+ "SI": {
+ "name": "স্লোভানিয়া"
+ },
+ "HK": {
+ "name": "হংকং এসএআর চীন"
+ },
+ "HU": {
+ "name": "হাঙ্গেরি"
+ },
+ "AG": {
+ "name": "Antigua & Barbuda"
+ },
+ "AW": {
+ "name": "Aruba"
+ },
+ "BS": {
+ "name": "Bahamas"
+ },
+ "BB": {
+ "name": "Barbados"
+ },
+ "BZ": {
+ "name": "Belize"
+ },
+ "BM": {
+ "name": "Bermuda"
+ },
+ "VG": {
+ "name": "British Virgin Islands"
+ },
+ "CA": {
+ "name": "Canada"
+ },
+ "BQ": {
+ "name": "Caribbean Netherlands"
+ },
+ "KY": {
+ "name": "Cayman Islands"
+ },
+ "CR": {
+ "name": "Costa Rica"
+ },
+ "CU": {
+ "name": "Cuba"
+ },
+ "CW": {
+ "name": "Curaçao"
+ },
+ "CZ": {
+ "name": "Czechia"
+ },
+ "DM": {
+ "name": "Dominica"
+ },
+ "DO": {
+ "name": "Dominican Republic"
+ },
+ "SV": {
+ "name": "El Salvador"
+ },
+ "GL": {
+ "name": "Greenland"
+ },
+ "GD": {
+ "name": "Grenada"
+ },
+ "GP": {
+ "name": "Guadeloupe"
+ },
+ "GT": {
+ "name": "Guatemala"
+ },
+ "HT": {
+ "name": "Haiti"
+ },
+ "HN": {
+ "name": "Honduras"
+ },
+ "JM": {
+ "name": "Jamaica"
+ },
+ "MQ": {
+ "name": "Martinique"
+ },
+ "MX": {
+ "name": "Mexico"
+ },
+ "MS": {
+ "name": "Montserrat"
+ },
+ "NI": {
+ "name": "Nicaragua"
+ },
+ "PA": {
+ "name": "Panama"
+ },
+ "PR": {
+ "name": "Puerto Rico"
+ },
+ "SX": {
+ "name": "Sint Maarten"
+ },
+ "BL": {
+ "name": "St. Barthélemy"
+ },
+ "KN": {
+ "name": "St. Kitts & Nevis"
+ },
+ "LC": {
+ "name": "St. Lucia"
+ },
+ "MF": {
+ "name": "St. Martin"
+ },
+ "PM": {
+ "name": "St. Pierre & Miquelon"
+ },
+ "VC": {
+ "name": "St. Vincent & Grenadines"
+ },
+ "TT": {
+ "name": "Trinidad & Tobago"
+ },
+ "TC": {
+ "name": "Turks & Caicos Islands"
+ },
+ "VI": {
+ "name": "U.S. Virgin Islands"
+ },
+ "AE": {
+ "name": "UAE"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/az-Cyrl.json b/vendor/commerceguys/intl/resources/country/az-Cyrl.json
index d16c29a0e..b05661768 100644
--- a/vendor/commerceguys/intl/resources/country/az-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/country/az-Cyrl.json
@@ -717,7 +717,7 @@
"name": "Чад"
},
"CZ": {
- "name": "Чех Республикасы"
+ "name": "Чехија"
},
"CL": {
"name": "Чили"
diff --git a/vendor/commerceguys/intl/resources/country/az.json b/vendor/commerceguys/intl/resources/country/az.json
index 137c593c7..c7d744c32 100644
--- a/vendor/commerceguys/intl/resources/country/az.json
+++ b/vendor/commerceguys/intl/resources/country/az.json
@@ -144,7 +144,7 @@
"name": "Çad"
},
"CZ": {
- "name": "Çex Respublikası"
+ "name": "Çexiya"
},
"CL": {
"name": "Çili"
diff --git a/vendor/commerceguys/intl/resources/country/bas.json b/vendor/commerceguys/intl/resources/country/bas.json
index 7cc39b45e..f8f556343 100644
--- a/vendor/commerceguys/intl/resources/country/bas.json
+++ b/vendor/commerceguys/intl/resources/country/bas.json
@@ -165,7 +165,7 @@
"name": "Curaçao"
},
"CZ": {
- "name": "Czech Republic"
+ "name": "Czechia"
},
"DK": {
"name": "Dànmârk"
diff --git a/vendor/commerceguys/intl/resources/country/base.json b/vendor/commerceguys/intl/resources/country/base.json
index 21e0721d6..7a21d38c7 100644
--- a/vendor/commerceguys/intl/resources/country/base.json
+++ b/vendor/commerceguys/intl/resources/country/base.json
@@ -1045,7 +1045,7 @@
"ST": {
"three_letter_code": "STP",
"numeric_code": "678",
- "currency_code": "STD"
+ "currency_code": "STN"
},
"SV": {
"three_letter_code": "SLV",
@@ -1199,7 +1199,7 @@
"VG": {
"three_letter_code": "VGB",
"numeric_code": "092",
- "currency_code": "USD"
+ "currency_code": "GBP"
},
"VI": {
"three_letter_code": "VIR",
diff --git a/vendor/commerceguys/intl/resources/country/be.json b/vendor/commerceguys/intl/resources/country/be.json
index 95a028ad3..d244ade36 100644
--- a/vendor/commerceguys/intl/resources/country/be.json
+++ b/vendor/commerceguys/intl/resources/country/be.json
@@ -53,6 +53,9 @@
"PN": {
"name": "Астравы Піткэрн"
},
+ "TC": {
+ "name": "Астравы Цёркс і Кайкас"
+ },
"AU": {
"name": "Аўстралія"
},
@@ -63,7 +66,7 @@
"name": "Афганістан"
},
"BS": {
- "name": "Багамы"
+ "name": "Багамскія астравы"
},
"BG": {
"name": "Балгарыя"
@@ -300,7 +303,7 @@
"name": "Камерун"
},
"KM": {
- "name": "Каморскія Астравы"
+ "name": "Каморскія астравы"
},
"CA": {
"name": "Канада"
@@ -435,7 +438,7 @@
"name": "Марцініка"
},
"MH": {
- "name": "Маршалавы Астравы"
+ "name": "Маршалавы астравы"
},
"MU": {
"name": "Маўрыкій"
@@ -504,7 +507,7 @@
"name": "Партугалія"
},
"ZA": {
- "name": "Паўднёваафрыканская Рэспубліка"
+ "name": "Паўднёва-Афрыканская Рэспубліка"
},
"GS": {
"name": "Паўднёвая Джорджыя і Паўднёвыя Сандвічавы астравы"
@@ -543,7 +546,7 @@
"name": "Рэюньён"
},
"SB": {
- "name": "Саламонавы Астравы"
+ "name": "Саламонавы астравы"
},
"SV": {
"name": "Сальвадор"
@@ -567,7 +570,7 @@
"name": "Свазіленд"
},
"SC": {
- "name": "Сейшэльскія Астравы"
+ "name": "Сейшэльскія астравы"
},
"BL": {
"name": "Сен-Бартэльмі"
@@ -699,7 +702,7 @@
"name": "Французская Палінезія"
},
"TF": {
- "name": "Французскія Паўднёвыя тэрыторыі"
+ "name": "Французскія паўднёвыя тэрыторыі"
},
"FR": {
"name": "Францыя"
@@ -707,11 +710,8 @@
"HR": {
"name": "Харватыя"
},
- "TC": {
- "name": "Цёркс і Кайкас"
- },
"CF": {
- "name": "Цэнтральнаафрыканская Рэспубліка"
+ "name": "Цэнтральна-Афрыканская Рэспубліка"
},
"TD": {
"name": "Чад"
diff --git a/vendor/commerceguys/intl/resources/country/bg.json b/vendor/commerceguys/intl/resources/country/bg.json
index a4f2247b3..0a9b17ab0 100644
--- a/vendor/commerceguys/intl/resources/country/bg.json
+++ b/vendor/commerceguys/intl/resources/country/bg.json
@@ -72,7 +72,7 @@
"name": "Бенин"
},
"BM": {
- "name": "Бермуда"
+ "name": "Бермудски острови"
},
"BO": {
"name": "Боливия"
@@ -726,7 +726,7 @@
"name": "Черна гора"
},
"CZ": {
- "name": "Чешка република"
+ "name": "Чехия"
},
"CL": {
"name": "Чили"
diff --git a/vendor/commerceguys/intl/resources/country/bn-IN.json b/vendor/commerceguys/intl/resources/country/bn-IN.json
index 08ebd7381..6e18fa77e 100644
--- a/vendor/commerceguys/intl/resources/country/bn-IN.json
+++ b/vendor/commerceguys/intl/resources/country/bn-IN.json
@@ -11,12 +11,12 @@
"AQ": {
"name": "অ্যান্টার্কটিকা"
},
+ "AG": {
+ "name": "অ্যান্টিগুয়া ও বারবুডা"
+ },
"AC": {
"name": "অ্যাসসেনশন আইল্যান্ড"
},
- "CI": {
- "name": "আইভরি কোস্ট"
- },
"IM": {
"name": "আইল অফ ম্যান"
},
@@ -68,12 +68,12 @@
"IT": {
"name": "ইতালি"
},
+ "ET": {
+ "name": "ইথিওপিয়া"
+ },
"ID": {
"name": "ইন্দোনেশিয়া"
},
- "ET": {
- "name": "ইফিওপিয়া"
- },
"YE": {
"name": "ইয়েমেন"
},
@@ -101,9 +101,6 @@
"UY": {
"name": "উরুগুয়ে"
},
- "AG": {
- "name": "এন্টিগুয়া ও বারবুডা"
- },
"SV": {
"name": "এল সালভেদর"
},
@@ -149,9 +146,6 @@
"CU": {
"name": "কিউবা"
},
- "CW": {
- "name": "কিউরাসাও"
- },
"KG": {
"name": "কিরগিজিস্তান"
},
@@ -167,6 +161,9 @@
"KW": {
"name": "কুয়েত"
},
+ "CW": {
+ "name": "কুরাসাও"
+ },
"KE": {
"name": "কেনিয়া"
},
@@ -179,6 +176,9 @@
"CC": {
"name": "কোকোস (কিলিং) দ্বীপপুঞ্জ"
},
+ "CI": {
+ "name": "কোত দিভোয়ার"
+ },
"CR": {
"name": "কোস্টারিকা"
},
@@ -218,12 +218,12 @@
"GU": {
"name": "গুয়াম"
},
+ "GG": {
+ "name": "গুয়ার্নসি"
+ },
"GA": {
"name": "গ্যাবন"
},
- "GG": {
- "name": "গ্রাঞ্জি"
- },
"GL": {
"name": "গ্রীনল্যান্ড"
},
@@ -246,7 +246,7 @@
"name": "চীন"
},
"CZ": {
- "name": "চেক প্রজাতন্ত্র"
+ "name": "চেচিয়া"
},
"GE": {
"name": "জর্জিয়া"
@@ -306,7 +306,7 @@
"name": "তাইওয়ান"
},
"TJ": {
- "name": "তাজিকস্থান"
+ "name": "তাজিকিস্তান"
},
"TZ": {
"name": "তাঞ্জানিয়া"
@@ -350,6 +350,9 @@
"NO": {
"name": "নরওয়ে"
},
+ "NF": {
+ "name": "নরফোক দ্বীপ"
+ },
"NE": {
"name": "নাইজার"
},
@@ -377,9 +380,6 @@
"GQ": {
"name": "নিরক্ষীয় গিনি"
},
- "NF": {
- "name": "নিরফোক দ্বীপ"
- },
"NL": {
"name": "নেদারল্যান্ডস"
},
@@ -419,6 +419,9 @@
"PY": {
"name": "প্যারাগুয়ে"
},
+ "PS": {
+ "name": "প্যালেস্টাইনের অঞ্চলসমূহ"
+ },
"FK": {
"name": "ফকল্যান্ড দ্বীপপুঞ্জ"
},
@@ -440,9 +443,6 @@
"PH": {
"name": "ফিলিপাইন"
},
- "PS": {
- "name": "ফিলিস্তিন অঞ্চলসমূহ"
- },
"FO": {
"name": "ফ্যারও দ্বীপপুঞ্জ"
},
@@ -681,7 +681,7 @@
"name": "সিন্ট মার্টেন"
},
"SL": {
- "name": "সিয়েরালিওন"
+ "name": "সিয়েরা লিওন"
},
"SY": {
"name": "সিরিয়া"
@@ -714,7 +714,7 @@
"name": "সেন্ট বারথেলিমি"
},
"VC": {
- "name": "সেন্ট ভিনসেন্ট ও দ্যা গ্রেনাডিনস"
+ "name": "সেন্ট ভিনসেন্ট ও গ্রেনাডিনস"
},
"MF": {
"name": "সেন্ট মার্টিন"
diff --git a/vendor/commerceguys/intl/resources/country/bn.json b/vendor/commerceguys/intl/resources/country/bn.json
index 93c312ed8..9dcf4d7ad 100644
--- a/vendor/commerceguys/intl/resources/country/bn.json
+++ b/vendor/commerceguys/intl/resources/country/bn.json
@@ -11,12 +11,12 @@
"AQ": {
"name": "অ্যান্টার্কটিকা"
},
+ "AG": {
+ "name": "অ্যান্টিগুয়া ও বারবুডা"
+ },
"AC": {
"name": "অ্যাসসেনশন আইল্যান্ড"
},
- "CI": {
- "name": "আইভরি কোস্ট"
- },
"IM": {
"name": "আইল অফ ম্যান"
},
@@ -68,12 +68,12 @@
"IT": {
"name": "ইতালি"
},
+ "ET": {
+ "name": "ইথিওপিয়া"
+ },
"ID": {
"name": "ইন্দোনেশিয়া"
},
- "ET": {
- "name": "ইফিওপিয়া"
- },
"YE": {
"name": "ইয়েমেন"
},
@@ -101,9 +101,6 @@
"UY": {
"name": "উরুগুয়ে"
},
- "AG": {
- "name": "এন্টিগুয়া ও বারবুডা"
- },
"SV": {
"name": "এল সালভেদর"
},
@@ -149,9 +146,6 @@
"CU": {
"name": "কিউবা"
},
- "CW": {
- "name": "কিউরাসাও"
- },
"KG": {
"name": "কিরগিজিস্তান"
},
@@ -167,6 +161,9 @@
"KW": {
"name": "কুয়েত"
},
+ "CW": {
+ "name": "কুরাসাও"
+ },
"KE": {
"name": "কেনিয়া"
},
@@ -179,6 +176,9 @@
"CC": {
"name": "কোকোস (কিলিং) দ্বীপপুঞ্জ"
},
+ "CI": {
+ "name": "কোত দিভোয়ার"
+ },
"CR": {
"name": "কোস্টারিকা"
},
@@ -218,12 +218,12 @@
"GU": {
"name": "গুয়াম"
},
+ "GG": {
+ "name": "গুয়ার্নসি"
+ },
"GA": {
"name": "গ্যাবন"
},
- "GG": {
- "name": "গ্রাঞ্জি"
- },
"GL": {
"name": "গ্রীনল্যান্ড"
},
@@ -246,7 +246,7 @@
"name": "চীন"
},
"CZ": {
- "name": "চেক প্রজাতন্ত্র"
+ "name": "চেচিয়া"
},
"GE": {
"name": "জর্জিয়া"
@@ -306,7 +306,7 @@
"name": "তাইওয়ান"
},
"TJ": {
- "name": "তাজিকস্থান"
+ "name": "তাজিকিস্তান"
},
"TZ": {
"name": "তাঞ্জানিয়া"
@@ -350,6 +350,9 @@
"NO": {
"name": "নরওয়ে"
},
+ "NF": {
+ "name": "নরফোক দ্বীপ"
+ },
"NE": {
"name": "নাইজার"
},
@@ -377,9 +380,6 @@
"GQ": {
"name": "নিরক্ষীয় গিনি"
},
- "NF": {
- "name": "নিরফোক দ্বীপ"
- },
"NL": {
"name": "নেদারল্যান্ডস"
},
@@ -419,6 +419,9 @@
"PY": {
"name": "প্যারাগুয়ে"
},
+ "PS": {
+ "name": "প্যালেস্টাইনের অঞ্চলসমূহ"
+ },
"FK": {
"name": "ফকল্যান্ড দ্বীপপুঞ্জ"
},
@@ -440,9 +443,6 @@
"PH": {
"name": "ফিলিপাইন"
},
- "PS": {
- "name": "ফিলিস্তিন অঞ্চলসমূহ"
- },
"FO": {
"name": "ফ্যারও দ্বীপপুঞ্জ"
},
@@ -681,7 +681,7 @@
"name": "সিন্ট মার্টেন"
},
"SL": {
- "name": "সিয়েরালিওন"
+ "name": "সিয়েরা লিওন"
},
"SY": {
"name": "সিরিয়া"
@@ -714,7 +714,7 @@
"name": "সেন্ট বারথেলিমি"
},
"VC": {
- "name": "সেন্ট ভিনসেন্ট ও দ্যা গ্রেনাডিনস"
+ "name": "সেন্ট ভিনসেন্ট ও গ্রেনাডিনস"
},
"MF": {
"name": "সেন্ট মার্টিন"
@@ -750,7 +750,7 @@
"name": "হংকং এসএআর চীনা"
},
"HN": {
- "name": "হণ্ডুরাস"
+ "name": "হন্ডুরাস"
},
"HT": {
"name": "হাইতি"
diff --git a/vendor/commerceguys/intl/resources/country/bs-Cyrl.json b/vendor/commerceguys/intl/resources/country/bs-Cyrl.json
index ed7dcf940..bd1b82fcb 100644
--- a/vendor/commerceguys/intl/resources/country/bs-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/country/bs-Cyrl.json
@@ -1,19 +1,16 @@
{
- "AF": {
- "name": "Авганистан"
- },
"AZ": {
"name": "Азербејџан"
},
- "AX": {
- "name": "Аландска острва"
- },
"AL": {
"name": "Албанија"
},
"DZ": {
"name": "Алжир"
},
+ "VI": {
+ "name": "Америчка Дјевичанска острва"
+ },
"AS": {
"name": "Америчка Самоа"
},
@@ -35,9 +32,6 @@
"AR": {
"name": "Аргентина"
},
- "AM": {
- "name": "Арменија"
- },
"AW": {
"name": "Аруба"
},
@@ -47,6 +41,9 @@
"AT": {
"name": "Аустрија"
},
+ "AF": {
+ "name": "Афганистан"
+ },
"BD": {
"name": "Бангладеш"
},
@@ -63,19 +60,19 @@
"name": "Белгија"
},
"BZ": {
- "name": "Белизе"
- },
- "BY": {
- "name": "Белорусија"
+ "name": "Белиз"
},
"BJ": {
"name": "Бенин"
},
"BM": {
- "name": "Бермуда"
+ "name": "Бермуди"
+ },
+ "BY": {
+ "name": "Бјелорусија"
},
"CX": {
- "name": "Божићна острва"
+ "name": "Божићно острво"
},
"BO": {
"name": "Боливија"
@@ -90,7 +87,7 @@
"name": "Бразил"
},
"VG": {
- "name": "Британска Девичанска Острва"
+ "name": "Британска Дјевичанска острва"
},
"IO": {
"name": "Британска територија у Индијском океану"
@@ -111,7 +108,7 @@
"name": "Бутан"
},
"WF": {
- "name": "Валис и Футуна Острва"
+ "name": "Валис и Футуна"
},
"VU": {
"name": "Вануату"
@@ -119,9 +116,6 @@
"VA": {
"name": "Ватикан"
},
- "GB": {
- "name": "Велика Британија"
- },
"VE": {
"name": "Венецуела"
},
@@ -150,7 +144,10 @@
"name": "Гвинеја"
},
"GW": {
- "name": "Гвинеја-Бисао"
+ "name": "Гвинеја-Бисау"
+ },
+ "GG": {
+ "name": "Гернзи"
},
"GI": {
"name": "Гибралтар"
@@ -170,12 +167,12 @@
"GU": {
"name": "Гуам"
},
- "GG": {
- "name": "Гурнси"
- },
"DK": {
"name": "Данска"
},
+ "CD": {
+ "name": "Демократска Република Конго"
+ },
"DG": {
"name": "Дијего Гарсија"
},
@@ -192,11 +189,14 @@
"name": "Еквадор"
},
"GQ": {
- "name": "Екваторијална Гвинеја"
+ "name": "Екваторска Гвинеја"
},
"ER": {
"name": "Еритреја"
},
+ "AM": {
+ "name": "Ерменија"
+ },
"EE": {
"name": "Естонија"
},
@@ -209,6 +209,9 @@
"EH": {
"name": "Западна Сахара"
},
+ "CV": {
+ "name": "Зеленортска Острва"
+ },
"ZW": {
"name": "Зимбабве"
},
@@ -257,6 +260,9 @@
"GS": {
"name": "Јужна Џорџија и Јужна Сендвич Острва"
},
+ "SS": {
+ "name": "Јужни Судан"
+ },
"ZA": {
"name": "Јужноафричка Република"
},
@@ -264,7 +270,7 @@
"name": "Казахстан"
},
"KY": {
- "name": "Кајманска Острва"
+ "name": "Кајманска острва"
},
"KH": {
"name": "Камбоџа"
@@ -278,8 +284,8 @@
"IC": {
"name": "Канарска острва"
},
- "CV": {
- "name": "Капе Верде"
+ "BQ": {
+ "name": "Карипска Холандија"
},
"QA": {
"name": "Катар"
@@ -306,13 +312,13 @@
"name": "Колумбија"
},
"KM": {
- "name": "Коморска Острва"
+ "name": "Комори"
},
"CG": {
- "name": "Конго - Бразавил"
+ "name": "Конго"
},
- "CD": {
- "name": "Конго - Киншаса"
+ "XK": {
+ "name": "Косово"
},
"CR": {
"name": "Костарика"
@@ -326,15 +332,18 @@
"CK": {
"name": "Кукова Острва"
},
+ "CW": {
+ "name": "Курасао"
+ },
"LA": {
"name": "Лаос"
},
+ "LV": {
+ "name": "Латвија"
+ },
"LS": {
"name": "Лесото"
},
- "LV": {
- "name": "Летонија"
- },
"LB": {
"name": "Либан"
},
@@ -363,7 +372,7 @@
"name": "Мајоте"
},
"MO": {
- "name": "Макао С. А. Р. Кина"
+ "name": "Макао (САР Кина)"
},
"MK": {
"name": "Македонија"
@@ -404,12 +413,12 @@
"MX": {
"name": "Мексико"
},
- "MM": {
- "name": "Мијанмар (Бурма)"
- },
"FM": {
"name": "Микронезија"
},
+ "MM": {
+ "name": "Мјанмар"
+ },
"MZ": {
"name": "Мозамбик"
},
@@ -431,9 +440,6 @@
"NR": {
"name": "Науру"
},
- "DE": {
- "name": "Немачка"
- },
"NP": {
"name": "Непал"
},
@@ -458,12 +464,15 @@
"NO": {
"name": "Норвешка"
},
- "NF": {
- "name": "Норфолк Острво"
+ "DE": {
+ "name": "Њемачка"
},
"CI": {
"name": "Обала Слоноваче"
},
+ "AX": {
+ "name": "Оландска острва"
+ },
"OM": {
"name": "Оман"
},
@@ -471,7 +480,10 @@
"name": "Острво Асенсион"
},
"IM": {
- "name": "Острво Ман"
+ "name": "Острво Мен"
+ },
+ "NF": {
+ "name": "Острво Норфолк"
},
"PK": {
"name": "Пакистан"
@@ -501,10 +513,10 @@
"name": "Пољска"
},
"PR": {
- "name": "Порто Рико"
+ "name": "Порторико"
},
"PT": {
- "name": "Португалија"
+ "name": "Португал"
},
"RE": {
"name": "Реинион"
@@ -518,9 +530,6 @@
"RU": {
"name": "Русија"
},
- "VI": {
- "name": "С.А.Д. Девичанска Острва"
- },
"SV": {
"name": "Салвадор"
},
@@ -530,29 +539,35 @@
"SM": {
"name": "Сан Марино"
},
- "ST": {
- "name": "Сао Томе и Принципе"
- },
"SA": {
"name": "Саудијска Арабија"
},
"SZ": {
- "name": "Свазиленд"
+ "name": "Свази"
},
"SJ": {
- "name": "Свалбард и Јанмајен Острва"
+ "name": "Свалбард и Јан Мајен"
+ },
+ "LC": {
+ "name": "Света Луција"
},
"SH": {
- "name": "Света Јелена"
+ "name": "Света Хелена"
},
"BL": {
"name": "Свети Бартоломеј"
},
- "KP": {
- "name": "Северна Кореја"
+ "VC": {
+ "name": "Свети Винсент и Гренадини"
},
- "MP": {
- "name": "Северна Маријанска Острва"
+ "KN": {
+ "name": "Свети Кристофор и Невис"
+ },
+ "MF": {
+ "name": "Свети Мартин"
+ },
+ "ST": {
+ "name": "Свети Тома и Принцип"
},
"SC": {
"name": "Сејшели"
@@ -563,18 +578,6 @@
"SN": {
"name": "Сенегал"
},
- "VC": {
- "name": "Сент Винсент и Гренадини"
- },
- "KN": {
- "name": "Сент Китс и Невис"
- },
- "LC": {
- "name": "Сент Луција"
- },
- "MF": {
- "name": "Сент Мартин"
- },
"EA": {
"name": "Сеута и Мелиља"
},
@@ -587,6 +590,12 @@
"SY": {
"name": "Сирија"
},
+ "KP": {
+ "name": "Сјеверна Кореја"
+ },
+ "MP": {
+ "name": "Сјеверна Маријанска острва"
+ },
"US": {
"name": "Сједињене Америчке Државе"
},
@@ -605,6 +614,9 @@
"RS": {
"name": "Србија"
},
+ "CF": {
+ "name": "Средњоафричка Република"
+ },
"SD": {
"name": "Судан"
},
@@ -662,6 +674,9 @@
"AE": {
"name": "Уједињени Арапски Емирати"
},
+ "GB": {
+ "name": "Уједињено Краљевство"
+ },
"UA": {
"name": "Украјина"
},
@@ -669,7 +684,7 @@
"name": "Уругвај"
},
"FO": {
- "name": "Фарска Острва"
+ "name": "Фарска острва"
},
"PH": {
"name": "Филипини"
@@ -702,7 +717,7 @@
"name": "Холандија"
},
"HK": {
- "name": "Хонг Конг С. А. Р. Кина"
+ "name": "Хонг Конг (САР Кина)"
},
"HN": {
"name": "Хондурас"
@@ -710,9 +725,6 @@
"HR": {
"name": "Хрватска"
},
- "CF": {
- "name": "Централно Афричка Република"
- },
"ME": {
"name": "Црна Гора"
},
@@ -726,36 +738,24 @@
"name": "Чиле"
},
"JE": {
- "name": "Џерси"
+ "name": "Џерзи"
},
"DJ": {
"name": "Џибути"
},
- "CH": {
- "name": "Швајцарска"
- },
"SE": {
"name": "Шведска"
},
+ "CH": {
+ "name": "Швицарска"
+ },
"ES": {
"name": "Шпанија"
},
"LK": {
"name": "Шри Ланка"
},
- "BQ": {
- "name": "Caribbean Netherlands"
- },
- "CW": {
- "name": "Curaçao"
- },
- "XK": {
- "name": "Kosovo"
- },
"SX": {
"name": "Sint Maarten"
- },
- "SS": {
- "name": "South Sudan"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/bs.json b/vendor/commerceguys/intl/resources/country/bs.json
index 7ac63ca2a..3ec07c4c7 100644
--- a/vendor/commerceguys/intl/resources/country/bs.json
+++ b/vendor/commerceguys/intl/resources/country/bs.json
@@ -9,7 +9,7 @@
"name": "Alžir"
},
"VI": {
- "name": "Američka Djevičanska Ostrva"
+ "name": "Američka Djevičanska ostrva"
},
"AS": {
"name": "Američka Samoa"
@@ -87,13 +87,13 @@
"name": "Bosna i Hercegovina"
},
"CX": {
- "name": "Božićna Ostrva"
+ "name": "Božićno ostrvo"
},
"BR": {
"name": "Brazil"
},
"VG": {
- "name": "Britanska Djevičanska Ostrva"
+ "name": "Britanska Djevičanska ostrva"
},
"IO": {
"name": "Britanska Teritorija u Indijskom Okeanu"
@@ -123,7 +123,7 @@
"name": "Čad"
},
"CZ": {
- "name": "Češka Republika"
+ "name": "Češka"
},
"CL": {
"name": "Čile"
@@ -143,9 +143,6 @@
"DO": {
"name": "Dominikanska Republika"
},
- "JE": {
- "name": "Džerzi"
- },
"DJ": {
"name": "Džibuti"
},
@@ -168,7 +165,7 @@
"name": "Etiopija"
},
"FO": {
- "name": "Farska Ostrva"
+ "name": "Farska ostrva"
},
"FJ": {
"name": "Fidži"
@@ -180,7 +177,7 @@
"name": "Finska"
},
"FK": {
- "name": "Folklandska Ostrva"
+ "name": "Folklandska ostrva"
},
"FR": {
"name": "Francuska"
@@ -290,11 +287,14 @@
"YE": {
"name": "Jemen"
},
+ "JE": {
+ "name": "Jersey"
+ },
"JO": {
"name": "Jordan"
},
"GS": {
- "name": "Južna Džordžija i Južna Sendvička Ostrva"
+ "name": "Južna Džordžija i Južna Sendvič ostrva"
},
"KR": {
"name": "Južna Koreja"
@@ -306,7 +306,7 @@
"name": "Južnoafrička Republika"
},
"KY": {
- "name": "Kajmanska Ostrva"
+ "name": "Kajmanska ostrva"
},
"KH": {
"name": "Kambodža"
@@ -318,7 +318,7 @@
"name": "Kanada"
},
"IC": {
- "name": "Kanarska Ostrva"
+ "name": "Kanarska ostrva"
},
"CV": {
"name": "Kape Verde"
@@ -348,13 +348,13 @@
"name": "Kiribati"
},
"CC": {
- "name": "Kokosova (Kilingova) Ostrva"
+ "name": "Kokosova (Keelingova) ostrva"
},
"CO": {
"name": "Kolumbija"
},
"KM": {
- "name": "Komorska Ostrva"
+ "name": "Komori"
},
"CG": {
"name": "Kongo"
@@ -369,7 +369,7 @@
"name": "Kuba"
},
"CK": {
- "name": "Kukova Ostrva"
+ "name": "Kukova ostrva"
},
"CW": {
"name": "Kurasao"
@@ -438,7 +438,7 @@
"name": "Maroko"
},
"MH": {
- "name": "Maršalova Ostrva"
+ "name": "Maršalova ostrva"
},
"MQ": {
"name": "Martinik"
@@ -452,12 +452,12 @@
"MX": {
"name": "Meksiko"
},
- "MM": {
- "name": "Mijanmar"
- },
"FM": {
"name": "Mikronezija"
},
+ "MM": {
+ "name": "Mjanmar"
+ },
"MD": {
"name": "Moldavija"
},
@@ -510,7 +510,7 @@
"name": "Obala Slonovače"
},
"AX": {
- "name": "Olandska Ostrva"
+ "name": "Olandska ostrva"
},
"OM": {
"name": "Oman"
@@ -522,7 +522,7 @@
"name": "Ostrva Valis i Futuna"
},
"AC": {
- "name": "Ostrvo Asension"
+ "name": "Ostrvo Ascension"
},
"IM": {
"name": "Ostrvo Man"
@@ -618,7 +618,7 @@
"name": "Sjeverna Koreja"
},
"MP": {
- "name": "Sjeverna Marijanska Ostrva"
+ "name": "Sjeverna Marijanska ostrva"
},
"SK": {
"name": "Slovačka"
@@ -641,9 +641,6 @@
"SR": {
"name": "Surinam"
},
- "MF": {
- "name": "Sv. Martin"
- },
"SJ": {
"name": "Svalbard i Jan Majen"
},
@@ -662,6 +659,9 @@
"KN": {
"name": "Sveti Kits i Nevis"
},
+ "MF": {
+ "name": "Sveti Martin"
+ },
"PM": {
"name": "Sveti Petar i Mikelon"
},
@@ -705,7 +705,7 @@
"name": "Trinidad i Tobago"
},
"TA": {
- "name": "Tristan da Kunja"
+ "name": "Tristan da Cunha"
},
"TN": {
"name": "Tunis"
diff --git a/vendor/commerceguys/intl/resources/country/ca.json b/vendor/commerceguys/intl/resources/country/ca.json
index 6542ab21b..7ea6ab5d2 100644
--- a/vendor/commerceguys/intl/resources/country/ca.json
+++ b/vendor/commerceguys/intl/resources/country/ca.json
@@ -569,9 +569,6 @@
"DO": {
"name": "República Dominicana"
},
- "CZ": {
- "name": "República Txeca"
- },
"RO": {
"name": "Romania"
},
@@ -681,7 +678,7 @@
"name": "Territori Britànic de l’Oceà Índic"
},
"TF": {
- "name": "Territoris Francesos del Sud"
+ "name": "Territoris Australs Francesos"
},
"PS": {
"name": "territoris palestins"
@@ -719,6 +716,9 @@
"TD": {
"name": "Txad"
},
+ "CZ": {
+ "name": "Txèquia"
+ },
"UA": {
"name": "Ucraïna"
},
diff --git a/vendor/commerceguys/intl/resources/country/ce.json b/vendor/commerceguys/intl/resources/country/ce.json
index 4db6fcd4c..93d094026 100644
--- a/vendor/commerceguys/intl/resources/country/ce.json
+++ b/vendor/commerceguys/intl/resources/country/ce.json
@@ -221,9 +221,6 @@
"IL": {
"name": "Израиль"
},
- "IN": {
- "name": "Инди"
- },
"ID": {
"name": "Индонези"
},
@@ -248,9 +245,6 @@
"CV": {
"name": "Кабо-Верде"
},
- "KZ": {
- "name": "Казахстан"
- },
"KY": {
"name": "Кайман гӀайренаш"
},
@@ -287,9 +281,6 @@
"KI": {
"name": "Кирибати"
},
- "CN": {
- "name": "Китай"
- },
"CC": {
"name": "Кокосийн гӀайренаш"
},
@@ -299,6 +290,9 @@
"KM": {
"name": "Комораш"
},
+ "CG": {
+ "name": "Конго - Браззавиль"
+ },
"XK": {
"name": "Косово"
},
@@ -317,6 +311,9 @@
"CK": {
"name": "Кукан гӀайренаш"
},
+ "KZ": {
+ "name": "Кхазакхстан"
+ },
"GS": {
"name": "Къилба Джорджи а, Къилба Гавайн гӀайренаш а"
},
@@ -474,10 +471,7 @@
"name": "Норфолк гӀайре"
},
"AF": {
- "name": "ОвхӀан-пачхьалкх"
- },
- "OM": {
- "name": "Оман"
+ "name": "ОвхӀан мохк"
},
"PK": {
"name": "Пакистан"
@@ -486,7 +480,7 @@
"name": "Палау"
},
"PS": {
- "name": "Палестинан латтанаш"
+ "name": "ПалестӀинан латтанаш"
},
"PA": {
"name": "Панама"
@@ -512,9 +506,6 @@
"PR": {
"name": "Пуэрто-Рико"
},
- "CG": {
- "name": "Республика Конго"
- },
"RE": {
"name": "Реюньон"
},
@@ -540,7 +531,7 @@
"name": "Сан-Томе а, Принсипи а"
},
"SA": {
- "name": "СаӀудийн Арави"
+ "name": "СаӀудийн Ӏаьрбийчоь"
},
"SZ": {
"name": "Свазиленд"
@@ -695,6 +686,12 @@
"HR": {
"name": "Хорвати"
},
+ "IN": {
+ "name": "ХӀинди"
+ },
+ "CN": {
+ "name": "Цийчоь"
+ },
"US": {
"name": "Цхьанатоьхна Штаташ"
},
@@ -753,9 +750,12 @@
"name": "Ӏарбийн Цхьанатоьхна Эмираташ"
},
"ME": {
- "name": "Ӏаьржаламанхойчоь"
+ "name": "Ӏаьржаламанчоь"
},
"IQ": {
"name": "Ӏиракъ"
+ },
+ "OM": {
+ "name": "Ӏоман"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/chr.json b/vendor/commerceguys/intl/resources/country/chr.json
index 335cd6a81..26c6b74ec 100644
--- a/vendor/commerceguys/intl/resources/country/chr.json
+++ b/vendor/commerceguys/intl/resources/country/chr.json
@@ -599,6 +599,9 @@
"TW": {
"name": "ᏔᎢᏩᏂ"
},
+ "TO": {
+ "name": "ᏔᏂᎪ"
+ },
"TJ": {
"name": "ᏔᏥᎩᏍᏕᏂ"
},
@@ -629,9 +632,6 @@
"DO": {
"name": "ᏙᎻᏂᎧᏂ ᏍᎦᏚᎩ"
},
- "TO": {
- "name": "ᏙᏅᎦ"
- },
"TN": {
"name": "ᏚᏂᏏᏍᎠ"
},
@@ -660,7 +660,7 @@
"name": "ᏣᏩᏂᏏ"
},
"CZ": {
- "name": "ᏤᎩ ᏍᎦᏚᎩ"
+ "name": "ᏤᎩᎠ"
},
"CL": {
"name": "ᏥᎵ"
diff --git a/vendor/commerceguys/intl/resources/country/ckb.json b/vendor/commerceguys/intl/resources/country/ckb.json
index 7e23dc39d..5e1af981a 100644
--- a/vendor/commerceguys/intl/resources/country/ckb.json
+++ b/vendor/commerceguys/intl/resources/country/ckb.json
@@ -188,9 +188,6 @@
"VI": {
"name": "U.S. Virgin Islands"
},
- "US": {
- "name": "United States"
- },
"VE": {
"name": "Venezuela"
},
@@ -200,9 +197,6 @@
"EH": {
"name": "Western Sahara"
},
- "AR": {
- "name": "ئارجەنتینا"
- },
"AW": {
"name": "ئارووبا"
},
@@ -224,6 +218,9 @@
"ET": {
"name": "ئەتیۆپیا"
},
+ "AR": {
+ "name": "ئەرژەنتین"
+ },
"AM": {
"name": "ئەرمەنستان"
},
@@ -236,9 +233,6 @@
"AF": {
"name": "ئەفغانستان"
},
- "DZ": {
- "name": "ئەلجەزایر"
- },
"AL": {
"name": "ئەڵبانیا"
},
@@ -257,12 +251,12 @@
"UZ": {
"name": "ئوزبەکستان"
},
+ "AU": {
+ "name": "ئوسترالیا"
+ },
"UG": {
"name": "ئوگاندا"
},
- "AU": {
- "name": "ئۆسترالیا"
- },
"UA": {
"name": "ئۆکرانیا"
},
@@ -296,9 +290,6 @@
"BR": {
"name": "برازیل"
},
- "BJ": {
- "name": "بنین"
- },
"BH": {
"name": "بەحرەین"
},
@@ -338,6 +329,9 @@
"BY": {
"name": "بیلاڕووس"
},
+ "BJ": {
+ "name": "بێنین"
+ },
"PG": {
"name": "پاپوا گینێی نوێ"
},
@@ -398,12 +392,18 @@
"JM": {
"name": "جامایکا"
},
+ "DZ": {
+ "name": "جەزایر"
+ },
"DJ": {
"name": "جیبووتی"
},
"TD": {
"name": "چاد"
},
+ "CL": {
+ "name": "چیلی"
+ },
"CN": {
"name": "چین"
},
@@ -414,7 +414,7 @@
"name": "دوورگەکانی سلێمان"
},
"KM": {
- "name": "دوورگەکانی قەمەر"
+ "name": "دوورگەکانی کۆمۆر"
},
"MH": {
"name": "دوورگەکانی مارشاڵ"
@@ -509,9 +509,6 @@
"GB": {
"name": "شانشینی یەکگرتوو"
},
- "CL": {
- "name": "شیلی"
- },
"SA": {
"name": "عەرەبستانی سەعوودی"
},
@@ -558,7 +555,7 @@
"name": "کازاخستان"
},
"CM": {
- "name": "کامیروون"
+ "name": "کامیرۆن"
},
"CA": {
"name": "کانەدا"
@@ -752,6 +749,9 @@
"IN": {
"name": "ھیندستان"
},
+ "US": {
+ "name": "ویلایەتە یەکگرتووەکان"
+ },
"YE": {
"name": "یەمەن"
},
diff --git a/vendor/commerceguys/intl/resources/country/cs.json b/vendor/commerceguys/intl/resources/country/cs.json
index 1bdaa3252..16128a375 100644
--- a/vendor/commerceguys/intl/resources/country/cs.json
+++ b/vendor/commerceguys/intl/resources/country/cs.json
@@ -126,7 +126,7 @@
"name": "Černá Hora"
},
"CZ": {
- "name": "Česká republika"
+ "name": "Česko"
},
"CN": {
"name": "Čína"
diff --git a/vendor/commerceguys/intl/resources/country/cy.json b/vendor/commerceguys/intl/resources/country/cy.json
index bab95e199..26c2ff2fe 100644
--- a/vendor/commerceguys/intl/resources/country/cy.json
+++ b/vendor/commerceguys/intl/resources/country/cy.json
@@ -69,7 +69,7 @@
"name": "Bolifia"
},
"BA": {
- "name": "Bosnia a Hercegovina"
+ "name": "Bosnia a Herzegovina"
},
"BW": {
"name": "Botswana"
@@ -239,9 +239,6 @@
"DO": {
"name": "Gweriniaeth Dominica"
},
- "CZ": {
- "name": "Gweriniaeth Tsiec"
- },
"BE": {
"name": "Gwlad Belg"
},
@@ -605,6 +602,9 @@
"TA": {
"name": "Tristan da Cunha"
},
+ "CZ": {
+ "name": "Tsiecia"
+ },
"CN": {
"name": "Tsieina"
},
diff --git a/vendor/commerceguys/intl/resources/country/da.json b/vendor/commerceguys/intl/resources/country/da.json
index 2b7bdd797..57dcafc7d 100644
--- a/vendor/commerceguys/intl/resources/country/da.json
+++ b/vendor/commerceguys/intl/resources/country/da.json
@@ -429,7 +429,7 @@
"name": "Mexico"
},
"FM": {
- "name": "Mikronesiens Forenede Stater"
+ "name": "Mikronesien"
},
"MD": {
"name": "Moldova"
diff --git a/vendor/commerceguys/intl/resources/country/de-AT.json b/vendor/commerceguys/intl/resources/country/de-AT.json
index f59c442d2..5b646b922 100644
--- a/vendor/commerceguys/intl/resources/country/de-AT.json
+++ b/vendor/commerceguys/intl/resources/country/de-AT.json
@@ -491,9 +491,6 @@
"AT": {
"name": "Österreich"
},
- "TL": {
- "name": "Osttimor"
- },
"PK": {
"name": "Pakistan"
},
@@ -599,12 +596,12 @@
"SO": {
"name": "Somalia"
},
+ "HK": {
+ "name": "Sonderverwaltungsregion Hongkong"
+ },
"MO": {
"name": "Sonderverwaltungsregion Macau"
},
- "HK": {
- "name": "Sonderverwaltungszone Hongkong"
- },
"ES": {
"name": "Spanien"
},
@@ -671,6 +668,9 @@
"TH": {
"name": "Thailand"
},
+ "TL": {
+ "name": "Timor-Leste"
+ },
"TG": {
"name": "Togo"
},
@@ -690,7 +690,7 @@
"name": "Tschad"
},
"CZ": {
- "name": "Tschechische Republik"
+ "name": "Tschechien"
},
"TN": {
"name": "Tunesien"
diff --git a/vendor/commerceguys/intl/resources/country/de-CH.json b/vendor/commerceguys/intl/resources/country/de-CH.json
index 15abe9e34..9c3b45c35 100644
--- a/vendor/commerceguys/intl/resources/country/de-CH.json
+++ b/vendor/commerceguys/intl/resources/country/de-CH.json
@@ -596,17 +596,17 @@
"SO": {
"name": "Somalia"
},
+ "HK": {
+ "name": "Sonderverwaltungsregion Hongkong"
+ },
"MO": {
"name": "Sonderverwaltungsregion Macau"
},
- "HK": {
- "name": "Sonderverwaltungszone Hongkong"
- },
"ES": {
"name": "Spanien"
},
"SJ": {
- "name": "Spitzbergen"
+ "name": "Spitzbergen und Jan Mayen"
},
"LK": {
"name": "Sri Lanka"
@@ -687,7 +687,7 @@
"name": "Tschad"
},
"CZ": {
- "name": "Tschechische Republik"
+ "name": "Tschechien"
},
"TN": {
"name": "Tunesien"
diff --git a/vendor/commerceguys/intl/resources/country/de.json b/vendor/commerceguys/intl/resources/country/de.json
index 1a604877e..a5165ca10 100644
--- a/vendor/commerceguys/intl/resources/country/de.json
+++ b/vendor/commerceguys/intl/resources/country/de.json
@@ -491,9 +491,6 @@
"AT": {
"name": "Österreich"
},
- "TL": {
- "name": "Osttimor"
- },
"PK": {
"name": "Pakistan"
},
@@ -599,17 +596,17 @@
"SO": {
"name": "Somalia"
},
+ "HK": {
+ "name": "Sonderverwaltungsregion Hongkong"
+ },
"MO": {
"name": "Sonderverwaltungsregion Macau"
},
- "HK": {
- "name": "Sonderverwaltungszone Hongkong"
- },
"ES": {
"name": "Spanien"
},
"SJ": {
- "name": "Spitzbergen"
+ "name": "Spitzbergen und Jan Mayen"
},
"LK": {
"name": "Sri Lanka"
@@ -671,6 +668,9 @@
"TH": {
"name": "Thailand"
},
+ "TL": {
+ "name": "Timor-Leste"
+ },
"TG": {
"name": "Togo"
},
@@ -690,7 +690,7 @@
"name": "Tschad"
},
"CZ": {
- "name": "Tschechische Republik"
+ "name": "Tschechien"
},
"TN": {
"name": "Tunesien"
diff --git a/vendor/commerceguys/intl/resources/country/el.json b/vendor/commerceguys/intl/resources/country/el.json
index 752f7f054..1f1d48138 100644
--- a/vendor/commerceguys/intl/resources/country/el.json
+++ b/vendor/commerceguys/intl/resources/country/el.json
@@ -20,8 +20,8 @@
"SX": {
"name": "Άγιος Μαρτίνος (Ολλανδικό τμήμα)"
},
- "KN": {
- "name": "Άγιος Χριστόφορος και Νέβις"
+ "AO": {
+ "name": "Αγκόλα"
},
"AZ": {
"name": "Αζερμπαϊτζάν"
@@ -45,14 +45,11 @@
"name": "Αλγερία"
},
"VI": {
- "name": "Αμερικανικές Παρθένοι Νήσοι"
+ "name": "Αμερικανικές Παρθένες Νήσοι"
},
"AS": {
"name": "Αμερικανική Σαμόα"
},
- "AO": {
- "name": "Ανγκόλα"
- },
"AI": {
"name": "Ανγκουίλα"
},
@@ -123,7 +120,7 @@
"name": "Βρετανικά Εδάφη Ινδικού Ωκεανού"
},
"VG": {
- "name": "Βρετανικές Παρθένοι Νήσοι"
+ "name": "Βρετανικές Παρθένες Νήσοι"
},
"FR": {
"name": "Γαλλία"
@@ -191,9 +188,6 @@
"EH": {
"name": "Δυτική Σαχάρα"
},
- "EC": {
- "name": "Εκουαδόρ"
- },
"SV": {
"name": "Ελ Σαλβαδόρ"
},
@@ -225,7 +219,7 @@
"name": "Ηνωμένο Βασίλειο"
},
"EA": {
- "name": "Θεούτα και Μελίλα"
+ "name": "Θέουτα και Μελίγια"
},
"JP": {
"name": "Ιαπωνία"
@@ -251,6 +245,9 @@
"GQ": {
"name": "Ισημερινή Γουινέα"
},
+ "EC": {
+ "name": "Ισημερινός"
+ },
"IS": {
"name": "Ισλανδία"
},
@@ -309,7 +306,7 @@
"name": "Κονγκό - Μπραζαβίλ"
},
"XK": {
- "name": "Κόσοβο"
+ "name": "Κοσσυφοπέδιο"
},
"CR": {
"name": "Κόστα Ρίκα"
@@ -402,7 +399,7 @@
"name": "Μεξικό"
},
"MM": {
- "name": "Μιανμάρ\/Βιρμανία"
+ "name": "Μιανμάρ (Βιρμανία)"
},
"FM": {
"name": "Μικρονησία"
@@ -426,7 +423,7 @@
"name": "Μπανγκλαντές"
},
"BB": {
- "name": "Μπαρμπάντος"
+ "name": "Μπαρμπέιντος"
},
"BS": {
"name": "Μπαχάμες"
@@ -474,7 +471,7 @@
"name": "Νήσοι Βόρειες Μαριάνες"
},
"KY": {
- "name": "Νήσοι Κάιμαν"
+ "name": "Νήσοι Κέιμαν"
},
"CC": {
"name": "Νήσοι Κόκος (Κίλινγκ)"
@@ -498,7 +495,7 @@
"name": "Νήσοι Σολομώντος"
},
"TC": {
- "name": "Νήσοι Τερκ και Κάικος"
+ "name": "Νήσοι Τερκς και Κάικος"
},
"FO": {
"name": "Νήσοι Φερόες"
@@ -509,12 +506,12 @@
"AC": {
"name": "Νήσος Ασενσιόν"
},
- "IM": {
- "name": "Νήσος Μαν"
- },
"NF": {
"name": "Νήσος Νόρφολκ"
},
+ "IM": {
+ "name": "Νήσος του Μαν"
+ },
"CX": {
"name": "Νήσος των Χριστουγέννων"
},
@@ -638,6 +635,9 @@
"SJ": {
"name": "Σβάλμπαρντ και Γιαν Μαγιέν"
},
+ "KN": {
+ "name": "Σεν Κιτς και Νέβις"
+ },
"PM": {
"name": "Σεν Πιερ και Μικελόν"
},
@@ -735,7 +735,7 @@
"name": "Τσαντ"
},
"CZ": {
- "name": "Τσεχική Δημοκρατία"
+ "name": "Τσεχία"
},
"TN": {
"name": "Τυνησία"
diff --git a/vendor/commerceguys/intl/resources/country/en-GB.json b/vendor/commerceguys/intl/resources/country/en-GB.json
new file mode 100644
index 000000000..b33258351
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/en-GB.json
@@ -0,0 +1,761 @@
+{
+ "AF": {
+ "name": "Afghanistan"
+ },
+ "AX": {
+ "name": "Åland Islands"
+ },
+ "AL": {
+ "name": "Albania"
+ },
+ "DZ": {
+ "name": "Algeria"
+ },
+ "AS": {
+ "name": "American Samoa"
+ },
+ "AD": {
+ "name": "Andorra"
+ },
+ "AO": {
+ "name": "Angola"
+ },
+ "AI": {
+ "name": "Anguilla"
+ },
+ "AQ": {
+ "name": "Antarctica"
+ },
+ "AG": {
+ "name": "Antigua & Barbuda"
+ },
+ "AR": {
+ "name": "Argentina"
+ },
+ "AM": {
+ "name": "Armenia"
+ },
+ "AW": {
+ "name": "Aruba"
+ },
+ "AC": {
+ "name": "Ascension Island"
+ },
+ "AU": {
+ "name": "Australia"
+ },
+ "AT": {
+ "name": "Austria"
+ },
+ "AZ": {
+ "name": "Azerbaijan"
+ },
+ "BS": {
+ "name": "Bahamas"
+ },
+ "BH": {
+ "name": "Bahrain"
+ },
+ "BD": {
+ "name": "Bangladesh"
+ },
+ "BB": {
+ "name": "Barbados"
+ },
+ "BY": {
+ "name": "Belarus"
+ },
+ "BE": {
+ "name": "Belgium"
+ },
+ "BZ": {
+ "name": "Belize"
+ },
+ "BJ": {
+ "name": "Benin"
+ },
+ "BM": {
+ "name": "Bermuda"
+ },
+ "BT": {
+ "name": "Bhutan"
+ },
+ "BO": {
+ "name": "Bolivia"
+ },
+ "BA": {
+ "name": "Bosnia & Herzegovina"
+ },
+ "BW": {
+ "name": "Botswana"
+ },
+ "BR": {
+ "name": "Brazil"
+ },
+ "IO": {
+ "name": "British Indian Ocean Territory"
+ },
+ "VG": {
+ "name": "British Virgin Islands"
+ },
+ "BN": {
+ "name": "Brunei"
+ },
+ "BG": {
+ "name": "Bulgaria"
+ },
+ "BF": {
+ "name": "Burkina Faso"
+ },
+ "BI": {
+ "name": "Burundi"
+ },
+ "KH": {
+ "name": "Cambodia"
+ },
+ "CM": {
+ "name": "Cameroon"
+ },
+ "CA": {
+ "name": "Canada"
+ },
+ "IC": {
+ "name": "Canary Islands"
+ },
+ "CV": {
+ "name": "Cape Verde"
+ },
+ "BQ": {
+ "name": "Caribbean Netherlands"
+ },
+ "KY": {
+ "name": "Cayman Islands"
+ },
+ "CF": {
+ "name": "Central African Republic"
+ },
+ "EA": {
+ "name": "Ceuta & Melilla"
+ },
+ "TD": {
+ "name": "Chad"
+ },
+ "CL": {
+ "name": "Chile"
+ },
+ "CN": {
+ "name": "China"
+ },
+ "CX": {
+ "name": "Christmas Island"
+ },
+ "CC": {
+ "name": "Cocos (Keeling) Islands"
+ },
+ "CO": {
+ "name": "Colombia"
+ },
+ "KM": {
+ "name": "Comoros"
+ },
+ "CG": {
+ "name": "Congo - Brazzaville"
+ },
+ "CD": {
+ "name": "Congo - Kinshasa"
+ },
+ "CK": {
+ "name": "Cook Islands"
+ },
+ "CR": {
+ "name": "Costa Rica"
+ },
+ "CI": {
+ "name": "Côte d’Ivoire"
+ },
+ "HR": {
+ "name": "Croatia"
+ },
+ "CU": {
+ "name": "Cuba"
+ },
+ "CW": {
+ "name": "Curaçao"
+ },
+ "CY": {
+ "name": "Cyprus"
+ },
+ "CZ": {
+ "name": "Czechia"
+ },
+ "DK": {
+ "name": "Denmark"
+ },
+ "DG": {
+ "name": "Diego Garcia"
+ },
+ "DJ": {
+ "name": "Djibouti"
+ },
+ "DM": {
+ "name": "Dominica"
+ },
+ "DO": {
+ "name": "Dominican Republic"
+ },
+ "EC": {
+ "name": "Ecuador"
+ },
+ "EG": {
+ "name": "Egypt"
+ },
+ "SV": {
+ "name": "El Salvador"
+ },
+ "GQ": {
+ "name": "Equatorial Guinea"
+ },
+ "ER": {
+ "name": "Eritrea"
+ },
+ "EE": {
+ "name": "Estonia"
+ },
+ "ET": {
+ "name": "Ethiopia"
+ },
+ "FK": {
+ "name": "Falkland Islands"
+ },
+ "FO": {
+ "name": "Faroe Islands"
+ },
+ "FJ": {
+ "name": "Fiji"
+ },
+ "FI": {
+ "name": "Finland"
+ },
+ "FR": {
+ "name": "France"
+ },
+ "GF": {
+ "name": "French Guiana"
+ },
+ "PF": {
+ "name": "French Polynesia"
+ },
+ "TF": {
+ "name": "French Southern Territories"
+ },
+ "GA": {
+ "name": "Gabon"
+ },
+ "GM": {
+ "name": "Gambia"
+ },
+ "GE": {
+ "name": "Georgia"
+ },
+ "DE": {
+ "name": "Germany"
+ },
+ "GH": {
+ "name": "Ghana"
+ },
+ "GI": {
+ "name": "Gibraltar"
+ },
+ "GR": {
+ "name": "Greece"
+ },
+ "GL": {
+ "name": "Greenland"
+ },
+ "GD": {
+ "name": "Grenada"
+ },
+ "GP": {
+ "name": "Guadeloupe"
+ },
+ "GU": {
+ "name": "Guam"
+ },
+ "GT": {
+ "name": "Guatemala"
+ },
+ "GG": {
+ "name": "Guernsey"
+ },
+ "GN": {
+ "name": "Guinea"
+ },
+ "GW": {
+ "name": "Guinea-Bissau"
+ },
+ "GY": {
+ "name": "Guyana"
+ },
+ "HT": {
+ "name": "Haiti"
+ },
+ "HN": {
+ "name": "Honduras"
+ },
+ "HK": {
+ "name": "Hong Kong SAR China"
+ },
+ "HU": {
+ "name": "Hungary"
+ },
+ "IS": {
+ "name": "Iceland"
+ },
+ "IN": {
+ "name": "India"
+ },
+ "ID": {
+ "name": "Indonesia"
+ },
+ "IR": {
+ "name": "Iran"
+ },
+ "IQ": {
+ "name": "Iraq"
+ },
+ "IE": {
+ "name": "Ireland"
+ },
+ "IM": {
+ "name": "Isle of Man"
+ },
+ "IL": {
+ "name": "Israel"
+ },
+ "IT": {
+ "name": "Italy"
+ },
+ "JM": {
+ "name": "Jamaica"
+ },
+ "JP": {
+ "name": "Japan"
+ },
+ "JE": {
+ "name": "Jersey"
+ },
+ "JO": {
+ "name": "Jordan"
+ },
+ "KZ": {
+ "name": "Kazakhstan"
+ },
+ "KE": {
+ "name": "Kenya"
+ },
+ "KI": {
+ "name": "Kiribati"
+ },
+ "XK": {
+ "name": "Kosovo"
+ },
+ "KW": {
+ "name": "Kuwait"
+ },
+ "KG": {
+ "name": "Kyrgyzstan"
+ },
+ "LA": {
+ "name": "Laos"
+ },
+ "LV": {
+ "name": "Latvia"
+ },
+ "LB": {
+ "name": "Lebanon"
+ },
+ "LS": {
+ "name": "Lesotho"
+ },
+ "LR": {
+ "name": "Liberia"
+ },
+ "LY": {
+ "name": "Libya"
+ },
+ "LI": {
+ "name": "Liechtenstein"
+ },
+ "LT": {
+ "name": "Lithuania"
+ },
+ "LU": {
+ "name": "Luxembourg"
+ },
+ "MO": {
+ "name": "Macau SAR China"
+ },
+ "MK": {
+ "name": "Macedonia"
+ },
+ "MG": {
+ "name": "Madagascar"
+ },
+ "MW": {
+ "name": "Malawi"
+ },
+ "MY": {
+ "name": "Malaysia"
+ },
+ "MV": {
+ "name": "Maldives"
+ },
+ "ML": {
+ "name": "Mali"
+ },
+ "MT": {
+ "name": "Malta"
+ },
+ "MH": {
+ "name": "Marshall Islands"
+ },
+ "MQ": {
+ "name": "Martinique"
+ },
+ "MR": {
+ "name": "Mauritania"
+ },
+ "MU": {
+ "name": "Mauritius"
+ },
+ "YT": {
+ "name": "Mayotte"
+ },
+ "MX": {
+ "name": "Mexico"
+ },
+ "FM": {
+ "name": "Micronesia"
+ },
+ "MD": {
+ "name": "Moldova"
+ },
+ "MC": {
+ "name": "Monaco"
+ },
+ "MN": {
+ "name": "Mongolia"
+ },
+ "ME": {
+ "name": "Montenegro"
+ },
+ "MS": {
+ "name": "Montserrat"
+ },
+ "MA": {
+ "name": "Morocco"
+ },
+ "MZ": {
+ "name": "Mozambique"
+ },
+ "MM": {
+ "name": "Myanmar (Burma)"
+ },
+ "NA": {
+ "name": "Namibia"
+ },
+ "NR": {
+ "name": "Nauru"
+ },
+ "NP": {
+ "name": "Nepal"
+ },
+ "NL": {
+ "name": "Netherlands"
+ },
+ "NC": {
+ "name": "New Caledonia"
+ },
+ "NZ": {
+ "name": "New Zealand"
+ },
+ "NI": {
+ "name": "Nicaragua"
+ },
+ "NE": {
+ "name": "Niger"
+ },
+ "NG": {
+ "name": "Nigeria"
+ },
+ "NU": {
+ "name": "Niue"
+ },
+ "NF": {
+ "name": "Norfolk Island"
+ },
+ "KP": {
+ "name": "North Korea"
+ },
+ "MP": {
+ "name": "Northern Mariana Islands"
+ },
+ "NO": {
+ "name": "Norway"
+ },
+ "OM": {
+ "name": "Oman"
+ },
+ "PK": {
+ "name": "Pakistan"
+ },
+ "PW": {
+ "name": "Palau"
+ },
+ "PS": {
+ "name": "Palestinian Territories"
+ },
+ "PA": {
+ "name": "Panama"
+ },
+ "PG": {
+ "name": "Papua New Guinea"
+ },
+ "PY": {
+ "name": "Paraguay"
+ },
+ "PE": {
+ "name": "Peru"
+ },
+ "PH": {
+ "name": "Philippines"
+ },
+ "PN": {
+ "name": "Pitcairn Islands"
+ },
+ "PL": {
+ "name": "Poland"
+ },
+ "PT": {
+ "name": "Portugal"
+ },
+ "PR": {
+ "name": "Puerto Rico"
+ },
+ "QA": {
+ "name": "Qatar"
+ },
+ "RE": {
+ "name": "Réunion"
+ },
+ "RO": {
+ "name": "Romania"
+ },
+ "RU": {
+ "name": "Russia"
+ },
+ "RW": {
+ "name": "Rwanda"
+ },
+ "WS": {
+ "name": "Samoa"
+ },
+ "SM": {
+ "name": "San Marino"
+ },
+ "ST": {
+ "name": "São Tomé & Príncipe"
+ },
+ "SA": {
+ "name": "Saudi Arabia"
+ },
+ "SN": {
+ "name": "Senegal"
+ },
+ "RS": {
+ "name": "Serbia"
+ },
+ "SC": {
+ "name": "Seychelles"
+ },
+ "SL": {
+ "name": "Sierra Leone"
+ },
+ "SG": {
+ "name": "Singapore"
+ },
+ "SX": {
+ "name": "Sint Maarten"
+ },
+ "SK": {
+ "name": "Slovakia"
+ },
+ "SI": {
+ "name": "Slovenia"
+ },
+ "SB": {
+ "name": "Solomon Islands"
+ },
+ "SO": {
+ "name": "Somalia"
+ },
+ "ZA": {
+ "name": "South Africa"
+ },
+ "GS": {
+ "name": "South Georgia & South Sandwich Islands"
+ },
+ "KR": {
+ "name": "South Korea"
+ },
+ "SS": {
+ "name": "South Sudan"
+ },
+ "ES": {
+ "name": "Spain"
+ },
+ "LK": {
+ "name": "Sri Lanka"
+ },
+ "BL": {
+ "name": "St Barthélemy"
+ },
+ "SH": {
+ "name": "St Helena"
+ },
+ "KN": {
+ "name": "St Kitts & Nevis"
+ },
+ "LC": {
+ "name": "St Lucia"
+ },
+ "MF": {
+ "name": "St Martin"
+ },
+ "PM": {
+ "name": "St Pierre & Miquelon"
+ },
+ "VC": {
+ "name": "St Vincent & Grenadines"
+ },
+ "SD": {
+ "name": "Sudan"
+ },
+ "SR": {
+ "name": "Suriname"
+ },
+ "SJ": {
+ "name": "Svalbard & Jan Mayen"
+ },
+ "SZ": {
+ "name": "Swaziland"
+ },
+ "SE": {
+ "name": "Sweden"
+ },
+ "CH": {
+ "name": "Switzerland"
+ },
+ "SY": {
+ "name": "Syria"
+ },
+ "TW": {
+ "name": "Taiwan"
+ },
+ "TJ": {
+ "name": "Tajikistan"
+ },
+ "TZ": {
+ "name": "Tanzania"
+ },
+ "TH": {
+ "name": "Thailand"
+ },
+ "TL": {
+ "name": "Timor-Leste"
+ },
+ "TG": {
+ "name": "Togo"
+ },
+ "TK": {
+ "name": "Tokelau"
+ },
+ "TO": {
+ "name": "Tonga"
+ },
+ "TT": {
+ "name": "Trinidad & Tobago"
+ },
+ "TA": {
+ "name": "Tristan da Cunha"
+ },
+ "TN": {
+ "name": "Tunisia"
+ },
+ "TR": {
+ "name": "Turkey"
+ },
+ "TM": {
+ "name": "Turkmenistan"
+ },
+ "TC": {
+ "name": "Turks & Caicos Islands"
+ },
+ "TV": {
+ "name": "Tuvalu"
+ },
+ "UG": {
+ "name": "Uganda"
+ },
+ "UA": {
+ "name": "Ukraine"
+ },
+ "AE": {
+ "name": "United Arab Emirates"
+ },
+ "GB": {
+ "name": "United Kingdom"
+ },
+ "US": {
+ "name": "United States"
+ },
+ "UY": {
+ "name": "Uruguay"
+ },
+ "UM": {
+ "name": "US Outlying Islands"
+ },
+ "VI": {
+ "name": "US Virgin Islands"
+ },
+ "UZ": {
+ "name": "Uzbekistan"
+ },
+ "VU": {
+ "name": "Vanuatu"
+ },
+ "VA": {
+ "name": "Vatican City"
+ },
+ "VE": {
+ "name": "Venezuela"
+ },
+ "VN": {
+ "name": "Vietnam"
+ },
+ "WF": {
+ "name": "Wallis & Futuna"
+ },
+ "EH": {
+ "name": "Western Sahara"
+ },
+ "YE": {
+ "name": "Yemen"
+ },
+ "ZM": {
+ "name": "Zambia"
+ },
+ "ZW": {
+ "name": "Zimbabwe"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/en.json b/vendor/commerceguys/intl/resources/country/en.json
index 7a858bf01..ddf90c387 100644
--- a/vendor/commerceguys/intl/resources/country/en.json
+++ b/vendor/commerceguys/intl/resources/country/en.json
@@ -186,7 +186,7 @@
"name": "Cyprus"
},
"CZ": {
- "name": "Czech Republic"
+ "name": "Czechia"
},
"DK": {
"name": "Denmark"
diff --git a/vendor/commerceguys/intl/resources/country/es-AR.json b/vendor/commerceguys/intl/resources/country/es-AR.json
index e94300461..fd47917f0 100644
--- a/vendor/commerceguys/intl/resources/country/es-AR.json
+++ b/vendor/commerceguys/intl/resources/country/es-AR.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-BO.json b/vendor/commerceguys/intl/resources/country/es-BO.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-BO.json
+++ b/vendor/commerceguys/intl/resources/country/es-BO.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-BR.json b/vendor/commerceguys/intl/resources/country/es-BR.json
index d0a111cec..bc214e555 100644
--- a/vendor/commerceguys/intl/resources/country/es-BR.json
+++ b/vendor/commerceguys/intl/resources/country/es-BR.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-BZ.json b/vendor/commerceguys/intl/resources/country/es-BZ.json
new file mode 100644
index 000000000..bc214e555
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/es-BZ.json
@@ -0,0 +1,761 @@
+{
+ "AF": {
+ "name": "Afganistán"
+ },
+ "AL": {
+ "name": "Albania"
+ },
+ "DE": {
+ "name": "Alemania"
+ },
+ "AD": {
+ "name": "Andorra"
+ },
+ "AO": {
+ "name": "Angola"
+ },
+ "AI": {
+ "name": "Anguila"
+ },
+ "AQ": {
+ "name": "Antártida"
+ },
+ "AG": {
+ "name": "Antigua y Barbuda"
+ },
+ "SA": {
+ "name": "Arabia Saudí"
+ },
+ "DZ": {
+ "name": "Argelia"
+ },
+ "AR": {
+ "name": "Argentina"
+ },
+ "AM": {
+ "name": "Armenia"
+ },
+ "AW": {
+ "name": "Aruba"
+ },
+ "AU": {
+ "name": "Australia"
+ },
+ "AT": {
+ "name": "Austria"
+ },
+ "AZ": {
+ "name": "Azerbaiyán"
+ },
+ "BS": {
+ "name": "Bahamas"
+ },
+ "BD": {
+ "name": "Bangladés"
+ },
+ "BB": {
+ "name": "Barbados"
+ },
+ "BH": {
+ "name": "Baréin"
+ },
+ "BE": {
+ "name": "Bélgica"
+ },
+ "BZ": {
+ "name": "Belice"
+ },
+ "BJ": {
+ "name": "Benín"
+ },
+ "BM": {
+ "name": "Bermudas"
+ },
+ "BY": {
+ "name": "Bielorrusia"
+ },
+ "BO": {
+ "name": "Bolivia"
+ },
+ "BA": {
+ "name": "Bosnia-Herzegovina"
+ },
+ "BW": {
+ "name": "Botsuana"
+ },
+ "BR": {
+ "name": "Brasil"
+ },
+ "BN": {
+ "name": "Brunéi"
+ },
+ "BG": {
+ "name": "Bulgaria"
+ },
+ "BF": {
+ "name": "Burkina Faso"
+ },
+ "BI": {
+ "name": "Burundi"
+ },
+ "BT": {
+ "name": "Bután"
+ },
+ "CV": {
+ "name": "Cabo Verde"
+ },
+ "KH": {
+ "name": "Camboya"
+ },
+ "CM": {
+ "name": "Camerún"
+ },
+ "CA": {
+ "name": "Canadá"
+ },
+ "BQ": {
+ "name": "Caribe neerlandés"
+ },
+ "QA": {
+ "name": "Catar"
+ },
+ "EA": {
+ "name": "Ceuta y Melilla"
+ },
+ "TD": {
+ "name": "Chad"
+ },
+ "CZ": {
+ "name": "Chequia"
+ },
+ "CL": {
+ "name": "Chile"
+ },
+ "CN": {
+ "name": "China"
+ },
+ "CY": {
+ "name": "Chipre"
+ },
+ "VA": {
+ "name": "Ciudad del Vaticano"
+ },
+ "CO": {
+ "name": "Colombia"
+ },
+ "KM": {
+ "name": "Comoras"
+ },
+ "KP": {
+ "name": "Corea del Norte"
+ },
+ "KR": {
+ "name": "Corea del Sur"
+ },
+ "CI": {
+ "name": "Costa de Marfil"
+ },
+ "CR": {
+ "name": "Costa Rica"
+ },
+ "HR": {
+ "name": "Croacia"
+ },
+ "CU": {
+ "name": "Cuba"
+ },
+ "CW": {
+ "name": "Curazao"
+ },
+ "DG": {
+ "name": "Diego García"
+ },
+ "DK": {
+ "name": "Dinamarca"
+ },
+ "DM": {
+ "name": "Dominica"
+ },
+ "EC": {
+ "name": "Ecuador"
+ },
+ "EG": {
+ "name": "Egipto"
+ },
+ "SV": {
+ "name": "El Salvador"
+ },
+ "AE": {
+ "name": "Emiratos Árabes Unidos"
+ },
+ "ER": {
+ "name": "Eritrea"
+ },
+ "SK": {
+ "name": "Eslovaquia"
+ },
+ "SI": {
+ "name": "Eslovenia"
+ },
+ "ES": {
+ "name": "España"
+ },
+ "US": {
+ "name": "Estados Unidos"
+ },
+ "EE": {
+ "name": "Estonia"
+ },
+ "ET": {
+ "name": "Etiopía"
+ },
+ "PH": {
+ "name": "Filipinas"
+ },
+ "FI": {
+ "name": "Finlandia"
+ },
+ "FJ": {
+ "name": "Fiyi"
+ },
+ "FR": {
+ "name": "Francia"
+ },
+ "GA": {
+ "name": "Gabón"
+ },
+ "GM": {
+ "name": "Gambia"
+ },
+ "GE": {
+ "name": "Georgia"
+ },
+ "GH": {
+ "name": "Ghana"
+ },
+ "GI": {
+ "name": "Gibraltar"
+ },
+ "GD": {
+ "name": "Granada"
+ },
+ "GR": {
+ "name": "Grecia"
+ },
+ "GL": {
+ "name": "Groenlandia"
+ },
+ "GP": {
+ "name": "Guadalupe"
+ },
+ "GU": {
+ "name": "Guam"
+ },
+ "GT": {
+ "name": "Guatemala"
+ },
+ "GF": {
+ "name": "Guayana Francesa"
+ },
+ "GG": {
+ "name": "Guernesey"
+ },
+ "GN": {
+ "name": "Guinea"
+ },
+ "GQ": {
+ "name": "Guinea Ecuatorial"
+ },
+ "GW": {
+ "name": "Guinea-Bisáu"
+ },
+ "GY": {
+ "name": "Guyana"
+ },
+ "HT": {
+ "name": "Haití"
+ },
+ "HN": {
+ "name": "Honduras"
+ },
+ "HU": {
+ "name": "Hungría"
+ },
+ "IN": {
+ "name": "India"
+ },
+ "ID": {
+ "name": "Indonesia"
+ },
+ "IQ": {
+ "name": "Irak"
+ },
+ "IR": {
+ "name": "Irán"
+ },
+ "IE": {
+ "name": "Irlanda"
+ },
+ "AC": {
+ "name": "Isla Ascensión"
+ },
+ "IM": {
+ "name": "Isla de Man"
+ },
+ "CX": {
+ "name": "Isla de Navidad"
+ },
+ "NF": {
+ "name": "Isla Norfolk"
+ },
+ "IS": {
+ "name": "Islandia"
+ },
+ "AX": {
+ "name": "Islas Åland"
+ },
+ "KY": {
+ "name": "Islas Caimán"
+ },
+ "IC": {
+ "name": "Islas Canarias"
+ },
+ "CC": {
+ "name": "Islas Cocos"
+ },
+ "CK": {
+ "name": "Islas Cook"
+ },
+ "FO": {
+ "name": "Islas Feroe"
+ },
+ "GS": {
+ "name": "Islas Georgia del Sur y Sandwich del Sur"
+ },
+ "FK": {
+ "name": "Islas Malvinas"
+ },
+ "MP": {
+ "name": "Islas Marianas del Norte"
+ },
+ "MH": {
+ "name": "Islas Marshall"
+ },
+ "PN": {
+ "name": "Islas Pitcairn"
+ },
+ "SB": {
+ "name": "Islas Salomón"
+ },
+ "TC": {
+ "name": "Islas Turcas y Caicos"
+ },
+ "UM": {
+ "name": "Islas Ultramarinas de EE.UU."
+ },
+ "VG": {
+ "name": "Islas Vírgenes Británicas"
+ },
+ "VI": {
+ "name": "Islas Vírgenes de los Estados Unidos"
+ },
+ "IL": {
+ "name": "Israel"
+ },
+ "IT": {
+ "name": "Italia"
+ },
+ "JM": {
+ "name": "Jamaica"
+ },
+ "JP": {
+ "name": "Japón"
+ },
+ "JE": {
+ "name": "Jersey"
+ },
+ "JO": {
+ "name": "Jordania"
+ },
+ "KZ": {
+ "name": "Kazajistán"
+ },
+ "KE": {
+ "name": "Kenia"
+ },
+ "KG": {
+ "name": "Kirguistán"
+ },
+ "KI": {
+ "name": "Kiribati"
+ },
+ "XK": {
+ "name": "Kosovo"
+ },
+ "KW": {
+ "name": "Kuwait"
+ },
+ "LA": {
+ "name": "Laos"
+ },
+ "LS": {
+ "name": "Lesoto"
+ },
+ "LV": {
+ "name": "Letonia"
+ },
+ "LB": {
+ "name": "Líbano"
+ },
+ "LR": {
+ "name": "Liberia"
+ },
+ "LY": {
+ "name": "Libia"
+ },
+ "LI": {
+ "name": "Liechtenstein"
+ },
+ "LT": {
+ "name": "Lituania"
+ },
+ "LU": {
+ "name": "Luxemburgo"
+ },
+ "MK": {
+ "name": "Macedonia"
+ },
+ "MG": {
+ "name": "Madagascar"
+ },
+ "MY": {
+ "name": "Malasia"
+ },
+ "MW": {
+ "name": "Malaui"
+ },
+ "MV": {
+ "name": "Maldivas"
+ },
+ "ML": {
+ "name": "Mali"
+ },
+ "MT": {
+ "name": "Malta"
+ },
+ "MA": {
+ "name": "Marruecos"
+ },
+ "MQ": {
+ "name": "Martinica"
+ },
+ "MU": {
+ "name": "Mauricio"
+ },
+ "MR": {
+ "name": "Mauritania"
+ },
+ "YT": {
+ "name": "Mayotte"
+ },
+ "MX": {
+ "name": "México"
+ },
+ "FM": {
+ "name": "Micronesia"
+ },
+ "MD": {
+ "name": "Moldavia"
+ },
+ "MC": {
+ "name": "Mónaco"
+ },
+ "MN": {
+ "name": "Mongolia"
+ },
+ "ME": {
+ "name": "Montenegro"
+ },
+ "MS": {
+ "name": "Montserrat"
+ },
+ "MZ": {
+ "name": "Mozambique"
+ },
+ "MM": {
+ "name": "Myanmar (Birmania)"
+ },
+ "NA": {
+ "name": "Namibia"
+ },
+ "NR": {
+ "name": "Nauru"
+ },
+ "NP": {
+ "name": "Nepal"
+ },
+ "NI": {
+ "name": "Nicaragua"
+ },
+ "NE": {
+ "name": "Níger"
+ },
+ "NG": {
+ "name": "Nigeria"
+ },
+ "NU": {
+ "name": "Niue"
+ },
+ "NO": {
+ "name": "Noruega"
+ },
+ "NC": {
+ "name": "Nueva Caledonia"
+ },
+ "NZ": {
+ "name": "Nueva Zelanda"
+ },
+ "OM": {
+ "name": "Omán"
+ },
+ "NL": {
+ "name": "Países Bajos"
+ },
+ "PK": {
+ "name": "Pakistán"
+ },
+ "PW": {
+ "name": "Palaos"
+ },
+ "PA": {
+ "name": "Panamá"
+ },
+ "PG": {
+ "name": "Papúa Nueva Guinea"
+ },
+ "PY": {
+ "name": "Paraguay"
+ },
+ "PE": {
+ "name": "Perú"
+ },
+ "PF": {
+ "name": "Polinesia Francesa"
+ },
+ "PL": {
+ "name": "Polonia"
+ },
+ "PT": {
+ "name": "Portugal"
+ },
+ "PR": {
+ "name": "Puerto Rico"
+ },
+ "HK": {
+ "name": "RAE de Hong Kong (China)"
+ },
+ "MO": {
+ "name": "RAE de Macao (China)"
+ },
+ "GB": {
+ "name": "Reino Unido"
+ },
+ "CF": {
+ "name": "República Centroafricana"
+ },
+ "CG": {
+ "name": "República del Congo"
+ },
+ "CD": {
+ "name": "República Democrática del Congo"
+ },
+ "DO": {
+ "name": "República Dominicana"
+ },
+ "RE": {
+ "name": "Reunión"
+ },
+ "RW": {
+ "name": "Ruanda"
+ },
+ "RO": {
+ "name": "Rumanía"
+ },
+ "RU": {
+ "name": "Rusia"
+ },
+ "EH": {
+ "name": "Sáhara Occidental"
+ },
+ "WS": {
+ "name": "Samoa"
+ },
+ "AS": {
+ "name": "Samoa Americana"
+ },
+ "BL": {
+ "name": "San Bartolomé"
+ },
+ "KN": {
+ "name": "San Cristóbal y Nieves"
+ },
+ "SM": {
+ "name": "San Marino"
+ },
+ "MF": {
+ "name": "San Martín"
+ },
+ "PM": {
+ "name": "San Pedro y Miquelón"
+ },
+ "VC": {
+ "name": "San Vicente y las Granadinas"
+ },
+ "SH": {
+ "name": "Santa Elena"
+ },
+ "LC": {
+ "name": "Santa Lucía"
+ },
+ "ST": {
+ "name": "Santo Tomé y Príncipe"
+ },
+ "SN": {
+ "name": "Senegal"
+ },
+ "RS": {
+ "name": "Serbia"
+ },
+ "SC": {
+ "name": "Seychelles"
+ },
+ "SL": {
+ "name": "Sierra Leona"
+ },
+ "SG": {
+ "name": "Singapur"
+ },
+ "SX": {
+ "name": "Sint Maarten"
+ },
+ "SY": {
+ "name": "Siria"
+ },
+ "SO": {
+ "name": "Somalia"
+ },
+ "LK": {
+ "name": "Sri Lanka"
+ },
+ "SZ": {
+ "name": "Suazilandia"
+ },
+ "ZA": {
+ "name": "Sudáfrica"
+ },
+ "SD": {
+ "name": "Sudán"
+ },
+ "SS": {
+ "name": "Sudán del Sur"
+ },
+ "SE": {
+ "name": "Suecia"
+ },
+ "CH": {
+ "name": "Suiza"
+ },
+ "SR": {
+ "name": "Surinam"
+ },
+ "SJ": {
+ "name": "Svalbard y Jan Mayen"
+ },
+ "TH": {
+ "name": "Tailandia"
+ },
+ "TW": {
+ "name": "Taiwán"
+ },
+ "TZ": {
+ "name": "Tanzania"
+ },
+ "TJ": {
+ "name": "Tayikistán"
+ },
+ "IO": {
+ "name": "Territorio Británico del Océano Índico"
+ },
+ "TF": {
+ "name": "Territorios Australes Franceses"
+ },
+ "PS": {
+ "name": "Territorios Palestinos"
+ },
+ "TL": {
+ "name": "Timor Oriental"
+ },
+ "TG": {
+ "name": "Togo"
+ },
+ "TK": {
+ "name": "Tokelau"
+ },
+ "TO": {
+ "name": "Tonga"
+ },
+ "TT": {
+ "name": "Trinidad y Tobago"
+ },
+ "TA": {
+ "name": "Tristán da Cunha"
+ },
+ "TN": {
+ "name": "Túnez"
+ },
+ "TM": {
+ "name": "Turkmenistán"
+ },
+ "TR": {
+ "name": "Turquía"
+ },
+ "TV": {
+ "name": "Tuvalu"
+ },
+ "UA": {
+ "name": "Ucrania"
+ },
+ "UG": {
+ "name": "Uganda"
+ },
+ "UY": {
+ "name": "Uruguay"
+ },
+ "UZ": {
+ "name": "Uzbekistán"
+ },
+ "VU": {
+ "name": "Vanuatu"
+ },
+ "VE": {
+ "name": "Venezuela"
+ },
+ "VN": {
+ "name": "Vietnam"
+ },
+ "WF": {
+ "name": "Wallis y Futuna"
+ },
+ "YE": {
+ "name": "Yemen"
+ },
+ "DJ": {
+ "name": "Yibuti"
+ },
+ "ZM": {
+ "name": "Zambia"
+ },
+ "ZW": {
+ "name": "Zimbabue"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/es-CL.json b/vendor/commerceguys/intl/resources/country/es-CL.json
index d10f7a5d1..62e8e1d7a 100644
--- a/vendor/commerceguys/intl/resources/country/es-CL.json
+++ b/vendor/commerceguys/intl/resources/country/es-CL.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-CO.json b/vendor/commerceguys/intl/resources/country/es-CO.json
index e94300461..fd47917f0 100644
--- a/vendor/commerceguys/intl/resources/country/es-CO.json
+++ b/vendor/commerceguys/intl/resources/country/es-CO.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-CR.json b/vendor/commerceguys/intl/resources/country/es-CR.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-CR.json
+++ b/vendor/commerceguys/intl/resources/country/es-CR.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-CU.json b/vendor/commerceguys/intl/resources/country/es-CU.json
index d0a111cec..bc214e555 100644
--- a/vendor/commerceguys/intl/resources/country/es-CU.json
+++ b/vendor/commerceguys/intl/resources/country/es-CU.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-DO.json b/vendor/commerceguys/intl/resources/country/es-DO.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-DO.json
+++ b/vendor/commerceguys/intl/resources/country/es-DO.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-EC.json b/vendor/commerceguys/intl/resources/country/es-EC.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-EC.json
+++ b/vendor/commerceguys/intl/resources/country/es-EC.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-GT.json b/vendor/commerceguys/intl/resources/country/es-GT.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-GT.json
+++ b/vendor/commerceguys/intl/resources/country/es-GT.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-HN.json b/vendor/commerceguys/intl/resources/country/es-HN.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-HN.json
+++ b/vendor/commerceguys/intl/resources/country/es-HN.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-MX.json b/vendor/commerceguys/intl/resources/country/es-MX.json
index 6b1dc0e7d..ad4cda209 100644
--- a/vendor/commerceguys/intl/resources/country/es-MX.json
+++ b/vendor/commerceguys/intl/resources/country/es-MX.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -149,12 +152,12 @@
"KR": {
"name": "Corea del Sur"
},
- "CI": {
- "name": "Costa de Marfil"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire"
+ },
"HR": {
"name": "Croacia"
},
@@ -255,7 +258,7 @@
"name": "Guayana Francesa"
},
"GG": {
- "name": "Guernesey"
+ "name": "Guernsey"
},
"GN": {
"name": "Guinea"
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -338,6 +341,9 @@
"MH": {
"name": "Islas Marshall"
},
+ "UM": {
+ "name": "Islas menores alejadas de EE. UU."
+ },
"PN": {
"name": "Islas Pitcairn"
},
@@ -347,9 +353,6 @@
"TC": {
"name": "Islas Turcas y Caicos"
},
- "UM": {
- "name": "Islas Ultramarinas Menores de Estados Unidos"
- },
"VG": {
"name": "Islas Vírgenes Británicas"
},
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-NI.json b/vendor/commerceguys/intl/resources/country/es-NI.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-NI.json
+++ b/vendor/commerceguys/intl/resources/country/es-NI.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-PA.json b/vendor/commerceguys/intl/resources/country/es-PA.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-PA.json
+++ b/vendor/commerceguys/intl/resources/country/es-PA.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-PE.json b/vendor/commerceguys/intl/resources/country/es-PE.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-PE.json
+++ b/vendor/commerceguys/intl/resources/country/es-PE.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-PR.json b/vendor/commerceguys/intl/resources/country/es-PR.json
index dc8f46f45..d33edf82d 100644
--- a/vendor/commerceguys/intl/resources/country/es-PR.json
+++ b/vendor/commerceguys/intl/resources/country/es-PR.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-PY.json b/vendor/commerceguys/intl/resources/country/es-PY.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-PY.json
+++ b/vendor/commerceguys/intl/resources/country/es-PY.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-SV.json b/vendor/commerceguys/intl/resources/country/es-SV.json
index dc8f46f45..d33edf82d 100644
--- a/vendor/commerceguys/intl/resources/country/es-SV.json
+++ b/vendor/commerceguys/intl/resources/country/es-SV.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-US.json b/vendor/commerceguys/intl/resources/country/es-US.json
index dc8f46f45..2df4de000 100644
--- a/vendor/commerceguys/intl/resources/country/es-US.json
+++ b/vendor/commerceguys/intl/resources/country/es-US.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -149,12 +152,12 @@
"KR": {
"name": "Corea del Sur"
},
- "CI": {
- "name": "Costa de Marfil"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire"
+ },
"HR": {
"name": "Croacia"
},
@@ -255,7 +258,7 @@
"name": "Guayana Francesa"
},
"GG": {
- "name": "Guernesey"
+ "name": "Guernsey"
},
"GN": {
"name": "Guinea"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
@@ -693,7 +693,7 @@
"name": "Territorios Palestinos"
},
"TL": {
- "name": "Timor Oriental"
+ "name": "Timor-Leste"
},
"TG": {
"name": "Togo"
diff --git a/vendor/commerceguys/intl/resources/country/es-UY.json b/vendor/commerceguys/intl/resources/country/es-UY.json
index d0a111cec..bc214e555 100644
--- a/vendor/commerceguys/intl/resources/country/es-UY.json
+++ b/vendor/commerceguys/intl/resources/country/es-UY.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es-VE.json b/vendor/commerceguys/intl/resources/country/es-VE.json
index e94300461..4ec5afd86 100644
--- a/vendor/commerceguys/intl/resources/country/es-VE.json
+++ b/vendor/commerceguys/intl/resources/country/es-VE.json
@@ -125,6 +125,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -294,7 +297,7 @@
"name": "Irlanda"
},
"AC": {
- "name": "Isla de la Ascensión"
+ "name": "Isla Ascensión"
},
"IM": {
"name": "Isla de Man"
@@ -354,7 +357,7 @@
"name": "Islas Vírgenes Británicas"
},
"VI": {
- "name": "Islas Vírgenes de EE. UU."
+ "name": "Islas Vírgenes de los Estados Unidos"
},
"IL": {
"name": "Israel"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/es.json b/vendor/commerceguys/intl/resources/country/es.json
index c5ef97c54..37ba2ea78 100644
--- a/vendor/commerceguys/intl/resources/country/es.json
+++ b/vendor/commerceguys/intl/resources/country/es.json
@@ -78,7 +78,7 @@
"name": "Bolivia"
},
"BA": {
- "name": "Bosnia-Herzegovina"
+ "name": "Bosnia y Herzegovina"
},
"BW": {
"name": "Botsuana"
@@ -128,6 +128,9 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
@@ -258,7 +261,7 @@
"name": "Guayana Francesa"
},
"GG": {
- "name": "Guernesey"
+ "name": "Guernsey"
},
"GN": {
"name": "Guinea"
@@ -560,9 +563,6 @@
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CG": {
"name": "República del Congo"
},
diff --git a/vendor/commerceguys/intl/resources/country/et.json b/vendor/commerceguys/intl/resources/country/et.json
index d900eb6a8..60cd31495 100644
--- a/vendor/commerceguys/intl/resources/country/et.json
+++ b/vendor/commerceguys/intl/resources/country/et.json
@@ -560,9 +560,6 @@
"SB": {
"name": "Saalomoni Saared"
},
- "BL": {
- "name": "Saint Barthélemy"
- },
"SH": {
"name": "Saint Helena"
},
@@ -572,15 +569,18 @@
"LC": {
"name": "Saint Lucia"
},
- "PM": {
- "name": "Saint Pierre ja Miquelon"
- },
"VC": {
"name": "Saint Vincent ja Grenadiinid"
},
+ "BL": {
+ "name": "Saint-Barthélemy"
+ },
"MF": {
"name": "Saint-Martin"
},
+ "PM": {
+ "name": "Saint-Pierre ja Miquelon"
+ },
"DE": {
"name": "Saksamaa"
},
diff --git a/vendor/commerceguys/intl/resources/country/eu.json b/vendor/commerceguys/intl/resources/country/eu.json
index 14f5bcab4..860cf6b78 100644
--- a/vendor/commerceguys/intl/resources/country/eu.json
+++ b/vendor/commerceguys/intl/resources/country/eu.json
@@ -5,6 +5,9 @@
"CF": {
"name": "Afrika Erdiko Errepublika"
},
+ "AI": {
+ "name": "Aingira"
+ },
"AX": {
"name": "Aland uharteak"
},
@@ -17,9 +20,6 @@
"DZ": {
"name": "Aljeria"
},
- "AS": {
- "name": "Amerikar Samoa"
- },
"US": {
"name": "Ameriketako Estatu Batuak"
},
@@ -29,9 +29,6 @@
"AD": {
"name": "Andorra"
},
- "AI": {
- "name": "Angila"
- },
"AO": {
"name": "Angola"
},
@@ -153,7 +150,7 @@
"name": "Danimarka"
},
"DG": {
- "name": "Diego Garcia"
+ "name": "Diego García"
},
"DJ": {
"name": "Djibuti"
@@ -240,7 +237,7 @@
"name": "Ginea"
},
"GW": {
- "name": "Ginea-Bissau"
+ "name": "Ginea Bissau"
},
"GD": {
"name": "Grenada"
@@ -294,7 +291,7 @@
"name": "Honduras"
},
"HK": {
- "name": "Hong Kong AEB Txina"
+ "name": "Hong Kong Txinako AEB"
},
"HU": {
"name": "Hungaria"
@@ -312,7 +309,7 @@
"name": "Ipar Korea"
},
"MP": {
- "name": "Iparraldeko Mariana uharteak"
+ "name": "Ipar Mariana uharteak"
},
"IQ": {
"name": "Irak"
@@ -384,7 +381,7 @@
"name": "Komoreak"
},
"CG": {
- "name": "Kongo (Brazzaville)"
+ "name": "Kongo"
},
"CD": {
"name": "Kongoko Errepublika Demokratikoa"
@@ -429,7 +426,7 @@
"name": "Luxenburgo"
},
"MO": {
- "name": "Macau AEB Txina"
+ "name": "Macau Txinako AEB"
},
"MG": {
"name": "Madagaskar"
@@ -459,7 +456,7 @@
"name": "Maroko"
},
"MH": {
- "name": "Marshall uharteak"
+ "name": "Marshall Uharteak"
},
"MQ": {
"name": "Martinika"
@@ -594,11 +591,14 @@
"name": "Saint-Pierre eta Mikelune"
},
"SB": {
- "name": "Salomon uharteak"
+ "name": "Salomon Uharteak"
},
"WS": {
"name": "Samoa"
},
+ "AS": {
+ "name": "Samoa Estatubatuarra"
+ },
"SM": {
"name": "San Marino"
},
@@ -708,7 +708,7 @@
"name": "Txad"
},
"CZ": {
- "name": "Txekiar Errepublika"
+ "name": "Txekia"
},
"CL": {
"name": "Txile"
diff --git a/vendor/commerceguys/intl/resources/country/fa-AF.json b/vendor/commerceguys/intl/resources/country/fa-AF.json
index 07c342c83..7cb0e191c 100644
--- a/vendor/commerceguys/intl/resources/country/fa-AF.json
+++ b/vendor/commerceguys/intl/resources/country/fa-AF.json
@@ -113,6 +113,9 @@
"GB": {
"name": "بریتانیا"
},
+ "BY": {
+ "name": "بلاروس"
+ },
"BE": {
"name": "بلجیم"
},
@@ -335,9 +338,6 @@
"RU": {
"name": "روسیه"
},
- "BY": {
- "name": "روسیهٔ سفید"
- },
"RO": {
"name": "رومانیا"
},
diff --git a/vendor/commerceguys/intl/resources/country/fil.json b/vendor/commerceguys/intl/resources/country/fil.json
index f14ba9fb0..a0036baed 100644
--- a/vendor/commerceguys/intl/resources/country/fil.json
+++ b/vendor/commerceguys/intl/resources/country/fil.json
@@ -24,7 +24,7 @@
"name": "Antarctica"
},
"AG": {
- "name": "Antigua and Barbuda"
+ "name": "Antigua & Barbuda"
},
"AO": {
"name": "Angola"
@@ -135,7 +135,7 @@
"name": "Central African Republic"
},
"EA": {
- "name": "Ceuta and Melilla"
+ "name": "Ceuta & Melilla"
},
"TD": {
"name": "Chad"
@@ -186,7 +186,7 @@
"name": "Cyprus"
},
"CZ": {
- "name": "Czech Republic"
+ "name": "Czechia"
},
"DK": {
"name": "Denmark"
@@ -563,27 +563,12 @@
"RW": {
"name": "Rwanda"
},
- "BL": {
- "name": "Saint Barthélemy"
- },
- "SH": {
- "name": "Saint Helena"
- },
- "KN": {
- "name": "Saint Kitts and Nevis"
- },
"LC": {
"name": "Saint Lucia"
},
"MF": {
"name": "Saint Martin"
},
- "PM": {
- "name": "Saint Pierre and Miquelon"
- },
- "VC": {
- "name": "Saint Vincent and the Grenadines"
- },
"WS": {
"name": "Samoa"
},
@@ -591,7 +576,7 @@
"name": "San Marino"
},
"ST": {
- "name": "São Tomé and Príncipe"
+ "name": "São Tomé & Príncipe"
},
"SA": {
"name": "Saudi Arabia"
@@ -630,7 +615,7 @@
"name": "South Africa"
},
"GS": {
- "name": "South Georgia and the South Sandwich Islands"
+ "name": "South Georgia & South Sandwich Islands"
},
"ES": {
"name": "Spain"
@@ -638,6 +623,21 @@
"LK": {
"name": "Sri Lanka"
},
+ "BL": {
+ "name": "St. Barthélemy"
+ },
+ "SH": {
+ "name": "St. Helena"
+ },
+ "KN": {
+ "name": "St. Kitts & Nevis"
+ },
+ "PM": {
+ "name": "St. Pierre & Miquelon"
+ },
+ "VC": {
+ "name": "St. Vincent & Grenadines"
+ },
"SD": {
"name": "Sudan"
},
@@ -645,7 +645,7 @@
"name": "Suriname"
},
"SJ": {
- "name": "Svalbard and Jan Mayen"
+ "name": "Svalbard & Jan Mayen"
},
"SZ": {
"name": "Swaziland"
@@ -690,7 +690,7 @@
"name": "Tonga"
},
"TT": {
- "name": "Trinidad and Tobago"
+ "name": "Trinidad & Tobago"
},
"TA": {
"name": "Tristan de Cunha"
@@ -705,7 +705,7 @@
"name": "Turkmenistan"
},
"TC": {
- "name": "Turks and Caicos Islands"
+ "name": "Turks & Caicos Islands"
},
"TV": {
"name": "Tuvalu"
@@ -747,7 +747,7 @@
"name": "Vietnam"
},
"WF": {
- "name": "Wallis and Futuna"
+ "name": "Wallis & Futuna"
},
"YE": {
"name": "Yemen"
diff --git a/vendor/commerceguys/intl/resources/country/fr-BE.json b/vendor/commerceguys/intl/resources/country/fr-BE.json
index 77621f32e..f07123de3 100644
--- a/vendor/commerceguys/intl/resources/country/fr-BE.json
+++ b/vendor/commerceguys/intl/resources/country/fr-BE.json
@@ -176,9 +176,6 @@
"EG": {
"name": "Égypte"
},
- "SV": {
- "name": "El Salvador"
- },
"AE": {
"name": "Émirats arabes unis"
},
@@ -572,9 +569,6 @@
"DO": {
"name": "République dominicaine"
},
- "CZ": {
- "name": "République tchèque"
- },
"RO": {
"name": "Roumanie"
},
@@ -617,6 +611,9 @@
"LC": {
"name": "Sainte-Lucie"
},
+ "SV": {
+ "name": "Salvador"
+ },
"WS": {
"name": "Samoa"
},
@@ -689,6 +686,9 @@
"TD": {
"name": "Tchad"
},
+ "CZ": {
+ "name": "Tchéquie"
+ },
"TF": {
"name": "Terres australes françaises"
},
diff --git a/vendor/commerceguys/intl/resources/country/fr-CA.json b/vendor/commerceguys/intl/resources/country/fr-CA.json
index 0f1c1cf95..773350066 100644
--- a/vendor/commerceguys/intl/resources/country/fr-CA.json
+++ b/vendor/commerceguys/intl/resources/country/fr-CA.json
@@ -179,9 +179,6 @@
"EG": {
"name": "Égypte"
},
- "SV": {
- "name": "El Salvador"
- },
"AE": {
"name": "Émirats arabes unis"
},
@@ -572,9 +569,6 @@
"DO": {
"name": "République dominicaine"
},
- "CZ": {
- "name": "République tchèque"
- },
"RO": {
"name": "Roumanie"
},
@@ -617,6 +611,9 @@
"LC": {
"name": "Sainte-Lucie"
},
+ "SV": {
+ "name": "Salvador"
+ },
"WS": {
"name": "Samoa"
},
@@ -689,11 +686,14 @@
"TD": {
"name": "Tchad"
},
+ "CZ": {
+ "name": "Tchéquie"
+ },
"TF": {
"name": "Terres australes françaises"
},
"IO": {
- "name": "Territoire britannique de l’océan Indien"
+ "name": "territoire britannique de l’océan Indien"
},
"PS": {
"name": "Territoires palestiniens"
diff --git a/vendor/commerceguys/intl/resources/country/fr.json b/vendor/commerceguys/intl/resources/country/fr.json
index 38882255b..5c0545072 100644
--- a/vendor/commerceguys/intl/resources/country/fr.json
+++ b/vendor/commerceguys/intl/resources/country/fr.json
@@ -176,9 +176,6 @@
"EG": {
"name": "Égypte"
},
- "SV": {
- "name": "El Salvador"
- },
"AE": {
"name": "Émirats arabes unis"
},
@@ -572,9 +569,6 @@
"DO": {
"name": "République dominicaine"
},
- "CZ": {
- "name": "République tchèque"
- },
"RO": {
"name": "Roumanie"
},
@@ -617,6 +611,9 @@
"LC": {
"name": "Sainte-Lucie"
},
+ "SV": {
+ "name": "Salvador"
+ },
"WS": {
"name": "Samoa"
},
@@ -689,6 +686,9 @@
"TD": {
"name": "Tchad"
},
+ "CZ": {
+ "name": "Tchéquie"
+ },
"TF": {
"name": "Terres australes françaises"
},
diff --git a/vendor/commerceguys/intl/resources/country/ga.json b/vendor/commerceguys/intl/resources/country/ga.json
index ab3c85af4..593cdfa1a 100644
--- a/vendor/commerceguys/intl/resources/country/ga.json
+++ b/vendor/commerceguys/intl/resources/country/ga.json
@@ -1,348 +1,348 @@
{
"ET": {
- "name": "An Aetóip"
+ "name": "an Aetóip"
},
"AF": {
- "name": "An Afganastáin"
+ "name": "an Afganastáin"
},
"ZA": {
- "name": "An Afraic Theas"
+ "name": "an Afraic Theas"
},
"DZ": {
- "name": "An Ailgéir"
+ "name": "an Ailgéir"
},
"AR": {
- "name": "An Airgintín"
+ "name": "an Airgintín"
},
"AM": {
- "name": "An Airméin"
+ "name": "an Airméin"
},
"AL": {
- "name": "An Albáin"
+ "name": "an Albáin"
},
"AQ": {
- "name": "An Antartaice"
+ "name": "an Antartaice"
},
"SA": {
- "name": "An Araib Shádach"
+ "name": "an Araib Shádach"
},
"AZ": {
- "name": "An Asarbaiseáin"
+ "name": "an Asarbaiseáin"
},
"AU": {
- "name": "An Astráil"
+ "name": "an Astráil"
},
"BD": {
- "name": "An Bhanglaidéis"
+ "name": "an Bhanglaidéis"
},
"BY": {
- "name": "An Bhealarúis"
+ "name": "an Bhealarúis"
},
"BE": {
- "name": "An Bheilg"
+ "name": "an Bheilg"
},
"BZ": {
- "name": "An Bheilís"
+ "name": "an Bheilís"
},
"BA": {
- "name": "An Bhoisnia agus An Heirseagaivéin"
+ "name": "an Bhoisnia agus an Heirseagaivéin"
},
"BO": {
- "name": "An Bholaiv"
+ "name": "an Bholaiv"
},
"BW": {
- "name": "An Bhotsuáin"
+ "name": "an Bhotsuáin"
},
"BR": {
- "name": "An Bhrasaíl"
+ "name": "an Bhrasaíl"
},
"BG": {
- "name": "An Bhulgáir"
+ "name": "an Bhulgáir"
},
"BI": {
- "name": "An Bhurúin"
+ "name": "an Bhurúin"
},
"BT": {
- "name": "An Bhútáin"
+ "name": "an Bhútáin"
},
"KH": {
- "name": "An Chambóid"
+ "name": "an Chambóid"
},
"KZ": {
- "name": "An Chasacstáin"
+ "name": "an Chasacstáin"
},
"KE": {
- "name": "An Chéinia"
+ "name": "an Chéinia"
},
"CY": {
- "name": "An Chipir"
+ "name": "an Chipir"
},
"KG": {
- "name": "An Chirgeastáin"
+ "name": "an Chirgeastáin"
},
"KR": {
- "name": "An Chóiré Theas"
+ "name": "an Chóiré Theas"
},
"KP": {
- "name": "An Chóiré Thuaidh"
+ "name": "an Chóiré Thuaidh"
},
"CO": {
- "name": "An Cholóim"
+ "name": "an Cholóim"
},
"XK": {
- "name": "An Chosaiv"
+ "name": "an Chosaiv"
},
"HR": {
- "name": "An Chróit"
+ "name": "an Chróit"
},
"CG": {
- "name": "An Congó"
+ "name": "an Congó"
},
"CI": {
- "name": "An Cósta Eabhair"
+ "name": "an Cósta Eabhair"
},
"DK": {
- "name": "An Danmhairg"
+ "name": "an Danmhairg"
},
"EE": {
- "name": "An Eastóin"
+ "name": "an Eastóin"
},
"EG": {
- "name": "An Éigipt"
+ "name": "an Éigipt"
},
"CH": {
- "name": "An Eilvéis"
+ "name": "an Eilvéis"
},
"ER": {
- "name": "An Eiritré"
+ "name": "an Eiritré"
},
"FI": {
- "name": "An Fhionlainn"
+ "name": "an Fhionlainn"
},
"FR": {
- "name": "An Fhrainc"
+ "name": "an Fhrainc"
},
"GA": {
- "name": "An Ghabúin"
+ "name": "an Ghabúin"
},
"GM": {
- "name": "An Ghaimbia"
+ "name": "an Ghaimbia"
},
"DE": {
- "name": "An Ghearmáin"
+ "name": "an Ghearmáin"
},
"GL": {
- "name": "An Ghraonlainn"
+ "name": "an Ghraonlainn"
},
"GR": {
- "name": "An Ghréig"
+ "name": "an Ghréig"
},
"GY": {
- "name": "An Ghuáin"
+ "name": "an Ghuáin"
},
"GN": {
- "name": "An Ghuine"
+ "name": "an Ghuine"
},
"GQ": {
- "name": "An Ghuine Mheánchriosach"
+ "name": "an Ghuine Mheánchiorclach"
},
"IQ": {
- "name": "An Iaráic"
+ "name": "an Iaráic"
},
"IR": {
- "name": "An Iaráin"
+ "name": "an Iaráin"
},
"IN": {
- "name": "An India"
+ "name": "an India"
},
"ID": {
- "name": "An Indinéis"
+ "name": "an Indinéis"
},
"IT": {
- "name": "An Iodáil"
+ "name": "an Iodáil"
},
"JO": {
- "name": "An Iordáin"
+ "name": "an Iordáin"
},
"NO": {
- "name": "An Iorua"
+ "name": "an Iorua"
},
"IS": {
- "name": "An Íoslainn"
+ "name": "an Íoslainn"
},
"NL": {
- "name": "An Ísiltír"
+ "name": "an Ísiltír"
},
"BQ": {
- "name": "An Ísiltír Chairibeach"
+ "name": "an Ísiltír Chairibeach"
},
"LV": {
- "name": "An Laitvia"
+ "name": "an Laitvia"
},
"LR": {
- "name": "An Libéir"
+ "name": "an Libéir"
},
"LY": {
- "name": "An Libia"
+ "name": "an Libia"
},
"LB": {
- "name": "An Liobáin"
+ "name": "an Liobáin"
},
"LT": {
- "name": "An Liotuáin"
+ "name": "an Liotuáin"
},
"MK": {
- "name": "An Mhacadóin"
+ "name": "an Mhacadóin"
},
"MY": {
- "name": "An Mhalaeisia"
+ "name": "an Mhalaeisia"
},
"MW": {
- "name": "An Mhaláiv"
+ "name": "an Mhaláiv"
},
"MR": {
- "name": "An Mháratáin"
+ "name": "an Mháratáin"
},
"FM": {
- "name": "An Mhicrinéis"
+ "name": "an Mhicrinéis"
},
"MD": {
- "name": "An Mholdóiv"
+ "name": "an Mholdóiv"
},
"MN": {
- "name": "An Mhongóil"
+ "name": "an Mhongóil"
},
"NA": {
- "name": "An Namaib"
+ "name": "an Namaib"
},
"NG": {
- "name": "An Nigéir"
+ "name": "an Nigéir"
},
"NE": {
- "name": "An Nígir"
+ "name": "an Nígir"
},
"NC": {
- "name": "An Nua-Chaladóin"
+ "name": "an Nua-Chaladóin"
},
"NZ": {
- "name": "An Nua-Shéalainn"
+ "name": "an Nua-Shéalainn"
},
"AT": {
- "name": "An Ostair"
+ "name": "an Ostair"
},
"PK": {
- "name": "An Phacastáin"
+ "name": "an Phacastáin"
},
"DO": {
- "name": "An Phoblacht Dhoiminiceach"
+ "name": "an Phoblacht Dhoiminiceach"
},
"PL": {
- "name": "An Pholainn"
+ "name": "an Pholainn"
},
"PT": {
- "name": "An Phortaingéil"
+ "name": "an Phortaingéil"
},
"GB": {
- "name": "An Ríocht Aontaithe"
+ "name": "an Ríocht Aontaithe"
},
"RO": {
- "name": "An Rómáin"
+ "name": "an Rómáin"
},
"RU": {
- "name": "An Rúis"
+ "name": "an Rúis"
},
"EH": {
- "name": "An Sahára Thiar"
+ "name": "an Sahára Thiar"
},
"ES": {
- "name": "An Spáinn"
+ "name": "an Spáinn"
},
"TJ": {
- "name": "An Táidsíceastáin"
+ "name": "an Táidsíceastáin"
},
"TZ": {
- "name": "An Tansáin"
+ "name": "an Tansáin"
},
"TH": {
- "name": "An Téalainn"
+ "name": "an Téalainn"
},
"TW": {
- "name": "An Téaváin"
+ "name": "an Téaváin"
},
"ZM": {
- "name": "An tSaimbia"
+ "name": "an tSaimbia"
},
"SV": {
- "name": "An tSalvadóir"
+ "name": "an tSalvadóir"
},
"JP": {
- "name": "An tSeapáin"
+ "name": "an tSeapáin"
+ },
+ "CZ": {
+ "name": "An tSeicia"
},
"SN": {
- "name": "An tSeineagáil"
+ "name": "an tSeineagáil"
},
"RS": {
- "name": "An tSeirbia"
+ "name": "an tSeirbia"
},
"GE": {
- "name": "An tSeoirsia"
+ "name": "an tSeoirsia"
},
"GS": {
- "name": "An tSeoirsia Theas agus Oileáin Sandwich Theas"
+ "name": "an tSeoirsia Theas agus Oileáin Sandwich Theas"
},
"CL": {
- "name": "An tSile"
+ "name": "an tSile"
},
"CN": {
- "name": "An tSín"
+ "name": "an tSín"
},
"ZW": {
- "name": "An tSiombáib"
+ "name": "an tSiombáib"
},
"SY": {
- "name": "An tSiria"
+ "name": "an tSiria"
},
"SI": {
- "name": "An tSlóivéin"
+ "name": "an tSlóivéin"
},
"SK": {
- "name": "An tSlóvaic"
+ "name": "an tSlóvaic"
},
"SO": {
- "name": "An tSomáil"
+ "name": "an tSomáil"
},
"SE": {
- "name": "An tSualainn"
+ "name": "an tSualainn"
},
"SZ": {
- "name": "An tSuasalainn"
+ "name": "an tSuasalainn"
},
"SD": {
- "name": "An tSúdáin"
+ "name": "an tSúdáin"
},
"SS": {
- "name": "An tSúdáin Theas"
+ "name": "an tSúdáin Theas"
},
"TN": {
- "name": "An Túinéis"
+ "name": "an Túinéis"
},
"TR": {
- "name": "An Tuirc"
+ "name": "an Tuirc"
},
"TM": {
- "name": "An Tuircméanastáin"
+ "name": "an Tuircméanastáin"
},
"UA": {
- "name": "An Úcráin"
+ "name": "an Úcráin"
},
"UZ": {
- "name": "An Úisbéiceastáin"
+ "name": "an Úisbéiceastáin"
},
"HU": {
- "name": "An Ungáir"
- },
- "VA": {
- "name": "An Vatacáin"
+ "name": "an Ungáir"
},
"AD": {
"name": "Andóra"
@@ -386,6 +386,9 @@
"QA": {
"name": "Catar"
},
+ "VA": {
+ "name": "Cathair na Vatacáine"
+ },
"CA": {
"name": "Ceanada"
},
@@ -525,22 +528,22 @@
"name": "Mósaimbíc"
},
"BS": {
- "name": "Na Bahámaí"
+ "name": "na Bahámaí"
},
"PS": {
- "name": "Na Críocha Palaistíneacha"
+ "name": "na Críocha Palaistíneacha"
},
"IC": {
- "name": "Na hOileáin Chanáracha"
+ "name": "na hOileáin Chanáracha"
},
"PH": {
- "name": "Na hOileáin Fhilipíneacha"
+ "name": "na hOileáin Fhilipíneacha"
},
"MP": {
- "name": "Na hOileáin Mháirianacha Thuaidh"
+ "name": "na hOileáin Mháirianacha Thuaidh"
},
"SC": {
- "name": "Na Séiséil"
+ "name": "na Séiséil"
},
"NR": {
"name": "Nárú"
@@ -596,6 +599,9 @@
"TC": {
"name": "Oileáin na dTurcach agus Caicos"
},
+ "PW": {
+ "name": "Oileáin Palau"
+ },
"PN": {
"name": "Oileáin Pitcairn"
},
@@ -623,9 +629,6 @@
"OM": {
"name": "Óman"
},
- "PW": {
- "name": "Palau"
- },
"PA": {
"name": "Panama"
},
@@ -641,14 +644,11 @@
"CF": {
"name": "Poblacht na hAfraice Láir"
},
- "CZ": {
- "name": "Poblacht na Seice"
- },
"PF": {
"name": "Polainéis na Fraince"
},
"PR": {
- "name": "Portó Ríce"
+ "name": "Pórtó Ríce"
},
"RE": {
"name": "Réunion"
@@ -674,14 +674,11 @@
"MF": {
"name": "Saint-Martin"
},
- "PM": {
- "name": "Saint-Pierre-et-Miquelon"
- },
"WS": {
"name": "Samó"
},
"AS": {
- "name": "Samó Meiriceánach"
+ "name": "Samó Mheiriceá"
},
"KN": {
"name": "San Críostóir-Nimheas"
@@ -692,6 +689,9 @@
"SM": {
"name": "San Mairíne"
},
+ "PM": {
+ "name": "San Pierre agus Miquelon"
+ },
"VC": {
"name": "San Uinseann agus na Greanáidíní"
},
@@ -744,7 +744,7 @@
"name": "Uganda"
},
"UY": {
- "name": "Urugua"
+ "name": "Uragua"
},
"WF": {
"name": "Vailís agus Futúna"
diff --git a/vendor/commerceguys/intl/resources/country/gd.json b/vendor/commerceguys/intl/resources/country/gd.json
index d5a672824..109d64bbf 100644
--- a/vendor/commerceguys/intl/resources/country/gd.json
+++ b/vendor/commerceguys/intl/resources/country/gd.json
@@ -140,6 +140,9 @@
"JP": {
"name": "An t-Seapan"
},
+ "CZ": {
+ "name": "An t-Seic"
+ },
"RS": {
"name": "An t-Sèirb"
},
@@ -216,7 +219,7 @@
"name": "Boilibhia"
},
"BA": {
- "name": "Bosna agus Hearsagobhana"
+ "name": "Bosna is Hearsagobhana"
},
"BW": {
"name": "Botsuana"
@@ -363,7 +366,7 @@
"name": "Eileanan na Maighdinn aig na SA"
},
"PN": {
- "name": "Eileanan Peit a’ Chàirn"
+ "name": "Eileanan Pheit a’ Chàirn"
},
"SB": {
"name": "Eileanan Sholaimh"
@@ -623,9 +626,6 @@
"CF": {
"name": "Poblachd Meadhan Afraga"
},
- "CZ": {
- "name": "Poblachd na Seice"
- },
"PF": {
"name": "Poilinèis na Frainge"
},
diff --git a/vendor/commerceguys/intl/resources/country/gl.json b/vendor/commerceguys/intl/resources/country/gl.json
index 934089a2b..8eee6242f 100644
--- a/vendor/commerceguys/intl/resources/country/gl.json
+++ b/vendor/commerceguys/intl/resources/country/gl.json
@@ -1,10 +1,4 @@
{
- "CN": {
- "name": "A China"
- },
- "IN": {
- "name": "A India"
- },
"AZ": {
"name": "Acerbaixán"
},
@@ -60,13 +54,13 @@
"name": "Bahrain"
},
"BD": {
- "name": "Bangladés"
+ "name": "Bangladesh"
},
"BB": {
"name": "Barbados"
},
"BZ": {
- "name": "Belice"
+ "name": "Belize"
},
"BE": {
"name": "Bélxica"
@@ -84,10 +78,10 @@
"name": "Bolivia"
},
"BA": {
- "name": "Bosnia-Hercegovina"
+ "name": "Bosnia e Hercegovina"
},
"BW": {
- "name": "Botsuana"
+ "name": "Botswana"
},
"BR": {
"name": "Brasil"
@@ -111,7 +105,7 @@
"name": "Cabo Verde"
},
"KH": {
- "name": "Camboxa"
+ "name": "Cambodja"
},
"CM": {
"name": "Camerún"
@@ -131,18 +125,21 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chequia"
+ },
"CL": {
"name": "Chile"
},
+ "CN": {
+ "name": "China"
+ },
"CY": {
"name": "Chipre"
},
"VA": {
"name": "Cidade do Vaticano"
},
- "ZW": {
- "name": "Cimbabue"
- },
"CO": {
"name": "Colombia"
},
@@ -267,7 +264,7 @@
"name": "Guinea Ecuatorial"
},
"GW": {
- "name": "Guinea-Bisau"
+ "name": "Guinea-Bissau"
},
"HT": {
"name": "Haití"
@@ -276,7 +273,7 @@
"name": "Honduras"
},
"HK": {
- "name": "Hong Kong RAE de China"
+ "name": "Hong Kong RAE da China"
},
"HU": {
"name": "Hungría"
@@ -344,6 +341,9 @@
"GS": {
"name": "Illas Xeorxia do Sur e Sandwich do Sur"
},
+ "IN": {
+ "name": "India"
+ },
"ID": {
"name": "Indonesia"
},
@@ -371,6 +371,9 @@
"KE": {
"name": "Kenya"
},
+ "KG": {
+ "name": "Kirguizistán"
+ },
"KI": {
"name": "Kiribati"
},
@@ -408,7 +411,7 @@
"name": "Luxemburgo"
},
"MO": {
- "name": "Macau RAE de China"
+ "name": "Macau RAE da China"
},
"MK": {
"name": "Macedonia"
@@ -420,7 +423,7 @@
"name": "Malaisia"
},
"MW": {
- "name": "Malaui"
+ "name": "Malawi"
},
"MV": {
"name": "Maldivas"
@@ -506,9 +509,6 @@
"SV": {
"name": "O Salvador"
},
- "JP": {
- "name": "O Xapón"
- },
"OM": {
"name": "Omán"
},
@@ -548,18 +548,12 @@
"QA": {
"name": "Qatar"
},
- "KG": {
- "name": "Quirguicistán"
- },
"GB": {
"name": "Reino Unido"
},
"CF": {
"name": "República Centroafricana"
},
- "CZ": {
- "name": "República Checa"
- },
"CD": {
"name": "República Democrática do Congo"
},
@@ -587,15 +581,15 @@
"KN": {
"name": "Saint Kitts e Nevis"
},
- "PM": {
- "name": "Saint Pierre e Miquelon"
- },
"BL": {
"name": "Saint-Barthélemy"
},
"MF": {
"name": "Saint-Martin"
},
+ "PM": {
+ "name": "Saint-Pierre-et-Miquelon"
+ },
"WS": {
"name": "Samoa"
},
@@ -609,7 +603,7 @@
"name": "San Tomé e Príncipe"
},
"VC": {
- "name": "San Vicente e as Granadinas"
+ "name": "San Vicente e As Granadinas"
},
"SH": {
"name": "Santa Helena"
@@ -617,9 +611,6 @@
"LC": {
"name": "Santa Lucía"
},
- "SC": {
- "name": "Seixeles"
- },
"SN": {
"name": "Senegal"
},
@@ -629,6 +620,9 @@
"SL": {
"name": "Serra Leoa"
},
+ "SC": {
+ "name": "Seychelles"
+ },
"SG": {
"name": "Singapur"
},
@@ -644,14 +638,11 @@
"LK": {
"name": "Sri Lanka"
},
- "SZ": {
- "name": "Suacilandia"
- },
"SD": {
"name": "Sudán"
},
"SS": {
- "name": "Sudán do sur"
+ "name": "Sudán do Sur"
},
"SE": {
"name": "Suecia"
@@ -668,6 +659,9 @@
"SJ": {
"name": "Svalbard e Jan Mayen"
},
+ "SZ": {
+ "name": "Swazilandia"
+ },
"TH": {
"name": "Tailandia"
},
@@ -687,7 +681,7 @@
"name": "Territorios Austrais Franceses"
},
"PS": {
- "name": "Territorios palestinos"
+ "name": "Territorios Palestinos"
},
"TL": {
"name": "Timor Leste"
@@ -695,12 +689,12 @@
"TG": {
"name": "Togo"
},
+ "TK": {
+ "name": "Tokelau"
+ },
"TO": {
"name": "Tonga"
},
- "TK": {
- "name": "Toquelau"
- },
"TT": {
"name": "Trinidad e Tobago"
},
@@ -729,7 +723,7 @@
"name": "Uruguai"
},
"UZ": {
- "name": "Uzbekistán"
+ "name": "Uzbequistán"
},
"VU": {
"name": "Vanuatu"
@@ -746,6 +740,9 @@
"JM": {
"name": "Xamaica"
},
+ "JP": {
+ "name": "Xapón"
+ },
"GE": {
"name": "Xeorxia"
},
@@ -757,5 +754,8 @@
},
"ZM": {
"name": "Zambia"
+ },
+ "ZW": {
+ "name": "Zimbabwe"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/gu.json b/vendor/commerceguys/intl/resources/country/gu.json
index bc22afa7e..dc67c6f18 100644
--- a/vendor/commerceguys/intl/resources/country/gu.json
+++ b/vendor/commerceguys/intl/resources/country/gu.json
@@ -9,7 +9,7 @@
"name": "અફઘાનિસ્તાન"
},
"AS": {
- "name": "અમેરીકન સમોઆ"
+ "name": "અમેરિકન સમોઆ"
},
"AW": {
"name": "અરુબા"
@@ -20,12 +20,12 @@
"AL": {
"name": "અલ્બેનિયા"
},
+ "IM": {
+ "name": "આઇલ ઑફ મેન"
+ },
"IS": {
"name": "આઇસલેન્ડ"
},
- "IM": {
- "name": "આઈલ ઓફ મૅન"
- },
"IE": {
"name": "આયર્લેન્ડ"
},
@@ -66,7 +66,7 @@
"name": "ઉત્તર કોરિયા"
},
"MP": {
- "name": "ઉત્તરીય મારિયાના આઇલેન્ડ્સ"
+ "name": "ઉત્તરી મારિયાના આઇલેન્ડ્સ"
},
"UY": {
"name": "ઉરુગ્વે"
@@ -77,30 +77,30 @@
"AD": {
"name": "ઍંડોરા"
},
+ "AG": {
+ "name": "ઍન્ટિગુઆ અને બર્મુડા"
+ },
"EC": {
"name": "એક્વાડોર"
},
"AQ": {
"name": "એન્ટાર્કટિકા"
},
- "AG": {
- "name": "એન્ટીગુઆ અને બર્મુડા"
- },
"ER": {
"name": "એરિટ્રિયા"
},
"SV": {
"name": "એલ સેલ્વાડોર"
},
- "AX": {
- "name": "એલેંડ ટાપુઓ"
- },
"AC": {
"name": "એસેન્શન આઇલેન્ડ"
},
"EE": {
"name": "એસ્ટોનિયા"
},
+ "AX": {
+ "name": "ઑલેન્ડ આઇલેન્ડ્સ"
+ },
"AT": {
"name": "ઑસ્ટ્રિયા"
},
@@ -132,7 +132,7 @@
"name": "કુવૈત"
},
"IC": {
- "name": "કૅનેરી ટાપુઓ"
+ "name": "કૅનેરી આઇલેન્ડ્સ"
},
"CV": {
"name": "કૅપ વર્ડે"
@@ -147,7 +147,7 @@
"name": "કેન્યા"
},
"KY": {
- "name": "કેમેન ટાપુઓ"
+ "name": "કેમેન આઇલેન્ડ્સ"
},
"BQ": {
"name": "કેરેબિયન નેધરલેન્ડ્ઝ"
@@ -162,7 +162,7 @@
"name": "કોકોઝ (કીલીંગ) આઇલેન્ડ્સ"
},
"CI": {
- "name": "કોટ ડી આઇવરી"
+ "name": "કોટ ડીઆઇવરી"
},
"KM": {
"name": "કોમોરસ"
@@ -237,7 +237,7 @@
"name": "ચીન"
},
"CZ": {
- "name": "ચેક રીપબ્લિક"
+ "name": "ચેકીયા"
},
"JM": {
"name": "જમૈકા"
@@ -261,7 +261,7 @@
"name": "જોર્ડન"
},
"GE": {
- "name": "જ્યોર્જીયા"
+ "name": "જ્યોર્જિયા"
},
"ZM": {
"name": "ઝામ્બિયા"
@@ -291,7 +291,7 @@
"name": "ડેનમાર્ક"
},
"DO": {
- "name": "ડોમિનિકન રીપબ્લિક"
+ "name": "ડોમિનિકન રિપબ્લિક"
},
"DM": {
"name": "ડોમિનિકા"
@@ -315,7 +315,7 @@
"name": "તુર્કી"
},
"TC": {
- "name": "તુર્ક્સ અને કાઇકોસ ટાપુઓ"
+ "name": "તુર્ક્સ અને કેકોઝ આઇલેન્ડ્સ"
},
"TV": {
"name": "તુવાલુ"
@@ -333,7 +333,7 @@
"name": "દક્ષિણ કોરિયા"
},
"GS": {
- "name": "દક્ષિણ જ્યોર્જીયા અને દક્ષિણ સેન્ડવિચ આઇલેન્ડ્સ"
+ "name": "દક્ષિણ જ્યોર્જિયા અને દક્ષિણ સેન્ડવિચ આઇલેન્ડ્સ"
},
"SS": {
"name": "દક્ષિણ સુદાન"
@@ -342,7 +342,7 @@
"name": "નાઇજર"
},
"NG": {
- "name": "નાઇજીરીયા"
+ "name": "નાઇજેરિયા"
},
"NA": {
"name": "નામિબિયા"
@@ -354,7 +354,7 @@
"name": "નીયુ"
},
"NL": {
- "name": "નેધરલેન્ડ"
+ "name": "નેધરલેન્ડ્સ"
},
"NP": {
"name": "નેપાળ"
@@ -363,7 +363,7 @@
"name": "નૉર્વે"
},
"NF": {
- "name": "નોરફૉક ટાપુ"
+ "name": "નોરફોક આઇલેન્ડ્સ"
},
"NR": {
"name": "નૌરુ"
@@ -414,16 +414,16 @@
"name": "ફિનલેન્ડ"
},
"PH": {
- "name": "ફિલીપાઇન્સ"
+ "name": "ફિલિપિન્સ"
},
"FJ": {
"name": "ફીજી"
},
"FO": {
- "name": "ફૅરો ટાપુઓ"
+ "name": "ફેરો આઇલેન્ડ્સ"
},
"FK": {
- "name": "ફૉકલેન્ડ ટાપુઓ"
+ "name": "ફૉકલેન્ડ આઇલેન્ડ્સ"
},
"FR": {
"name": "ફ્રાંસ"
@@ -435,7 +435,7 @@
"name": "ફ્રેંચ પોલિનેશિયા"
},
"TF": {
- "name": "ફ્રેંચ સદર્ન ટેરિટરીઝ"
+ "name": "ફ્રેંચ સધર્ન ટેરિટરીઝ"
},
"BM": {
"name": "બર્મુડા"
@@ -450,7 +450,7 @@
"name": "બાંગ્લાદેશ"
},
"BB": {
- "name": "બાર્બાડોસ"
+ "name": "બારબાડોસ"
},
"BI": {
"name": "બુરુંડી"
@@ -489,7 +489,7 @@
"name": "બ્રિટિશ ઇન્ડિયન ઓશન ટેરિટરી"
},
"VG": {
- "name": "બ્રિટિશ વર્જિન ટાપુઓ"
+ "name": "બ્રિટિશ વર્જિન આઇલેન્ડ્સ"
},
"BN": {
"name": "બ્રુનેઇ"
@@ -543,7 +543,7 @@
"name": "મેસેડોનિયા"
},
"ME": {
- "name": "મૉન્ટેંનેગ્રો"
+ "name": "મૉન્ટેનેગ્રો"
},
"MS": {
"name": "મોંટસેરાત"
@@ -569,8 +569,14 @@
"MM": {
"name": "મ્યાંમાર (બર્મા)"
},
+ "YE": {
+ "name": "યમન"
+ },
+ "UM": {
+ "name": "યુ.એસ. આઉટલાઇનિંગ આઇલેન્ડ્સ"
+ },
"VI": {
- "name": "યુ.એસ. વર્જિન ટાપુઓ"
+ "name": "યુએસ વર્જિન આઇલેન્ડ્સ"
},
"UA": {
"name": "યુક્રેન"
@@ -584,8 +590,8 @@
"GB": {
"name": "યુનાઇટેડ કિંગડમ"
},
- "YE": {
- "name": "યેમેન"
+ "US": {
+ "name": "યુનાઇટેડ સ્ટેટ્સ"
},
"RW": {
"name": "રવાંડા"
@@ -639,17 +645,11 @@
"name": "વેનેઝુએલા"
},
"WF": {
- "name": "વેલીસ અને ફ્યુટુના"
+ "name": "વૉલિસ અને ફ્યુચુના"
},
"LK": {
"name": "શ્રીલંકા"
},
- "US": {
- "name": "સંયુકત રાજ્ય અમેરિકા"
- },
- "UM": {
- "name": "સંયુક્ત રાજ્ય આઉટલાઇંગ આયલેન્ડ્સ"
- },
"WS": {
"name": "સમોઆ"
},
@@ -686,32 +686,32 @@
"SM": {
"name": "સૅન મેરિનો"
},
- "SN": {
- "name": "સેનેગલ"
- },
"KN": {
- "name": "સેન્ટ કિટ્સ અને નેવિસ"
+ "name": "સેંટ કિટ્સ અને નેવિસ"
},
"PM": {
- "name": "સેન્ટ પિયર અને મીક્વેલન"
+ "name": "સેંટ પીએરી અને મિક્યુલોન"
},
"BL": {
- "name": "સેન્ટ બાર્થેલેમી"
+ "name": "સેંટ બાર્થેલેમી"
},
"MF": {
- "name": "સેન્ટ માર્ટિન"
+ "name": "સેંટ માર્ટિન"
},
"LC": {
- "name": "સેન્ટ લુસિયા"
+ "name": "સેંટ લુસિયા"
},
"VC": {
- "name": "સેન્ટ વિન્સેટ અને ગ્રેનેડીન્સ"
+ "name": "સેંટ વિન્સેંટ અને ગ્રેનેડાઇંસ"
},
"SH": {
- "name": "સેન્ટ હેલેના"
+ "name": "સેંટ હેલેના"
+ },
+ "SN": {
+ "name": "સેનેગલ"
},
"CF": {
- "name": "સેન્ટ્રલ આફ્રિકન રીપબ્લિક"
+ "name": "સેન્ટ્રલ આફ્રિકન રિપબ્લિક"
},
"SC": {
"name": "સેશેલ્સ"
diff --git a/vendor/commerceguys/intl/resources/country/he.json b/vendor/commerceguys/intl/resources/country/he.json
index 9bd3f956b..89e47ea96 100644
--- a/vendor/commerceguys/intl/resources/country/he.json
+++ b/vendor/commerceguys/intl/resources/country/he.json
@@ -20,6 +20,9 @@
"AZ": {
"name": "אזרבייג׳ן"
},
+ "CX": {
+ "name": "אי חג המולד"
+ },
"AE": {
"name": "איחוד האמירויות הערביות"
},
@@ -42,7 +45,7 @@
"name": "איי ווליס ופוטונה"
},
"TC": {
- "name": "איי טורקס וקאיקוס"
+ "name": "איי טרקס וקייקוס"
},
"MP": {
"name": "איי מריאנה הצפוניים"
@@ -98,12 +101,12 @@
"DZ": {
"name": "אלג׳יריה"
},
+ "AI": {
+ "name": "אנגווילה"
+ },
"AO": {
"name": "אנגולה"
},
- "AI": {
- "name": "אנגילה"
- },
"AD": {
"name": "אנדורה"
},
@@ -201,7 +204,7 @@
"name": "ג׳מייקה"
},
"JE": {
- "name": "ג׳רסי"
+ "name": "ג׳רזי"
},
"GE": {
"name": "גאורגיה"
@@ -233,12 +236,12 @@
"GN": {
"name": "גינאה"
},
- "GW": {
- "name": "גינאה ביסאו"
- },
"GQ": {
"name": "גינאה המשוונית"
},
+ "GW": {
+ "name": "גינאה-ביסאו"
+ },
"GM": {
"name": "גמביה"
},
@@ -252,7 +255,7 @@
"name": "גרנדה"
},
"GG": {
- "name": "גרנסי"
+ "name": "גרנזי"
},
"DM": {
"name": "דומיניקה"
@@ -272,9 +275,6 @@
"AC": {
"name": "האי אסנשן"
},
- "CX": {
- "name": "האי כריסטמס"
- },
"IM": {
"name": "האי מאן"
},
@@ -303,7 +303,7 @@
"name": "הולנד"
},
"HK": {
- "name": "הונג קונג (מחוז מנהלי מיוחד של סין)"
+ "name": "הונג קונג (אזור מנהלי מיוחד של סין)"
},
"HU": {
"name": "הונגריה"
@@ -326,11 +326,8 @@
"DO": {
"name": "הרפובליקה הדומיניקנית"
},
- "CZ": {
- "name": "הרפובליקה הצ׳כית"
- },
"CF": {
- "name": "הרפובליקה של מרכז אפריקה"
+ "name": "הרפובליקה המרכז-אפריקאית"
},
"PS": {
"name": "השטחים הפלסטיניים"
@@ -365,9 +362,6 @@
"TO": {
"name": "טונגה"
},
- "TN": {
- "name": "טוניסיה"
- },
"TK": {
"name": "טוקלאו"
},
@@ -381,7 +375,7 @@
"name": "טייוואן"
},
"TL": {
- "name": "טימור לסטה"
+ "name": "טימור-לסטה"
},
"TZ": {
"name": "טנזניה"
@@ -489,7 +483,7 @@
"name": "מצרים"
},
"MO": {
- "name": "מקאו (מחוז מנהלי מיוחד של סין)"
+ "name": "מקאו (אזור מנהלי מיוחד של סין)"
},
"MK": {
"name": "מקדוניה"
@@ -536,6 +530,9 @@
"EA": {
"name": "סאוטה ומלייה"
},
+ "SJ": {
+ "name": "סבאלברד ויאן מאיין"
+ },
"EH": {
"name": "סהרה המערבית"
},
@@ -545,9 +542,6 @@
"SZ": {
"name": "סווזילנד"
},
- "SJ": {
- "name": "סוולבארד ויאן מאיין"
- },
"SO": {
"name": "סומליה"
},
@@ -555,7 +549,7 @@
"name": "סוריה"
},
"SR": {
- "name": "סורינם"
+ "name": "סורינאם"
},
"SL": {
"name": "סיירה לאונה"
@@ -668,6 +662,9 @@
"CL": {
"name": "צ׳ילה"
},
+ "CZ": {
+ "name": "צ׳כיה"
+ },
"FR": {
"name": "צרפת"
},
@@ -755,6 +752,9 @@
"TH": {
"name": "תאילנד"
},
+ "TN": {
+ "name": "תוניסיה"
+ },
"YE": {
"name": "תימן"
}
diff --git a/vendor/commerceguys/intl/resources/country/hi.json b/vendor/commerceguys/intl/resources/country/hi.json
index a9c275cea..bdbb72f02 100644
--- a/vendor/commerceguys/intl/resources/country/hi.json
+++ b/vendor/commerceguys/intl/resources/country/hi.json
@@ -143,15 +143,15 @@
"CV": {
"name": "केप वर्ड"
},
- "KY": {
- "name": "केमैन द्वीपसमूह"
- },
"IC": {
"name": "कैनेरी द्वीपसमूह"
},
"CM": {
"name": "कैमरून"
},
+ "KY": {
+ "name": "कैमेन द्वीपसमूह"
+ },
"BQ": {
"name": "कैरिबियन नीदरलैंड"
},
@@ -185,9 +185,6 @@
"HR": {
"name": "क्रोएशिया"
},
- "GY": {
- "name": "गयाना"
- },
"GG": {
"name": "गर्नसी"
},
@@ -203,6 +200,9 @@
"GU": {
"name": "गुआम"
},
+ "GY": {
+ "name": "गुयाना"
+ },
"GA": {
"name": "गैबॉन"
},
@@ -231,7 +231,7 @@
"name": "चीन"
},
"CZ": {
- "name": "चेक गणराज्य"
+ "name": "चेकिया"
},
"JM": {
"name": "जमैका"
@@ -371,6 +371,9 @@
"PA": {
"name": "पनामा"
},
+ "PY": {
+ "name": "पराग्वे"
+ },
"PW": {
"name": "पलाऊ"
},
@@ -389,9 +392,6 @@
"PT": {
"name": "पुर्तगाल"
},
- "PY": {
- "name": "पेराग्वे"
- },
"PE": {
"name": "पेरू"
},
@@ -426,7 +426,7 @@
"name": "फ़्रांसीसी दक्षिणी क्षेत्र"
},
"GF": {
- "name": "फ़्रेंच गयाना"
+ "name": "फ़्रेंच गुयाना"
},
"PF": {
"name": "फ़्रेंच पोलिनेशिया"
@@ -497,6 +497,9 @@
"MN": {
"name": "मंगोलिया"
},
+ "MK": {
+ "name": "मकदूनिया"
+ },
"MO": {
"name": "मकाऊ (विशेष प्रशासनिक क्षेत्र चीन)"
},
@@ -539,14 +542,11 @@
"MX": {
"name": "मैक्सिको"
},
- "MK": {
- "name": "मैसिडोनिया"
- },
"MR": {
"name": "मॉरिटानिया"
},
"MU": {
- "name": "मॉरिशस"
+ "name": "मॉरीशस"
},
"MD": {
"name": "मॉल्डोवा"
@@ -576,10 +576,10 @@
"name": "युगांडा"
},
"UM": {
- "name": "यू.एस. आउटलाइंग द्वीपसमूह"
+ "name": "यू॰एस॰ आउटलाइंग द्वीपसमूह"
},
"VI": {
- "name": "यू.एस. वर्जिन द्वीपसमूह"
+ "name": "यू॰एस॰ वर्जिन द्वीपसमूह"
},
"UA": {
"name": "यूक्रेन"
diff --git a/vendor/commerceguys/intl/resources/country/hr.json b/vendor/commerceguys/intl/resources/country/hr.json
index 5dae99ba2..4ef0d5af7 100644
--- a/vendor/commerceguys/intl/resources/country/hr.json
+++ b/vendor/commerceguys/intl/resources/country/hr.json
@@ -132,7 +132,7 @@
"name": "Čad"
},
"CZ": {
- "name": "Češka Republika"
+ "name": "Češka"
},
"CL": {
"name": "Čile"
@@ -572,9 +572,6 @@
"MF": {
"name": "Saint Martin"
},
- "PM": {
- "name": "Saint-Pierre-et-Miquelon"
- },
"SB": {
"name": "Salomonski Otoci"
},
@@ -653,6 +650,9 @@
"KN": {
"name": "Sveti Kristofor i Nevis"
},
+ "PM": {
+ "name": "Sveti Petar i Mikelon"
+ },
"ST": {
"name": "Sveti Toma i Princip"
},
diff --git a/vendor/commerceguys/intl/resources/country/hu.json b/vendor/commerceguys/intl/resources/country/hu.json
index ad9c5d79c..6b77ff309 100644
--- a/vendor/commerceguys/intl/resources/country/hu.json
+++ b/vendor/commerceguys/intl/resources/country/hu.json
@@ -48,7 +48,7 @@
"name": "Ausztria"
},
"UM": {
- "name": "Az Amerikai Egyesült Államok lakatlan külbirtokai"
+ "name": "Az USA lakatlan külbirtokai"
},
"AZ": {
"name": "Azerbajdzsán"
@@ -609,7 +609,7 @@
"name": "San Marino"
},
"ST": {
- "name": "Sao Tomé és Príncipe"
+ "name": "São Tomé és Príncipe"
},
"SC": {
"name": "Seychelle-szigetek"
diff --git a/vendor/commerceguys/intl/resources/country/hy.json b/vendor/commerceguys/intl/resources/country/hy.json
index 8aa26c72d..f8d7fb266 100644
--- a/vendor/commerceguys/intl/resources/country/hy.json
+++ b/vendor/commerceguys/intl/resources/country/hy.json
@@ -147,7 +147,7 @@
"name": "Գվինեա"
},
"GW": {
- "name": "Գվինեա-Բիսսաու"
+ "name": "Գվինեա-Բիսաու"
},
"GD": {
"name": "Գրենադա"
@@ -279,7 +279,7 @@
"name": "Կամերուն"
},
"KY": {
- "name": "Կայմանյան կղզիներ"
+ "name": "Կայման կղզիներ"
},
"CA": {
"name": "Կանադա"
@@ -614,9 +614,6 @@
"SC": {
"name": "Սեյշելներ"
},
- "BL": {
- "name": "Սեն Բարտելմի"
- },
"MF": {
"name": "Սեն Մարտեն"
},
@@ -633,7 +630,7 @@
"name": "Սենթ Վինսենթ և Գրենադիններ"
},
"KN": {
- "name": "Սենտ Քիտս և Նևիս"
+ "name": "Սենթ Քիտս և Նևիս"
},
"EA": {
"name": "Սեուտա և Մելիլյա"
@@ -668,6 +665,9 @@
"SD": {
"name": "Սուդան"
},
+ "BL": {
+ "name": "Սուրբ Բարդուղիմեոս"
+ },
"CX": {
"name": "Սուրբ Ծննդյան կղզի"
},
diff --git a/vendor/commerceguys/intl/resources/country/id.json b/vendor/commerceguys/intl/resources/country/id.json
index bc63c93dd..2c64fbd0b 100644
--- a/vendor/commerceguys/intl/resources/country/id.json
+++ b/vendor/commerceguys/intl/resources/country/id.json
@@ -65,6 +65,9 @@
"NL": {
"name": "Belanda"
},
+ "BQ": {
+ "name": "Belanda Karibia"
+ },
"BY": {
"name": "Belarus"
},
@@ -110,15 +113,15 @@
"TD": {
"name": "Cad"
},
+ "CZ": {
+ "name": "Ceko"
+ },
"EA": {
"name": "Ceuta dan Melilla"
},
"CL": {
"name": "Cile"
},
- "CI": {
- "name": "Cote d’Ivoire"
- },
"CW": {
"name": "Curaçao"
},
@@ -272,9 +275,6 @@
"CA": {
"name": "Kanada"
},
- "BQ": {
- "name": "Karibia Belanda"
- },
"KZ": {
"name": "Kazakstan"
},
@@ -506,6 +506,9 @@
"PA": {
"name": "Panama"
},
+ "CI": {
+ "name": "Pantai Gading"
+ },
"PG": {
"name": "Papua Nugini"
},
@@ -545,9 +548,6 @@
"CF": {
"name": "Republik Afrika Tengah"
},
- "CZ": {
- "name": "Republik Cheska"
- },
"DO": {
"name": "Republik Dominika"
},
diff --git a/vendor/commerceguys/intl/resources/country/is.json b/vendor/commerceguys/intl/resources/country/is.json
index 38d47b85f..74d352285 100644
--- a/vendor/commerceguys/intl/resources/country/is.json
+++ b/vendor/commerceguys/intl/resources/country/is.json
@@ -593,6 +593,12 @@
"SC": {
"name": "Seychelles-eyjar"
},
+ "HK": {
+ "name": "sérstjórnarsvæðið Hong Kong"
+ },
+ "MO": {
+ "name": "sérstjórnarsvæðið Makaó"
+ },
"ZW": {
"name": "Simbabve"
},
@@ -605,12 +611,6 @@
"CL": {
"name": "Síle"
},
- "HK": {
- "name": "Sjálfstjórnarsvæðið Hong Kong"
- },
- "MO": {
- "name": "Sjálfstjórnarsvæðið Makaó"
- },
"SK": {
"name": "Slóvakía"
},
diff --git a/vendor/commerceguys/intl/resources/country/it.json b/vendor/commerceguys/intl/resources/country/it.json
index 22da1cf0f..f67ed68c2 100644
--- a/vendor/commerceguys/intl/resources/country/it.json
+++ b/vendor/commerceguys/intl/resources/country/it.json
@@ -116,6 +116,9 @@
"BQ": {
"name": "Caraibi olandesi"
},
+ "CZ": {
+ "name": "Cechia"
+ },
"EA": {
"name": "Ceuta e Melilla"
},
@@ -548,9 +551,6 @@
"GB": {
"name": "Regno Unito"
},
- "CZ": {
- "name": "Repubblica Ceca"
- },
"CF": {
"name": "Repubblica Centrafricana"
},
@@ -584,15 +584,15 @@
"MF": {
"name": "Saint Martin"
},
- "PM": {
- "name": "Saint Pierre e Miquelon"
- },
"VC": {
- "name": "Saint Vincent e Grenadines"
+ "name": "Saint Vincent e Grenadine"
},
"BL": {
"name": "Saint-Barthélemy"
},
+ "PM": {
+ "name": "Saint-Pierre e Miquelon"
+ },
"WS": {
"name": "Samoa"
},
@@ -693,7 +693,7 @@
"name": "Thailandia"
},
"TL": {
- "name": "Timor Leste"
+ "name": "Timor Est"
},
"TG": {
"name": "Togo"
diff --git a/vendor/commerceguys/intl/resources/country/ja.json b/vendor/commerceguys/intl/resources/country/ja.json
index 7be0a4f8a..813d4b837 100644
--- a/vendor/commerceguys/intl/resources/country/ja.json
+++ b/vendor/commerceguys/intl/resources/country/ja.json
@@ -242,11 +242,14 @@
"SA": {
"name": "サウジアラビア"
},
+ "GS": {
+ "name": "サウスジョージア・サウスサンドウィッチ諸島"
+ },
"WS": {
"name": "サモア"
},
"BL": {
- "name": "サン・バルテルミー島"
+ "name": "サン・バルテルミー"
},
"MF": {
"name": "サン・マルタン"
@@ -366,7 +369,7 @@
"name": "タンザニア"
},
"CZ": {
- "name": "チェコ共和国"
+ "name": "チェコ"
},
"TD": {
"name": "チャド"
@@ -585,7 +588,7 @@
"name": "マダガスカル"
},
"YT": {
- "name": "マヨット島"
+ "name": "マヨット"
},
"MW": {
"name": "マラウイ"
@@ -609,7 +612,7 @@
"name": "ミクロネシア連邦"
},
"MM": {
- "name": "ミャンマー"
+ "name": "ミャンマー (ビルマ)"
},
"MX": {
"name": "メキシコ"
@@ -681,7 +684,7 @@
"name": "レバノン"
},
"RE": {
- "name": "レユニオン島"
+ "name": "レユニオン"
},
"RU": {
"name": "ロシア"
@@ -692,6 +695,9 @@
"VG": {
"name": "英領ヴァージン諸島"
},
+ "KR": {
+ "name": "韓国"
+ },
"UM": {
"name": "合衆国領有小離島"
},
@@ -704,9 +710,6 @@
"TW": {
"name": "台湾"
},
- "KR": {
- "name": "大韓民国"
- },
"CF": {
"name": "中央アフリカ共和国"
},
@@ -719,18 +722,12 @@
"CN": {
"name": "中国"
},
- "KP": {
- "name": "朝鮮民主主義人民共和国"
- },
"TL": {
"name": "東ティモール"
},
"ZA": {
"name": "南アフリカ"
},
- "GS": {
- "name": "南ジョージア島・南サンドイッチ諸島"
- },
"SS": {
"name": "南スーダン"
},
@@ -757,5 +754,8 @@
},
"MP": {
"name": "北マリアナ諸島"
+ },
+ "KP": {
+ "name": "北朝鮮"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/jgo.json b/vendor/commerceguys/intl/resources/country/jgo.json
index 697430bc8..ce208a0f6 100644
--- a/vendor/commerceguys/intl/resources/country/jgo.json
+++ b/vendor/commerceguys/intl/resources/country/jgo.json
@@ -144,7 +144,7 @@
"name": "Cyprus"
},
"CZ": {
- "name": "Czech Republic"
+ "name": "Czechia"
},
"DK": {
"name": "Denmark"
diff --git a/vendor/commerceguys/intl/resources/country/ka.json b/vendor/commerceguys/intl/resources/country/ka.json
index 335a57cb8..64a7b899e 100644
--- a/vendor/commerceguys/intl/resources/country/ka.json
+++ b/vendor/commerceguys/intl/resources/country/ka.json
@@ -720,7 +720,7 @@
"name": "ჩადი"
},
"CZ": {
- "name": "ჩეხეთის რესპუბლიკა"
+ "name": "ჩეხეთი"
},
"CL": {
"name": "ჩილე"
diff --git a/vendor/commerceguys/intl/resources/country/kea.json b/vendor/commerceguys/intl/resources/country/kea.json
index 3c4cb8df1..7771479ba 100644
--- a/vendor/commerceguys/intl/resources/country/kea.json
+++ b/vendor/commerceguys/intl/resources/country/kea.json
@@ -548,9 +548,6 @@
"CF": {
"name": "Republika Sentru-Afrikanu"
},
- "CZ": {
- "name": "Repúblika Txeka"
- },
"RW": {
"name": "Ruanda"
},
@@ -713,6 +710,9 @@
"TD": {
"name": "Txadi"
},
+ "CZ": {
+ "name": "Txékia"
+ },
"WF": {
"name": "Ualis i Futuna"
},
diff --git a/vendor/commerceguys/intl/resources/country/kk.json b/vendor/commerceguys/intl/resources/country/kk.json
index 5357a4a9c..c0c9f34f1 100644
--- a/vendor/commerceguys/intl/resources/country/kk.json
+++ b/vendor/commerceguys/intl/resources/country/kk.json
@@ -98,6 +98,9 @@
"BO": {
"name": "Боливия"
},
+ "BQ": {
+ "name": "Бонэйр, Синт-Эстатиус және Саба"
+ },
"BA": {
"name": "Босния және Герцеговина"
},
@@ -275,9 +278,6 @@
"IC": {
"name": "Канар аралдары"
},
- "BQ": {
- "name": "Кариб Нидерландысы"
- },
"QA": {
"name": "Катар"
},
@@ -335,12 +335,6 @@
"CN": {
"name": "Қытай"
},
- "HK": {
- "name": "Қытай Халық Республикасының Гонконг арнайы әкімшілік ауданы"
- },
- "MO": {
- "name": "Қытай Халық Республикасының Макао арнайы әкімшілік ауданы"
- },
"LA": {
"name": "Лаос"
},
@@ -380,6 +374,9 @@
"YT": {
"name": "Майотта"
},
+ "MO": {
+ "name": "Макао АӘА"
+ },
"MK": {
"name": "Македония"
},
@@ -620,6 +617,9 @@
"SL": {
"name": "Сьерра-Леоне"
},
+ "HK": {
+ "name": "Сянган АӘА"
+ },
"TW": {
"name": "Тайвань"
},
@@ -693,7 +693,7 @@
"name": "Фиджи"
},
"PH": {
- "name": "Филиппин"
+ "name": "Филиппин аралдары"
},
"FI": {
"name": "Финляндия"
@@ -723,7 +723,7 @@
"name": "Черногория"
},
"CZ": {
- "name": "Чех Республикасы"
+ "name": "Чехия"
},
"CL": {
"name": "Чили"
diff --git a/vendor/commerceguys/intl/resources/country/km.json b/vendor/commerceguys/intl/resources/country/km.json
index fc25432f5..9aa41fa3d 100644
--- a/vendor/commerceguys/intl/resources/country/km.json
+++ b/vendor/commerceguys/intl/resources/country/km.json
@@ -9,7 +9,7 @@
"name": "កាតា"
},
"CV": {
- "name": "កាបវែរ"
+ "name": "កាប់វែរ"
},
"CM": {
"name": "កាមេរូន"
@@ -24,7 +24,7 @@
"name": "កុងហ្គោ- គីនស្ហាសា"
},
"CI": {
- "name": "កូដឌីវ័រ"
+ "name": "កូតឌីវ័រ"
},
"KM": {
"name": "កូម័រ"
@@ -38,6 +38,9 @@
"KR": {
"name": "កូរ៉េ​ខាង​ត្បូង"
},
+ "KW": {
+ "name": "កូវ៉ែត"
+ },
"XK": {
"name": "កូសូវ៉ូ"
},
@@ -99,13 +102,13 @@
"name": "កោះ​ហ្វារ៉ូ"
},
"GS": {
- "name": "កោះ​ហ្សកហ្ស៊ី​ខាង​ត្បូង និង សាន់វិច​ខាង​ត្បូង"
+ "name": "កោះ​ហ្សកហ្ស៊ី​ខាងត្បូង និង សង់វិច​ខាងត្បូង"
},
"AC": {
"name": "កោះ​អាសេនសិន"
},
"AX": {
- "name": "កោះ​អាឡាំង"
+ "name": "កោះ​អាឡង់"
},
"UM": {
"name": "កោះ​អៅឡាយីង​អាមេរិក"
@@ -114,29 +117,29 @@
"name": "ក្រិក"
},
"HR": {
- "name": "ក្រូអាត"
+ "name": "ក្រូអាស៊ី"
+ },
+ "GT": {
+ "name": "ក្វាតេម៉ាឡា"
},
"KI": {
- "name": "គិរិបាទី"
+ "name": "គិរីបាទី"
},
"CU": {
"name": "គុយបា"
},
- "KW": {
- "name": "គុយវ៉ែត"
- },
"GB": {
"name": "ចក្រភព​អង់គ្លេស"
},
- "JM": {
- "name": "ចាម៉ៃកា"
- },
"CN": {
"name": "ចិន"
},
"TD": {
"name": "ឆាដ"
},
+ "CZ": {
+ "name": "ឆែគា"
+ },
"JP": {
"name": "ជប៉ុន"
},
@@ -149,9 +152,6 @@
"JE": {
"name": "ជឺស៊ី"
},
- "NC": {
- "name": "ញូកាឡេដូនៀ"
- },
"DK": {
"name": "ដាណឺម៉ាក"
},
@@ -161,12 +161,12 @@
"TF": {
"name": "ដែនដី​បារាំង​នៅ​ភាគខាងត្បូង"
},
+ "PS": {
+ "name": "ដែន​ដីប៉ាលេស្ទីន"
+ },
"IO": {
"name": "ដែនដី​អង់គ្លេស​នៅ​មហា​សមុទ្រ​ឥណ្ឌា"
},
- "PS": {
- "name": "ដែន​ប៉ាលេស្ទីន"
- },
"DG": {
"name": "ឌៀហ្គោហ្គាស៊ី"
},
@@ -180,7 +180,7 @@
"name": "ណៀ"
},
"TZ": {
- "name": "តង់ហ្សានី"
+ "name": "តង់សានី"
},
"TJ": {
"name": "តាហ្ស៊ីគីស្ថាន"
@@ -194,6 +194,9 @@
"TG": {
"name": "តូហ្គោ"
},
+ "TR": {
+ "name": "តួកគី"
+ },
"TM": {
"name": "តួកម៉េនីស្ថាន"
},
@@ -204,17 +207,14 @@
"name": "ថៃ"
},
"TL": {
- "name": "ទីម័រ"
+ "name": "ទីម័រលីស"
},
"TN": {
- "name": "ទុយនេស៊ី"
+ "name": "ទុយនីស៊ី"
},
"TV": {
"name": "ទូវ៉ាលូ"
},
- "TR": {
- "name": "ទួរគី"
- },
"TT": {
"name": "ទ្រីនីដាត និង​តូបាហ្គោ"
},
@@ -225,16 +225,19 @@
"name": "ន័រវែស"
},
"NI": {
- "name": "នីការ៉ាហ្គ័រ"
+ "name": "នីការ៉ាហ្គា"
},
"NE": {
- "name": "នីហ្សេរ"
+ "name": "នីហ្សេ"
},
"NG": {
"name": "នីហ្សេរីយ៉ា"
},
+ "NC": {
+ "name": "នូវែល​កាឡេដូនី"
+ },
"NZ": {
- "name": "នូវែលហ្សេឡង់"
+ "name": "នូវែល​សេឡង់"
},
"NP": {
"name": "នេប៉ាល់"
@@ -252,7 +255,7 @@
"name": "បាបាដុស"
},
"PG": {
- "name": "ប៉ាពួញ៉ូហ្គីណេ"
+ "name": "ប៉ាពូអាស៊ី​នូវែលហ្គីណេ"
},
"PY": {
"name": "ប៉ារ៉ាហ្គាយ"
@@ -279,7 +282,7 @@
"name": "ប៊ុលហ្គារី"
},
"BT": {
- "name": "ប៊ូតាន"
+ "name": "ប៊ូតង់"
},
"BI": {
"name": "ប៊ូរុនឌី"
@@ -306,17 +309,14 @@
"name": "ប៉េរូ"
},
"BZ": {
- "name": "បេលីហ្ស"
+ "name": "បេលី"
},
"BY": {
- "name": "បេឡារុស្ស"
+ "name": "បេឡារុស"
},
"BE": {
"name": "បែលហ្ស៊ិក"
},
- "BN": {
- "name": "ប្រ៊ុយណេ"
- },
"BR": {
"name": "ប្រេស៊ីល"
},
@@ -329,8 +329,11 @@
"PT": {
"name": "ព័រទុយហ្គាល់"
},
+ "BN": {
+ "name": "ព្រុយណេ"
+ },
"MO": {
- "name": "ម៉ាកាវ"
+ "name": "ម៉ាកាវ តំបន់រដ្ឋបាលពិសេសចិន"
},
"MG": {
"name": "ម៉ាដាហ្គាស្កា"
@@ -348,13 +351,13 @@
"name": "ម៉ាល់ឌីវ"
},
"MT": {
- "name": "ម៉ាល់តា"
+ "name": "ម៉ាល់ត៍"
},
"ML": {
"name": "ម៉ាលី"
},
"MK": {
- "name": "ម៉ាសេដូនា"
+ "name": "ម៉ាសេដ្វាន"
},
"MW": {
"name": "ម៉ាឡាវី"
@@ -375,7 +378,7 @@
"name": "ម៉ុងតេណេហ្គ្រោ"
},
"MS": {
- "name": "ម៉ុង​សេរ៉ង់"
+ "name": "ម៉ុងស៊ែរ៉ា"
},
"MN": {
"name": "ម៉ុងហ្គោលី"
@@ -393,10 +396,10 @@
"name": "ម៉ូរីស"
},
"MZ": {
- "name": "ម៉ូហ្សាំប៊ិក"
+ "name": "ម៉ូសំប៊ិក"
},
"YE": {
- "name": "យេមែន"
+ "name": "យេម៉ែន"
},
"RW": {
"name": "រវ៉ាន់ដា"
@@ -411,7 +414,7 @@
"name": "រេអុយញ៉ុង"
},
"LI": {
- "name": "លិចទេនស្តែន"
+ "name": "លិចតិនស្ដាញ"
},
"LT": {
"name": "លីទុយអានី"
@@ -426,10 +429,10 @@
"name": "លីបេរីយ៉ា"
},
"LU": {
- "name": "លុចហ្សំបួរ"
+ "name": "លុចសំបួ"
},
"VU": {
- "name": "វ៉ានូអាទូ"
+ "name": "វ៉ានូទូ"
},
"WF": {
"name": "វ៉ាលីស និង​ហ្វូទូណា"
@@ -438,32 +441,17 @@
"name": "វៀតណាម"
},
"VE": {
- "name": "វេនេហ្ស៊ុយឡា"
- },
- "BL": {
- "name": "សង់ បាតេឡេម៉ី"
- },
- "KN": {
- "name": "សង់ឃីត និង​ណេវីស"
+ "name": "វ៉េណេស៊ុយអេឡា"
},
"PM": {
"name": "សង់ព្យែរ និង​មីគីឡុង"
},
- "MF": {
- "name": "សង់​ម៉ាទីន"
- },
- "LC": {
- "name": "សង់​លូសៀ"
- },
"SH": {
"name": "សង់​ហេឡេណា"
},
"US": {
"name": "សហរដ្ឋអាមេរិក"
},
- "CZ": {
- "name": "សាធារណរដ្ឋឆេក"
- },
"DO": {
"name": "សាធារណរដ្ឋ​ដូមីនីក"
},
@@ -491,6 +479,9 @@
"CY": {
"name": "ស៊ីប"
},
+ "ZW": {
+ "name": "ស៊ីមបាវ៉េ"
+ },
"SY": {
"name": "ស៊ីរី"
},
@@ -498,7 +489,7 @@
"name": "ស៊ីលី"
},
"SC": {
- "name": "សីសែល"
+ "name": "សីស្ហែល"
},
"SE": {
"name": "ស៊ុយអែត"
@@ -515,20 +506,35 @@
"SR": {
"name": "សូរីណាម"
},
+ "SL": {
+ "name": "សៀរ៉ាឡេអូន"
+ },
"SN": {
"name": "សេណេហ្គាល់"
},
- "SL": {
- "name": "សេរ៉ាឡេអូន"
- },
"RS": {
- "name": "ស៊ែប"
+ "name": "សែប៊ី"
},
"ST": {
"name": "សៅតូម៉េ និង ប្រាំងស៊ីប"
},
+ "ZM": {
+ "name": "សំប៊ី"
+ },
+ "KN": {
+ "name": "សាំង​គីត និង ណេវីស"
+ },
+ "BL": {
+ "name": "សាំង​បាថេឡេមី"
+ },
+ "MF": {
+ "name": "សាំង​ម៉ាទីន"
+ },
+ "LC": {
+ "name": "សាំងលូស៊ី"
+ },
"VC": {
- "name": "សាំង​វីនសេន និង​ឌឹ​ហ្គ្រីណាឌីនីស"
+ "name": "សាំង​វ៉ាំងសង់ និង ហ្គ្រេណាឌីន"
},
"LK": {
"name": "ស្រីលង្កា"
@@ -543,7 +549,7 @@
"name": "ស្វាលបាដ និង ហ្សង់ម៉ាយេន"
},
"SZ": {
- "name": "ស្វាហ្ស៊ីឡង់"
+ "name": "ស្វាស៊ីឡង់"
},
"CH": {
"name": "ស្វីស"
@@ -557,21 +563,18 @@
"HN": {
"name": "ហុងឌូរ៉ាស"
},
- "BQ": {
- "name": "ហុល្លង់ ការ៉ាប៊ីន"
- },
"NL": {
"name": "ហូឡង់"
},
+ "BQ": {
+ "name": "ហូឡង់ ការ៉ាប៊ីន"
+ },
"HT": {
"name": "ហៃទី"
},
"GH": {
"name": "ហ្គាណា"
},
- "GT": {
- "name": "ហ្គាតេម៉ាឡា"
- },
"GA": {
"name": "ហ្គាបុង"
},
@@ -579,19 +582,16 @@
"name": "ហ្គីណេ"
},
"GW": {
- "name": "ហ្គីណេប៊ីសូ"
+ "name": "ហ្គីណេប៊ីស្សូ"
},
"GQ": {
"name": "ហ្គីណេអេក្វាទ័រ"
},
- "GI": {
- "name": "ហ្គីប្រាលតា"
- },
"GY": {
- "name": "ហ្គីយ៉ាណា"
+ "name": "ហ្គីយ៉ាន"
},
"GF": {
- "name": "ហ្គៀណាបារាំង"
+ "name": "ហ្គីអាណា បារាំង"
},
"GG": {
"name": "ហ្គេនស៊ី"
@@ -599,14 +599,14 @@
"GP": {
"name": "ហ្គោដឺឡុប"
},
+ "GM": {
+ "name": "ហ្គំប៊ី"
+ },
"GU": {
"name": "ហ្គាំ"
},
- "GM": {
- "name": "ហ្គាំប៊ី"
- },
"GD": {
- "name": "ហ្គ្រីណាដា"
+ "name": "ហ្គ្រើណាដ"
},
"GL": {
"name": "ហ្គ្រោអង់ឡង់"
@@ -626,18 +626,18 @@
"GE": {
"name": "ហ្សកហ្ស៊ី"
},
- "ZW": {
- "name": "ហ្ស៊ីមបាវ៉េ"
- },
- "ZM": {
- "name": "ហ្សាំប៊ី"
+ "JM": {
+ "name": "ហ្សាម៉ាអ៊ីក"
},
- "LV": {
- "name": "ឡាតវីយ៉ា"
+ "GI": {
+ "name": "ហ្ស៊ីប្រាល់តា"
},
"LA": {
"name": "ឡាវ"
},
+ "LV": {
+ "name": "ឡេតូនី"
+ },
"LS": {
"name": "ឡេសូតូ"
},
@@ -659,9 +659,6 @@
"AM": {
"name": "អាមេនី"
},
- "AE": {
- "name": "អារ៉ាប់រួម"
- },
"SA": {
"name": "អារ៉ាប៊ីសាអូឌីត"
},
@@ -714,7 +711,7 @@
"name": "អ៊ុយក្រែន"
},
"UY": {
- "name": "អ៊ុយរ៉ាហ្គាយ"
+ "name": "អ៊ុយរូហ្គាយ"
},
"AT": {
"name": "អូទ្រីស"
@@ -735,13 +732,16 @@
"name": "អៀរឡង់"
},
"EC": {
- "name": "អេក្វាឌ័រ"
+ "name": "អេក្វាទ័រ"
},
"ET": {
"name": "អេត្យូពី"
},
+ "AE": {
+ "name": "អេមីរ៉ាត​អារ៉ាប់​រួម"
+ },
"ER": {
- "name": "អេរីទ្រា"
+ "name": "អេរីត្រេ"
},
"EE": {
"name": "អេស្តូនី"
diff --git a/vendor/commerceguys/intl/resources/country/kn.json b/vendor/commerceguys/intl/resources/country/kn.json
index 883eaaa45..7edfcc838 100644
--- a/vendor/commerceguys/intl/resources/country/kn.json
+++ b/vendor/commerceguys/intl/resources/country/kn.json
@@ -12,7 +12,7 @@
"name": "ಅಜರ್ಬೈಜಾನ್"
},
"AF": {
- "name": "ಅಫಘಾನಿಸ್ಥಾನ್"
+ "name": "ಅಫಘಾನಿಸ್ಥಾನ"
},
"AS": {
"name": "ಅಮೇರಿಕನ್ ಸಮೋವಾ"
@@ -26,11 +26,8 @@
"AR": {
"name": "ಅರ್ಜೆಂಟಿನಾ"
},
- "AM": {
- "name": "ಅರ್ಮೇನಿಯಾ"
- },
"DZ": {
- "name": "ಅಲ್ಗೇರಿಯಾ"
+ "name": "ಅಲ್ಜೀರಿಯ"
},
"AL": {
"name": "ಅಲ್ಬೇನಿಯಾ"
@@ -44,6 +41,9 @@
"AG": {
"name": "ಆಂಟಿಗುವಾ ಮತ್ತು ಬರ್ಬುಡಾ"
},
+ "AM": {
+ "name": "ಆರ್ಮೇನಿಯ"
+ },
"AX": {
"name": "ಆಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು"
},
@@ -51,7 +51,7 @@
"name": "ಆಸ್ಟ್ರಿಯಾ"
},
"AU": {
- "name": "ಆಸ್ಟ್ರೇಲಿಯ"
+ "name": "ಆಸ್ಟ್ರೇಲಿಯಾ"
},
"ID": {
"name": "ಇಂಡೋನೇಶಿಯಾ"
@@ -90,13 +90,16 @@
"name": "ಉಜ್ಬೇಕಿಸ್ಥಾನ್"
},
"KP": {
- "name": "ಉತ್ತರ ಕೋರಿಯಾ"
+ "name": "ಉತ್ತರ ಕೊರಿಯಾ"
},
"MP": {
"name": "ಉತ್ತರ ಮರಿಯಾನಾ ದ್ವೀಪಗಳು"
},
"UY": {
- "name": "ಉರುಗ್ವೇ"
+ "name": "ಉರುಗ್ವೆ"
+ },
+ "ER": {
+ "name": "ಎರಿಟ್ರಿಯಾ"
},
"SV": {
"name": "ಎಲ್ ಸಾಲ್ವೇಡಾರ್"
@@ -104,9 +107,6 @@
"EE": {
"name": "ಎಸ್ಟೋನಿಯಾ"
},
- "ER": {
- "name": "ಏರಿಟ್ರಿಯಾ"
- },
"IE": {
"name": "ಐರ್ಲೆಂಡ್"
},
@@ -132,7 +132,7 @@
"name": "ಕಾಂಬೋಡಿಯಾ"
},
"KI": {
- "name": "ಕಿರಿಬಾತಿ"
+ "name": "ಕಿರಿಬಾಟಿ"
},
"KG": {
"name": "ಕಿರ್ಗಿಸ್ಥಾನ್"
@@ -183,7 +183,7 @@
"name": "ಕ್ಯಾನರಿ ದ್ವೀಪಗಳು"
},
"CM": {
- "name": "ಕ್ಯಾಮರೋನ್"
+ "name": "ಕ್ಯಾಮರೂನ್"
},
"CU": {
"name": "ಕ್ಯೂಬಾ"
@@ -192,7 +192,7 @@
"name": "ಕ್ರಿಸ್ಮಸ್ ದ್ವೀಪ"
},
"HR": {
- "name": "ಕ್ರೊಯೇಶಿಯಾ"
+ "name": "ಕ್ರೊಯೇಷಿಯಾ"
},
"QA": {
"name": "ಖತಾರ್"
@@ -212,12 +212,12 @@
"GP": {
"name": "ಗುಡೆಲೋಪ್"
},
- "GU": {
- "name": "ಗುಯಾಮ್"
- },
"GG": {
"name": "ಗುರ್ನ್‌ಸೆ"
},
+ "GU": {
+ "name": "ಗುವಾಮ್"
+ },
"GA": {
"name": "ಗೆಬೊನ್"
},
@@ -257,6 +257,9 @@
"DE": {
"name": "ಜರ್ಮನಿ"
},
+ "ZM": {
+ "name": "ಜಾಂಬಿಯ"
+ },
"GE": {
"name": "ಜಾರ್ಜಿಯಾ"
},
@@ -264,7 +267,7 @@
"name": "ಜಿಂಬಾಬ್ವೆ"
},
"DJ": {
- "name": "ಜಿಬೋಟಿ"
+ "name": "ಜಿಬೂಟಿ"
},
"JE": {
"name": "ಜೆರ್ಸಿ"
@@ -272,11 +275,8 @@
"JO": {
"name": "ಜೋರ್ಡಾನ್"
},
- "ZM": {
- "name": "ಝಾಂಬಿಯಾ"
- },
"CZ": {
- "name": "ಝೆಕ್ ರಿಪಬ್ಲಿಕ್"
+ "name": "ಝೆಕಿಯಾ"
},
"TR": {
"name": "ಟರ್ಕಿ"
@@ -285,13 +285,13 @@
"name": "ಟರ್ಕ್ಸ್ ಮತ್ತು ಕೈಕೋಸ್ ದ್ವೀಪಗಳು"
},
"TN": {
- "name": "ಟುನಿಶಿಯಾ"
+ "name": "ಟುನೀಶಿಯ"
},
"TV": {
"name": "ಟುವಾಲು"
},
"TO": {
- "name": "ಟೊಂಗ"
+ "name": "ಟೊಂಗಾ"
},
"TK": {
"name": "ಟೊಕೆಲಾವ್"
@@ -326,23 +326,23 @@
"TM": {
"name": "ತುರ್ಕಮೆನಿಸ್ತಾನ್"
},
+ "TW": {
+ "name": "ತೈವಾನ್"
+ },
"TH": {
"name": "ಥೈಲ್ಯಾಂಡ್"
},
- "TW": {
- "name": "ಥೈವಾನ್"
- },
"ZA": {
"name": "ದಕ್ಷಿಣ ಆಫ್ರಿಕಾ"
},
"KR": {
- "name": "ದಕ್ಷಿಣ ಕೋರಿಯಾ"
+ "name": "ದಕ್ಷಿಣ ಕೊರಿಯಾ"
},
"GS": {
"name": "ದಕ್ಷಿಣ ಜಾರ್ಜಿಯಾ ಮತ್ತು ದಕ್ಷಿಣ ಸ್ಯಾಂಡ್‍ವಿಚ್ ದ್ವೀಪಗಳು"
},
"SS": {
- "name": "ದಕ್ಷಿಣ ಸೂಡಾನ್"
+ "name": "ದಕ್ಷಿಣ ಸುಡಾನ್"
},
"NA": {
"name": "ನಮೀಬಿಯಾ"
@@ -351,7 +351,7 @@
"name": "ನಾರ್ಫೋಕ್ ದ್ವೀಪ"
},
"NO": {
- "name": "ನಾರ್ವೇ"
+ "name": "ನಾರ್ವೆ"
},
"NI": {
"name": "ನಿಕಾರಾಗುವಾ"
@@ -423,7 +423,7 @@
"name": "ಫರೋ ದ್ವೀಪಗಳು"
},
"FK": {
- "name": "ಫಾಲ್ಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು"
+ "name": "ಫಾಕ್‌ಲ್ಯಾಂಡ್ ದ್ವೀಪಗಳು"
},
"FJ": {
"name": "ಫಿಜಿ"
@@ -459,7 +459,7 @@
"name": "ಬಹ್ರೇನ್"
},
"BD": {
- "name": "ಬಾಂಗ್ಲಾದೇಶ್"
+ "name": "ಬಾಂಗ್ಲಾದೇಶ"
},
"BB": {
"name": "ಬಾರ್ಬಡೋಸ್"
@@ -468,7 +468,7 @@
"name": "ಬುರುಂಡಿ"
},
"BF": {
- "name": "ಬುರ್ಕಿನಾ ಫಾಸೋ"
+ "name": "ಬುರ್ಕಿನಾ ಫಾಸೊ"
},
"BJ": {
"name": "ಬೆನಿನ್"
@@ -512,8 +512,11 @@
"BT": {
"name": "ಭೂತಾನ್"
},
+ "MN": {
+ "name": "ಮಂಗೋಲಿಯಾ"
+ },
"MO": {
- "name": "ಮಖಾವು (SAR) ಚೈನಾ"
+ "name": "ಮಕಾವು SAR ಚೈನಾ"
},
"MG": {
"name": "ಮಡಗಾಸ್ಕರ್"
@@ -534,7 +537,7 @@
"name": "ಮಲೇಶಿಯಾ"
},
"MS": {
- "name": "ಮಾಂಟ್‌ಸೆರೇಟ್"
+ "name": "ಮಾಂಟ್‌ಸೆರಟ್"
},
"MR": {
"name": "ಮಾರಿಟೇನಿಯಾ"
@@ -555,7 +558,7 @@
"name": "ಮಾಲ್ಟಾ"
},
"MV": {
- "name": "ಮಾಲ್ಡಿವ್ಸ್"
+ "name": "ಮಾಲ್ಡೀವ್ಸ್"
},
"MX": {
"name": "ಮೆಕ್ಸಿಕೊ"
@@ -563,9 +566,6 @@
"FM": {
"name": "ಮೈಕ್ರೋನೇಶಿಯಾ"
},
- "MN": {
- "name": "ಮೊಂಗೋಲಿಯಾ"
- },
"ME": {
"name": "ಮೊಂಟೆನೆಗ್ರೋ"
},
@@ -588,7 +588,10 @@
"name": "ಯು.ಎಸ್. ವರ್ಜಿನ್ ದ್ವೀಪಗಳು"
},
"UM": {
- "name": "ಯುಎಸ್‌. ಔಟ್‌ಲೇಯಿಂಗ್ ದ್ವೀಪಗಳು"
+ "name": "ಯುಎಸ್‌ ಔಟ್‌ಲೇಯಿಂಗ್ ದ್ವೀಪಗಳು"
+ },
+ "AE": {
+ "name": "ಯುನೈಟೆಡ್ ಅರಬ್ ಎಮಿರೇಟ್ಸ್"
},
"YE": {
"name": "ಯೆಮನ್"
@@ -597,7 +600,7 @@
"name": "ರಷ್ಯಾ"
},
"RE": {
- "name": "ರೀಯೂನಿಯನ್"
+ "name": "ರಿಯೂನಿಯನ್"
},
"RW": {
"name": "ರುವಾಂಡಾ"
@@ -606,7 +609,7 @@
"name": "ರೊಮೇನಿಯಾ"
},
"LU": {
- "name": "ಲಕ್ಸಂಬರ್ಗ್"
+ "name": "ಲಕ್ಸೆಂಬರ್ಗ್"
},
"LV": {
"name": "ಲಾಟ್ವಿಯಾ"
@@ -630,7 +633,7 @@
"name": "ಲೆಬನಾನ್"
},
"LS": {
- "name": "ಲೆಸೊಥೋ"
+ "name": "ಲೆಸೊಥೊ"
},
"VU": {
"name": "ವನೌಟು"
@@ -639,23 +642,23 @@
"name": "ವಾಲಿಸ್ ಮತ್ತು ಫುಟುನಾ"
},
"VN": {
- "name": "ವಿಯೇಟ್ನಾಮ್"
+ "name": "ವಿಯೆಟ್ನಾಮ್"
},
"VE": {
"name": "ವೆನೆಜುವೆಲಾ"
},
"VA": {
- "name": "ವ್ಯಾಟಿಕನ್"
+ "name": "ವ್ಯಾಟಿಕನ್ ಸಿಟಿ"
},
"LK": {
"name": "ಶ್ರೀಲಂಕಾ"
},
- "AE": {
- "name": "ಸಂಯುಕ್ತ ಅರಬ್ ಎಮಿರೇಟಸ್"
- },
"WS": {
"name": "ಸಮೋವಾ"
},
+ "SB": {
+ "name": "ಸಾಲೊಮನ್ ದ್ವೀಪಗಳು"
+ },
"ST": {
"name": "ಸಾವೋ ಟೋಮ್ ಮತ್ತು ಪ್ರಿನ್ಸಿಪಿ"
},
@@ -674,11 +677,11 @@
"SC": {
"name": "ಸೀಶೆಲ್ಲೆಸ್"
},
- "SR": {
- "name": "ಸುರಿನಾಮ"
- },
"SD": {
- "name": "ಸೂಡಾನ್"
+ "name": "ಸುಡಾನ್"
+ },
+ "SR": {
+ "name": "ಸುರಿನಾಮ್"
},
"SN": {
"name": "ಸೆನೆಗಲ್"
@@ -693,7 +696,7 @@
"name": "ಸೇಂಟ್ ಕಿಟ್ಸ್ ಮತ್ತು ನೆವಿಸ್"
},
"PM": {
- "name": "ಸೇಂಟ್ ಪಿಯರೆ ಮತ್ತು ಮಿಕೆಲನ್"
+ "name": "ಸೇಂಟ್ ಪಿಯರ್ ಮತ್ತು ಮಿಕ್ವೆಲನ್"
},
"BL": {
"name": "ಸೇಂಟ್ ಬಾರ್ಥೆಲೆಮಿ"
@@ -716,9 +719,6 @@
"SO": {
"name": "ಸೊಮಾಲಿಯಾ"
},
- "SB": {
- "name": "ಸೊಲೊಮನ್ ದ್ವೀಪಗಳು"
- },
"SA": {
"name": "ಸೌದಿ ಅರೇಬಿಯಾ"
},
@@ -729,7 +729,7 @@
"name": "ಸ್ಯಾನ್ ಮೆರಿನೋ"
},
"SK": {
- "name": "ಸ್ಲೋವಾಕಿಯಾ"
+ "name": "ಸ್ಲೊವಾಕಿಯಾ"
},
"SI": {
"name": "ಸ್ಲೋವೇನಿಯಾ"
diff --git a/vendor/commerceguys/intl/resources/country/kok.json b/vendor/commerceguys/intl/resources/country/kok.json
new file mode 100644
index 000000000..40d8679ae
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/kok.json
@@ -0,0 +1,761 @@
+{
+ "AI": {
+ "name": "अंगुला"
+ },
+ "AO": {
+ "name": "अंगोला"
+ },
+ "AQ": {
+ "name": "अंटार्क्टिका"
+ },
+ "AD": {
+ "name": "अंडोरा"
+ },
+ "AZ": {
+ "name": "अजरबैजान"
+ },
+ "AF": {
+ "name": "अफगानिस्तान"
+ },
+ "AS": {
+ "name": "अमेरिकी सामोआ"
+ },
+ "AW": {
+ "name": "अरुबा"
+ },
+ "AR": {
+ "name": "अर्जेंटिना"
+ },
+ "AX": {
+ "name": "अलांड जुवे"
+ },
+ "DZ": {
+ "name": "अल्जेरिया"
+ },
+ "AL": {
+ "name": "अल्बानीया"
+ },
+ "AC": {
+ "name": "असेशन आयलँड"
+ },
+ "EH": {
+ "name": "अस्तंत सहारा"
+ },
+ "IS": {
+ "name": "आइसलैंड"
+ },
+ "IE": {
+ "name": "आयरलँड"
+ },
+ "AM": {
+ "name": "आर्मीनीया"
+ },
+ "ID": {
+ "name": "इंडोनेशीया"
+ },
+ "EC": {
+ "name": "इक्वाडोर"
+ },
+ "GQ": {
+ "name": "इक्वेटोरियल गुएनिया"
+ },
+ "IL": {
+ "name": "इज़राइल"
+ },
+ "IT": {
+ "name": "इटली"
+ },
+ "ET": {
+ "name": "इथियोपिया"
+ },
+ "IQ": {
+ "name": "इराक"
+ },
+ "IR": {
+ "name": "इरान"
+ },
+ "ER": {
+ "name": "इरिट्रिया"
+ },
+ "IM": {
+ "name": "इसले ऑफ मॅन"
+ },
+ "EG": {
+ "name": "ईजिप्त"
+ },
+ "UZ": {
+ "name": "उज़्बेकिस्तान"
+ },
+ "KP": {
+ "name": "उत्तर कोरिया"
+ },
+ "MP": {
+ "name": "उत्तरी मरिना आयसलैण्ड"
+ },
+ "UY": {
+ "name": "उरूग्वे"
+ },
+ "AG": {
+ "name": "एँटिगुआ आनी बारबुडा"
+ },
+ "SV": {
+ "name": "एल साल्वाडोर"
+ },
+ "EE": {
+ "name": "एस्टोनिया"
+ },
+ "AT": {
+ "name": "ऑस्ट्रिया"
+ },
+ "AU": {
+ "name": "ऑस्ट्रेलीया"
+ },
+ "OM": {
+ "name": "ओमान"
+ },
+ "KH": {
+ "name": "कंबोडिया"
+ },
+ "KZ": {
+ "name": "कझाकस्तान"
+ },
+ "QA": {
+ "name": "कतार"
+ },
+ "KI": {
+ "name": "किरिबाती"
+ },
+ "KG": {
+ "name": "किर्गिज़स्तान"
+ },
+ "CK": {
+ "name": "कुक आयलँड्स"
+ },
+ "CW": {
+ "name": "कुरसावो"
+ },
+ "KW": {
+ "name": "कुवेत"
+ },
+ "CA": {
+ "name": "कॅनडा"
+ },
+ "IC": {
+ "name": "कॅनरी आयलैंड्स"
+ },
+ "CM": {
+ "name": "कॅमेरून"
+ },
+ "BQ": {
+ "name": "कॅरिबियन निदरलँड"
+ },
+ "KE": {
+ "name": "केनया"
+ },
+ "CV": {
+ "name": "केप वर्दी"
+ },
+ "KY": {
+ "name": "कैमेन आइलैंड्स"
+ },
+ "CD": {
+ "name": "कोंगो - किंशासा"
+ },
+ "CG": {
+ "name": "कोंगो - ब्राझाविला"
+ },
+ "CC": {
+ "name": "कोकोस (कीलिंग) आयलँड"
+ },
+ "CI": {
+ "name": "कोत द’ईवोआर"
+ },
+ "KM": {
+ "name": "कोमोरोस"
+ },
+ "CO": {
+ "name": "कोलंबिया"
+ },
+ "XK": {
+ "name": "कोसोवो"
+ },
+ "CR": {
+ "name": "कोस्ता रिका"
+ },
+ "CU": {
+ "name": "क्युबा"
+ },
+ "CX": {
+ "name": "क्रिसमस आयलँड"
+ },
+ "HR": {
+ "name": "क्रोयेशीया"
+ },
+ "GY": {
+ "name": "गयाना"
+ },
+ "GG": {
+ "name": "गर्नसी"
+ },
+ "GW": {
+ "name": "गुअनिया-बिसाउ"
+ },
+ "GU": {
+ "name": "गुआम"
+ },
+ "GN": {
+ "name": "गुएनिया"
+ },
+ "GA": {
+ "name": "गॅबोन"
+ },
+ "GM": {
+ "name": "गॅम्बिया"
+ },
+ "GL": {
+ "name": "ग्रीनलँड"
+ },
+ "GR": {
+ "name": "ग्रीस"
+ },
+ "GD": {
+ "name": "ग्रेनॅडा"
+ },
+ "GT": {
+ "name": "ग्वाटेमाला"
+ },
+ "GP": {
+ "name": "ग्वाडेलोप"
+ },
+ "GH": {
+ "name": "घाना"
+ },
+ "TD": {
+ "name": "चाड"
+ },
+ "CL": {
+ "name": "चिली"
+ },
+ "CN": {
+ "name": "चीन"
+ },
+ "CZ": {
+ "name": "चेकिया"
+ },
+ "JP": {
+ "name": "जपान"
+ },
+ "JM": {
+ "name": "जमैका"
+ },
+ "DE": {
+ "name": "जर्मनी"
+ },
+ "JE": {
+ "name": "जर्सी"
+ },
+ "DJ": {
+ "name": "जिबूती"
+ },
+ "GI": {
+ "name": "जिब्राल्टर"
+ },
+ "ZW": {
+ "name": "जिम्बाब्वे"
+ },
+ "GE": {
+ "name": "जॉर्जिया"
+ },
+ "JO": {
+ "name": "जॉर्डन"
+ },
+ "ZM": {
+ "name": "झांबिया"
+ },
+ "TV": {
+ "name": "टुवालू"
+ },
+ "TO": {
+ "name": "टोंगा"
+ },
+ "TK": {
+ "name": "टोकलाऊ"
+ },
+ "TG": {
+ "name": "टोगो"
+ },
+ "TN": {
+ "name": "ट्यूनीशिया"
+ },
+ "TT": {
+ "name": "ट्रिनीडाड आनी टोबॅगो"
+ },
+ "DK": {
+ "name": "डेनमार्क"
+ },
+ "DO": {
+ "name": "डोमिनिकन प्रजासत्ताक"
+ },
+ "DM": {
+ "name": "डोमिनीका"
+ },
+ "TJ": {
+ "name": "तजीकिस्तान"
+ },
+ "TZ": {
+ "name": "तांझानिया"
+ },
+ "TW": {
+ "name": "तायवान"
+ },
+ "TL": {
+ "name": "तिमोर-लेस्ते"
+ },
+ "TM": {
+ "name": "तुर्कमेनिस्तान"
+ },
+ "TR": {
+ "name": "तुर्की"
+ },
+ "TC": {
+ "name": "तुर्क्स आनी कॅकोज आयलँड्स"
+ },
+ "TA": {
+ "name": "त्रिस्तान दा कुन्हा"
+ },
+ "TH": {
+ "name": "थायलँड"
+ },
+ "ZA": {
+ "name": "दक्षिण आफ्रीका"
+ },
+ "KR": {
+ "name": "दक्षिण कोरिया"
+ },
+ "GS": {
+ "name": "दक्षिण जोर्जिया आनी दक्षिण सॅण्डविच आयलँड्स"
+ },
+ "SS": {
+ "name": "दक्षिण सुडान"
+ },
+ "DG": {
+ "name": "दिगो गार्सिया"
+ },
+ "NA": {
+ "name": "नामीबिया"
+ },
+ "NE": {
+ "name": "नायजर"
+ },
+ "NG": {
+ "name": "नायजेरिया"
+ },
+ "NR": {
+ "name": "नावरू"
+ },
+ "NI": {
+ "name": "निकारगुवा"
+ },
+ "NU": {
+ "name": "नीयू"
+ },
+ "NL": {
+ "name": "नॅदरलँड"
+ },
+ "NP": {
+ "name": "नेपाळ"
+ },
+ "NF": {
+ "name": "नॉरफॉक आयलँड"
+ },
+ "NO": {
+ "name": "नॉर्वे"
+ },
+ "NZ": {
+ "name": "न्युझीलॅन्ड"
+ },
+ "NC": {
+ "name": "न्यू कॅलिडोनिया"
+ },
+ "PA": {
+ "name": "पनामा"
+ },
+ "PW": {
+ "name": "पलाऊ"
+ },
+ "PK": {
+ "name": "पाकिस्तान"
+ },
+ "PG": {
+ "name": "पापुआ न्यु गिनी"
+ },
+ "PN": {
+ "name": "पिटकॅरन आयलँड्स"
+ },
+ "PR": {
+ "name": "पिर्टो रिको"
+ },
+ "PT": {
+ "name": "पुर्तगाल"
+ },
+ "PE": {
+ "name": "पेरू"
+ },
+ "PS": {
+ "name": "पेलेस्टीनियन प्रांत"
+ },
+ "PY": {
+ "name": "पैराग्वे"
+ },
+ "PL": {
+ "name": "पोलंड"
+ },
+ "FJ": {
+ "name": "फिजी"
+ },
+ "FI": {
+ "name": "फिनलँड"
+ },
+ "PH": {
+ "name": "फिलीपिन्झ"
+ },
+ "FO": {
+ "name": "फैरो आयलँड्स"
+ },
+ "FK": {
+ "name": "फ़ॉकलैंड आइलैंड्स"
+ },
+ "FR": {
+ "name": "फ्रान्स"
+ },
+ "TF": {
+ "name": "फ्रेंच दक्षिणी प्रांत"
+ },
+ "GF": {
+ "name": "फ्रेन्च गयाना"
+ },
+ "PF": {
+ "name": "फ्रेन्च पोलिनेसिया"
+ },
+ "BM": {
+ "name": "बर्मुडा"
+ },
+ "BG": {
+ "name": "बल्गेरीया"
+ },
+ "BS": {
+ "name": "बहामास"
+ },
+ "BD": {
+ "name": "बांगलादेश"
+ },
+ "BB": {
+ "name": "बारबाडोस"
+ },
+ "BI": {
+ "name": "बुरुंडी"
+ },
+ "BF": {
+ "name": "बुर्किना फॅसो"
+ },
+ "BJ": {
+ "name": "बेनीन"
+ },
+ "BY": {
+ "name": "बेलारूस"
+ },
+ "BZ": {
+ "name": "बेलिझ"
+ },
+ "BE": {
+ "name": "बेल्जियम"
+ },
+ "BH": {
+ "name": "बेहरेन"
+ },
+ "BW": {
+ "name": "बोत्सवाना"
+ },
+ "BO": {
+ "name": "बोलिव्हिया"
+ },
+ "BA": {
+ "name": "बोस्निया आनी हेर्जेगोविना"
+ },
+ "BR": {
+ "name": "ब्राझील"
+ },
+ "VG": {
+ "name": "ब्रिटिश वर्जिन आयलँड्स"
+ },
+ "IO": {
+ "name": "ब्रिटिश हिंद महासागरीय क्षेत्र"
+ },
+ "BN": {
+ "name": "ब्रूनेई"
+ },
+ "IN": {
+ "name": "भारत"
+ },
+ "BT": {
+ "name": "भूतान"
+ },
+ "MN": {
+ "name": "मंगोलिया"
+ },
+ "MO": {
+ "name": "मकाव SAR चीन"
+ },
+ "CF": {
+ "name": "मध्य अफ्रीकी लोकसत्तकराज्य"
+ },
+ "MW": {
+ "name": "मलावी"
+ },
+ "MY": {
+ "name": "मलेशिया"
+ },
+ "MG": {
+ "name": "माडागास्कर"
+ },
+ "FM": {
+ "name": "मायक्रोनेशिया"
+ },
+ "MQ": {
+ "name": "मार्टीनिक"
+ },
+ "MH": {
+ "name": "मार्शल आयलँड्स"
+ },
+ "MV": {
+ "name": "मालदीव"
+ },
+ "ML": {
+ "name": "माली"
+ },
+ "MT": {
+ "name": "माल्टा"
+ },
+ "MD": {
+ "name": "माल्डोवा"
+ },
+ "MK": {
+ "name": "मॅसिडोनिया"
+ },
+ "MX": {
+ "name": "मेक्सिको"
+ },
+ "YT": {
+ "name": "मेयोट"
+ },
+ "MZ": {
+ "name": "मॉझांबीक"
+ },
+ "MS": {
+ "name": "मॉन्टसेराट"
+ },
+ "ME": {
+ "name": "मॉन्टॅनग्रो"
+ },
+ "MR": {
+ "name": "मॉरिटानिया"
+ },
+ "MU": {
+ "name": "मॉरिशस"
+ },
+ "MC": {
+ "name": "मोनॅको"
+ },
+ "MA": {
+ "name": "मोरोक्को"
+ },
+ "MM": {
+ "name": "म्यानमार (बर्मा)"
+ },
+ "UM": {
+ "name": "यु. एस. मायनर आवटलायींग आयलँड्‍स"
+ },
+ "VI": {
+ "name": "यु. एस. वर्जिन आयलँड्‍स"
+ },
+ "UA": {
+ "name": "युक्रेन"
+ },
+ "UG": {
+ "name": "युगांडा"
+ },
+ "AE": {
+ "name": "युनाइटेड अरब इमीरॅट्स"
+ },
+ "GB": {
+ "name": "युनायटेड किंगडम"
+ },
+ "US": {
+ "name": "युनायटेड स्टेट्स"
+ },
+ "YE": {
+ "name": "येमेन"
+ },
+ "RW": {
+ "name": "रवांडा"
+ },
+ "RE": {
+ "name": "रीयूनियन"
+ },
+ "RU": {
+ "name": "रूस"
+ },
+ "RO": {
+ "name": "रोमानीया"
+ },
+ "LU": {
+ "name": "लक्सेमबर्ग"
+ },
+ "LA": {
+ "name": "लाओस"
+ },
+ "LR": {
+ "name": "लायबेरीया"
+ },
+ "LI": {
+ "name": "लिचेंस्टीन"
+ },
+ "LT": {
+ "name": "लिथुआनिया"
+ },
+ "LS": {
+ "name": "लिसोथो"
+ },
+ "LY": {
+ "name": "लीबिया"
+ },
+ "LV": {
+ "name": "लॅटविया"
+ },
+ "LB": {
+ "name": "लेबनान"
+ },
+ "VU": {
+ "name": "वनातू"
+ },
+ "WF": {
+ "name": "वालिस आनी फ्यूचूना"
+ },
+ "VE": {
+ "name": "विनेझुएला"
+ },
+ "VA": {
+ "name": "वॅटिकन सिटी"
+ },
+ "VN": {
+ "name": "व्हिएतनाम"
+ },
+ "LK": {
+ "name": "श्री लंका"
+ },
+ "PM": {
+ "name": "सँ. पायरे आनी मिकेलन"
+ },
+ "LC": {
+ "name": "सँट लुसिया"
+ },
+ "SA": {
+ "name": "सऊदी अरेबिया"
+ },
+ "RS": {
+ "name": "सर्बिया"
+ },
+ "WS": {
+ "name": "सामोआ"
+ },
+ "CY": {
+ "name": "सायप्रस"
+ },
+ "ST": {
+ "name": "सावो टोमे आनी प्रिंसिपल"
+ },
+ "SG": {
+ "name": "सिंगापूर"
+ },
+ "SX": {
+ "name": "सिंट मार्टेन"
+ },
+ "SL": {
+ "name": "सिएरा लियॉन"
+ },
+ "EA": {
+ "name": "सिटा आनी मेलिल्ला"
+ },
+ "SN": {
+ "name": "सिनिगल"
+ },
+ "SY": {
+ "name": "सिरिया"
+ },
+ "SR": {
+ "name": "सुरीनाम"
+ },
+ "SD": {
+ "name": "सूडान"
+ },
+ "BL": {
+ "name": "सॅंट बार्थेल्मी"
+ },
+ "MF": {
+ "name": "सॅंट मार्टिन"
+ },
+ "SM": {
+ "name": "सॅन मारीनो"
+ },
+ "KN": {
+ "name": "सेंट किट्स आनी नेविस"
+ },
+ "VC": {
+ "name": "सेंट विंसेंट ऐंड द ग्रेनेडाइंस"
+ },
+ "SH": {
+ "name": "सेंट हेलिना"
+ },
+ "SC": {
+ "name": "सेशेल्स"
+ },
+ "SO": {
+ "name": "सोमालिया"
+ },
+ "SB": {
+ "name": "सोलोमन आइलँड्स"
+ },
+ "ES": {
+ "name": "स्पेन"
+ },
+ "SK": {
+ "name": "स्लोवाकिया"
+ },
+ "SI": {
+ "name": "स्लोवेनिया"
+ },
+ "SZ": {
+ "name": "स्वाजीलँड"
+ },
+ "SJ": {
+ "name": "स्वालबार्ड आनी जान मेयन"
+ },
+ "CH": {
+ "name": "स्विट्ज़रलैंड"
+ },
+ "SE": {
+ "name": "स्वीडन"
+ },
+ "HU": {
+ "name": "हंगेरी"
+ },
+ "HK": {
+ "name": "हाँग काँग SAR चीन"
+ },
+ "HT": {
+ "name": "हैती"
+ },
+ "HN": {
+ "name": "हॉनडुरस"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/ky.json b/vendor/commerceguys/intl/resources/country/ky.json
index 19237a3e1..cb2d31c3f 100644
--- a/vendor/commerceguys/intl/resources/country/ky.json
+++ b/vendor/commerceguys/intl/resources/country/ky.json
@@ -24,19 +24,19 @@
"name": "Америка Кошмо Штаттары"
},
"AS": {
- "name": "Америка Самоасы"
+ "name": "Америкалык Самоа"
+ },
+ "AI": {
+ "name": "Ангилья"
},
"AO": {
"name": "Ангола"
},
- "AI": {
- "name": "Ангуила"
- },
"AD": {
"name": "Андорра"
},
"AQ": {
- "name": "Антарктика"
+ "name": "Антарктида"
},
"AG": {
"name": "Антигуа жана Барбуда"
@@ -50,14 +50,11 @@
"AW": {
"name": "Аруба"
},
- "AC": {
- "name": "Ассеншин аралы"
- },
"AF": {
"name": "Афганистан"
},
"BS": {
- "name": "Багам аралдары"
+ "name": "Багама аралдары"
},
"BD": {
"name": "Бангладеш"
@@ -107,9 +104,6 @@
"BR": {
"name": "Бразилия"
},
- "IO": {
- "name": "Британиянын Индия океанындагы аймагы"
- },
"BN": {
"name": "Бруней"
},
@@ -140,6 +134,9 @@
"VG": {
"name": "Виргин аралдары (Британия)"
},
+ "AC": {
+ "name": "Вознесение аралы"
+ },
"VN": {
"name": "Вьетнам"
},
@@ -164,9 +161,6 @@
"GT": {
"name": "Гватемала"
},
- "GF": {
- "name": "Гвиана (Франция)"
- },
"GN": {
"name": "Гвинея"
},
@@ -239,6 +233,9 @@
"IL": {
"name": "Израиль"
},
+ "IO": {
+ "name": "Инди океанындагы Британ территориясы"
+ },
"IN": {
"name": "Индия"
},
@@ -273,7 +270,7 @@
"name": "Казакстан"
},
"KY": {
- "name": "Кайман Аралдары"
+ "name": "Кайман аралдары"
},
"KH": {
"name": "Камбоджа"
@@ -306,7 +303,7 @@
"name": "Кирибати"
},
"CC": {
- "name": "Кокос (Килиӊ) аралдары"
+ "name": "Кокос (Килинг) аралдары"
},
"CO": {
"name": "Колумбия"
@@ -329,9 +326,6 @@
"CI": {
"name": "Кот-д’Ивуар"
},
- "CX": {
- "name": "Крисмас аралы"
- },
"CU": {
"name": "Куба"
},
@@ -401,12 +395,12 @@
"MY": {
"name": "Малайзия"
},
- "MV": {
- "name": "Малдив аралдары"
- },
"ML": {
"name": "Мали"
},
+ "MV": {
+ "name": "Мальдив"
+ },
"MT": {
"name": "Мальта"
},
@@ -438,7 +432,7 @@
"name": "Монголия"
},
"MS": {
- "name": "Монсеррат"
+ "name": "Монтсеррат"
},
"MM": {
"name": "Мьянма (Бирма)"
@@ -462,7 +456,7 @@
"name": "Нигерия"
},
"NL": {
- "name": "Нидерланддар"
+ "name": "Нидерланд"
},
"NI": {
"name": "Никарагуа"
@@ -495,7 +489,7 @@
"name": "Панама"
},
"PG": {
- "name": "Папуа Жаңы-Гвинея"
+ "name": "Папуа-Жаңы Гвинея"
},
"PY": {
"name": "Парагвай"
@@ -506,6 +500,9 @@
"PN": {
"name": "Питкэрн аралдары"
},
+ "PF": {
+ "name": "Полинезия (франциялык)"
+ },
"PL": {
"name": "Польша"
},
@@ -516,7 +513,10 @@
"name": "Пуэрто-Рико"
},
"RE": {
- "name": "Реюнион"
+ "name": "Реюньон"
+ },
+ "CX": {
+ "name": "Рождество аралы"
},
"RU": {
"name": "Россия"
@@ -542,11 +542,8 @@
"SZ": {
"name": "Свазиленд"
},
- "SJ": {
- "name": "Свалбард жана Жан Майен"
- },
"SC": {
- "name": "Сейшелдер"
+ "name": "Сейшел аралдары"
},
"PM": {
"name": "Сен-Пьер жана Микелон"
@@ -558,7 +555,7 @@
"name": "Сент Бартелеми"
},
"VC": {
- "name": "Сент-Винсент жана Гренадиналар"
+ "name": "Сент-Винсент жана Гренадиндер"
},
"KN": {
"name": "Сент-Китс жана Невис"
@@ -579,7 +576,7 @@
"name": "Сингапур"
},
"SX": {
- "name": "Синт Маартен"
+ "name": "Синт-Мартен"
},
"SY": {
"name": "Сирия"
@@ -600,7 +597,7 @@
"name": "Судан"
},
"SR": {
- "name": "Суринаме"
+ "name": "Суринам"
},
"SL": {
"name": "Сьерра-Леоне"
@@ -608,12 +605,12 @@
"TJ": {
"name": "Тажикстан"
},
- "TH": {
- "name": "Таиланд"
- },
"TW": {
"name": "Тайвань"
},
+ "TH": {
+ "name": "Тайланд"
+ },
"TZ": {
"name": "Танзания"
},
@@ -633,7 +630,7 @@
"name": "Тринидад жана Тобаго"
},
"TA": {
- "name": "Тристан да Кунья"
+ "name": "Тристан-да-Кунья"
},
"TV": {
"name": "Тувалу"
@@ -656,9 +653,6 @@
"TC": {
"name": "Түркс жана Кайкос аралдары"
},
- "ZA": {
- "name": "Түштүк Африка Республикасы"
- },
"GS": {
"name": "Түштүк Жоржия жана Түштүк Сэндвич аралдары"
},
@@ -668,6 +662,9 @@
"SS": {
"name": "Түштүк Судан"
},
+ "ZA": {
+ "name": "Түштүк-Африка Республикасы"
+ },
"UG": {
"name": "Уганда"
},
@@ -696,7 +693,7 @@
"name": "Финляндия"
},
"FK": {
- "name": "Фолклэнд аралдары"
+ "name": "Фолкленд аралдары"
},
"FR": {
"name": "Франция"
@@ -704,8 +701,8 @@
"TF": {
"name": "Франциянын Түштүктөгү аймактары"
},
- "PF": {
- "name": "Француз Полинезиясы"
+ "GF": {
+ "name": "Француздук Гвиана"
},
"HR": {
"name": "Хорватия"
@@ -717,7 +714,7 @@
"name": "Черногория"
},
"CZ": {
- "name": "Чех Республикасы"
+ "name": "Чехия"
},
"CL": {
"name": "Чили"
@@ -728,6 +725,9 @@
"SE": {
"name": "Швеция"
},
+ "SJ": {
+ "name": "Шпицберген жана Ян-Майен"
+ },
"LK": {
"name": "Шри-Ланка"
},
@@ -738,10 +738,10 @@
"name": "Эквадор"
},
"GQ": {
- "name": "Экваториалдык Гвинея"
+ "name": "Экватордук Гвинея"
},
"SV": {
- "name": "Эл Салвадор"
+ "name": "Эль-Сальвадор"
},
"ER": {
"name": "Эритрея"
diff --git a/vendor/commerceguys/intl/resources/country/lb.json b/vendor/commerceguys/intl/resources/country/lb.json
index adcf90df9..3160da2d4 100644
--- a/vendor/commerceguys/intl/resources/country/lb.json
+++ b/vendor/commerceguys/intl/resources/country/lb.json
@@ -738,7 +738,7 @@
"name": "Vereenegt Arabesch Emirater"
},
"US": {
- "name": "Vereenegt Staate vun Amerika"
+ "name": "Vereenegt Staaten"
},
"VN": {
"name": "Vietnam"
diff --git a/vendor/commerceguys/intl/resources/country/ln.json b/vendor/commerceguys/intl/resources/country/ln.json
index cf4e8ddf0..1ea16ef03 100644
--- a/vendor/commerceguys/intl/resources/country/ln.json
+++ b/vendor/commerceguys/intl/resources/country/ln.json
@@ -536,9 +536,6 @@
"PT": {
"name": "Putúlugɛsi"
},
- "CZ": {
- "name": "Repibiki Tsekɛ"
- },
"CF": {
"name": "Repibiki ya Afríka ya Káti"
},
@@ -596,6 +593,9 @@
"SC": {
"name": "Sɛshɛlɛ"
},
+ "CZ": {
+ "name": "Shekia"
+ },
"SL": {
"name": "Siera Leonɛ"
},
diff --git a/vendor/commerceguys/intl/resources/country/lo.json b/vendor/commerceguys/intl/resources/country/lo.json
index 5916f7f56..8cfa31703 100644
--- a/vendor/commerceguys/intl/resources/country/lo.json
+++ b/vendor/commerceguys/intl/resources/country/lo.json
@@ -86,12 +86,12 @@
"CU": {
"name": "ຄິວບາ"
},
- "KG": {
- "name": "ຄີກິສຖານ"
- },
"CW": {
"name": "ຄູຣາຊາວ"
},
+ "KG": {
+ "name": "ຄຽກກິດສະຖານ"
+ },
"KE": {
"name": "ເຄນຢາ"
},
@@ -137,9 +137,6 @@
"CN": {
"name": "ຈີນ"
},
- "CL": {
- "name": "ຈີເລ"
- },
"JE": {
"name": "ເຈີຊີ"
},
@@ -179,9 +176,6 @@
"GM": {
"name": "ສາທາລະນະລັດແກມເບຍ"
},
- "CZ": {
- "name": "ສາທາລະນະລັດເຊັກ"
- },
"CF": {
"name": "ສາທາລະນະລັດອາຟຣິກາກາງ"
},
@@ -209,6 +203,9 @@
"ZW": {
"name": "ຊິມບັບເວ"
},
+ "CL": {
+ "name": "ຊິລີ"
+ },
"SY": {
"name": "ຊີເຣຍ"
},
@@ -254,6 +251,9 @@
"EA": {
"name": "ເຊວຕາ ແລະເມລິນລາ"
},
+ "CZ": {
+ "name": "ເຊັກເຊຍ"
+ },
"RS": {
"name": "ເຊີເບຍ"
},
@@ -267,7 +267,7 @@
"name": "ແຊມເບຍ"
},
"SO": {
- "name": "ໂຊມາລີ"
+ "name": "ໂຊມາເລຍ"
},
"CY": {
"name": "ໄຊປຣັສ"
@@ -365,6 +365,9 @@
"NG": {
"name": "ໄນຈີເຣຍ"
},
+ "BR": {
+ "name": "ບຣາຊິວ"
+ },
"BN": {
"name": "ບຣູໄນ"
},
@@ -374,9 +377,6 @@
"BW": {
"name": "ບອດສະວານາ"
},
- "BR": {
- "name": "ບະເລຊີນ"
- },
"BD": {
"name": "ບັງກະລາເທດ"
},
@@ -480,10 +480,10 @@
"name": "ມັນດິຟ"
},
"MO": {
- "name": "ມາເກົ້າ ເຂດປົກຄອງພິເສດ ຈີນ"
+ "name": "ມາກາວ ເຂດປົກຄອງພິເສດ ຈີນ"
},
"MG": {
- "name": "ມາດາກາສກາ"
+ "name": "ມາດາກາສະກາ"
},
"MQ": {
"name": "ມາຕິນີກ"
@@ -570,7 +570,7 @@
"name": "ລິເບີເຣຍ"
},
"LU": {
- "name": "ລຸກຊຳບົວ"
+ "name": "ລຸກແຊມເບີກ"
},
"LS": {
"name": "ເລໂຊໂທ"
@@ -590,14 +590,17 @@
"KY": {
"name": "ໝູ່ເກາະ ເຄແມນ"
},
+ "GS": {
+ "name": "ໝູ່ເກາະ ຈໍເຈຍຕອນໃຕ້ ແລະ ແຊນວິດຕອນໃຕ້"
+ },
"TC": {
"name": "ໝູ່ເກາະ ເທີກ ແລະ ໄຄໂຄສ"
},
- "VG": {
- "name": "ໝູ່ເກາະ ບຣິທິຊ ເວີຈິນ"
- },
"VI": {
- "name": "ໝູ່ເກາະ ຢູເອສ ເວີຈິນ"
+ "name": "ໝູ່ເກາະ ເວີຈິນ ຂອງສະຫະລັດ"
+ },
+ "VG": {
+ "name": "ໝູ່ເກາະ ເວີຈິນຂອງອັງກິດ"
},
"CC": {
"name": "ຫມູ່ເກາະໂກໂກສ"
@@ -608,9 +611,6 @@
"CK": {
"name": "ໝູ່ເກາະຄຸກ"
},
- "GS": {
- "name": "ໝູ່ເກາະຈໍເຈຍ & ເຊົາ ແຊນວິດ"
- },
"SB": {
"name": "ຫມູ່ເກາະໂຊໂລມອນ"
},
@@ -744,10 +744,7 @@
"name": "ໄອສແລນ"
},
"IE": {
- "name": "ໄອຣ໌ແລນ"
- },
- "HK": {
- "name": "ຮອງກົງ ເຂດປົກຄອງພິເສດ ຈີນ"
+ "name": "ໄອແລນ"
},
"HN": {
"name": "ຮອນດູຣັສ"
@@ -755,6 +752,9 @@
"HU": {
"name": "ຮັງກາຣີ"
},
+ "HK": {
+ "name": "ຮົງກົງ ເຂດປົກຄອງພິເສດ ຈີນ"
+ },
"HT": {
"name": "ໄຮຕິ"
}
diff --git a/vendor/commerceguys/intl/resources/country/lv.json b/vendor/commerceguys/intl/resources/country/lv.json
index 32270870f..102bb727b 100644
--- a/vendor/commerceguys/intl/resources/country/lv.json
+++ b/vendor/commerceguys/intl/resources/country/lv.json
@@ -123,7 +123,7 @@
"name": "Čada"
},
"CZ": {
- "name": "Čehijas Republika"
+ "name": "Čehija"
},
"CL": {
"name": "Čīle"
@@ -276,7 +276,7 @@
"name": "Īrija"
},
"IS": {
- "name": "Īslande"
+ "name": "Islande"
},
"IT": {
"name": "Itālija"
diff --git a/vendor/commerceguys/intl/resources/country/mk.json b/vendor/commerceguys/intl/resources/country/mk.json
index 374b019ba..b6ed98d4f 100644
--- a/vendor/commerceguys/intl/resources/country/mk.json
+++ b/vendor/commerceguys/intl/resources/country/mk.json
@@ -39,7 +39,7 @@
"name": "Антарктик"
},
"AG": {
- "name": "Антигва и Барбуда"
+ "name": "Антига и Барбуда"
},
"AR": {
"name": "Аргентина"
@@ -527,9 +527,6 @@
"PT": {
"name": "Португалија"
},
- "CZ": {
- "name": "Република Чешка"
- },
"RE": {
"name": "Реунион"
},
@@ -563,17 +560,11 @@
"SH": {
"name": "Света Елена"
},
- "LC": {
- "name": "Света Луција"
- },
"BL": {
"name": "Свети Вартоломеј"
},
- "VC": {
- "name": "Свети Винсент и Гренадините"
- },
"KN": {
- "name": "Свети Кристофер и Невис"
+ "name": "Свети Китс и Невис"
},
"SX": {
"name": "Свети Мартин"
@@ -590,6 +581,12 @@
"SN": {
"name": "Сенегал"
},
+ "VC": {
+ "name": "Сент Винсент и Гренадини"
+ },
+ "LC": {
+ "name": "Сент Лусија"
+ },
"MF": {
"name": "Сент Мартин"
},
@@ -737,6 +734,9 @@
"TD": {
"name": "Чад"
},
+ "CZ": {
+ "name": "Чешка"
+ },
"CL": {
"name": "Чиле"
},
diff --git a/vendor/commerceguys/intl/resources/country/ml.json b/vendor/commerceguys/intl/resources/country/ml.json
index c539f8e88..2a8ab4190 100644
--- a/vendor/commerceguys/intl/resources/country/ml.json
+++ b/vendor/commerceguys/intl/resources/country/ml.json
@@ -1,9 +1,9 @@
{
- "AQ": {
- "name": "അൻറാർട്ടിക്ക"
- },
"AD": {
- "name": "അന്റോറ"
+ "name": "അൻഡോറ"
+ },
+ "AQ": {
+ "name": "അന്റാർട്ടിക്ക"
},
"AF": {
"name": "അഫ്‌ഗാനിസ്ഥാൻ"
@@ -21,7 +21,7 @@
"name": "അയർലൻഡ്"
},
"AR": {
- "name": "അർജൻറീന"
+ "name": "അർജന്റീന"
},
"AM": {
"name": "അർമേനിയ"
@@ -159,10 +159,10 @@
"name": "കെനിയ"
},
"CV": {
- "name": "കേപ്പ് വെർദെ"
+ "name": "കേപ്പ് വേർഡ്"
},
"KY": {
- "name": "കേമാൻ ദ്വീപുകൾ"
+ "name": "കേയ്മാൻ ദ്വീപുകൾ"
},
"XK": {
"name": "കൊസോവൊ"
@@ -243,7 +243,7 @@
"name": "ചിലി"
},
"CZ": {
- "name": "ചെക്ക് റിപ്പബ്ലിക്"
+ "name": "ചെക്കിയ"
},
"CN": {
"name": "ചൈന"
@@ -258,7 +258,7 @@
"name": "ജമൈക്ക"
},
"DE": {
- "name": "ജർമനി"
+ "name": "ജർമ്മനി"
},
"GI": {
"name": "ജിബ്രാൾട്ടർ"
@@ -309,7 +309,7 @@
"name": "ഡൊമിനിക്ക"
},
"DO": {
- "name": "ഡൊമിനിക്കൻ റിപ്പബ്ലിക്"
+ "name": "ഡൊമിനിക്കൻ റിപ്പബ്ലിക്ക്"
},
"TJ": {
"name": "താജിക്കിസ്ഥാൻ"
@@ -410,12 +410,12 @@
"PT": {
"name": "പോർച്ചുഗൽ"
},
+ "PR": {
+ "name": "പോർട്ടോ റിക്കോ"
+ },
"PL": {
"name": "പോളണ്ട്"
},
- "PR": {
- "name": "പ്യൂർട്ടോ റിക്കോ"
- },
"FO": {
"name": "ഫറോ ദ്വീപുകൾ"
},
@@ -446,6 +446,9 @@
"BD": {
"name": "ബംഗ്ലാദേശ്"
},
+ "BF": {
+ "name": "ബർക്കിന ഫാസോ"
+ },
"BM": {
"name": "ബർമുഡ"
},
@@ -464,9 +467,6 @@
"BB": {
"name": "ബാർബഡോസ്"
},
- "BF": {
- "name": "ബുർക്കിനാ ഫാസോ"
- },
"BJ": {
"name": "ബെനിൻ"
},
@@ -528,7 +528,7 @@
"name": "മാർട്ടിനിക്ക്"
},
"MH": {
- "name": "മാർഷൽ‍‍ ദ്വീപുകൾ"
+ "name": "മാർഷൽ ദ്വീപുകൾ"
},
"ML": {
"name": "മാലി"
@@ -648,7 +648,7 @@
"name": "സിന്റ് മാർട്ടെൻ"
},
"SG": {
- "name": "സിംഗപ്പുർ"
+ "name": "സിംഗപ്പൂർ"
},
"ZW": {
"name": "സിംബാബ്‌വേ"
@@ -672,7 +672,7 @@
"name": "സെനഗൽ"
},
"CF": {
- "name": "സെൻട്രൽ ആഫ്രിക്കൻ റിപ്പബ്ലിക്"
+ "name": "സെൻട്രൽ ആഫ്രിക്കൻ റിപ്പബ്ലിക്ക്"
},
"KN": {
"name": "സെന്റ് കിറ്റ്‌സും നെവിസും"
@@ -684,16 +684,16 @@
"name": "സെന്റ് ബാർത്തലമി"
},
"MF": {
- "name": "സെൻറ് മാർട്ടിൻ"
+ "name": "സെന്റ് മാർട്ടിൻ"
},
"LC": {
- "name": "സെൻറ് ലൂസിയ"
+ "name": "സെന്റ് ലൂസിയ"
},
"VC": {
"name": "സെന്റ് വിൻസെന്റും ഗ്രനെഡൈൻസും"
},
"SH": {
- "name": "സെൻറ് ഹെലീന"
+ "name": "സെന്റ് ഹെലീന"
},
"EA": {
"name": "സെയൂത്ത ആൻഡ് മെലിയ"
@@ -708,7 +708,7 @@
"name": "സോമാലിയ"
},
"SB": {
- "name": "സോളമൻ‍ ദ്വീപുകൾ"
+ "name": "സോളമൻ ദ്വീപുകൾ"
},
"SA": {
"name": "സൗദി അറേബ്യ"
@@ -726,7 +726,7 @@
"name": "സ്വാൽബാഡും ജാൻ മായേനും"
},
"SZ": {
- "name": "സ്വാസിലാൻറ്"
+ "name": "സ്വാസിലാന്റ്"
},
"CH": {
"name": "സ്വിറ്റ്സർലാൻഡ്"
@@ -741,7 +741,7 @@
"name": "ഹെയ്തി"
},
"HK": {
- "name": "ഹോങ്കോങ്ങ് (SAR) ചൈന"
+ "name": "ഹോങ്കോങ് (SAR) ചൈന"
},
"HN": {
"name": "ഹോണ്ടുറാസ്"
diff --git a/vendor/commerceguys/intl/resources/country/mn.json b/vendor/commerceguys/intl/resources/country/mn.json
index 33688638c..c41b2166d 100644
--- a/vendor/commerceguys/intl/resources/country/mn.json
+++ b/vendor/commerceguys/intl/resources/country/mn.json
@@ -9,7 +9,7 @@
"name": "Азербайжан"
},
"AX": {
- "name": "Аландын Арлууд"
+ "name": "Аландын арлууд"
},
"AL": {
"name": "Албани"
@@ -20,11 +20,14 @@
"US": {
"name": "Америкийн Нэгдсэн Улс"
},
+ "UM": {
+ "name": "Америкийн Нэгдсэн Улсын бага арлууд"
+ },
"AS": {
"name": "Америкийн Самоа"
},
"AI": {
- "name": "Ангила"
+ "name": "Ангилья"
},
"AO": {
"name": "Ангол"
@@ -33,7 +36,7 @@
"name": "Андорра"
},
"AQ": {
- "name": "Антарктик"
+ "name": "Антарктид"
},
"AG": {
"name": "Антигуа ба Барбуда"
@@ -41,11 +44,8 @@
"VI": {
"name": "АНУ-ын Виржиний Арлууд"
},
- "UM": {
- "name": "АНУ-ын тойрсон арлууд"
- },
"AE": {
- "name": "Арабын Нэгдсэн Эмират"
+ "name": "Арабын Нэгдсэн Эмират Улс"
},
"AR": {
"name": "Аргентин"
@@ -57,13 +57,13 @@
"name": "Аруба"
},
"AC": {
- "name": "Аскенсион арал"
+ "name": "Асенсион арал"
},
"AF": {
"name": "Афганистан"
},
"BS": {
- "name": "Багам"
+ "name": "Багамын арлууд"
},
"NP": {
"name": "Балба"
@@ -83,17 +83,17 @@
"BY": {
"name": "Беларусь"
},
- "BE": {
- "name": "Белги"
- },
"BZ": {
"name": "Белиз"
},
+ "BE": {
+ "name": "Бельги"
+ },
"BJ": {
"name": "Бенин"
},
"BM": {
- "name": "Бермуд"
+ "name": "Бермуда"
},
"MO": {
"name": "БНХАУ-ын Тусгай захиргааны бүс Макао"
@@ -108,7 +108,7 @@
"name": "Боливи"
},
"BA": {
- "name": "Босни Герцеговин"
+ "name": "Босни-Герцеговин"
},
"BW": {
"name": "Ботсвана"
@@ -120,13 +120,13 @@
"name": "Британийн Виржиний Арлууд"
},
"IO": {
- "name": "Британийн харьяа Энэтхэгийн далай дахь нутаг дэвсгэрүүд"
+ "name": "Британийн харьяа Энэтхэгийн далай дахь нутаг дэвсгэр"
},
"BN": {
"name": "Бруней"
},
"BF": {
- "name": "Буркина фасо"
+ "name": "Буркина Фасо"
},
"BI": {
"name": "Бурунди"
@@ -137,9 +137,6 @@
"DO": {
"name": "Бүгд Найрамдах Доминикан Улс"
},
- "CZ": {
- "name": "Бүгд Найрамдах Чех Улс"
- },
"VU": {
"name": "Вануату"
},
@@ -216,7 +213,7 @@
"name": "Диего Гарсиа"
},
"DM": {
- "name": "Доминик"
+ "name": "Доминика"
},
"EG": {
"name": "Египет"
@@ -237,7 +234,7 @@
"name": "Израиль"
},
"ID": {
- "name": "Индонези"
+ "name": "Индонез"
},
"IQ": {
"name": "Ирак"
@@ -266,11 +263,14 @@
"JO": {
"name": "Йордан"
},
+ "CV": {
+ "name": "Кабо-Верде"
+ },
"KZ": {
"name": "Казахстан"
},
"KY": {
- "name": "Кайманы Арлууд"
+ "name": "Кайманы арлууд"
},
"KH": {
"name": "Камбож"
@@ -284,9 +284,6 @@
"IC": {
"name": "Канарын арлууд"
},
- "CV": {
- "name": "Капе Верде"
- },
"BQ": {
"name": "Карибын Нидерланд"
},
@@ -306,10 +303,10 @@
"name": "Кокос (Кийлинг) арлууд"
},
"CO": {
- "name": "Колумб"
+ "name": "Колумби"
},
"KM": {
- "name": "Коморос"
+ "name": "Коморын арлууд"
},
"CG": {
"name": "Конго Браззавиль"
@@ -321,10 +318,10 @@
"name": "Косово"
},
"CR": {
- "name": "Коста Рика"
+ "name": "Коста-Рика"
},
"CI": {
- "name": "Кот д’Ивуар"
+ "name": "Кот-д’Ивуар"
},
"CU": {
"name": "Куба"
@@ -332,15 +329,15 @@
"KW": {
"name": "Кувейт"
},
- "CW": {
- "name": "Куракао"
- },
"CK": {
"name": "Күүкийн арлууд"
},
"KG": {
"name": "Кыргызстан"
},
+ "CW": {
+ "name": "Кюрасао"
+ },
"LA": {
"name": "Лаос"
},
@@ -368,17 +365,17 @@
"LU": {
"name": "Люксембург"
},
+ "MU": {
+ "name": "Маврики"
+ },
"MR": {
"name": "Мавритани"
},
- "MU": {
- "name": "Мавритус"
- },
"MG": {
"name": "Мадагаскар"
},
"YT": {
- "name": "Майотте"
+ "name": "Майотта"
},
"MK": {
"name": "Македон"
@@ -398,9 +395,6 @@
"MT": {
"name": "Мальта"
},
- "MA": {
- "name": "Марокко"
- },
"MQ": {
"name": "Мартиник"
},
@@ -431,8 +425,11 @@
"MS": {
"name": "Монтсеррат"
},
+ "MA": {
+ "name": "Морокко"
+ },
"MM": {
- "name": "Мьянмар (Бурма)"
+ "name": "Мьянмар"
},
"IM": {
"name": "Мэн Арал"
@@ -462,7 +459,7 @@
"name": "Норвеги"
},
"NF": {
- "name": "Норфолк арлууд"
+ "name": "Норфолк арал"
},
"OM": {
"name": "Оман"
@@ -471,7 +468,7 @@
"name": "Орос"
},
"ZA": {
- "name": "Өмнөд Африк тив"
+ "name": "Өмнөд Африк"
},
"GS": {
"name": "Өмнөд Жоржиа ба Өмнөд Сэндвичийн Арлууд"
@@ -510,13 +507,13 @@
"name": "Польш"
},
"PT": {
- "name": "Португаль"
+ "name": "Португал"
},
"PR": {
- "name": "Пуэрто Рико"
+ "name": "Пуэрто-Рико"
},
"RE": {
- "name": "Реюньон"
+ "name": "Реюнион"
},
"RW": {
"name": "Руанда"
@@ -543,26 +540,32 @@
"name": "Свалбард ба Ян Майен"
},
"SC": {
- "name": "Сейшел"
+ "name": "Сейшелийн арлууд"
},
"SN": {
"name": "Сенегал"
},
- "BL": {
- "name": "Сент Бартельми"
- },
"LC": {
"name": "Сент Люсиа"
},
"SH": {
"name": "Сент Хелена"
},
+ "BL": {
+ "name": "Сент-Бартельми"
+ },
+ "VC": {
+ "name": "Сент-Винсент ба Гренадин"
+ },
"KN": {
"name": "Сент-Киттс ба Невис"
},
"MF": {
"name": "Сент-Мартин"
},
+ "PM": {
+ "name": "Сент-Пьер ба Микело"
+ },
"RS": {
"name": "Серби"
},
@@ -585,7 +588,7 @@
"name": "Словени"
},
"SB": {
- "name": "Соломоны Арлууд"
+ "name": "Соломоны арлууд"
},
"SO": {
"name": "Сомали"
@@ -599,12 +602,6 @@
"SL": {
"name": "Сьерра-Леоне"
},
- "VC": {
- "name": "Сэнт Винсэнт ба Гренадин"
- },
- "PM": {
- "name": "Сэнт Пьер ба Микелон"
- },
"TJ": {
"name": "Тажикистан"
},
@@ -633,10 +630,10 @@
"name": "Төв Африкийн Бүгд Найрамдах Улс"
},
"TT": {
- "name": "Тринидад Тобаго"
+ "name": "Тринидад ба Тобаго"
},
"TA": {
- "name": "Тристан да Кунья"
+ "name": "Тристан да Кунъя"
},
"TV": {
"name": "Тувалу"
@@ -672,7 +669,7 @@
"name": "Уругвай"
},
"FO": {
- "name": "Фароэ Арлууд"
+ "name": "Фарерын арлууд"
},
"FJ": {
"name": "Фижи"
@@ -684,13 +681,13 @@
"name": "Финланд"
},
"FK": {
- "name": "Фолькландын Арлууд"
+ "name": "Фолклендийн арлууд"
},
"FR": {
"name": "Франц"
},
"GF": {
- "name": "Францын Гайана"
+ "name": "Францын Гвиана"
},
"TF": {
"name": "Францын өмнөд газар нутаг"
@@ -713,6 +710,9 @@
"TD": {
"name": "Чад"
},
+ "CZ": {
+ "name": "Чех"
+ },
"CL": {
"name": "Чили"
},
@@ -720,7 +720,7 @@
"name": "Швед"
},
"CH": {
- "name": "Швейцари"
+ "name": "Швейцарь"
},
"NZ": {
"name": "Шинэ Зеланд"
@@ -729,7 +729,7 @@
"name": "Шинэ Каледони"
},
"LK": {
- "name": "Шри Ланка"
+ "name": "Шри-Ланка"
},
"EC": {
"name": "Эквадор"
@@ -744,7 +744,7 @@
"name": "Энэтхэг"
},
"ER": {
- "name": "Эритри"
+ "name": "Эритрей"
},
"EE": {
"name": "Эстони"
@@ -753,7 +753,7 @@
"name": "Этиоп"
},
"JM": {
- "name": "Ямайк"
+ "name": "Ямайка"
},
"JP": {
"name": "Япон"
diff --git a/vendor/commerceguys/intl/resources/country/mr.json b/vendor/commerceguys/intl/resources/country/mr.json
index 9910a9428..92ecae3f9 100644
--- a/vendor/commerceguys/intl/resources/country/mr.json
+++ b/vendor/commerceguys/intl/resources/country/mr.json
@@ -270,7 +270,7 @@
"name": "झिम्बाब्वे"
},
"CZ": {
- "name": "झेक प्रजासत्ताक"
+ "name": "झेकिया"
},
"TC": {
"name": "टर्क्स आणि कैकोस बेटे"
@@ -443,9 +443,6 @@
"BM": {
"name": "बर्मुडा"
},
- "BZ": {
- "name": "बलिझ"
- },
"BG": {
"name": "बल्गेरिया"
},
@@ -473,6 +470,9 @@
"BY": {
"name": "बेलारूस"
},
+ "BZ": {
+ "name": "बेलिझे"
+ },
"BE": {
"name": "बेल्जियम"
},
diff --git a/vendor/commerceguys/intl/resources/country/ms.json b/vendor/commerceguys/intl/resources/country/ms.json
index 0214d3540..db7ebd40a 100644
--- a/vendor/commerceguys/intl/resources/country/ms.json
+++ b/vendor/commerceguys/intl/resources/country/ms.json
@@ -158,6 +158,9 @@
"CY": {
"name": "Cyprus"
},
+ "CZ": {
+ "name": "Czechia"
+ },
"DK": {
"name": "Denmark"
},
@@ -560,9 +563,6 @@
"CF": {
"name": "Republik Afrika Tengah"
},
- "CZ": {
- "name": "Republik Czech"
- },
"DO": {
"name": "Republik Dominica"
},
diff --git a/vendor/commerceguys/intl/resources/country/my.json b/vendor/commerceguys/intl/resources/country/my.json
index fccd2e6f4..d00d31936 100644
--- a/vendor/commerceguys/intl/resources/country/my.json
+++ b/vendor/commerceguys/intl/resources/country/my.json
@@ -81,7 +81,7 @@
"name": "ချီလီ"
},
"CZ": {
- "name": "ချက် ပြည်ထောင်စု"
+ "name": "ချက်ကီယား"
},
"TD": {
"name": "ချဒ်"
@@ -126,7 +126,7 @@
"name": "ဂျာစီ"
},
"DE": {
- "name": "ဂျာမဏီ"
+ "name": "ဂျာမနီ"
},
"GI": {
"name": "ဂျီဘရော်လ်တာ"
@@ -155,9 +155,6 @@
"SJ": {
"name": "စဗိုလ်ဘတ်နှင့်ဂျန်မေရန်"
},
- "SI": {
- "name": "စလိုဗေးနီးယား"
- },
"KN": {
"name": "စိန့်ကစ်နှင့်နီဗီစ်"
},
@@ -188,6 +185,9 @@
"WS": {
"name": "ဆမိုးအား"
},
+ "SI": {
+ "name": "ဆလိုဗေးနီးယား"
+ },
"SK": {
"name": "ဆလိုဗက်ကီးယား"
},
@@ -248,9 +248,6 @@
"ZM": {
"name": "ဇမ်ဘီယာ"
},
- "UZ": {
- "name": "ဉဇဘက်ကစ္စတန်"
- },
"CN": {
"name": "တရုတ်"
},
@@ -275,9 +272,6 @@
"TG": {
"name": "တိုဂို"
},
- "AC": {
- "name": "တက်တော်မူကျွန်း"
- },
"TC": {
"name": "တခ်စ်နှင့်ကာအီကိုစ်ကျွန်းစု"
},
@@ -399,7 +393,7 @@
"name": "ပြင်သစ်"
},
"GF": {
- "name": "ပြင်သစ် ဂိုင်ယာနာ"
+ "name": "ပြင်သစ် ဂီယာနာ"
},
"TF": {
"name": "ပြင်သစ် တောင်ပိုင်း ပိုင်နက်များ"
@@ -429,7 +423,7 @@
"name": "ဗဟို အာဖရိက ပြည်ထောင်စု"
},
"VA": {
- "name": "ဗာတီကန်စီတီး"
+ "name": "ဗာတီကန်စီးတီး"
},
"VN": {
"name": "ဗီယက်နမ်"
@@ -471,7 +465,7 @@
"name": "ဘီနင်"
},
"BY": {
- "name": "ဘီလာရုဇ်"
+ "name": "ဘီလာရုစ်"
},
"BT": {
"name": "ဘူတန်"
@@ -509,9 +503,6 @@
"MQ": {
"name": "မာတီနိခ်"
},
- "YT": {
- "name": "မာယိုတေး"
- },
"MH": {
"name": "မာရှယ် ကျွန်းစု"
},
@@ -521,6 +512,9 @@
"ML": {
"name": "မာလီ"
},
+ "YT": {
+ "name": "မေယော့"
+ },
"MU": {
"name": "မောရစ်ရှ"
},
@@ -546,7 +540,7 @@
"name": "မက္ကဆီကို"
},
"MK": {
- "name": "မက်စီဒိုးနီးယား"
+ "name": "မက်ဆီဒိုးနီးယား"
},
"FM": {
"name": "မိုင်ခရိုနီရှား"
@@ -584,9 +578,6 @@
"GB": {
"name": "ယူနိုက်တက်ကင်းဒမ်း"
},
- "US": {
- "name": "ယူနိုက်တက်စတိတ်"
- },
"UM": {
"name": "ယူနိုက်တက်စတိတ် ကျွန်းနိုင်ငံများ"
},
@@ -599,8 +590,11 @@
"RW": {
"name": "ရဝန်ဒါ"
},
+ "RE": {
+ "name": "ရီယူနီယန်"
+ },
"RU": {
- "name": "ရုရှ"
+ "name": "ရုရှား"
},
"RO": {
"name": "ရိုမေးနီးယား"
@@ -638,9 +632,6 @@
"LK": {
"name": "သီရိလင်္ကာ"
},
- "RE": {
- "name": "ဟေညွန်"
- },
"HT": {
"name": "ဟေတီ"
},
@@ -653,6 +644,9 @@
"HN": {
"name": "ဟွန်ဒူးရပ်စ်"
},
+ "AC": {
+ "name": "အဆန်းရှင်းကျွန်း"
+ },
"AZ": {
"name": "အဇာဘိုင်ဂျန်"
},
@@ -662,6 +656,9 @@
"AS": {
"name": "အမေရိကန် ဆမိုးအား"
},
+ "US": {
+ "name": "အမေရိကန် ပြည်ထောင်စု"
+ },
"TL": {
"name": "အရှေ့တီမော"
},
@@ -704,6 +701,9 @@
"ET": {
"name": "အီသီယိုးပီးယား"
},
+ "UZ": {
+ "name": "ဥဇဘက်ကစ္စတန်"
+ },
"UY": {
"name": "ဥရုဂွေး"
},
@@ -722,18 +722,9 @@
"IS": {
"name": "အိုက်စလန်"
},
- "AO": {
- "name": "အင်ဂိုလာ"
- },
- "AG": {
- "name": "အင်တီဂွါနှင့် ဘာဘူဒါ"
- },
"ID": {
"name": "အင်ဒိုနီးရှား"
},
- "AD": {
- "name": "အင်ဒိုရာ"
- },
"IE": {
"name": "အိုင်ယာလန်"
},
@@ -743,9 +734,18 @@
"AI": {
"name": "အန်ဂီလာ"
},
+ "AO": {
+ "name": "အန်ဂိုလာ"
+ },
"AQ": {
"name": "အန္တာတိက"
},
+ "AG": {
+ "name": "အန်တီဂွါနှင့် ဘာဘူဒါ"
+ },
+ "AD": {
+ "name": "အန်ဒိုရာ"
+ },
"IN": {
"name": "အိန္ဒိယ"
},
diff --git a/vendor/commerceguys/intl/resources/country/nb.json b/vendor/commerceguys/intl/resources/country/nb.json
index 61db19d5a..3ba473697 100644
--- a/vendor/commerceguys/intl/resources/country/nb.json
+++ b/vendor/commerceguys/intl/resources/country/nb.json
@@ -146,9 +146,6 @@
"CF": {
"name": "Den sentralafrikanske republikk"
},
- "CZ": {
- "name": "Den tsjekkiske republikk"
- },
"IO": {
"name": "Det britiske territoriet i Indiahavet"
},
@@ -560,6 +557,9 @@
"MF": {
"name": "Saint-Martin"
},
+ "PM": {
+ "name": "Saint-Pierre-et-Miquelon"
+ },
"SB": {
"name": "Salomonøyene"
},
@@ -614,9 +614,6 @@
"LC": {
"name": "St. Lucia"
},
- "PM": {
- "name": "St. Pierre og Miquelon"
- },
"VC": {
"name": "St. Vincent og Grenadinene"
},
@@ -686,6 +683,9 @@
"TD": {
"name": "Tsjad"
},
+ "CZ": {
+ "name": "Tsjekkia"
+ },
"TN": {
"name": "Tunisia"
},
diff --git a/vendor/commerceguys/intl/resources/country/ne.json b/vendor/commerceguys/intl/resources/country/ne.json
index 9373cb068..23607a979 100644
--- a/vendor/commerceguys/intl/resources/country/ne.json
+++ b/vendor/commerceguys/intl/resources/country/ne.json
@@ -17,6 +17,9 @@
"AS": {
"name": "अमेरिकी समोआ"
},
+ "AW": {
+ "name": "अरुबा"
+ },
"AR": {
"name": "अर्जेन्टिना"
},
@@ -27,7 +30,7 @@
"name": "अल्जेरिया"
},
"AL": {
- "name": "अल्बानिया"
+ "name": "अल्बेनिया"
},
"AT": {
"name": "अष्ट्रिया"
@@ -35,12 +38,12 @@
"AU": {
"name": "अष्ट्रेलिया"
},
- "IM": {
- "name": "आइज्ले अफ् म्यान"
- },
"CI": {
"name": "आइभोरी कोस्ट"
},
+ "IM": {
+ "name": "आइल अफ म्यान"
+ },
"IS": {
"name": "आइस्ल्याण्ड"
},
@@ -50,14 +53,11 @@
"IE": {
"name": "आयरल्याण्ड"
},
- "AW": {
- "name": "आरूबा"
- },
"AM": {
"name": "आर्मेनिया"
},
"EC": {
- "name": "इक्वडेर"
+ "name": "इक्वेडोर"
},
"IL": {
"name": "इजरायल"
@@ -110,6 +110,12 @@
"OM": {
"name": "ओमन"
},
+ "CD": {
+ "name": "कङ्गो - किन्शासा"
+ },
+ "CG": {
+ "name": "कङ्गो ब्राजाभिल"
+ },
"QA": {
"name": "कतार"
},
@@ -123,7 +129,7 @@
"name": "किरिबाटी"
},
"KG": {
- "name": "किर्गिस्थान"
+ "name": "किर्गिस्तान"
},
"CK": {
"name": "कुक टापुहरु"
@@ -149,12 +155,6 @@
"CC": {
"name": "कोकोस (किलिंग) टापुहरु"
},
- "CG": {
- "name": "कोङ्गो - ब्राज्जाभिल्ले"
- },
- "CD": {
- "name": "कोङ्गो-किन्शासा"
- },
"KM": {
"name": "कोमोरोस"
},
@@ -165,7 +165,7 @@
"name": "कोष्टारिका"
},
"XK": {
- "name": "कोसोवो"
+ "name": "कोसोभो"
},
"CA": {
"name": "क्यानाडा"
@@ -237,7 +237,7 @@
"name": "चीन"
},
"CZ": {
- "name": "चेक गणतन्त्र"
+ "name": "चेकिया"
},
"JM": {
"name": "जमाइका"
@@ -338,9 +338,6 @@
"SS": {
"name": "दक्षिणी सुडान"
},
- "NC": {
- "name": "नयाँ कालेडोनिया"
- },
"NO": {
"name": "नर्वे"
},
@@ -363,7 +360,7 @@
"name": "नियुइ"
},
"NL": {
- "name": "नेदरल्याण्ड्स"
+ "name": "नेदरल्याण्ड"
},
"NP": {
"name": "नेपाल"
@@ -371,12 +368,12 @@
"NF": {
"name": "नोरफोल्क टापु"
},
+ "NC": {
+ "name": "न्यु क्यालेडोनिया"
+ },
"NZ": {
"name": "न्युजिल्याण्ड"
},
- "PA": {
- "name": "पनामा"
- },
"PG": {
"name": "पपुआ न्यू गाइनिया"
},
@@ -404,6 +401,9 @@
"PL": {
"name": "पोल्याण्ड"
},
+ "PA": {
+ "name": "प्यानामा"
+ },
"PY": {
"name": "प्याराग्वे"
},
@@ -519,14 +519,11 @@
"name": "भेनेजुएला"
},
"MO": {
- "name": "मकावो चिनिँया स्वशासित क्षेत्र"
+ "name": "मकाउ चिनियाँ स्वशासित क्षेत्र"
},
"MN": {
"name": "मङ्गोलिया"
},
- "MG": {
- "name": "मडागास्कर"
- },
"MY": {
"name": "मलेसिया"
},
@@ -539,6 +536,9 @@
"MR": {
"name": "माउरिटानिया"
},
+ "MG": {
+ "name": "माडागास्कर"
+ },
"YT": {
"name": "मायोट्ट"
},
@@ -581,12 +581,12 @@
"MA": {
"name": "मोरोक्को"
},
- "MK": {
- "name": "म्याकेडोनिया"
- },
"MM": {
"name": "म्यान्मार (बर्मा)"
},
+ "MK": {
+ "name": "म्यासेडोनिया"
+ },
"UA": {
"name": "युक्रेन"
},
@@ -606,7 +606,7 @@
"name": "रूस"
},
"RO": {
- "name": "रोमानिया"
+ "name": "रोमेनिया"
},
"LU": {
"name": "लक्जेमबर्ग"
@@ -624,7 +624,7 @@
"name": "लिएखटेन्स्टाइन"
},
"LT": {
- "name": "लिथुअनिया"
+ "name": "लिथुएनिया"
},
"LY": {
"name": "लिबिया"
@@ -699,7 +699,7 @@
"name": "सेचेलेस"
},
"SN": {
- "name": "सेनेगाल"
+ "name": "सेनेगल"
},
"KN": {
"name": "सेन्ट किट्स र नेभिस"
@@ -747,7 +747,7 @@
"name": "स्विडेन"
},
"HK": {
- "name": "हङकङ चिनिया समाजवादी स्वायत्त क्षेत्र"
+ "name": "हङकङ चिनियाँ समाजबादी स्वायत्त क्षेत्र"
},
"HU": {
"name": "हङ्गेरी"
diff --git a/vendor/commerceguys/intl/resources/country/nl.json b/vendor/commerceguys/intl/resources/country/nl.json
index 92f6c5c55..9192ef2f3 100644
--- a/vendor/commerceguys/intl/resources/country/nl.json
+++ b/vendor/commerceguys/intl/resources/country/nl.json
@@ -93,7 +93,7 @@
"name": "Brazilië"
},
"IO": {
- "name": "Britse Gebieden in de Indische Oceaan"
+ "name": "Brits Indische Oceaanterritorium"
},
"VG": {
"name": "Britse Maagdeneilanden"
diff --git a/vendor/commerceguys/intl/resources/country/nn.json b/vendor/commerceguys/intl/resources/country/nn.json
index 18e901e73..5d0ec4541 100644
--- a/vendor/commerceguys/intl/resources/country/nn.json
+++ b/vendor/commerceguys/intl/resources/country/nn.json
@@ -78,7 +78,7 @@
"name": "Bolivia"
},
"BA": {
- "name": "Bosnia og Hercegovina"
+ "name": "Bosnia-Hercegovina"
},
"BW": {
"name": "Botswana"
@@ -86,9 +86,6 @@
"BR": {
"name": "Brasil"
},
- "IO": {
- "name": "Britiske område i Det indiske hav"
- },
"BN": {
"name": "Brunei"
},
@@ -104,9 +101,6 @@
"CA": {
"name": "Canada"
},
- "BQ": {
- "name": "Caribbean Netherlands"
- },
"KY": {
"name": "Caymanøyane"
},
@@ -138,10 +132,13 @@
"name": "Danmark"
},
"VI": {
- "name": "Dei amerikanske jomfruøyane"
+ "name": "Dei amerikanske Jomfruøyane"
},
"VG": {
- "name": "Dei britiske jomfruøyane"
+ "name": "Dei britiske Jomfruøyane"
+ },
+ "TF": {
+ "name": "Dei franske sørterritoria"
},
"AE": {
"name": "Dei sameinte arabiske emirata"
@@ -152,6 +149,9 @@
"CF": {
"name": "Den sentralafrikanske republikken"
},
+ "IO": {
+ "name": "Det britiske territoriet I Indiahavet"
+ },
"DG": {
"name": "Diego Garcia"
},
@@ -206,9 +206,6 @@
"PF": {
"name": "Fransk Polynesia"
},
- "TF": {
- "name": "Franske sørområde"
- },
"FO": {
"name": "Færøyane"
},
@@ -317,6 +314,9 @@
"CV": {
"name": "Kapp Verde"
},
+ "BQ": {
+ "name": "Karibisk Nederland"
+ },
"KZ": {
"name": "Kasakhstan"
},
@@ -495,7 +495,7 @@
"name": "Noreg"
},
"NF": {
- "name": "Norfolkøyane"
+ "name": "Norfolkøya"
},
"NC": {
"name": "Ny-Caledonia"
@@ -557,9 +557,15 @@
"SH": {
"name": "Saint Helena"
},
+ "KN": {
+ "name": "Saint Kitts og Nevis"
+ },
"MF": {
"name": "Saint Martin"
},
+ "PM": {
+ "name": "Saint-Pierre-et-Miquelon"
+ },
"SB": {
"name": "Salomonøyane"
},
@@ -608,15 +614,9 @@
"LK": {
"name": "Sri Lanka"
},
- "KN": {
- "name": "St. Christopher og Nevis"
- },
"LC": {
"name": "St. Lucia"
},
- "PM": {
- "name": "St. Pierre og Miquelon"
- },
"VC": {
"name": "St. Vincent og Grenadinane"
},
@@ -648,7 +648,7 @@
"name": "Sør-Afrika"
},
"GS": {
- "name": "Sør-Georgia og Sør-Sandwich-øyane"
+ "name": "Sør-Georgia og Sør-Sandwichøyene"
},
"KR": {
"name": "Sør-Korea"
diff --git a/vendor/commerceguys/intl/resources/country/nus.json b/vendor/commerceguys/intl/resources/country/nus.json
index 3dcba70ed..ed5ed58a7 100644
--- a/vendor/commerceguys/intl/resources/country/nus.json
+++ b/vendor/commerceguys/intl/resources/country/nus.json
@@ -150,7 +150,7 @@
"name": "Cyprus"
},
"CZ": {
- "name": "Czech Republic"
+ "name": "Czechia"
},
"DK": {
"name": "Denmark"
diff --git a/vendor/commerceguys/intl/resources/country/or.json b/vendor/commerceguys/intl/resources/country/or.json
index 0c481a9c1..b1df96aaa 100644
--- a/vendor/commerceguys/intl/resources/country/or.json
+++ b/vendor/commerceguys/intl/resources/country/or.json
@@ -1,15 +1,15 @@
{
+ "AX": {
+ "name": "ଅଲାଣ୍ଡ ଦ୍ଵୀପପୁଞ୍ଜ"
+ },
"AT": {
"name": "ଅଷ୍ଟ୍ରିଆ"
},
"AU": {
"name": "ଅଷ୍ଟ୍ରେଲିଆ"
},
- "CI": {
- "name": "ଆଇବରୀ କୋଷ୍ଟ"
- },
"IM": {
- "name": "ଆଇଲ୍ ଅଫ୍ ମୈନ୍"
+ "name": "ଆଇଲ୍‌ ଅଫ୍‌ ମ୍ୟାନ୍‌"
},
"IS": {
"name": "ଆଇସଲ୍ୟାଣ୍ଡ"
@@ -23,6 +23,9 @@
"AZ": {
"name": "ଆଜେରବାଇଜାନ୍"
},
+ "AQ": {
+ "name": "ଆଣ୍ଟାର୍କାଟିକା"
+ },
"AG": {
"name": "ଆଣ୍ଟିଗୁଆ ଏବଂ ବାରବୁଦା"
},
@@ -30,7 +33,7 @@
"name": "ଆଣ୍ଡୋରା"
},
"AF": {
- "name": "ଆଫାଗାନିସ୍ତାନ୍"
+ "name": "ଆଫଗାନିସ୍ତାନ୍"
},
"AS": {
"name": "ଆମେରିକାନ୍ ସାମୋଆ"
@@ -44,9 +47,6 @@
"AR": {
"name": "ଆର୍ଜେଣ୍ଟିନା"
},
- "AQ": {
- "name": "ଆର୍ଣ୍ଟକଟିକା"
- },
"AM": {
"name": "ଆର୍ମେନିଆ"
},
@@ -56,8 +56,8 @@
"AL": {
"name": "ଆଲବାନିଆ"
},
- "AX": {
- "name": "ଆଲାଣ୍ଡ ଆଇସଲ୍ୟାଣ୍ଡ"
+ "AC": {
+ "name": "ଆସେନସିଅନ୍‌ ଦ୍ୱୀପ"
},
"GQ": {
"name": "ଇକ୍ବାଟେରିଆଲ୍ ଗୁଇନିଆ"
@@ -81,7 +81,7 @@
"name": "ଇରାକ୍"
},
"IR": {
- "name": "ଇରାନ୍"
+ "name": "ଇରାନ"
},
"ER": {
"name": "ଇରିଟ୍ରିୟା"
@@ -93,13 +93,13 @@
"name": "ଉଗାଣ୍ଡା"
},
"UZ": {
- "name": "ଉଜବେକିସ୍ଥାନ୍"
+ "name": "ଉଜବେକିସ୍ତାନ"
},
"KP": {
"name": "ଉତ୍ତର କୋରିଆ"
},
"MP": {
- "name": "ଉତ୍ତର ମାରିଆନା ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "ଉତ୍ତର ମାରିଆନା ଦ୍ୱୀପପୁଞ୍ଜ"
},
"UY": {
"name": "ଉରୁଗୁଏ"
@@ -123,7 +123,7 @@
"name": "କତାର୍"
},
"KZ": {
- "name": "କାଜାକାସ୍ଥାନ୍"
+ "name": "କାଜାକାସ୍ତାନ"
},
"CA": {
"name": "କାନାଡା"
@@ -131,35 +131,47 @@
"CM": {
"name": "କାମେରୁନ୍"
},
- "KM": {
- "name": "କାମୋରସ୍"
- },
"KH": {
"name": "କାମ୍ବୋଡିଆ"
},
+ "BQ": {
+ "name": "କାରବିୟନ୍‌ ନେଦରଲ୍ୟାଣ୍ଡ"
+ },
"KI": {
- "name": "କିରିବାଟୀ"
+ "name": "କିରିବାଟି"
},
"KG": {
- "name": "କିର୍ଗିଜିସ୍ଥାନ"
+ "name": "କିର୍ଗିଜିସ୍ତାନ"
},
"KW": {
"name": "କୁଏତ୍"
},
"CK": {
- "name": "କୁକ୍ ଆଇସଲ୍ୟାଣ୍ଡ"
+ "name": "କୁକ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ"
+ },
+ "CW": {
+ "name": "କୁରାକାଓ"
},
"KE": {
"name": "କେନିୟା"
},
+ "IC": {
+ "name": "କେନେରୀ ଦ୍ୱୀପପୁଞ୍ଜ"
+ },
"CV": {
"name": "କେପ୍ ଭର୍ଦେ"
},
"KY": {
- "name": "କେମ୍ୟାନ୍ ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "କେମ୍ୟାନ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ"
},
"CC": {
- "name": "କୋକୋସ୍ ଆଇସଲ୍ୟାଣ୍ଡ"
+ "name": "କୋକୋସ୍ (କୀଲିଂ) ଦ୍ଵୀପପୁଞ୍ଜ"
+ },
+ "CI": {
+ "name": "କୋଟେ ଡି ଆଇଭୋରି"
+ },
+ "KM": {
+ "name": "କୋମୋରସ୍‌"
},
"CO": {
"name": "କୋଲମ୍ବିଆ"
@@ -167,14 +179,17 @@
"CR": {
"name": "କୋଷ୍ଟା ରିକା"
},
+ "XK": {
+ "name": "କୋସୋଭୋ"
+ },
"HR": {
- "name": "କ୍ରୋଆଟିଆ"
+ "name": "କ୍ରୋଏସିଆ"
},
"CU": {
"name": "କ୍ୱିବା"
},
"CX": {
- "name": "ଖ୍ରୀଷ୍ଟମାସ ଆଇଲ୍ୟାଣ୍ଡ"
+ "name": "ଖ୍ରୀଷ୍ଟମାସ ଦ୍ୱୀପ"
},
"GA": {
"name": "ଗାବୋନ୍"
@@ -182,27 +197,27 @@
"GM": {
"name": "ଗାମ୍ବିଆ"
},
+ "GP": {
+ "name": "ଗୁଆଡେଲୋପ୍‌"
+ },
"GU": {
"name": "ଗୁଆମ୍"
},
"GY": {
"name": "ଗୁଇନା"
},
+ "GN": {
+ "name": "ଗୁଇନିଆ"
+ },
"GW": {
"name": "ଗୁଇନିଆ-ବିସାଉ"
},
"GT": {
"name": "ଗୁଏତମାଲା"
},
- "GN": {
- "name": "ଗୁଏନେଆ"
- },
"GG": {
"name": "ଗୁଏରନେସି"
},
- "GP": {
- "name": "ଗୌଡେଲୌପେ"
- },
"GL": {
"name": "ଗ୍ରୀନଲ୍ୟାଣ୍ଡ"
},
@@ -225,7 +240,7 @@
"name": "ଚିଲ୍ଲୀ"
},
"CZ": {
- "name": "ଚେକ୍ ସାଧାରଣତନ୍ତ୍ର"
+ "name": "ଚେଚିଆ"
},
"GE": {
"name": "ଜର୍ଜିଆ"
@@ -237,7 +252,7 @@
"name": "ଜର୍ସି"
},
"JP": {
- "name": "ଜାପାନ୍"
+ "name": "ଜାପାନ"
},
"JM": {
"name": "ଜାମାଇକା"
@@ -245,6 +260,9 @@
"ZM": {
"name": "ଜାମ୍ବିଆ"
},
+ "DJ": {
+ "name": "ଜିବୋଟି"
+ },
"GI": {
"name": "ଜିବ୍ରାଲ୍ଟର୍"
},
@@ -254,9 +272,6 @@
"JO": {
"name": "ଜୋର୍ଡାନ୍"
},
- "TV": {
- "name": "ଟୁଭାଲୁ"
- },
"TK": {
"name": "ଟୋକେଲାଉ"
},
@@ -266,20 +281,26 @@
"TO": {
"name": "ଟୋଙ୍ଗା"
},
- "DJ": {
- "name": "ଡିବୌଟି"
+ "TN": {
+ "name": "ଟ୍ୟୁନିସିଆ"
+ },
+ "TA": {
+ "name": "ଟ୍ରାଇଷ୍ଟନ୍‌ ଦା କୁନ୍‌ଚା"
+ },
+ "DG": {
+ "name": "ଡିଏଗୋ ଗାର୍ସିଆ"
},
"DK": {
"name": "ଡେନମାର୍କ"
},
- "DO": {
- "name": "ଡୋମିନକାନ୍ ପ୍ରଜାତନ୍ତ୍ର"
- },
"DM": {
- "name": "ଡୋମିନାକା"
+ "name": "ଡୋମିନିକା"
+ },
+ "DO": {
+ "name": "ଡୋମିନିକାନ୍‌ ସାଧାରଣତନ୍ତ୍ର"
},
"TW": {
- "name": "ତାଇୱାନ୍"
+ "name": "ତାଇୱାନ"
},
"TJ": {
"name": "ତାଜିକିସ୍ଥାନ୍"
@@ -287,14 +308,17 @@
"TZ": {
"name": "ତାଞ୍ଜାନିଆ"
},
- "TN": {
- "name": "ତୁନିସିଆ"
+ "TL": {
+ "name": "ତିମୋର୍-ଲେଷ୍ଟେ"
+ },
+ "TV": {
+ "name": "ତୁଭାଲୁ"
},
"TM": {
- "name": "ତୁର୍କମେନିସ୍ତାନ୍"
+ "name": "ତୁର୍କମେନିସ୍ତାନ"
},
"TC": {
- "name": "ତୁର୍କସ୍ ଏବଂ ସାଇକସ୍ ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "ତୁର୍କସ୍‌ ଏବଂ କାଇକୋସ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ"
},
"TR": {
"name": "ତୁର୍କୀ"
@@ -303,7 +327,7 @@
"name": "ତ୍ରିନିଦାଦ୍ ଏବଂ ଟୋବାଗୋ"
},
"TH": {
- "name": "ଥାଇଲାଣ୍ଡ"
+ "name": "ଥାଇଲ୍ୟାଣ୍ଡ"
},
"ZA": {
"name": "ଦକ୍ଷିଣ ଆଫ୍ରିକା"
@@ -312,16 +336,19 @@
"name": "ଦକ୍ଷିଣ କୋରିଆ"
},
"GS": {
- "name": "ଦକ୍ଷିଣ ଜର୍ଜିଆ ଏବଂ ଦକ୍ଷିଣ ସାଣ୍ଡୱିଚ୍ ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "ଦକ୍ଷିଣ ଜର୍ଜିଆ ଏବଂ ଦକ୍ଷିଣ ସାଣ୍ଡୱିଚ୍ ଦ୍ୱୀପପୁଞ୍ଜ"
},
- "NF": {
- "name": "ନରଫ୍ଲକ୍ ଦ୍ବୀପ"
+ "SS": {
+ "name": "ଦକ୍ଷିଣ ସୁଦାନ"
},
"NO": {
"name": "ନରୱେ"
},
+ "NF": {
+ "name": "ନର୍ଫକ୍‌ ଦ୍ୱୀପ"
+ },
"NE": {
- "name": "ନାଇଜର୍"
+ "name": "ନାଇଜର"
},
"NG": {
"name": "ନାଇଜେରିଆ"
@@ -330,7 +357,7 @@
"name": "ନାଉରୁ"
},
"NA": {
- "name": "ନାମ୍ବିଆ"
+ "name": "ନାମିବିଆ"
},
"NU": {
"name": "ନିଉ"
@@ -372,31 +399,28 @@
"name": "ପାଲାଉ"
},
"PS": {
- "name": "ପାଲେସ୍ତେନିଆ"
+ "name": "ପାଲେଷ୍ଟେନିୟ ଭୂଭାଗ"
},
"PN": {
- "name": "ପିଟକାଇରିନ୍"
+ "name": "ପିଟକାଇରିନ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ"
},
"PR": {
"name": "ପୁଏର୍ତ୍ତୋ ରିକୋ"
},
- "TL": {
- "name": "ପୁର୍ବ ତିମୋର୍"
- },
"PE": {
"name": "ପେରୁ"
},
"PL": {
"name": "ପୋଲାଣ୍ଡ"
},
+ "FK": {
+ "name": "ଫକ୍‌ଲ୍ୟାଣ୍ଡ ଦ୍ଵୀପପୁଞ୍ଜ"
+ },
"TF": {
"name": "ଫରାସୀ ଦକ୍ଷିଣ କ୍ଷେତ୍ର"
},
- "FK": {
- "name": "ଫଲ୍କଲ୍ୟାଣ୍ଡ ଦ୍ବୀପପୁଞ୍ଜ"
- },
"FO": {
- "name": "ଫାରୋଇ ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "ଫାରୋଇ ଦ୍ୱୀପପୁଞ୍ଜ"
},
"FJ": {
"name": "ଫିଜି"
@@ -417,10 +441,10 @@
"name": "ଫ୍ରେଞ୍ଚ ପଲିନେସିଆ"
},
"BM": {
- "name": "ବରମୁଡା"
+ "name": "ବର୍ମୁଡା"
},
"BD": {
- "name": "ବାଙ୍ଗଲାଦେଶ୍"
+ "name": "ବାଂଲାଦେଶ"
},
"BB": {
"name": "ବାରବାଡୋସ୍"
@@ -432,10 +456,10 @@
"name": "ବାହାରିନ୍"
},
"BI": {
- "name": "ବୁରୁନ୍ଦି"
+ "name": "ବୁରୁଣ୍ଡି"
},
"BF": {
- "name": "ବୁର୍କିନୋ ଫାସୋ"
+ "name": "ବୁର୍କିନା ଫାସୋ"
},
"BG": {
"name": "ବୁଲଗେରିଆ"
@@ -453,7 +477,7 @@
"name": "ବେଲିଜ୍"
},
"BW": {
- "name": "ବୋଟସ୍ବାନ୍"
+ "name": "ବୋଟସ୍ୱାନା"
},
"BO": {
"name": "ବୋଲଭିଆ"
@@ -465,19 +489,16 @@
"name": "ବ୍ରାଜିଲ୍"
},
"VG": {
- "name": "ବ୍ରିଟିଶ୍ ଭର୍ଜିନ୍ ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "ବ୍ରିଟିଶ୍‌ ଭର୍ଜିନ୍ ଦ୍ୱୀପପୁଞ୍ଜ"
},
"IO": {
- "name": "ବ୍ରିଟିଶ୍ ଭାରତୀୟ ସାମୁଦ୍ରିକ କ୍ଷେତ୍ର"
- },
- "GB": {
- "name": "ବ୍ରିଟେନ୍"
+ "name": "ବ୍ରିଟିଶ୍‌ ଭାରତ ମାହାସାଗର କ୍ଷେତ୍ର"
},
"BN": {
"name": "ବ୍ରୁନେଇ"
},
"VA": {
- "name": "ଭାଟିକାନ୍"
+ "name": "ଭାଟିକାନ୍‌ ସିଟି"
},
"VU": {
"name": "ଭାନୁଆତୁ"
@@ -489,31 +510,31 @@
"name": "ଭିଏତନାମ୍"
},
"BT": {
- "name": "ଭୁଟାନ୍"
+ "name": "ଭୁଟାନ"
},
"VE": {
- "name": "ଭେନଜୁଏଲା"
+ "name": "ଭେନେଜୁଏଲା"
},
"MN": {
"name": "ମଙ୍ଗୋଲିଆ"
},
"ME": {
- "name": "ମଣ୍ଟେଗ୍ରୋ"
+ "name": "ମଣ୍ଟେନିଗ୍ରୋ"
},
"MS": {
"name": "ମଣ୍ଟେସେରାଟ୍"
},
"CF": {
- "name": "ମଧ୍ୟ ଆଫ୍ରିକୀୟ ଗଣତନ୍ତ୍ର"
+ "name": "ମଧ୍ୟ ଆଫ୍ରିକୀୟ ସାଧାରଣତନ୍ତ୍ର"
+ },
+ "MU": {
+ "name": "ମରିସସ"
},
"FM": {
"name": "ମାଇକ୍ରୋନେସିଆ"
},
- "MR": {
- "name": "ମାଉରିଟାନିଆ"
- },
"MO": {
- "name": "ମାକାଉ SAR ଚିନ୍"
+ "name": "ମାକାଉ ଏସଏଆର୍‌ ଚାଇନା"
},
"MG": {
"name": "ମାଡାଗାସ୍କର୍"
@@ -525,37 +546,37 @@
"name": "ମାର୍ଟିନିକ୍ୟୁ"
},
"MH": {
- "name": "ମାର୍ଶଲ୍ ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "ମାର୍ଶାଲ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ"
},
"MD": {
"name": "ମାଲଡୋଭା"
},
+ "MV": {
+ "name": "ମାଲଦିଭସ୍‌"
+ },
"MW": {
"name": "ମାଲୱି"
},
+ "ML": {
+ "name": "ମାଲି"
+ },
"MY": {
"name": "ମାଲେସିଆ"
},
"MT": {
"name": "ମାଲ୍ଟା"
},
- "MV": {
- "name": "ମାଳଦ୍ବୀପ"
- },
- "ML": {
- "name": "ମାଳୀ"
- },
"MK": {
"name": "ମାସେଡୋନିଆ"
},
"MM": {
- "name": "ମିୟାମାର୍"
+ "name": "ମିଆଁମାର"
},
"MX": {
"name": "ମେକ୍ସିକୋ"
},
"MZ": {
- "name": "ମୋଜାମ୍ବିକ୍ୟୁ"
+ "name": "ମୋଜାମ୍ବିକ୍‌"
},
"MC": {
"name": "ମୋନାକୋ"
@@ -563,20 +584,23 @@
"MA": {
"name": "ମୋରୋକ୍କୋ"
},
- "MU": {
- "name": "ମୌରିସସ୍"
- },
- "VI": {
- "name": "ୟୁଏସ୍ ଭର୍ଜିନ୍ ଦ୍ବୀପପୁଞ୍ଜ"
+ "MR": {
+ "name": "ମୌରିଟାନିଆ"
},
"US": {
- "name": "ଯୁକ୍ତ ରାଷ୍ଟ୍ର ଆମେରିକା"
+ "name": "ଯୁକ୍ତ ରାଷ୍ଟ୍ର"
},
- "UA": {
- "name": "ୟୁକ୍ରାଇନ୍"
+ "GB": {
+ "name": "ଯୁକ୍ତରାଜ୍ୟ"
},
"UM": {
- "name": "ୟୁନାଇଟେଡ୍ ଷ୍ଟେଟସ୍ ମାଇନର୍ ଆଉଟଲେଇଂ ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "ଯୁକ୍ତରାଷ୍ଟ୍ର ଆଉଟ୍‌ଲାଇଙ୍ଗ ଦ୍ଵୀପପୁଞ୍ଜ"
+ },
+ "VI": {
+ "name": "ଯୁକ୍ତରାଷ୍ଟ୍ର ଭିର୍ଜିନ୍ ଦ୍ଵୀପପୁଞ୍ଜ"
+ },
+ "UA": {
+ "name": "ୟୁକ୍ରେନ୍‌"
},
"YE": {
"name": "ୟେମେନ୍"
@@ -596,6 +620,9 @@
"LU": {
"name": "ଲକ୍ସେମବର୍ଗ"
},
+ "LR": {
+ "name": "ଲାଇବେରିଆ"
+ },
"LA": {
"name": "ଲାଓସ୍"
},
@@ -603,16 +630,13 @@
"name": "ଲାଟଭିଆ"
},
"LI": {
- "name": "ଲିଚେସ୍ତିଆନାନ୍"
+ "name": "ଲିଚେଟନଷ୍ଟେଇନ୍"
},
"LT": {
- "name": "ଲିଥାଆନିଆ"
+ "name": "ଲିଥୁଆନିଆ"
},
"LY": {
- "name": "ଲିବିଆ"
- },
- "LR": {
- "name": "ଲିବେରିଆ"
+ "name": "ଲିବ୍ୟା"
},
"LB": {
"name": "ଲେବାନନ୍"
@@ -648,19 +672,25 @@
"name": "ସାମୋଆ"
},
"SJ": {
- "name": "ସାଲ୍ଭାର୍ଡ ଏବଂ ଜାନ୍ ମାୟୋନ୍"
+ "name": "ସାଲବାର୍ଡ ଏବଂ ଜାନ୍‌ ମାୟେନ୍‌"
+ },
+ "EA": {
+ "name": "ସିଉଟା ଏବଂ ମେଲିଲା"
},
"SL": {
- "name": "ସିଓରା ଲିଓନ୍"
+ "name": "ସିଏରା ଲିଓନ"
},
"SG": {
"name": "ସିଙ୍ଗାପୁର୍"
},
+ "SX": {
+ "name": "ସିଣ୍ଟ ମାର୍ଟୀନ୍‌"
+ },
"SY": {
"name": "ସିରିଆ"
},
"SD": {
- "name": "ସୁଦାନ୍"
+ "name": "ସୁଦାନ"
},
"SR": {
"name": "ସୁରିନାମ"
@@ -669,10 +699,10 @@
"name": "ସେଚେଲସ୍"
},
"KN": {
- "name": "ସେଣ୍ଟ କିଟସ୍ ଏଣ୍ଡ ନେଭିସ୍"
+ "name": "ସେଣ୍ଟ କିଟସ୍‌ ଏବଂ ନେଭିସ୍‌"
},
"PM": {
- "name": "ସେଣ୍ଟ ପିଏରେ ଏବଂ ମିକ୍ବାଲୋନ୍"
+ "name": "ସେଣ୍ଟ ପିଏରେ ଏବଂ ମିକ୍ୱେଲନ୍‌"
},
"BL": {
"name": "ସେଣ୍ଟ ବାର୍ଥେଲେମି"
@@ -696,28 +726,28 @@
"name": "ସୋମାଲିଆ"
},
"SB": {
- "name": "ସୋଲୋମନ୍ ଦ୍ବୀପପୁଞ୍ଜ"
+ "name": "ସୋଲୋମନ୍‌ ଦ୍ୱୀପପୁଞ୍ଜ"
},
"ES": {
"name": "ସ୍ପେନ୍"
},
- "SZ": {
- "name": "ସ୍ବାଜିଲାଣ୍ଡ"
- },
- "CH": {
- "name": "ସ୍ବିଜରଲ୍ୟାଣ୍ଡ"
- },
"SK": {
"name": "ସ୍ଲୋଭାକିଆ"
},
"SI": {
"name": "ସ୍ଲୋଭେନିଆ"
},
+ "SZ": {
+ "name": "ସ୍ୱାଜିଲ୍ୟାଣ୍ଡ"
+ },
+ "CH": {
+ "name": "ସ୍ୱିଜରଲ୍ୟାଣ୍ଡ"
+ },
"SE": {
"name": "ସ୍ୱେଡେନ୍"
},
"HK": {
- "name": "ହଂକଂ ବିଶେଷ ପ୍ରଶାସନିକ କ୍ଷେତ୍ର ଚୀନ୍"
+ "name": "ହଂ କଂ ଏସଏଆର୍‌ ଚାଇନା"
},
"HU": {
"name": "ହଙ୍ଗେରୀ"
@@ -726,36 +756,6 @@
"name": "ହାଇତି"
},
"HN": {
- "name": "ହୋଣ୍ଡାରୁସ୍"
- },
- "AC": {
- "name": "Ascension Island"
- },
- "IC": {
- "name": "Canary Islands"
- },
- "BQ": {
- "name": "Caribbean Netherlands"
- },
- "EA": {
- "name": "Ceuta & Melilla"
- },
- "CW": {
- "name": "Curaçao"
- },
- "DG": {
- "name": "Diego Garcia"
- },
- "XK": {
- "name": "Kosovo"
- },
- "SX": {
- "name": "Sint Maarten"
- },
- "SS": {
- "name": "South Sudan"
- },
- "TA": {
- "name": "Tristan da Cunha"
+ "name": "ହୋଣ୍ଡୁରାସ୍‌"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/pa.json b/vendor/commerceguys/intl/resources/country/pa.json
index 4853d378f..b59b4b68d 100644
--- a/vendor/commerceguys/intl/resources/country/pa.json
+++ b/vendor/commerceguys/intl/resources/country/pa.json
@@ -348,7 +348,7 @@
"name": "ਚੀਨ"
},
"CZ": {
- "name": "ਚੈੱਕ ਗਣਰਾਜ"
+ "name": "ਚੈਕੀਆ"
},
"JP": {
"name": "ਜਪਾਨ"
@@ -437,15 +437,15 @@
"TH": {
"name": "ਥਾਈਲੈਂਡ"
},
- "ZA": {
- "name": "ਦੱਖਣ ਅਫਰੀਕਾ"
- },
"SS": {
"name": "ਦੱਖਣ ਸੁਡਾਨ"
},
"KR": {
"name": "ਦੱਖਣ ਕੋਰੀਆ"
},
+ "ZA": {
+ "name": "ਦੱਖਣੀ ਅਫਰੀਕਾ"
+ },
"GS": {
"name": "ਦੱਖਣੀ ਜਾਰਜੀਆ ਅਤੇ ਦੱਖਣੀ ਸੈਂਡਵਿਚ ਟਾਪੂ"
},
@@ -684,7 +684,7 @@
"name": "ਮੋਲਡੋਵਾ"
},
"MU": {
- "name": "ਮੌਰਿਸ਼ਸ"
+ "name": "ਮੌਰੀਸ਼ਸ"
},
"YE": {
"name": "ਯਮਨ"
diff --git a/vendor/commerceguys/intl/resources/country/pl.json b/vendor/commerceguys/intl/resources/country/pl.json
index 4a1690a1c..78fc28826 100644
--- a/vendor/commerceguys/intl/resources/country/pl.json
+++ b/vendor/commerceguys/intl/resources/country/pl.json
@@ -18,7 +18,7 @@
"name": "Anguilla"
},
"AQ": {
- "name": "Antarktyka"
+ "name": "Antarktyda"
},
"AG": {
"name": "Antigua i Barbuda"
diff --git a/vendor/commerceguys/intl/resources/country/ps.json b/vendor/commerceguys/intl/resources/country/ps.json
index 999cd380d..693aaece8 100644
--- a/vendor/commerceguys/intl/resources/country/ps.json
+++ b/vendor/commerceguys/intl/resources/country/ps.json
@@ -1,13 +1,49 @@
{
+ "AW": {
+ "name": "آروبا"
+ },
+ "AU": {
+ "name": "آسټرالیا"
+ },
"IS": {
"name": "آیسلینډ"
},
"AT": {
"name": "اتریش"
},
+ "AZ": {
+ "name": "اذربايجان"
+ },
+ "JO": {
+ "name": "اردن"
+ },
+ "AR": {
+ "name": "ارژنټاین"
+ },
+ "AM": {
+ "name": "ارمنستان"
+ },
+ "ER": {
+ "name": "اریتره"
+ },
+ "GQ": {
+ "name": "استوایی ګینه"
+ },
+ "EE": {
+ "name": "استونیا"
+ },
+ "IL": {
+ "name": "اسراييل"
+ },
"AF": {
"name": "افغانستان"
},
+ "EC": {
+ "name": "اکوادور"
+ },
+ "AX": {
+ "name": "الاند ټاپوان"
+ },
"AL": {
"name": "البانیه"
},
@@ -17,745 +53,709 @@
"DE": {
"name": "المان"
},
+ "AS": {
+ "name": "امریکایی سمو"
+ },
"AQ": {
"name": "انتارکتیکا"
},
+ "AG": {
+ "name": "انټيګوا او باربودا"
+ },
+ "AD": {
+ "name": "اندورا"
+ },
"ID": {
"name": "اندونیزیا"
},
"AO": {
"name": "انګولا"
},
- "IT": {
- "name": "ایټالیه"
- },
- "GB": {
- "name": "برتانیه"
- },
- "BG": {
- "name": "بلغاریه"
- },
- "BD": {
- "name": "بنګله‌دیش"
- },
- "PK": {
- "name": "پاکستان"
- },
- "PT": {
- "name": "پورتګال"
- },
- "PL": {
- "name": "پولنډ"
- },
- "TJ": {
- "name": "تاجکستان"
+ "AI": {
+ "name": "انګیلا"
},
- "TZ": {
- "name": "تنزانیا"
+ "UZ": {
+ "name": "اوزبکستان"
},
- "JP": {
- "name": "جاپان"
+ "UA": {
+ "name": "اوکراین"
},
- "JM": {
- "name": "جمیکا"
+ "IT": {
+ "name": "ایټالیه"
},
- "CN": {
- "name": "چین"
+ "IR": {
+ "name": "ايران"
},
- "ET": {
- "name": "حبشه"
+ "IE": {
+ "name": "ایرلینډ"
},
- "DK": {
- "name": "ډنمارک"
+ "BB": {
+ "name": "باربادوس"
},
- "RU": {
- "name": "روسیه"
+ "BS": {
+ "name": "باهاما"
},
- "RW": {
- "name": "روندا"
+ "BH": {
+ "name": "بحرين"
},
- "SV": {
- "name": "سالوېډور"
+ "BR": {
+ "name": "برازیل"
},
- "SA": {
- "name": "سعودی عربستان"
+ "GB": {
+ "name": "برتانیه"
},
- "SY": {
- "name": "سوریه"
+ "BM": {
+ "name": "برمودا"
},
- "SE": {
- "name": "سویډن"
+ "BI": {
+ "name": "بروندي"
},
- "CH": {
- "name": "سویس"
+ "BN": {
+ "name": "بروني"
},
- "IQ": {
- "name": "عراق"
+ "VG": {
+ "name": "بریتانوی ویګور ټاپو"
},
- "FR": {
- "name": "فرانسه"
+ "BG": {
+ "name": "بلغاریه"
},
- "PS": {
- "name": "فلسطین"
+ "BZ": {
+ "name": "بلیز"
},
- "FI": {
- "name": "فنلینډ"
+ "BD": {
+ "name": "بنگله دېش"
},
- "CA": {
- "name": "کاناډا"
+ "BT": {
+ "name": "بهوټان"
},
- "KH": {
- "name": "کمبودیا"
+ "BW": {
+ "name": "بوتسوانه"
},
- "CO": {
- "name": "کولمبیا"
+ "BF": {
+ "name": "بورکینا فاسو"
},
- "KW": {
- "name": "کویټ"
+ "BA": {
+ "name": "بوسنيا او هېرزګوينا"
},
- "CU": {
- "name": "کیوبا"
+ "BO": {
+ "name": "بولیویا"
},
- "GH": {
- "name": "ګانا"
+ "BY": {
+ "name": "بیلاروس"
},
- "GT": {
- "name": "ګواتیمالا"
+ "BE": {
+ "name": "بیلجیم"
},
- "GN": {
- "name": "ګیانا"
+ "BJ": {
+ "name": "بینن"
},
- "LA": {
- "name": "لاوس"
+ "PG": {
+ "name": "پاپ نيو ګيني، د يو هېواد نوم دې"
},
- "LR": {
- "name": "لایبریا"
+ "PY": {
+ "name": "پاراګوی"
},
- "LB": {
- "name": "لبنان"
+ "PK": {
+ "name": "پاکستان"
},
- "LY": {
- "name": "لیبیا"
+ "PA": {
+ "name": "پاناما"
},
- "MY": {
- "name": "مالیزیا"
+ "PW": {
+ "name": "پلو"
},
- "HU": {
- "name": "مجارستان"
+ "PT": {
+ "name": "پورتګال"
},
- "MA": {
- "name": "مراکش"
+ "PR": {
+ "name": "پورتو ریکو"
},
- "EG": {
- "name": "مصر"
+ "PL": {
+ "name": "پولنډ"
},
- "MN": {
- "name": "مغولستان"
+ "PN": {
+ "name": "پیټکیرن ټاپو"
},
- "NO": {
- "name": "ناروۍ"
+ "PE": {
+ "name": "پیرو"
},
- "NG": {
- "name": "نایجیریا"
+ "TJ": {
+ "name": "تاجيکستان"
},
- "NI": {
- "name": "نکاراګوا"
+ "TA": {
+ "name": "تریستان دا کنها"
},
- "NP": {
- "name": "نیپال"
+ "TG": {
+ "name": "تلل"
},
- "NZ": {
- "name": "نیوزیلنډ"
+ "TZ": {
+ "name": "تنزانیا"
},
- "NL": {
- "name": "هالېنډ"
+ "TH": {
+ "name": "تهايلنډ"
},
- "HN": {
- "name": "هانډوراس"
+ "TV": {
+ "name": "توالیو"
},
- "ES": {
- "name": "هسپانیه"
+ "TM": {
+ "name": "تورکمنستان"
},
- "IN": {
- "name": "هند"
+ "TR": {
+ "name": "تورکيه"
},
- "YE": {
- "name": "یمن"
+ "TK": {
+ "name": "توکیلو"
},
- "UY": {
- "name": "یوروګوای"
+ "TN": {
+ "name": "تونس"
},
- "GR": {
- "name": "یونان"
+ "TO": {
+ "name": "تونګا"
},
- "AX": {
- "name": "Åland Islands"
+ "TL": {
+ "name": "تيمور-ليسټ"
},
- "AS": {
- "name": "American Samoa"
+ "TW": {
+ "name": "تیوان"
},
- "AD": {
- "name": "Andorra"
+ "TT": {
+ "name": "ټرینیاډډ او ټوبوګ"
},
- "AI": {
- "name": "Anguilla"
+ "JP": {
+ "name": "جاپان"
},
- "AG": {
- "name": "Antigua & Barbuda"
+ "GI": {
+ "name": "جبل الطارق"
},
- "AR": {
- "name": "Argentina"
+ "JE": {
+ "name": "جرسی"
},
- "AM": {
- "name": "Armenia"
+ "JM": {
+ "name": "جمیکا"
},
- "AW": {
- "name": "Aruba"
+ "SS": {
+ "name": "جنوبي سوډان"
},
- "AC": {
- "name": "Ascension Island"
+ "DJ": {
+ "name": "جی بوتي"
},
- "AU": {
- "name": "Australia"
+ "TD": {
+ "name": "چاډ"
},
- "AZ": {
- "name": "Azerbaijan"
+ "CZ": {
+ "name": "چکیا"
},
- "BS": {
- "name": "Bahamas"
+ "CL": {
+ "name": "چیلي"
},
- "BH": {
- "name": "Bahrain"
+ "CN": {
+ "name": "چین"
},
- "BB": {
- "name": "Barbados"
+ "ET": {
+ "name": "حبشه"
},
- "BY": {
- "name": "Belarus"
+ "IM": {
+ "name": "د آئل آف مین"
},
- "BE": {
- "name": "Belgium"
+ "TC": {
+ "name": "د ترکیې او کیکاسو ټاپو"
},
- "BZ": {
- "name": "Belize"
+ "AC": {
+ "name": "د توغندیو ټاپو"
},
- "BJ": {
- "name": "Benin"
+ "CI": {
+ "name": "د عاج ساحل"
},
- "BM": {
- "name": "Bermuda"
+ "TF": {
+ "name": "د فرانسې جنوبي سیمې"
},
- "BT": {
- "name": "Bhutan"
+ "IC": {
+ "name": "د کانري ټاپو"
},
- "BO": {
- "name": "Bolivia"
+ "CX": {
+ "name": "د کریساس ټاپو"
},
- "BA": {
- "name": "Bosnia & Herzegovina"
+ "UM": {
+ "name": "د متحده ایالاتو ټاپو ټاپوګانې"
},
- "BW": {
- "name": "Botswana"
+ "VI": {
+ "name": "د متحده ایالاتو ویګور ټاپو"
},
- "BR": {
- "name": "Brazil"
+ "CF": {
+ "name": "د مرکزي افریقا جمهوریت"
},
"IO": {
- "name": "British Indian Ocean Territory"
- },
- "VG": {
- "name": "British Virgin Islands"
+ "name": "د هند سمندر سمندر سیمه"
},
- "BN": {
- "name": "Brunei"
- },
- "BF": {
- "name": "Burkina Faso"
- },
- "BI": {
- "name": "Burundi"
- },
- "CM": {
- "name": "Cameroon"
+ "DM": {
+ "name": "دومینیکا"
},
- "IC": {
- "name": "Canary Islands"
+ "DO": {
+ "name": "دومینیکن جمهوريت"
},
- "CV": {
- "name": "Cape Verde"
+ "DG": {
+ "name": "ډایګو ګارسیا"
},
- "BQ": {
- "name": "Caribbean Netherlands"
+ "DK": {
+ "name": "ډنمارک"
},
- "KY": {
- "name": "Cayman Islands"
+ "RU": {
+ "name": "روسیه"
},
- "CF": {
- "name": "Central African Republic"
+ "RO": {
+ "name": "رومانیا"
},
- "EA": {
- "name": "Ceuta & Melilla"
+ "RW": {
+ "name": "روندا"
},
- "TD": {
- "name": "Chad"
+ "RE": {
+ "name": "ریونین"
},
- "CL": {
- "name": "Chile"
+ "ZW": {
+ "name": "زیمبابوی"
},
- "CX": {
- "name": "Christmas Island"
+ "ZM": {
+ "name": "زیمبیا"
},
- "CC": {
- "name": "Cocos (Keeling) Islands"
+ "SV": {
+ "name": "سالوېډور"
},
- "KM": {
- "name": "Comoros"
+ "WS": {
+ "name": "ساموا"
},
- "CG": {
- "name": "Congo - Brazzaville"
+ "SM": {
+ "name": "سان مارینو"
},
- "CD": {
- "name": "Congo - Kinshasa"
+ "ST": {
+ "name": "ساو ټیم او پرنسیپ"
},
- "CK": {
- "name": "Cook Islands"
+ "LK": {
+ "name": "سريلانکا"
},
- "CR": {
- "name": "Costa Rica"
+ "SA": {
+ "name": "سعودي عربستان"
},
- "CI": {
- "name": "Côte d’Ivoire"
+ "SJ": {
+ "name": "سلواډر او جان میین"
},
- "HR": {
- "name": "Croatia"
+ "SK": {
+ "name": "سلواکیا"
},
- "CW": {
- "name": "Curaçao"
+ "SI": {
+ "name": "سلوانیا"
},
- "CY": {
- "name": "Cyprus"
+ "SB": {
+ "name": "سلیمان ټاپو"
},
- "CZ": {
- "name": "Czech Republic"
+ "SN": {
+ "name": "سنګال"
},
- "DG": {
- "name": "Diego Garcia"
+ "SZ": {
+ "name": "سوازیلینډ"
},
- "DJ": {
- "name": "Djibouti"
+ "SD": {
+ "name": "سوډان"
},
- "DM": {
- "name": "Dominica"
+ "SR": {
+ "name": "سورینام"
},
- "DO": {
- "name": "Dominican Republic"
+ "SY": {
+ "name": "سوریه"
},
- "EC": {
- "name": "Ecuador"
+ "SO": {
+ "name": "سومالیا"
},
- "GQ": {
- "name": "Equatorial Guinea"
+ "SE": {
+ "name": "سویډن"
},
- "ER": {
- "name": "Eritrea"
+ "CH": {
+ "name": "سویس"
},
- "EE": {
- "name": "Estonia"
+ "GS": {
+ "name": "سویل جورجیا او جنوبي سینڈوچ ټاپو"
},
- "FK": {
- "name": "Falkland Islands"
+ "ZA": {
+ "name": "سویلي افریقا"
},
- "FO": {
- "name": "Faroe Islands"
+ "KR": {
+ "name": "سویلي کوریا"
},
- "FJ": {
- "name": "Fiji"
+ "SC": {
+ "name": "سیچیلیس"
},
- "GF": {
- "name": "French Guiana"
+ "BL": {
+ "name": "سینټ بارټیلیټی"
},
- "PF": {
- "name": "French Polynesia"
+ "PM": {
+ "name": "سینټ پییر او میکولون"
},
- "TF": {
- "name": "French Southern Territories"
+ "KN": {
+ "name": "سینټ کټس او نیویس"
},
- "GA": {
- "name": "Gabon"
+ "LC": {
+ "name": "سینټ لوسیا"
},
- "GM": {
- "name": "Gambia"
+ "MF": {
+ "name": "سینټ مارټن"
},
- "GE": {
- "name": "Georgia"
+ "SX": {
+ "name": "سینټ مارټین"
},
- "GI": {
- "name": "Gibraltar"
+ "SH": {
+ "name": "سینټ هیلینا"
},
- "GL": {
- "name": "Greenland"
+ "VC": {
+ "name": "سینټ ویسنټینټ او ګرینډینز"
},
- "GD": {
- "name": "Grenada"
+ "SG": {
+ "name": "سينگاپور"
},
- "GP": {
- "name": "Guadeloupe"
+ "EA": {
+ "name": "سئوتا او مالایا"
},
- "GU": {
- "name": "Guam"
+ "SL": {
+ "name": "سییرا لیون"
},
- "GG": {
- "name": "Guernsey"
+ "KP": {
+ "name": "شمالی کوریا"
},
- "GW": {
- "name": "Guinea-Bissau"
+ "MP": {
+ "name": "شمالي ماریانا ټاپو"
},
- "GY": {
- "name": "Guyana"
+ "RS": {
+ "name": "صربیا"
},
- "HT": {
- "name": "Haiti"
+ "IQ": {
+ "name": "عراق"
},
- "HK": {
- "name": "Hong Kong SAR China"
+ "OM": {
+ "name": "عمان"
},
- "IR": {
- "name": "Iran"
+ "FO": {
+ "name": "فارو ټاپو"
},
- "IE": {
- "name": "Ireland"
+ "FR": {
+ "name": "فرانسه"
},
- "IM": {
- "name": "Isle of Man"
+ "PF": {
+ "name": "فرانسوي پولینیا"
},
- "IL": {
- "name": "Israel"
+ "GF": {
+ "name": "فرانسوي ګانا"
},
- "JE": {
- "name": "Jersey"
+ "PH": {
+ "name": "فلپين"
},
- "JO": {
- "name": "Jordan"
+ "PS": {
+ "name": "فلسطين سيمې"
},
- "KZ": {
- "name": "Kazakhstan"
+ "FI": {
+ "name": "فنلینډ"
},
- "KE": {
- "name": "Kenya"
+ "FK": {
+ "name": "فوکلنډ ټاپو"
},
- "KI": {
- "name": "Kiribati"
+ "FJ": {
+ "name": "في جي"
},
- "XK": {
- "name": "Kosovo"
+ "CY": {
+ "name": "قبرس"
},
"KG": {
- "name": "Kyrgyzstan"
+ "name": "قرغزستان"
},
- "LV": {
- "name": "Latvia"
- },
- "LS": {
- "name": "Lesotho"
- },
- "LI": {
- "name": "Liechtenstein"
- },
- "LT": {
- "name": "Lithuania"
+ "KZ": {
+ "name": "قزاقستان"
},
- "LU": {
- "name": "Luxembourg"
+ "QA": {
+ "name": "قطر"
},
- "MO": {
- "name": "Macau SAR China"
+ "CM": {
+ "name": "کامرون"
},
- "MK": {
- "name": "Macedonia"
+ "CA": {
+ "name": "کاناډا"
},
- "MG": {
- "name": "Madagascar"
+ "CG": {
+ "name": "کانګو - بروزوییل"
},
- "MW": {
- "name": "Malawi"
+ "CD": {
+ "name": "کانګو - کینشاسا"
},
- "MV": {
- "name": "Maldives"
+ "HR": {
+ "name": "کرواثیا"
},
- "ML": {
- "name": "Mali"
+ "KH": {
+ "name": "کمبودیا"
},
- "MT": {
- "name": "Malta"
+ "CR": {
+ "name": "کوستاریکا"
},
- "MH": {
- "name": "Marshall Islands"
+ "XK": {
+ "name": "کوسوو"
},
- "MQ": {
- "name": "Martinique"
+ "CK": {
+ "name": "کوک ټاپوګان"
},
- "MR": {
- "name": "Mauritania"
+ "CC": {
+ "name": "کوکوز (کیبل) ټاپوګانې"
},
- "MU": {
- "name": "Mauritius"
+ "CW": {
+ "name": "کوکوکا"
},
- "YT": {
- "name": "Mayotte"
+ "CO": {
+ "name": "کولمبیا"
},
- "MX": {
- "name": "Mexico"
+ "KM": {
+ "name": "کوموروس"
},
- "FM": {
- "name": "Micronesia"
+ "KW": {
+ "name": "کویټ"
},
- "MD": {
- "name": "Moldova"
+ "CV": {
+ "name": "کیپ ورد"
},
- "MC": {
- "name": "Monaco"
+ "KI": {
+ "name": "کیري باتي"
},
- "ME": {
- "name": "Montenegro"
+ "BQ": {
+ "name": "کیریبین هالینډ"
},
- "MS": {
- "name": "Montserrat"
+ "KY": {
+ "name": "کیمان ټاپوګان"
},
- "MZ": {
- "name": "Mozambique"
+ "KE": {
+ "name": "کینیا"
},
- "MM": {
- "name": "Myanmar (Burma)"
+ "CU": {
+ "name": "کیوبا"
},
- "NA": {
- "name": "Namibia"
+ "GA": {
+ "name": "ګابن"
},
- "NR": {
- "name": "Nauru"
+ "GP": {
+ "name": "ګالډیپ"
},
- "NC": {
- "name": "New Caledonia"
+ "GM": {
+ "name": "ګامبیا"
},
- "NE": {
- "name": "Niger"
+ "GH": {
+ "name": "ګانا"
},
- "NU": {
- "name": "Niue"
+ "GD": {
+ "name": "ګرنادا"
},
- "NF": {
- "name": "Norfolk Island"
+ "GG": {
+ "name": "ګرنسي"
},
- "KP": {
- "name": "North Korea"
+ "GL": {
+ "name": "ګرینلینډ"
},
- "MP": {
- "name": "Northern Mariana Islands"
+ "GT": {
+ "name": "ګواتیمالا"
},
- "OM": {
- "name": "Oman"
+ "GU": {
+ "name": "ګوام"
},
- "PW": {
- "name": "Palau"
+ "GE": {
+ "name": "گورجستان"
},
- "PA": {
- "name": "Panama"
+ "GY": {
+ "name": "ګیانا"
},
- "PG": {
- "name": "Papua New Guinea"
+ "GN": {
+ "name": "ګینه"
},
- "PY": {
- "name": "Paraguay"
+ "GW": {
+ "name": "ګینه بیسو"
},
- "PE": {
- "name": "Peru"
+ "LA": {
+ "name": "لاووس"
},
- "PH": {
- "name": "Philippines"
+ "LR": {
+ "name": "لایبریا"
},
- "PN": {
- "name": "Pitcairn Islands"
+ "LV": {
+ "name": "لتوني"
},
- "PR": {
- "name": "Puerto Rico"
+ "LS": {
+ "name": "لسوتو"
},
- "QA": {
- "name": "Qatar"
+ "LU": {
+ "name": "لوګزامبورګ"
},
- "RE": {
- "name": "Réunion"
+ "EH": {
+ "name": "لویدیځ صحرا"
},
- "RO": {
- "name": "Romania"
+ "LB": {
+ "name": "لېبنان"
},
- "WS": {
- "name": "Samoa"
+ "LY": {
+ "name": "لیبیا"
},
- "SM": {
- "name": "San Marino"
+ "LT": {
+ "name": "لیتوانیا"
},
- "ST": {
- "name": "São Tomé & Príncipe"
+ "LI": {
+ "name": "لیختن اشتاین"
},
- "SN": {
- "name": "Senegal"
+ "MQ": {
+ "name": "مارټینیک"
},
- "RS": {
- "name": "Serbia"
+ "MH": {
+ "name": "مارشال ټاپو"
},
- "SC": {
- "name": "Seychelles"
+ "MW": {
+ "name": "مالاوي"
},
- "SL": {
- "name": "Sierra Leone"
+ "MT": {
+ "name": "مالتا"
},
- "SG": {
- "name": "Singapore"
+ "MV": {
+ "name": "مالديپ"
},
- "SX": {
- "name": "Sint Maarten"
+ "ML": {
+ "name": "مالي"
},
- "SK": {
- "name": "Slovakia"
+ "MY": {
+ "name": "مالیزیا"
},
- "SI": {
- "name": "Slovenia"
+ "MS": {
+ "name": "مانټیسیرت"
},
- "SB": {
- "name": "Solomon Islands"
+ "US": {
+ "name": "متحده ایالات"
},
- "SO": {
- "name": "Somalia"
+ "AE": {
+ "name": "متحده عرب امارات"
},
- "ZA": {
- "name": "South Africa"
+ "HU": {
+ "name": "مجارستان"
},
- "GS": {
- "name": "South Georgia & South Sandwich Islands"
+ "MG": {
+ "name": "مدګاسکار"
},
- "KR": {
- "name": "South Korea"
+ "MA": {
+ "name": "مراکش"
},
- "SS": {
- "name": "South Sudan"
+ "EG": {
+ "name": "مصر"
},
- "LK": {
- "name": "Sri Lanka"
+ "MN": {
+ "name": "مغولستان"
},
- "BL": {
- "name": "St. Barthélemy"
+ "MK": {
+ "name": "مقدونیه"
},
- "SH": {
- "name": "St. Helena"
+ "MO": {
+ "name": "مکا سار چین"
},
- "KN": {
- "name": "St. Kitts & Nevis"
+ "MR": {
+ "name": "موریتانیا"
},
- "LC": {
- "name": "St. Lucia"
+ "MU": {
+ "name": "موریشیس"
},
- "MF": {
- "name": "St. Martin"
+ "MZ": {
+ "name": "موزمبیک"
},
- "PM": {
- "name": "St. Pierre & Miquelon"
+ "MD": {
+ "name": "مولدوا"
},
- "VC": {
- "name": "St. Vincent & Grenadines"
+ "MC": {
+ "name": "موناکو"
},
- "SD": {
- "name": "Sudan"
+ "ME": {
+ "name": "مونټینیګرو"
},
- "SR": {
- "name": "Suriname"
+ "MM": {
+ "name": "ميانامار (برما)"
},
- "SJ": {
- "name": "Svalbard & Jan Mayen"
+ "YT": {
+ "name": "میټوت"
},
- "SZ": {
- "name": "Swaziland"
+ "FM": {
+ "name": "میکرونیزیا"
},
- "TW": {
- "name": "Taiwan"
+ "MX": {
+ "name": "میکسیکو"
},
- "TH": {
- "name": "Thailand"
+ "NF": {
+ "name": "نارفولک ټاپوګان"
},
- "TL": {
- "name": "Timor-Leste"
+ "NO": {
+ "name": "ناروۍ"
},
- "TG": {
- "name": "Togo"
+ "NG": {
+ "name": "نایجیریا"
},
- "TK": {
- "name": "Tokelau"
+ "NR": {
+ "name": "نایرو"
},
- "TO": {
- "name": "Tonga"
+ "NI": {
+ "name": "نکاراګوا"
},
- "TT": {
- "name": "Trinidad & Tobago"
+ "NC": {
+ "name": "نوی کالیډونیا"
},
- "TA": {
- "name": "Tristan da Cunha"
+ "NP": {
+ "name": "نیپال"
},
- "TN": {
- "name": "Tunisia"
+ "NE": {
+ "name": "نیجر"
},
- "TR": {
- "name": "Turkey"
+ "NA": {
+ "name": "نیمبیا"
},
- "TM": {
- "name": "Turkmenistan"
+ "NZ": {
+ "name": "نیوزیلنډ"
},
- "TC": {
- "name": "Turks & Caicos Islands"
+ "NU": {
+ "name": "نیوو"
},
- "TV": {
- "name": "Tuvalu"
+ "NL": {
+ "name": "هالېنډ"
},
- "UM": {
- "name": "U.S. Outlying Islands"
+ "HN": {
+ "name": "هانډوراس"
},
- "VI": {
- "name": "U.S. Virgin Islands"
+ "HK": {
+ "name": "هانګ کانګ SAR چین"
},
- "UG": {
- "name": "Uganda"
+ "HT": {
+ "name": "هایټي"
},
- "UA": {
- "name": "Ukraine"
+ "ES": {
+ "name": "هسپانیه"
},
- "AE": {
- "name": "United Arab Emirates"
+ "IN": {
+ "name": "هند"
},
- "US": {
- "name": "United States"
+ "VA": {
+ "name": "واتیکان ښار"
},
- "UZ": {
- "name": "Uzbekistan"
+ "WF": {
+ "name": "والیس او فوتونا"
},
"VU": {
- "name": "Vanuatu"
+ "name": "واناتو"
},
- "VA": {
- "name": "Vatican City"
+ "VN": {
+ "name": "وېتنام"
},
"VE": {
- "name": "Venezuela"
- },
- "VN": {
- "name": "Vietnam"
+ "name": "وینزویلا"
},
- "WF": {
- "name": "Wallis & Futuna"
+ "YE": {
+ "name": "یمن"
},
- "EH": {
- "name": "Western Sahara"
+ "UY": {
+ "name": "یوروګوی"
},
- "ZM": {
- "name": "Zambia"
+ "UG": {
+ "name": "یوګانډا"
},
- "ZW": {
- "name": "Zimbabwe"
+ "GR": {
+ "name": "یونان"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/pt-AO.json b/vendor/commerceguys/intl/resources/country/pt-AO.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-AO.json
+++ b/vendor/commerceguys/intl/resources/country/pt-AO.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-CH.json b/vendor/commerceguys/intl/resources/country/pt-CH.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-CH.json
+++ b/vendor/commerceguys/intl/resources/country/pt-CH.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-CV.json b/vendor/commerceguys/intl/resources/country/pt-CV.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-CV.json
+++ b/vendor/commerceguys/intl/resources/country/pt-CV.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-GQ.json b/vendor/commerceguys/intl/resources/country/pt-GQ.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-GQ.json
+++ b/vendor/commerceguys/intl/resources/country/pt-GQ.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-GW.json b/vendor/commerceguys/intl/resources/country/pt-GW.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-GW.json
+++ b/vendor/commerceguys/intl/resources/country/pt-GW.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-LU.json b/vendor/commerceguys/intl/resources/country/pt-LU.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-LU.json
+++ b/vendor/commerceguys/intl/resources/country/pt-LU.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-MO.json b/vendor/commerceguys/intl/resources/country/pt-MO.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-MO.json
+++ b/vendor/commerceguys/intl/resources/country/pt-MO.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-MZ.json b/vendor/commerceguys/intl/resources/country/pt-MZ.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-MZ.json
+++ b/vendor/commerceguys/intl/resources/country/pt-MZ.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-PT.json b/vendor/commerceguys/intl/resources/country/pt-PT.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-PT.json
+++ b/vendor/commerceguys/intl/resources/country/pt-PT.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-ST.json b/vendor/commerceguys/intl/resources/country/pt-ST.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-ST.json
+++ b/vendor/commerceguys/intl/resources/country/pt-ST.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt-TL.json b/vendor/commerceguys/intl/resources/country/pt-TL.json
index 31fddbf1d..dc9c39b88 100644
--- a/vendor/commerceguys/intl/resources/country/pt-TL.json
+++ b/vendor/commerceguys/intl/resources/country/pt-TL.json
@@ -131,6 +131,9 @@
"TD": {
"name": "Chade"
},
+ "CZ": {
+ "name": "Chéquia"
+ },
"CL": {
"name": "Chile"
},
@@ -161,12 +164,12 @@
"KR": {
"name": "Coreia do Sul"
},
- "CI": {
- "name": "Costa do Marfim"
- },
"CR": {
"name": "Costa Rica"
},
+ "CI": {
+ "name": "Côte d’Ivoire (Costa do Marfim)"
+ },
"HR": {
"name": "Croácia"
},
@@ -393,7 +396,7 @@
"name": "Kosovo"
},
"KW": {
- "name": "Kuwait"
+ "name": "Koweit"
},
"LA": {
"name": "Laos"
@@ -507,7 +510,7 @@
"name": "Nigéria"
},
"NU": {
- "name": "Niue"
+ "name": "Niuê"
},
"NO": {
"name": "Noruega"
@@ -564,7 +567,7 @@
"name": "Quirguistão"
},
"KI": {
- "name": "Quiribati"
+ "name": "Quiribáti"
},
"GB": {
"name": "Reino Unido"
@@ -572,9 +575,6 @@
"CF": {
"name": "República Centro-Africana"
},
- "CZ": {
- "name": "República Checa"
- },
"DO": {
"name": "República Dominicana"
},
@@ -590,9 +590,6 @@
"RU": {
"name": "Rússia"
},
- "EH": {
- "name": "Saara Ocidental"
- },
"SV": {
"name": "Salvador"
},
@@ -620,6 +617,9 @@
"MF": {
"name": "São Martinho"
},
+ "SX": {
+ "name": "São Martinho (Sint Maarten)"
+ },
"PM": {
"name": "São Pedro e Miquelão"
},
@@ -629,6 +629,9 @@
"VC": {
"name": "São Vicente e Granadinas"
},
+ "EH": {
+ "name": "Sara Ocidental"
+ },
"SC": {
"name": "Seicheles"
},
@@ -644,9 +647,6 @@
"SG": {
"name": "Singapura"
},
- "SX": {
- "name": "Sint Maarten"
- },
"SY": {
"name": "Síria"
},
diff --git a/vendor/commerceguys/intl/resources/country/pt.json b/vendor/commerceguys/intl/resources/country/pt.json
index 97dd69cfb..7b3ffa3d7 100644
--- a/vendor/commerceguys/intl/resources/country/pt.json
+++ b/vendor/commerceguys/intl/resources/country/pt.json
@@ -107,6 +107,9 @@
"CV": {
"name": "Cabo Verde"
},
+ "CM": {
+ "name": "Camarões"
+ },
"KH": {
"name": "Camboja"
},
@@ -137,9 +140,6 @@
"VA": {
"name": "Cidade do Vaticano"
},
- "SG": {
- "name": "Cingapura"
- },
"CO": {
"name": "Colômbia"
},
@@ -312,7 +312,7 @@
"name": "Ilha Norfolk"
},
"AX": {
- "name": "Ilhas Åland"
+ "name": "Ilhas Aland"
},
"IC": {
"name": "Ilhas Canárias"
@@ -353,12 +353,12 @@
"TC": {
"name": "Ilhas Turks e Caicos"
},
+ "VI": {
+ "name": "Ilhas Virgens Americanas"
+ },
"VG": {
"name": "Ilhas Virgens Britânicas"
},
- "VI": {
- "name": "Ilhas Virgens dos EUA"
- },
"IN": {
"name": "Índia"
},
@@ -441,7 +441,7 @@
"name": "Malásia"
},
"MW": {
- "name": "Malawi"
+ "name": "Malaui"
},
"MV": {
"name": "Maldivas"
@@ -578,12 +578,6 @@
"DO": {
"name": "República Dominicana"
},
- "CM": {
- "name": "República dos Camarões"
- },
- "CZ": {
- "name": "República Tcheca"
- },
"RE": {
"name": "Reunião"
},
@@ -599,9 +593,6 @@
"EH": {
"name": "Saara Ocidental"
},
- "PM": {
- "name": "Saint Pierre e Miquelon"
- },
"WS": {
"name": "Samoa"
},
@@ -621,11 +612,14 @@
"name": "São Bartolomeu"
},
"KN": {
- "name": "São Cristóvão e Nevis"
+ "name": "São Cristóvão e Névis"
},
"MF": {
"name": "São Martinho"
},
+ "PM": {
+ "name": "São Pedro e Miquelão"
+ },
"ST": {
"name": "São Tomé e Príncipe"
},
@@ -644,6 +638,9 @@
"RS": {
"name": "Sérvia"
},
+ "SG": {
+ "name": "Singapura"
+ },
"SX": {
"name": "Sint Maarten"
},
@@ -677,18 +674,21 @@
"SJ": {
"name": "Svalbard e Jan Mayen"
},
+ "TJ": {
+ "name": "Tadjiquistão"
+ },
"TH": {
"name": "Tailândia"
},
"TW": {
"name": "Taiwan"
},
- "TJ": {
- "name": "Tajiquistão"
- },
"TZ": {
"name": "Tanzânia"
},
+ "CZ": {
+ "name": "Tchéquia"
+ },
"IO": {
"name": "Território Britânico do Oceano Índico"
},
diff --git a/vendor/commerceguys/intl/resources/country/qu.json b/vendor/commerceguys/intl/resources/country/qu.json
index 8ecfa3398..f221a304a 100644
--- a/vendor/commerceguys/intl/resources/country/qu.json
+++ b/vendor/commerceguys/intl/resources/country/qu.json
@@ -189,7 +189,7 @@
"name": "Curazao"
},
"CZ": {
- "name": "Czech Republic"
+ "name": "Czechia"
},
"DG": {
"name": "Diego Garcia"
diff --git a/vendor/commerceguys/intl/resources/country/rm.json b/vendor/commerceguys/intl/resources/country/rm.json
index e1fcdaf6f..78555cc07 100644
--- a/vendor/commerceguys/intl/resources/country/rm.json
+++ b/vendor/commerceguys/intl/resources/country/rm.json
@@ -90,7 +90,7 @@
"name": "Botswana"
},
"BR": {
- "name": "Brasila"
+ "name": "Brasilia"
},
"BN": {
"name": "Brunei"
@@ -327,10 +327,10 @@
"name": "Inslas Turks e Caicos"
},
"VI": {
- "name": "Inslas Verginas Americanas"
+ "name": "Inslas Virginas Americanas"
},
"VG": {
- "name": "Inslas Verginas Britannicas"
+ "name": "Inslas Virginas Britannicas"
},
"IQ": {
"name": "Irac"
diff --git a/vendor/commerceguys/intl/resources/country/ro-MD.json b/vendor/commerceguys/intl/resources/country/ro-MD.json
index 87b5a9da5..a0c5787bc 100644
--- a/vendor/commerceguys/intl/resources/country/ro-MD.json
+++ b/vendor/commerceguys/intl/resources/country/ro-MD.json
@@ -113,6 +113,9 @@
"CV": {
"name": "Capul Verde"
},
+ "CZ": {
+ "name": "Cehia"
+ },
"EA": {
"name": "Ceuta și Melilla"
},
@@ -545,9 +548,6 @@
"GB": {
"name": "Regatul Unit"
},
- "CZ": {
- "name": "Republica Cehă"
- },
"CF": {
"name": "Republica Centrafricană"
},
@@ -581,6 +581,9 @@
"VC": {
"name": "Saint Vincent și Grenadinele"
},
+ "BL": {
+ "name": "Saint-Barthélemy"
+ },
"PM": {
"name": "Saint-Pierre și Miquelon"
},
@@ -594,7 +597,7 @@
"name": "San Marino"
},
"ST": {
- "name": "Sao Tomé și Príncipe"
+ "name": "Sao Tome și Principe"
},
"SN": {
"name": "Senegal"
@@ -611,9 +614,6 @@
"LC": {
"name": "Sfânta Lucia"
},
- "BL": {
- "name": "Sfântul Bartolomeu"
- },
"MF": {
"name": "Sfântul Martin"
},
diff --git a/vendor/commerceguys/intl/resources/country/ro.json b/vendor/commerceguys/intl/resources/country/ro.json
index db9f3fdf3..eea0b4c10 100644
--- a/vendor/commerceguys/intl/resources/country/ro.json
+++ b/vendor/commerceguys/intl/resources/country/ro.json
@@ -113,6 +113,9 @@
"CV": {
"name": "Capul Verde"
},
+ "CZ": {
+ "name": "Cehia"
+ },
"EA": {
"name": "Ceuta și Melilla"
},
@@ -545,9 +548,6 @@
"GB": {
"name": "Regatul Unit"
},
- "CZ": {
- "name": "Republica Cehă"
- },
"CF": {
"name": "Republica Centrafricană"
},
@@ -581,6 +581,9 @@
"VC": {
"name": "Saint Vincent și Grenadinele"
},
+ "BL": {
+ "name": "Saint-Barthélemy"
+ },
"PM": {
"name": "Saint-Pierre și Miquelon"
},
@@ -594,7 +597,7 @@
"name": "San Marino"
},
"ST": {
- "name": "Sao Tomé și Príncipe"
+ "name": "Sao Tome și Principe"
},
"SN": {
"name": "Senegal"
@@ -611,9 +614,6 @@
"LC": {
"name": "Sfânta Lucia"
},
- "BL": {
- "name": "Sfântul Bartolomeu"
- },
"MF": {
"name": "Sfântul Martin"
},
diff --git a/vendor/commerceguys/intl/resources/country/ru-UA.json b/vendor/commerceguys/intl/resources/country/ru-UA.json
index 955727433..e679a630d 100644
--- a/vendor/commerceguys/intl/resources/country/ru-UA.json
+++ b/vendor/commerceguys/intl/resources/country/ru-UA.json
@@ -72,7 +72,7 @@
"name": "Бенин"
},
"BM": {
- "name": "Бермуды"
+ "name": "Бермудские о-ва"
},
"BG": {
"name": "Болгария"
@@ -171,7 +171,7 @@
"name": "Гондурас"
},
"HK": {
- "name": "Гонконг (специальный административный район)"
+ "name": "Гонконг (САР)"
},
"GD": {
"name": "Гренада"
@@ -366,7 +366,7 @@
"name": "Майотта"
},
"MO": {
- "name": "Макао (специальный административный район)"
+ "name": "Макао (САР)"
},
"MK": {
"name": "Македония"
@@ -495,7 +495,7 @@
"name": "Панама"
},
"PG": {
- "name": "Папуа – Новая Гвинея"
+ "name": "Папуа — Новая Гвинея"
},
"PY": {
"name": "Парагвай"
@@ -743,12 +743,12 @@
"ET": {
"name": "Эфиопия"
},
- "ZA": {
- "name": "ЮАР"
- },
"GS": {
"name": "Южная Георгия и Южные Сандвичевы о-ва"
},
+ "ZA": {
+ "name": "Южно-Африканская Республика"
+ },
"SS": {
"name": "Южный Судан"
},
diff --git a/vendor/commerceguys/intl/resources/country/ru.json b/vendor/commerceguys/intl/resources/country/ru.json
index 02bf78db7..d8f112e55 100644
--- a/vendor/commerceguys/intl/resources/country/ru.json
+++ b/vendor/commerceguys/intl/resources/country/ru.json
@@ -72,7 +72,7 @@
"name": "Бенин"
},
"BM": {
- "name": "Бермуды"
+ "name": "Бермудские о-ва"
},
"BG": {
"name": "Болгария"
@@ -177,7 +177,7 @@
"name": "Гондурас"
},
"HK": {
- "name": "Гонконг (специальный административный район)"
+ "name": "Гонконг (САР)"
},
"GD": {
"name": "Гренада"
@@ -372,7 +372,7 @@
"name": "Майотта"
},
"MO": {
- "name": "Макао (специальный административный район)"
+ "name": "Макао (САР)"
},
"MK": {
"name": "Македония"
@@ -498,7 +498,7 @@
"name": "Панама"
},
"PG": {
- "name": "Папуа – Новая Гвинея"
+ "name": "Папуа — Новая Гвинея"
},
"PY": {
"name": "Парагвай"
@@ -702,7 +702,7 @@
"name": "Хорватия"
},
"CF": {
- "name": "ЦАР"
+ "name": "Центрально-Африканская Республика"
},
"TD": {
"name": "Чад"
@@ -743,12 +743,12 @@
"ET": {
"name": "Эфиопия"
},
- "ZA": {
- "name": "ЮАР"
- },
"GS": {
"name": "Южная Георгия и Южные Сандвичевы о-ва"
},
+ "ZA": {
+ "name": "Южно-Африканская Республика"
+ },
"SS": {
"name": "Южный Судан"
},
diff --git a/vendor/commerceguys/intl/resources/country/sd.json b/vendor/commerceguys/intl/resources/country/sd.json
new file mode 100644
index 000000000..1550d5816
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/sd.json
@@ -0,0 +1,761 @@
+{
+ "IE": {
+ "name": "آئرلينڊ"
+ },
+ "IS": {
+ "name": "آئس لينڊ"
+ },
+ "CI": {
+ "name": "آئيوري ڪنارو"
+ },
+ "AZ": {
+ "name": "آذربائيجان"
+ },
+ "BE": {
+ "name": "آسٽريا"
+ },
+ "AU": {
+ "name": "آسٽريليا"
+ },
+ "AT": {
+ "name": "آشٽريا"
+ },
+ "US": {
+ "name": "آمريڪا جون گڏيل رياستون"
+ },
+ "UM": {
+ "name": "آمريڪي ٻاهريون ٻيٽ"
+ },
+ "AS": {
+ "name": "آمريڪي ساموا"
+ },
+ "VI": {
+ "name": "آمريڪي ورجن ٻيٽ"
+ },
+ "KP": {
+ "name": "اتر ڪوريا"
+ },
+ "MP": {
+ "name": "اتر مرينا ٻيٽ"
+ },
+ "IT": {
+ "name": "اٽلي"
+ },
+ "AR": {
+ "name": "ارجنٽينا"
+ },
+ "JO": {
+ "name": "اردن"
+ },
+ "AM": {
+ "name": "ارمینیا"
+ },
+ "UZ": {
+ "name": "ازبڪستان"
+ },
+ "ES": {
+ "name": "اسپين"
+ },
+ "IL": {
+ "name": "اسرائيل"
+ },
+ "AF": {
+ "name": "افغانستان"
+ },
+ "SV": {
+ "name": "ال سلواڊور"
+ },
+ "AL": {
+ "name": "البانيا"
+ },
+ "DZ": {
+ "name": "الجيريا"
+ },
+ "AX": {
+ "name": "الند ٻيٽ"
+ },
+ "AQ": {
+ "name": "انٽارڪٽيڪا"
+ },
+ "AG": {
+ "name": "انٽيگئا و بربودا"
+ },
+ "AD": {
+ "name": "اندورا"
+ },
+ "ID": {
+ "name": "انڊونيشيا"
+ },
+ "IN": {
+ "name": "انڊيا"
+ },
+ "IM": {
+ "name": "انسانن جو ٻيٽ"
+ },
+ "AO": {
+ "name": "انگولا"
+ },
+ "AI": {
+ "name": "انگويلا"
+ },
+ "EH": {
+ "name": "اولهه صحارا"
+ },
+ "ET": {
+ "name": "ايٿوپيا"
+ },
+ "IR": {
+ "name": "ايران"
+ },
+ "ER": {
+ "name": "ايريٽيريا"
+ },
+ "EE": {
+ "name": "ايسٽونيا"
+ },
+ "EC": {
+ "name": "ايڪواڊور"
+ },
+ "GQ": {
+ "name": "ايڪوٽوريل گائينا"
+ },
+ "BB": {
+ "name": "باربڊوس"
+ },
+ "BH": {
+ "name": "بحرين"
+ },
+ "BR": {
+ "name": "برازيل"
+ },
+ "IO": {
+ "name": "برطانوي هندي سمنڊ خطو"
+ },
+ "VG": {
+ "name": "برطانوي ورجن ٻيٽ"
+ },
+ "GB": {
+ "name": "برطانيه"
+ },
+ "BF": {
+ "name": "برڪينا فاسو"
+ },
+ "BM": {
+ "name": "برمودا"
+ },
+ "BN": {
+ "name": "برونائي"
+ },
+ "BI": {
+ "name": "برونڊي"
+ },
+ "BG": {
+ "name": "بلغاريا"
+ },
+ "BD": {
+ "name": "بنگلاديش"
+ },
+ "BS": {
+ "name": "بهاماس"
+ },
+ "BW": {
+ "name": "بوٽسوانا"
+ },
+ "BA": {
+ "name": "بوسنیا اور هرزیگوینا"
+ },
+ "BO": {
+ "name": "بوليويا"
+ },
+ "BZ": {
+ "name": "بيليز"
+ },
+ "BJ": {
+ "name": "بينن"
+ },
+ "BY": {
+ "name": "بیلارس"
+ },
+ "PG": {
+ "name": "پاپوا نیو گني"
+ },
+ "PK": {
+ "name": "پاڪستان"
+ },
+ "PN": {
+ "name": "پٽڪئرن ٻيٽ"
+ },
+ "PT": {
+ "name": "پرتگال"
+ },
+ "PW": {
+ "name": "پلائو"
+ },
+ "PA": {
+ "name": "پناما"
+ },
+ "PL": {
+ "name": "پولينڊ"
+ },
+ "PY": {
+ "name": "پيراگوءِ"
+ },
+ "PE": {
+ "name": "پيرو"
+ },
+ "PR": {
+ "name": "پيوئرٽو ريڪو"
+ },
+ "BT": {
+ "name": "ڀوٽان"
+ },
+ "TW": {
+ "name": "تائیوان"
+ },
+ "TJ": {
+ "name": "تاجڪستان"
+ },
+ "TC": {
+ "name": "ترڪ ۽ ڪيڪوس ٻيٽ"
+ },
+ "TM": {
+ "name": "ترڪمانستان"
+ },
+ "TR": {
+ "name": "ترڪي"
+ },
+ "TZ": {
+ "name": "تنزانيا"
+ },
+ "TV": {
+ "name": "توالو"
+ },
+ "TG": {
+ "name": "توگو"
+ },
+ "TL": {
+ "name": "تيمور ليستي"
+ },
+ "TN": {
+ "name": "تيونيسيا"
+ },
+ "TA": {
+ "name": "ٽرسٽن دا ڪوها"
+ },
+ "TT": {
+ "name": "ٽريني ڊيڊ ۽ ٽوباگو ٻيٽ"
+ },
+ "TK": {
+ "name": "ٽوڪلائو"
+ },
+ "TO": {
+ "name": "ٽونگا"
+ },
+ "TH": {
+ "name": "ٿائيليند"
+ },
+ "JP": {
+ "name": "جاپان"
+ },
+ "GE": {
+ "name": "جارجيا"
+ },
+ "GI": {
+ "name": "جبرالٽر"
+ },
+ "JE": {
+ "name": "جرسي"
+ },
+ "DE": {
+ "name": "جرمني"
+ },
+ "JM": {
+ "name": "جميڪا"
+ },
+ "TD": {
+ "name": "چاڊ"
+ },
+ "CL": {
+ "name": "چلي"
+ },
+ "HU": {
+ "name": "چيڪ جهموريه"
+ },
+ "CZ": {
+ "name": "چيڪيا"
+ },
+ "CN": {
+ "name": "چين"
+ },
+ "DG": {
+ "name": "ڊئيگو گارسيا"
+ },
+ "DJ": {
+ "name": "ڊجبيوتي"
+ },
+ "DM": {
+ "name": "ڊومينيڪا"
+ },
+ "DO": {
+ "name": "ڊومينيڪن جمهوريه"
+ },
+ "DK": {
+ "name": "ڊينمارڪ"
+ },
+ "ZA": {
+ "name": "ڏکڻ آفريقا"
+ },
+ "GS": {
+ "name": "ڏکڻ جارجيا ۽ ڏکڻ سينڊوچ ٻيٽ"
+ },
+ "SS": {
+ "name": "ڏکڻ سوڊان"
+ },
+ "KR": {
+ "name": "ڏکڻ ڪوريا"
+ },
+ "RW": {
+ "name": "روانڊا"
+ },
+ "RU": {
+ "name": "روس"
+ },
+ "RO": {
+ "name": "رومانيا"
+ },
+ "RE": {
+ "name": "ري يونين"
+ },
+ "ZW": {
+ "name": "زمبابوي"
+ },
+ "ZM": {
+ "name": "زيمبيا"
+ },
+ "CH": {
+ "name": "سئيٽرزلينڊ"
+ },
+ "CY": {
+ "name": "سائپرس"
+ },
+ "ST": {
+ "name": "سائو ٽوم ۽ پرنسپیي"
+ },
+ "RS": {
+ "name": "سربيا"
+ },
+ "LK": {
+ "name": "سري لنڪا"
+ },
+ "SA": {
+ "name": "سعودی عرب"
+ },
+ "SK": {
+ "name": "سلوواڪيا"
+ },
+ "SI": {
+ "name": "سلوینیا"
+ },
+ "WS": {
+ "name": "سموئا"
+ },
+ "SX": {
+ "name": "سنٽ مارٽن"
+ },
+ "SE": {
+ "name": "سوئيڊن"
+ },
+ "SZ": {
+ "name": "سوازيلينڊ"
+ },
+ "SJ": {
+ "name": "سوالبارڊ ۽ جان ماین"
+ },
+ "SD": {
+ "name": "سوڊان"
+ },
+ "SR": {
+ "name": "سورينام"
+ },
+ "SB": {
+ "name": "سولومون ٻيٽَ"
+ },
+ "SO": {
+ "name": "سوماليا"
+ },
+ "SL": {
+ "name": "سيرا ليون"
+ },
+ "KN": {
+ "name": "سينٽ ڪٽس و نيوس"
+ },
+ "LC": {
+ "name": "سينٽ لوسيا"
+ },
+ "MF": {
+ "name": "سينٽ مارٽن"
+ },
+ "SH": {
+ "name": "سينٽ ھيلينا"
+ },
+ "SG": {
+ "name": "سينگاپور"
+ },
+ "SN": {
+ "name": "سينيگال"
+ },
+ "SM": {
+ "name": "سین مرینو"
+ },
+ "BL": {
+ "name": "سینٽ برٿلیمی"
+ },
+ "PM": {
+ "name": "سینٽ پیئر و میڪوئیلون"
+ },
+ "VC": {
+ "name": "سینٽ ونسنت ۽ گریناڊینز"
+ },
+ "EA": {
+ "name": "سیوٽا ۽ میلیلا"
+ },
+ "SY": {
+ "name": "شام"
+ },
+ "SC": {
+ "name": "شي شلز"
+ },
+ "AC": {
+ "name": "طلوع ٻيٽ"
+ },
+ "IQ": {
+ "name": "عراق"
+ },
+ "AW": {
+ "name": "عروبا"
+ },
+ "OM": {
+ "name": "عمان"
+ },
+ "FO": {
+ "name": "فارو ٻيٽ"
+ },
+ "FK": {
+ "name": "فاڪ لينڊ ٻيٽ"
+ },
+ "FJ": {
+ "name": "فجي"
+ },
+ "FR": {
+ "name": "فرانس"
+ },
+ "PF": {
+ "name": "فرانسيسي پولينيشيا"
+ },
+ "TF": {
+ "name": "فرانسيسي ڏاکڻي علائقا"
+ },
+ "GF": {
+ "name": "فرانسيسي گيانا"
+ },
+ "PH": {
+ "name": "فلپائن"
+ },
+ "PS": {
+ "name": "فلسطینی"
+ },
+ "FI": {
+ "name": "فن لينڊ"
+ },
+ "KZ": {
+ "name": "قازقستان"
+ },
+ "QA": {
+ "name": "قطر"
+ },
+ "CA": {
+ "name": "ڪئناڊا"
+ },
+ "CG": {
+ "name": "ڪانگو - برازاویل"
+ },
+ "CD": {
+ "name": "ڪانگو -ڪنشاسا"
+ },
+ "KI": {
+ "name": "ڪرباتي"
+ },
+ "CX": {
+ "name": "ڪرسمس ٻيٽ"
+ },
+ "KG": {
+ "name": "ڪرغستان"
+ },
+ "HR": {
+ "name": "ڪروئيشيا"
+ },
+ "KH": {
+ "name": "ڪمبوڊيا"
+ },
+ "CR": {
+ "name": "ڪوسٽا رڪا"
+ },
+ "XK": {
+ "name": "ڪوسووو"
+ },
+ "CK": {
+ "name": "ڪوڪ ٻيٽ"
+ },
+ "CC": {
+ "name": "ڪوڪوس ٻيٽ"
+ },
+ "CO": {
+ "name": "ڪولمبيا"
+ },
+ "KM": {
+ "name": "ڪوموروس"
+ },
+ "KW": {
+ "name": "ڪويت"
+ },
+ "KY": {
+ "name": "ڪي مين ٻيٽ"
+ },
+ "CV": {
+ "name": "ڪيپ وردي"
+ },
+ "BQ": {
+ "name": "ڪيريبين نيدرلينڊ"
+ },
+ "CM": {
+ "name": "ڪيمرون"
+ },
+ "IC": {
+ "name": "ڪينري ٻيٽ"
+ },
+ "KE": {
+ "name": "ڪينيا"
+ },
+ "CU": {
+ "name": "ڪيوبا"
+ },
+ "CW": {
+ "name": "ڪيوراسائو"
+ },
+ "GA": {
+ "name": "گبون"
+ },
+ "GL": {
+ "name": "گرين لينڊ"
+ },
+ "GD": {
+ "name": "گرينڊا"
+ },
+ "GN": {
+ "name": "گني"
+ },
+ "GW": {
+ "name": "گني بسائو"
+ },
+ "GH": {
+ "name": "گهانا"
+ },
+ "GT": {
+ "name": "گوئٽي مالا"
+ },
+ "GP": {
+ "name": "گواڊیلوپ"
+ },
+ "GU": {
+ "name": "گوام"
+ },
+ "GG": {
+ "name": "گورنسي"
+ },
+ "GY": {
+ "name": "گيانا"
+ },
+ "GM": {
+ "name": "گيمبيا"
+ },
+ "LR": {
+ "name": "لائبیریا"
+ },
+ "LA": {
+ "name": "لائوس"
+ },
+ "LV": {
+ "name": "لاتويا"
+ },
+ "LB": {
+ "name": "لبنان"
+ },
+ "LY": {
+ "name": "لبيا"
+ },
+ "LT": {
+ "name": "لٿونيا"
+ },
+ "LI": {
+ "name": "لچي ٽينسٽين"
+ },
+ "LS": {
+ "name": "ليسوٿو"
+ },
+ "LU": {
+ "name": "لیگزمبرگ"
+ },
+ "FM": {
+ "name": "مائڪرونيشيا"
+ },
+ "MQ": {
+ "name": "مارتينڪ"
+ },
+ "MH": {
+ "name": "مارشل ڀيٽ"
+ },
+ "MW": {
+ "name": "مالاوي"
+ },
+ "MT": {
+ "name": "مالٽا"
+ },
+ "MD": {
+ "name": "مالدووا"
+ },
+ "MV": {
+ "name": "مالديپ"
+ },
+ "ML": {
+ "name": "مالي"
+ },
+ "AE": {
+ "name": "متحده عرب امارات"
+ },
+ "MG": {
+ "name": "مداگيسڪر"
+ },
+ "EG": {
+ "name": "مصر"
+ },
+ "MO": {
+ "name": "مڪائو"
+ },
+ "MY": {
+ "name": "ملائيشيا"
+ },
+ "MN": {
+ "name": "منگوليا"
+ },
+ "MA": {
+ "name": "موروڪو"
+ },
+ "MR": {
+ "name": "موريتانيا"
+ },
+ "MU": {
+ "name": "موريشس"
+ },
+ "MZ": {
+ "name": "موزمبیق"
+ },
+ "MC": {
+ "name": "موناڪو"
+ },
+ "MS": {
+ "name": "مونٽسراٽ"
+ },
+ "ME": {
+ "name": "مونٽي نيگرو"
+ },
+ "YT": {
+ "name": "مياتي"
+ },
+ "MM": {
+ "name": "ميانمار (برما)"
+ },
+ "MK": {
+ "name": "ميسي ڊونيا"
+ },
+ "MX": {
+ "name": "ميڪسيڪو"
+ },
+ "NR": {
+ "name": "نائورو"
+ },
+ "NE": {
+ "name": "نائيجر"
+ },
+ "NG": {
+ "name": "نائيجيريا"
+ },
+ "NO": {
+ "name": "ناروي"
+ },
+ "NI": {
+ "name": "نڪراگوا"
+ },
+ "NF": {
+ "name": "نورفوڪ ٻيٽ"
+ },
+ "NU": {
+ "name": "نووي"
+ },
+ "NP": {
+ "name": "نيپال"
+ },
+ "NL": {
+ "name": "نيدرلينڊ"
+ },
+ "NA": {
+ "name": "نيميبيا"
+ },
+ "NZ": {
+ "name": "نيو زيلينڊ"
+ },
+ "NC": {
+ "name": "نیو ڪالیڊونیا"
+ },
+ "HK": {
+ "name": "هانگ ڪانگ"
+ },
+ "HN": {
+ "name": "هنڊورس"
+ },
+ "HT": {
+ "name": "هيٽي"
+ },
+ "WF": {
+ "name": "والس ۽ فتونا"
+ },
+ "CF": {
+ "name": "وچ آفريقي جمهوريه"
+ },
+ "VN": {
+ "name": "ويتنام"
+ },
+ "VA": {
+ "name": "ويٽڪين سٽي"
+ },
+ "VE": {
+ "name": "وينزيلا"
+ },
+ "VU": {
+ "name": "وينيٽيو"
+ },
+ "YE": {
+ "name": "يمن"
+ },
+ "UY": {
+ "name": "يوروگوءِ"
+ },
+ "UA": {
+ "name": "يوڪرين"
+ },
+ "UG": {
+ "name": "يوگنڊا"
+ },
+ "GR": {
+ "name": "يونان"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/si.json b/vendor/commerceguys/intl/resources/country/si.json
index 2ea5146e6..c4f06049c 100644
--- a/vendor/commerceguys/intl/resources/country/si.json
+++ b/vendor/commerceguys/intl/resources/country/si.json
@@ -9,7 +9,7 @@
"name": "අයිස්ලන්තය"
},
"AW": {
- "name": "අරුබාව"
+ "name": "අරූබා"
},
"AZ": {
"name": "අසර්බයිජානය"
@@ -456,7 +456,7 @@
"name": "බහරේන්"
},
"BB": {
- "name": "බාර්බඩෝස්"
+ "name": "බාබඩෝස්"
},
"BI": {
"name": "බුරුන්දි"
diff --git a/vendor/commerceguys/intl/resources/country/sk.json b/vendor/commerceguys/intl/resources/country/sk.json
index cc90416be..1d305bf0d 100644
--- a/vendor/commerceguys/intl/resources/country/sk.json
+++ b/vendor/commerceguys/intl/resources/country/sk.json
@@ -126,7 +126,7 @@
"name": "Čad"
},
"CZ": {
- "name": "Česká republika"
+ "name": "Česko"
},
"ME": {
"name": "Čierna Hora"
@@ -183,7 +183,7 @@
"name": "Fínsko"
},
"GF": {
- "name": "Francúzska Guayana"
+ "name": "Francúzska Guyana"
},
"PF": {
"name": "Francúzska Polynézia"
@@ -227,9 +227,6 @@
"GT": {
"name": "Guatemala"
},
- "GY": {
- "name": "Guayana"
- },
"GG": {
"name": "Guernsey"
},
@@ -239,6 +236,9 @@
"GW": {
"name": "Guinea-Bissau"
},
+ "GY": {
+ "name": "Guyana"
+ },
"HT": {
"name": "Haiti"
},
@@ -519,7 +519,7 @@
"name": "Panama"
},
"PG": {
- "name": "Papua Nová Guinea"
+ "name": "Papua-Nová Guinea"
},
"PY": {
"name": "Paraguaj"
diff --git a/vendor/commerceguys/intl/resources/country/sl.json b/vendor/commerceguys/intl/resources/country/sl.json
index 2855bc52c..70527ff4a 100644
--- a/vendor/commerceguys/intl/resources/country/sl.json
+++ b/vendor/commerceguys/intl/resources/country/sl.json
@@ -227,15 +227,15 @@
"GE": {
"name": "Gruzija"
},
+ "GP": {
+ "name": "Guadeloupe"
+ },
"GU": {
"name": "Guam"
},
"GG": {
"name": "Guernsey"
},
- "GP": {
- "name": "Gvadalupe"
- },
"GY": {
"name": "Gvajana"
},
diff --git a/vendor/commerceguys/intl/resources/country/sq.json b/vendor/commerceguys/intl/resources/country/sq.json
index 95e46c4ac..b0412a837 100644
--- a/vendor/commerceguys/intl/resources/country/sq.json
+++ b/vendor/commerceguys/intl/resources/country/sq.json
@@ -104,6 +104,9 @@
"TD": {
"name": "Çad"
},
+ "CZ": {
+ "name": "Çeki"
+ },
"DK": {
"name": "Danimarkë"
},
@@ -185,6 +188,9 @@
"GW": {
"name": "Guine-Bisau"
},
+ "PG": {
+ "name": "Guineja e Re-Papua"
+ },
"GQ": {
"name": "Guineja Ekuatoriale"
},
@@ -233,12 +239,12 @@
"MP": {
"name": "Ishujt e Marianës Veriore"
},
- "VI": {
- "name": "Ishujt e Virgjër Amerikanë"
- },
"VG": {
"name": "Ishujt e Virgjër Britanikë"
},
+ "VI": {
+ "name": "Ishujt e Virgjër të SHBA-së"
+ },
"FK": {
"name": "Ishujt Falkland"
},
@@ -261,7 +267,7 @@
"name": "Ishujt Marshall"
},
"UM": {
- "name": "Ishujt periferikë të SHBA-së"
+ "name": "Ishujt Periferikë të SHBA-së"
},
"PN": {
"name": "Ishujt Pitkern"
@@ -503,9 +509,6 @@
"PA": {
"name": "Panama"
},
- "PG": {
- "name": "Papua Guineja e Re"
- },
"PY": {
"name": "Paraguai"
},
@@ -527,18 +530,21 @@
"CY": {
"name": "Qipro"
},
- "CF": {
- "name": "Repubika e Afrikës Qendrore"
- },
- "CZ": {
- "name": "Republika Çeke"
- },
"DO": {
"name": "Republika Dominikane"
},
+ "CF": {
+ "name": "Republika e Afrikës Qendrore"
+ },
"RE": {
"name": "Reunion"
},
+ "HK": {
+ "name": "RPA i Hong-Kongut"
+ },
+ "MO": {
+ "name": "RPA i Makaos"
+ },
"RW": {
"name": "Ruandë"
},
@@ -548,12 +554,6 @@
"RU": {
"name": "Rusi"
},
- "HK": {
- "name": "RVAK i Hong Kongut"
- },
- "MO": {
- "name": "RVAK i Makaos"
- },
"EH": {
"name": "Saharaja Perëndimore"
},
@@ -570,7 +570,7 @@
"name": "San-Marino"
},
"ST": {
- "name": "Sao-Tome e Prinsipe"
+ "name": "Sao Tome dhe Principe"
},
"SC": {
"name": "Sejshelle"
@@ -588,7 +588,7 @@
"name": "Singapor"
},
"SX": {
- "name": "Sint Marten"
+ "name": "Sint-Marten"
},
"SY": {
"name": "Siri"
@@ -621,7 +621,7 @@
"name": "Surinami"
},
"SJ": {
- "name": "Svalbard e Jan-Majen"
+ "name": "Svalbard dhe Jan-Majen"
},
"SZ": {
"name": "Svazilandë"
@@ -629,24 +629,24 @@
"BL": {
"name": "Shën Bartolomeu"
},
- "KN": {
- "name": "Shën Kits dhe Nevis"
- },
"PM": {
"name": "Shën Pier dhe Mikelon"
},
- "VC": {
- "name": "Shën Vincent dhe Grenadine"
- },
"SH": {
"name": "Shën-Helenë"
},
+ "KN": {
+ "name": "Shën-Kits dhe Nevis"
+ },
"LC": {
"name": "Shën-Luçia"
},
"MF": {
"name": "Shën-Martin"
},
+ "VC": {
+ "name": "Shën-Vincent dhe Grenadine"
+ },
"AL": {
"name": "Shqipëri"
},
diff --git a/vendor/commerceguys/intl/resources/country/sr-Cyrl-BA.json b/vendor/commerceguys/intl/resources/country/sr-Cyrl-BA.json
index 0161e3a6d..5ade7ae1e 100644
--- a/vendor/commerceguys/intl/resources/country/sr-Cyrl-BA.json
+++ b/vendor/commerceguys/intl/resources/country/sr-Cyrl-BA.json
@@ -560,6 +560,9 @@
"LC": {
"name": "Света Луција"
},
+ "BL": {
+ "name": "Свети Бартоломеј"
+ },
"VC": {
"name": "Свети Винсент и Гренадини"
},
@@ -584,9 +587,6 @@
"SC": {
"name": "Сејшели"
},
- "BL": {
- "name": "Сен Бартелеми"
- },
"SN": {
"name": "Сенегал"
},
diff --git a/vendor/commerceguys/intl/resources/country/sr-Cyrl-ME.json b/vendor/commerceguys/intl/resources/country/sr-Cyrl-ME.json
index e1991477a..6c0505219 100644
--- a/vendor/commerceguys/intl/resources/country/sr-Cyrl-ME.json
+++ b/vendor/commerceguys/intl/resources/country/sr-Cyrl-ME.json
@@ -560,6 +560,9 @@
"LC": {
"name": "Света Луција"
},
+ "BL": {
+ "name": "Свети Бартоломеј"
+ },
"VC": {
"name": "Свети Винсент и Гренадини"
},
@@ -584,9 +587,6 @@
"SC": {
"name": "Сејшели"
},
- "BL": {
- "name": "Сен Бартелеми"
- },
"SN": {
"name": "Сенегал"
},
diff --git a/vendor/commerceguys/intl/resources/country/sr-Cyrl-XK.json b/vendor/commerceguys/intl/resources/country/sr-Cyrl-XK.json
index 39e79d275..650d21335 100644
--- a/vendor/commerceguys/intl/resources/country/sr-Cyrl-XK.json
+++ b/vendor/commerceguys/intl/resources/country/sr-Cyrl-XK.json
@@ -560,6 +560,9 @@
"LC": {
"name": "Света Луција"
},
+ "BL": {
+ "name": "Свети Бартоломеј"
+ },
"VC": {
"name": "Свети Винсент и Гренадини"
},
@@ -584,9 +587,6 @@
"SC": {
"name": "Сејшели"
},
- "BL": {
- "name": "Сен Бартелеми"
- },
"SN": {
"name": "Сенегал"
},
diff --git a/vendor/commerceguys/intl/resources/country/sr-Latn-BA.json b/vendor/commerceguys/intl/resources/country/sr-Latn-BA.json
index 9c4259ab5..068ce319d 100644
--- a/vendor/commerceguys/intl/resources/country/sr-Latn-BA.json
+++ b/vendor/commerceguys/intl/resources/country/sr-Latn-BA.json
@@ -587,9 +587,6 @@
"SC": {
"name": "Sejšeli"
},
- "BL": {
- "name": "Sen Bartelemi"
- },
"SN": {
"name": "Senegal"
},
@@ -647,6 +644,9 @@
"LC": {
"name": "Sveta Lucija"
},
+ "BL": {
+ "name": "Sveti Bartolomej"
+ },
"KN": {
"name": "Sveti Kits i Nevis"
},
diff --git a/vendor/commerceguys/intl/resources/country/sr-Latn-ME.json b/vendor/commerceguys/intl/resources/country/sr-Latn-ME.json
index bf4b909fd..c90be4f71 100644
--- a/vendor/commerceguys/intl/resources/country/sr-Latn-ME.json
+++ b/vendor/commerceguys/intl/resources/country/sr-Latn-ME.json
@@ -584,9 +584,6 @@
"SC": {
"name": "Sejšeli"
},
- "BL": {
- "name": "Sen Bartelemi"
- },
"SN": {
"name": "Senegal"
},
@@ -644,6 +641,9 @@
"LC": {
"name": "Sveta Lucija"
},
+ "BL": {
+ "name": "Sveti Bartolomej"
+ },
"KN": {
"name": "Sveti Kits i Nevis"
},
diff --git a/vendor/commerceguys/intl/resources/country/sr-Latn-XK.json b/vendor/commerceguys/intl/resources/country/sr-Latn-XK.json
index 77c09bc39..7660b096a 100644
--- a/vendor/commerceguys/intl/resources/country/sr-Latn-XK.json
+++ b/vendor/commerceguys/intl/resources/country/sr-Latn-XK.json
@@ -587,9 +587,6 @@
"SC": {
"name": "Sejšeli"
},
- "BL": {
- "name": "Sen Bartelemi"
- },
"SN": {
"name": "Senegal"
},
@@ -647,6 +644,9 @@
"LC": {
"name": "Sveta Lucija"
},
+ "BL": {
+ "name": "Sveti Bartolomej"
+ },
"KN": {
"name": "Sveti Kits i Nevis"
},
diff --git a/vendor/commerceguys/intl/resources/country/sr-Latn.json b/vendor/commerceguys/intl/resources/country/sr-Latn.json
index 60978a084..725ba304c 100644
--- a/vendor/commerceguys/intl/resources/country/sr-Latn.json
+++ b/vendor/commerceguys/intl/resources/country/sr-Latn.json
@@ -260,9 +260,6 @@
"IS": {
"name": "Island"
},
- "TL": {
- "name": "Istočni Timor"
- },
"IT": {
"name": "Italija"
},
@@ -495,7 +492,7 @@
"name": "Novi Zeland"
},
"CI": {
- "name": "Obala Slonovače"
+ "name": "Obala Slonovače (Kot d’Ivoar)"
},
"AX": {
"name": "Olandska Ostrva"
@@ -584,9 +581,6 @@
"SC": {
"name": "Sejšeli"
},
- "BL": {
- "name": "Sen Bartelemi"
- },
"PM": {
"name": "Sen Pjer i Mikelon"
},
@@ -653,6 +647,9 @@
"LC": {
"name": "Sveta Lucija"
},
+ "BL": {
+ "name": "Sveti Bartolomej"
+ },
"MF": {
"name": "Sveti Martin (Francuska)"
},
@@ -683,6 +680,9 @@
"TZ": {
"name": "Tanzanija"
},
+ "TL": {
+ "name": "Timor-Leste (Istočni Timor)"
+ },
"TG": {
"name": "Togo"
},
diff --git a/vendor/commerceguys/intl/resources/country/sr.json b/vendor/commerceguys/intl/resources/country/sr.json
index afa92fbae..ca76705db 100644
--- a/vendor/commerceguys/intl/resources/country/sr.json
+++ b/vendor/commerceguys/intl/resources/country/sr.json
@@ -230,9 +230,6 @@
"IS": {
"name": "Исланд"
},
- "TL": {
- "name": "Источни Тимор"
- },
"IT": {
"name": "Италија"
},
@@ -462,7 +459,7 @@
"name": "Норвешка"
},
"CI": {
- "name": "Обала Слоноваче"
+ "name": "Обала Слоноваче (Кот д’Ивоар)"
},
"AX": {
"name": "Оландска Острва"
@@ -560,6 +557,9 @@
"LC": {
"name": "Света Луција"
},
+ "BL": {
+ "name": "Свети Бартоломеј"
+ },
"MF": {
"name": "Свети Мартин (Француска)"
},
@@ -575,9 +575,6 @@
"SC": {
"name": "Сејшели"
},
- "BL": {
- "name": "Сен Бартелеми"
- },
"PM": {
"name": "Сен Пјер и Микелон"
},
@@ -638,6 +635,9 @@
"TJ": {
"name": "Таџикистан"
},
+ "TL": {
+ "name": "Тимор-Лесте (Источни Тимор)"
+ },
"TG": {
"name": "Того"
},
diff --git a/vendor/commerceguys/intl/resources/country/sv.json b/vendor/commerceguys/intl/resources/country/sv.json
index e501865cd..037904b48 100644
--- a/vendor/commerceguys/intl/resources/country/sv.json
+++ b/vendor/commerceguys/intl/resources/country/sv.json
@@ -252,7 +252,7 @@
"name": "Honduras"
},
"HK": {
- "name": "Hongkong, S.A.R. Kina"
+ "name": "Hongkong"
},
"IN": {
"name": "Indien"
@@ -384,7 +384,7 @@
"name": "Luxemburg"
},
"MO": {
- "name": "Macao, S.A.R. Kina"
+ "name": "Macao"
},
"MG": {
"name": "Madagaskar"
diff --git a/vendor/commerceguys/intl/resources/country/sw-CD.json b/vendor/commerceguys/intl/resources/country/sw-CD.json
index 0ecd33e6c..ec2e3232c 100644
--- a/vendor/commerceguys/intl/resources/country/sw-CD.json
+++ b/vendor/commerceguys/intl/resources/country/sw-CD.json
@@ -18,7 +18,7 @@
"name": "Aljeria"
},
"AD": {
- "name": "Andora"
+ "name": "Andorra"
},
"AO": {
"name": "Angola"
@@ -27,7 +27,7 @@
"name": "Anguilla"
},
"AQ": {
- "name": "Antaktika"
+ "name": "Antaktiki"
},
"AG": {
"name": "Antigua na Barbuda"
@@ -63,7 +63,7 @@
"name": "Bangladeshi"
},
"BY": {
- "name": "Belarusi"
+ "name": "Belarus"
},
"BZ": {
"name": "Belize"
@@ -87,7 +87,7 @@
"name": "Botswana"
},
"BR": {
- "name": "Brazili"
+ "name": "Brazil"
},
"BN": {
"name": "Brunei"
@@ -110,11 +110,17 @@
"TD": {
"name": "Chadi"
},
+ "CZ": {
+ "name": "Chechia"
+ },
"CL": {
"name": "Chile"
},
- "CN": {
- "name": "China"
+ "CU": {
+ "name": "Cuba"
+ },
+ "CW": {
+ "name": "Curacao"
},
"DK": {
"name": "Denmaki"
@@ -126,10 +132,10 @@
"name": "Dominika"
},
"EC": {
- "name": "Ekwado"
+ "name": "Ecuador"
},
"SV": {
- "name": "Elsavado"
+ "name": "El Salvador"
},
"IO": {
"name": "Eneo la Uingereza katika Bahari Hindi"
@@ -155,24 +161,27 @@
"GM": {
"name": "Gambia"
},
+ "GS": {
+ "name": "Georgia Kusini na Visiwa vya Sandwich Kusini"
+ },
"GH": {
"name": "Ghana"
},
+ "GI": {
+ "name": "Gibraltar"
+ },
"GN": {
"name": "Gine"
},
"GW": {
"name": "Ginebisau"
},
- "GQ": {
- "name": "Ginekweta"
+ "GL": {
+ "name": "Greenland"
},
"GD": {
"name": "Grenada"
},
- "GL": {
- "name": "Grinlandi"
- },
"GP": {
"name": "Guadeloupe"
},
@@ -185,20 +194,20 @@
"GG": {
"name": "Guernsey"
},
+ "GF": {
+ "name": "Guiana ya Ufaransa"
+ },
+ "GQ": {
+ "name": "Guinea ya Ikweta"
+ },
"GY": {
"name": "Guyana"
},
- "GF": {
- "name": "Gwiyana ya Ufaransa"
- },
"HT": {
"name": "Haiti"
},
- "ES": {
- "name": "Hispania"
- },
"HN": {
- "name": "Hondurasi"
+ "name": "Honduras"
},
"HK": {
"name": "Hong Kong SAR China"
@@ -233,9 +242,6 @@
"CF": {
"name": "Jamhuri ya Afrika ya Kati"
},
- "CZ": {
- "name": "Jamhuri ya Cheki"
- },
"DO": {
"name": "Jamhuri ya Dominika"
},
@@ -248,18 +254,12 @@
"JE": {
"name": "Jersey"
},
- "GI": {
- "name": "Jibralta"
- },
"DJ": {
"name": "Jibuti"
},
"GE": {
"name": "Jojia"
},
- "GS": {
- "name": "Jojia Kusini na Visiwa vya Sandwich Kusini"
- },
"KH": {
"name": "Kambodia"
},
@@ -320,17 +320,11 @@
"HR": {
"name": "Kroeshia"
},
- "CU": {
- "name": "Kuba"
- },
- "CW": {
- "name": "Kurakao"
- },
"KW": {
"name": "Kuwait"
},
"LA": {
- "name": "Laosi"
+ "name": "Laos"
},
"LU": {
"name": "Lasembagi"
@@ -390,7 +384,7 @@
"name": "Marekani"
},
"MQ": {
- "name": "Martiniki"
+ "name": "Martinique"
},
"YT": {
"name": "Mayotte"
@@ -399,16 +393,19 @@
"name": "Meksiko"
},
"FM": {
- "name": "Mikronesia"
+ "name": "Micronesia"
},
"EG": {
"name": "Misri"
},
+ "VA": {
+ "name": "Mji wa Vatican"
+ },
"MD": {
"name": "Moldova"
},
"MC": {
- "name": "Monako"
+ "name": "Monaco"
},
"MN": {
"name": "Mongolia"
@@ -417,7 +414,7 @@
"name": "Montenegro"
},
"MS": {
- "name": "Montserrati"
+ "name": "Montserrat"
},
"MU": {
"name": "Morisi"
@@ -443,6 +440,9 @@
"NP": {
"name": "Nepali"
},
+ "NC": {
+ "name": "New Caledonia"
+ },
"NE": {
"name": "Nijeri"
},
@@ -458,9 +458,6 @@
"NO": {
"name": "Norwe"
},
- "NC": {
- "name": "Nyukaledonia"
- },
"NZ": {
"name": "Nyuzilandi"
},
@@ -480,22 +477,22 @@
"name": "Papua New Guinea"
},
"PY": {
- "name": "Paragwai"
+ "name": "Paraguay"
},
"PE": {
"name": "Peru"
},
"PL": {
- "name": "Polandi"
+ "name": "Poland"
},
"PF": {
- "name": "Polinesia ya Ufaransa"
+ "name": "Polynesia ya Ufaransa"
},
"PR": {
"name": "Puetoriko"
},
"RE": {
- "name": "Riyunioni"
+ "name": "Reunion"
},
"RO": {
"name": "Romania"
@@ -506,9 +503,6 @@
"EH": {
"name": "Sahara Magharibi"
},
- "MF": {
- "name": "Saint Martin"
- },
"CY": {
"name": "Saiprasi"
},
@@ -521,24 +515,9 @@
"SM": {
"name": "San Marino"
},
- "BL": {
- "name": "Santabathelemi"
- },
- "SH": {
- "name": "Santahelena"
- },
- "KN": {
- "name": "Santakitzi na Nevis"
- },
- "LC": {
- "name": "Santalusia"
- },
"PM": {
"name": "Santapierre na Miquelon"
},
- "VC": {
- "name": "Santavisenti na Grenadini"
- },
"ST": {
"name": "Sao Tome na Prinsipe"
},
@@ -572,6 +551,24 @@
"LK": {
"name": "Sri Lanka"
},
+ "BL": {
+ "name": "St. Barthelemy"
+ },
+ "SH": {
+ "name": "St. Helena"
+ },
+ "KN": {
+ "name": "St. Kitts na Nevis"
+ },
+ "LC": {
+ "name": "St. Lucia"
+ },
+ "MF": {
+ "name": "St. Martin"
+ },
+ "VC": {
+ "name": "St. Vincent na Grenadines"
+ },
"SS": {
"name": "Sudan Kusini"
},
@@ -579,7 +576,7 @@
"name": "Sudani"
},
"SR": {
- "name": "Surinamu"
+ "name": "Suriname"
},
"SJ": {
"name": "Svalbard na Jan Mayen"
@@ -621,7 +618,7 @@
"name": "Tunisia"
},
"TM": {
- "name": "Turukimenistani"
+ "name": "Turkmenistan"
},
"TV": {
"name": "Tuvalu"
@@ -629,6 +626,9 @@
"BE": {
"name": "Ubelgiji"
},
+ "CN": {
+ "name": "Uchina"
+ },
"FR": {
"name": "Ufaransa"
},
@@ -644,6 +644,9 @@
"GR": {
"name": "Ugiriki"
},
+ "ES": {
+ "name": "Uhispania"
+ },
"NL": {
"name": "Uholanzi"
},
@@ -663,7 +666,7 @@
"name": "Ureno"
},
"UY": {
- "name": "Urugwai"
+ "name": "Uruguay"
},
"RU": {
"name": "Urusi"
@@ -689,9 +692,6 @@
"VU": {
"name": "Vanuatu"
},
- "VA": {
- "name": "Vatikani"
- },
"VE": {
"name": "Venezuela"
},
@@ -702,7 +702,10 @@
"name": "Visiwa Vidogo vya Nje vya Marekani"
},
"AX": {
- "name": "Visiwa vya Alandi"
+ "name": "Visiwa vya Aland"
+ },
+ "KY": {
+ "name": "Visiwa vya Cayman"
},
"CC": {
"name": "Visiwa vya Cocos (Keeling)"
@@ -719,9 +722,6 @@
"IC": {
"name": "Visiwa vya Kanari"
},
- "KY": {
- "name": "Visiwa vya Kayman"
- },
"MP": {
"name": "Visiwa vya Mariana vya Kaskazini"
},
@@ -735,16 +735,16 @@
"name": "Visiwa vya Solomon"
},
"TC": {
- "name": "Visiwa vya Turki na Kaiko"
+ "name": "Visiwa vya Turks na Caicos"
},
"VI": {
- "name": "Visiwa vya Virgin vya Marekani"
+ "name": "Visiwa vya Virgin, Marekani"
},
"VG": {
- "name": "Visiwa vya Virgin vya Uingereza"
+ "name": "Visiwa vya Virgin, Uingereza"
},
"WF": {
- "name": "Walis na Futuna"
+ "name": "Wallis na Futuna"
},
"YE": {
"name": "Yemeni"
diff --git a/vendor/commerceguys/intl/resources/country/sw-KE.json b/vendor/commerceguys/intl/resources/country/sw-KE.json
index bcd7a4003..188441450 100644
--- a/vendor/commerceguys/intl/resources/country/sw-KE.json
+++ b/vendor/commerceguys/intl/resources/country/sw-KE.json
@@ -18,7 +18,7 @@
"name": "Aljeria"
},
"AD": {
- "name": "Andora"
+ "name": "Andorra"
},
"AO": {
"name": "Angola"
@@ -63,7 +63,7 @@
"name": "Bangladeshi"
},
"BY": {
- "name": "Belarusi"
+ "name": "Belarus"
},
"BZ": {
"name": "Belize"
@@ -87,7 +87,7 @@
"name": "Botswana"
},
"BR": {
- "name": "Brazili"
+ "name": "Brazil"
},
"BN": {
"name": "Brunei"
@@ -110,11 +110,20 @@
"TD": {
"name": "Chadi"
},
+ "CZ": {
+ "name": "Chechia"
+ },
"CL": {
"name": "Chile"
},
- "CN": {
- "name": "China"
+ "HR": {
+ "name": "Croatia"
+ },
+ "CU": {
+ "name": "Cuba"
+ },
+ "CW": {
+ "name": "Curacao"
},
"DK": {
"name": "Denmark"
@@ -126,10 +135,10 @@
"name": "Dominika"
},
"EC": {
- "name": "Ekwado"
+ "name": "Ecuador"
},
"SV": {
- "name": "Elsavado"
+ "name": "El Salvador"
},
"IO": {
"name": "Eneo la Uingereza katika Bahari Hindi"
@@ -155,24 +164,27 @@
"GM": {
"name": "Gambia"
},
+ "GS": {
+ "name": "Georgia Kusini na Visiwa vya Sandwich Kusini"
+ },
"GH": {
"name": "Ghana"
},
+ "GI": {
+ "name": "Gibraltar"
+ },
"GN": {
"name": "Gine"
},
"GW": {
"name": "Ginebisau"
},
- "GQ": {
- "name": "Ginekweta"
+ "GL": {
+ "name": "Greenland"
},
"GD": {
"name": "Grenada"
},
- "GL": {
- "name": "Grinlandi"
- },
"GU": {
"name": "Guam"
},
@@ -182,23 +194,23 @@
"GG": {
"name": "Guernsey"
},
+ "GF": {
+ "name": "Guiana ya Ufaransa"
+ },
+ "GQ": {
+ "name": "Guinea ya Ikweta"
+ },
"GY": {
"name": "Guyana"
},
"GP": {
"name": "Gwadelupe"
},
- "GF": {
- "name": "Gwiyana ya Ufaransa"
- },
"HT": {
"name": "Haiti"
},
- "ES": {
- "name": "Hispania"
- },
"HN": {
- "name": "Hondurasi"
+ "name": "Honduras"
},
"HK": {
"name": "Hong Kong SAR China"
@@ -236,9 +248,6 @@
"CF": {
"name": "Jamhuri ya Afrika ya Kati"
},
- "CZ": {
- "name": "Jamhuri ya Cheki"
- },
"DO": {
"name": "Jamhuri ya Dominika"
},
@@ -251,18 +260,12 @@
"JE": {
"name": "Jersey"
},
- "GI": {
- "name": "Jibralta"
- },
"DJ": {
"name": "Jibuti"
},
"GE": {
"name": "Jojia"
},
- "GS": {
- "name": "Jojia Kusini na Visiwa vya Sandwich Kusini"
- },
"KH": {
"name": "Kambodia"
},
@@ -305,9 +308,6 @@
"CG": {
"name": "Kongo - Brazzaville"
},
- "HR": {
- "name": "Korasia"
- },
"KP": {
"name": "Korea Kaskazini"
},
@@ -320,17 +320,11 @@
"CR": {
"name": "Kostarika"
},
- "CU": {
- "name": "Kuba"
- },
- "CW": {
- "name": "Kurakao"
- },
"KW": {
"name": "Kuwait"
},
"LA": {
- "name": "Laosi"
+ "name": "Laos"
},
"LU": {
"name": "Lasembagi"
@@ -390,7 +384,7 @@
"name": "Marekani"
},
"MQ": {
- "name": "Martiniki"
+ "name": "Martinique"
},
"YT": {
"name": "Mayotte"
@@ -404,11 +398,14 @@
"EG": {
"name": "Misri"
},
+ "VA": {
+ "name": "Mji wa Vatican"
+ },
"MD": {
"name": "Moldova"
},
"MC": {
- "name": "Monako"
+ "name": "Monaco"
},
"MN": {
"name": "Mongolia"
@@ -417,7 +414,7 @@
"name": "Montenegro"
},
"MS": {
- "name": "Montserrati"
+ "name": "Montserrat"
},
"MU": {
"name": "Morisi"
@@ -480,13 +477,13 @@
"name": "Papua New Guinea"
},
"PY": {
- "name": "Paragwai"
+ "name": "Paraguay"
},
"PE": {
"name": "Peru"
},
"PL": {
- "name": "Polandi"
+ "name": "Poland"
},
"PF": {
"name": "Polinesia ya Ufaransa"
@@ -495,7 +492,7 @@
"name": "Puetoriko"
},
"RE": {
- "name": "Riyunioni"
+ "name": "Reunion"
},
"RO": {
"name": "Romania"
@@ -506,9 +503,6 @@
"EH": {
"name": "Sahara Magharibi"
},
- "MF": {
- "name": "Saint Martin"
- },
"CY": {
"name": "Saiprasi"
},
@@ -521,24 +515,9 @@
"SM": {
"name": "San Marino"
},
- "BL": {
- "name": "Santabathelemi"
- },
- "SH": {
- "name": "Santahelena"
- },
- "KN": {
- "name": "Santakitzi na Nevis"
- },
- "LC": {
- "name": "Santalusia"
- },
"PM": {
"name": "Santapierre na Miquelon"
},
- "VC": {
- "name": "Santavisenti na Grenadini"
- },
"ST": {
"name": "Sao Tome na Prinsipe"
},
@@ -572,6 +551,24 @@
"LK": {
"name": "Sri Lanka"
},
+ "BL": {
+ "name": "St. Barthelemy"
+ },
+ "SH": {
+ "name": "St. Helena"
+ },
+ "KN": {
+ "name": "St. Kitts na Nevis"
+ },
+ "LC": {
+ "name": "St. Lucia"
+ },
+ "MF": {
+ "name": "St. Martin"
+ },
+ "VC": {
+ "name": "St. Vincent na Grenadines"
+ },
"SD": {
"name": "Sudan"
},
@@ -621,7 +618,7 @@
"name": "Tunisia"
},
"TM": {
- "name": "Turukimenistani"
+ "name": "Turkmenistan"
},
"TV": {
"name": "Tuvalu"
@@ -629,6 +626,9 @@
"BE": {
"name": "Ubelgiji"
},
+ "CN": {
+ "name": "Uchina"
+ },
"FR": {
"name": "Ufaransa"
},
@@ -644,6 +644,9 @@
"GR": {
"name": "Ugiriki"
},
+ "ES": {
+ "name": "Uhispania"
+ },
"NL": {
"name": "Uholanzi"
},
@@ -663,7 +666,7 @@
"name": "Ureno"
},
"UY": {
- "name": "Urugwai"
+ "name": "Uruguay"
},
"RU": {
"name": "Urusi"
@@ -689,9 +692,6 @@
"VU": {
"name": "Vanuatu"
},
- "VA": {
- "name": "Vatikani"
- },
"VE": {
"name": "Venezuela"
},
@@ -702,7 +702,10 @@
"name": "Visiwa Vidogo vya Nje vya Marekani"
},
"AX": {
- "name": "Visiwa vya Alandi"
+ "name": "Visiwa vya Aland"
+ },
+ "KY": {
+ "name": "Visiwa vya Cayman"
},
"CC": {
"name": "Visiwa vya Cocos (Keeling)"
@@ -719,9 +722,6 @@
"IC": {
"name": "Visiwa vya Kanari"
},
- "KY": {
- "name": "Visiwa vya Kayman"
- },
"MP": {
"name": "Visiwa vya Mariana vya Kaskazini"
},
@@ -735,16 +735,16 @@
"name": "Visiwa vya Solomon"
},
"TC": {
- "name": "Visiwa vya Turki na Kaiko"
+ "name": "Visiwa vya Turks na Caicos"
},
"VI": {
- "name": "Visiwa vya Virgin vya Marekani"
+ "name": "Visiwa vya Virgin, Marekani"
},
"VG": {
- "name": "Visiwa vya Virgin vya Uingereza"
+ "name": "Visiwa vya Virgin, Uingereza"
},
"WF": {
- "name": "Walis na Futuna"
+ "name": "Wallis na Futuna"
},
"YE": {
"name": "Yemeni"
diff --git a/vendor/commerceguys/intl/resources/country/sw.json b/vendor/commerceguys/intl/resources/country/sw.json
index 2fcc28c53..646a44831 100644
--- a/vendor/commerceguys/intl/resources/country/sw.json
+++ b/vendor/commerceguys/intl/resources/country/sw.json
@@ -18,7 +18,7 @@
"name": "Aljeria"
},
"AD": {
- "name": "Andora"
+ "name": "Andorra"
},
"AO": {
"name": "Angola"
@@ -27,7 +27,7 @@
"name": "Anguilla"
},
"AQ": {
- "name": "Antaktika"
+ "name": "Antaktiki"
},
"AG": {
"name": "Antigua na Barbuda"
@@ -63,7 +63,7 @@
"name": "Bangladeshi"
},
"BY": {
- "name": "Belarusi"
+ "name": "Belarus"
},
"BZ": {
"name": "Belize"
@@ -87,7 +87,7 @@
"name": "Botswana"
},
"BR": {
- "name": "Brazili"
+ "name": "Brazil"
},
"BN": {
"name": "Brunei"
@@ -110,14 +110,23 @@
"TD": {
"name": "Chad"
},
+ "CZ": {
+ "name": "Chechia"
+ },
"CL": {
"name": "Chile"
},
- "CN": {
- "name": "China"
- },
"CI": {
- "name": "Côte d’Ivoire"
+ "name": "Cote d’Ivoire"
+ },
+ "HR": {
+ "name": "Croatia"
+ },
+ "CU": {
+ "name": "Cuba"
+ },
+ "CW": {
+ "name": "Curacao"
},
"CY": {
"name": "Cyprus"
@@ -132,10 +141,10 @@
"name": "Dominika"
},
"EC": {
- "name": "Ekwado"
+ "name": "Ecuador"
},
"SV": {
- "name": "Elsavado"
+ "name": "El Salvador"
},
"IO": {
"name": "Eneo la Uingereza katika Bahari Hindi"
@@ -161,24 +170,27 @@
"GM": {
"name": "Gambia"
},
+ "GS": {
+ "name": "Georgia Kusini na Visiwa vya Sandwich Kusini"
+ },
"GH": {
"name": "Ghana"
},
+ "GI": {
+ "name": "Gibraltar"
+ },
"GN": {
"name": "Gine"
},
"GW": {
"name": "Ginebisau"
},
- "GQ": {
- "name": "Ginekweta"
+ "GL": {
+ "name": "Greenland"
},
"GD": {
"name": "Grenada"
},
- "GL": {
- "name": "Grinlandi"
- },
"GP": {
"name": "Guadeloupe"
},
@@ -191,20 +203,20 @@
"GG": {
"name": "Guernsey"
},
+ "GF": {
+ "name": "Guiana ya Ufaransa"
+ },
+ "GQ": {
+ "name": "Guinea ya Ikweta"
+ },
"GY": {
"name": "Guyana"
},
- "GF": {
- "name": "Gwiyana ya Ufaransa"
- },
"HT": {
"name": "Haiti"
},
- "ES": {
- "name": "Hispania"
- },
"HN": {
- "name": "Hondurasi"
+ "name": "Honduras"
},
"HK": {
"name": "Hong Kong SAR China"
@@ -239,9 +251,6 @@
"CF": {
"name": "Jamhuri ya Afrika ya Kati"
},
- "CZ": {
- "name": "Jamhuri ya Cheki"
- },
"DO": {
"name": "Jamhuri ya Dominika"
},
@@ -254,18 +263,12 @@
"JE": {
"name": "Jersey"
},
- "GI": {
- "name": "Jibralta"
- },
"DJ": {
"name": "Jibuti"
},
"GE": {
"name": "Jojia"
},
- "GS": {
- "name": "Jojia Kusini na Visiwa vya Sandwich Kusini"
- },
"JO": {
"name": "Jordan"
},
@@ -308,9 +311,6 @@
"CG": {
"name": "Kongo - Brazzaville"
},
- "HR": {
- "name": "Korasia"
- },
"KP": {
"name": "Korea Kaskazini"
},
@@ -323,17 +323,11 @@
"CR": {
"name": "Kostarika"
},
- "CU": {
- "name": "Kuba"
- },
- "CW": {
- "name": "Kurakao"
- },
"KW": {
"name": "Kuwait"
},
"LA": {
- "name": "Laosi"
+ "name": "Laos"
},
"LV": {
"name": "Latvia"
@@ -393,7 +387,7 @@
"name": "Marekani"
},
"MQ": {
- "name": "Martiniki"
+ "name": "Martinique"
},
"YT": {
"name": "Mayotte"
@@ -402,16 +396,19 @@
"name": "Meksiko"
},
"FM": {
- "name": "Mikronesia"
+ "name": "Micronesia"
},
"EG": {
"name": "Misri"
},
+ "VA": {
+ "name": "Mji wa Vatican"
+ },
"MD": {
"name": "Moldova"
},
"MC": {
- "name": "Monako"
+ "name": "Monaco"
},
"MN": {
"name": "Mongolia"
@@ -420,7 +417,7 @@
"name": "Montenegro"
},
"MS": {
- "name": "Montserrati"
+ "name": "Montserrat"
},
"MU": {
"name": "Morisi"
@@ -446,6 +443,9 @@
"NP": {
"name": "Nepal"
},
+ "NC": {
+ "name": "New Caledonia"
+ },
"NE": {
"name": "Niger"
},
@@ -461,9 +461,6 @@
"NO": {
"name": "Norway"
},
- "NC": {
- "name": "Nyukaledonia"
- },
"NZ": {
"name": "Nyuzilandi"
},
@@ -483,16 +480,16 @@
"name": "Papua New Guinea"
},
"PY": {
- "name": "Paragwai"
+ "name": "Paraguay"
},
"PE": {
"name": "Peru"
},
"PL": {
- "name": "Polandi"
+ "name": "Poland"
},
"PF": {
- "name": "Polinesia ya Ufaransa"
+ "name": "Polynesia ya Ufaransa"
},
"PR": {
"name": "Puerto Rico"
@@ -501,7 +498,7 @@
"name": "Qatar"
},
"RE": {
- "name": "Riyunioni"
+ "name": "Reunion"
},
"RO": {
"name": "Romania"
@@ -512,9 +509,6 @@
"EH": {
"name": "Sahara Magharibi"
},
- "MF": {
- "name": "Saint Martin"
- },
"WS": {
"name": "Samoa"
},
@@ -524,24 +518,9 @@
"SM": {
"name": "San Marino"
},
- "BL": {
- "name": "Santabathelemi"
- },
- "SH": {
- "name": "Santahelena"
- },
- "KN": {
- "name": "Santakitzi na Nevis"
- },
- "LC": {
- "name": "Santalusia"
- },
"PM": {
"name": "Santapierre na Miquelon"
},
- "VC": {
- "name": "Santavisenti na Grenadini"
- },
"ST": {
"name": "São Tomé na Príncipe"
},
@@ -575,6 +554,24 @@
"LK": {
"name": "Sri Lanka"
},
+ "BL": {
+ "name": "St. Barthelemy"
+ },
+ "SH": {
+ "name": "St. Helena"
+ },
+ "KN": {
+ "name": "St. Kitts na Nevis"
+ },
+ "LC": {
+ "name": "St. Lucia"
+ },
+ "MF": {
+ "name": "St. Martin"
+ },
+ "VC": {
+ "name": "St. Vincent na Grenadines"
+ },
"SD": {
"name": "Sudan"
},
@@ -582,7 +579,7 @@
"name": "Sudan Kusini"
},
"SR": {
- "name": "Surinamu"
+ "name": "Suriname"
},
"SJ": {
"name": "Svalbard na Jan Mayen"
@@ -624,7 +621,7 @@
"name": "Tunisia"
},
"TM": {
- "name": "Turukimenistani"
+ "name": "Turkmenistan"
},
"TV": {
"name": "Tuvalu"
@@ -632,6 +629,9 @@
"BE": {
"name": "Ubelgiji"
},
+ "CN": {
+ "name": "Uchina"
+ },
"FR": {
"name": "Ufaransa"
},
@@ -647,6 +647,9 @@
"GR": {
"name": "Ugiriki"
},
+ "ES": {
+ "name": "Uhispania"
+ },
"NL": {
"name": "Uholanzi"
},
@@ -666,7 +669,7 @@
"name": "Ureno"
},
"UY": {
- "name": "Urugwai"
+ "name": "Uruguay"
},
"RU": {
"name": "Urusi"
@@ -692,9 +695,6 @@
"VU": {
"name": "Vanuatu"
},
- "VA": {
- "name": "Vatikani"
- },
"VE": {
"name": "Venezuela"
},
@@ -705,7 +705,10 @@
"name": "Visiwa Vidogo vya Nje vya Marekani"
},
"AX": {
- "name": "Visiwa vya Alandi"
+ "name": "Visiwa vya Aland"
+ },
+ "KY": {
+ "name": "Visiwa vya Cayman"
},
"CC": {
"name": "Visiwa vya Cocos (Keeling)"
@@ -722,9 +725,6 @@
"IC": {
"name": "Visiwa vya Kanari"
},
- "KY": {
- "name": "Visiwa vya Kayman"
- },
"MP": {
"name": "Visiwa vya Mariana vya Kaskazini"
},
@@ -738,16 +738,16 @@
"name": "Visiwa vya Solomon"
},
"TC": {
- "name": "Visiwa vya Turki na Kaiko"
+ "name": "Visiwa vya Turks na Caicos"
},
"VI": {
- "name": "Visiwa vya Virgin vya Marekani"
+ "name": "Visiwa vya Virgin, Marekani"
},
"VG": {
- "name": "Visiwa vya Virgin vya Uingereza"
+ "name": "Visiwa vya Virgin, Uingereza"
},
"WF": {
- "name": "Walis na Futuna"
+ "name": "Wallis na Futuna"
},
"YE": {
"name": "Yemeni"
diff --git a/vendor/commerceguys/intl/resources/country/ta.json b/vendor/commerceguys/intl/resources/country/ta.json
index 7f07a5ec8..4e952d49f 100644
--- a/vendor/commerceguys/intl/resources/country/ta.json
+++ b/vendor/commerceguys/intl/resources/country/ta.json
@@ -300,7 +300,7 @@
"name": "சூடான்"
},
"CZ": {
- "name": "செக் குடியரசு"
+ "name": "செசியா"
},
"KN": {
"name": "செயின்ட் கிட்ஸ் & நெவிஸ்"
diff --git a/vendor/commerceguys/intl/resources/country/te.json b/vendor/commerceguys/intl/resources/country/te.json
index 18003191c..1a83d3bf7 100644
--- a/vendor/commerceguys/intl/resources/country/te.json
+++ b/vendor/commerceguys/intl/resources/country/te.json
@@ -3,10 +3,7 @@
"name": "అంగోలా"
},
"AQ": {
- "name": "అంటార్కటికా"
- },
- "AD": {
- "name": "అండొర్రా"
+ "name": "అంటార్కిటికా"
},
"AZ": {
"name": "అజర్బైజాన్"
@@ -14,9 +11,6 @@
"AS": {
"name": "అమెరికన్ సమోవా"
},
- "US": {
- "name": "అమెరికా సంయుక్త రాష్ట్రాలు"
- },
"AW": {
"name": "అరుబా"
},
@@ -29,12 +23,18 @@
"AL": {
"name": "అల్బేనియా"
},
+ "AC": {
+ "name": "అసెన్షన్ దీవి"
+ },
"AI": {
- "name": "ఆంగవిల్లా"
+ "name": "ఆంగ్విల్లా"
},
"AG": {
"name": "ఆంటిగ్వా మరియు బార్బుడా"
},
+ "AD": {
+ "name": "ఆండోరా"
+ },
"AF": {
"name": "ఆఫ్ఘనిస్తాన్"
},
@@ -42,7 +42,7 @@
"name": "ఆర్మేనియా"
},
"AX": {
- "name": "ఆలేండ్ దీవులు"
+ "name": "ఆలాండ్ దీవులు"
},
"AT": {
"name": "ఆస్ట్రియా"
@@ -93,7 +93,7 @@
"name": "ఉత్తర మరియానా దీవులు"
},
"UY": {
- "name": "ఊరుగ్వే"
+ "name": "ఉరుగ్వే"
},
"ER": {
"name": "ఎరిట్రియా"
@@ -101,9 +101,6 @@
"SV": {
"name": "ఎల్ సాల్వడోర్"
},
- "AC": {
- "name": "ఎసెషన్ దీవి"
- },
"EE": {
"name": "ఎస్టోనియా"
},
@@ -123,7 +120,7 @@
"name": "కంబోడియా"
},
"KZ": {
- "name": "కజకస్తాన్"
+ "name": "కజకిస్తాన్"
},
"BQ": {
"name": "కరీబియన్ నెదర్లాండ్స్"
@@ -162,7 +159,7 @@
"name": "కేనరీ దీవులు"
},
"CV": {
- "name": "కేప్ వెర్డే"
+ "name": "కేప్ వెర్డె"
},
"KY": {
"name": "కేమాన్ దీవులు"
@@ -180,7 +177,7 @@
"name": "కోకోస్ (కీలింగ్) దీవులు"
},
"CI": {
- "name": "కోటెడ్ ఐవోయిర్"
+ "name": "కోట్ డి ఐవోర్"
},
"CR": {
"name": "కోస్టా రికా"
@@ -198,11 +195,14 @@
"name": "క్రోయేషియా"
},
"QA": {
- "name": "ఖతర్"
+ "name": "ఖతార్"
},
"GY": {
"name": "గయానా"
},
+ "GG": {
+ "name": "గర్న్‌సీ"
+ },
"GM": {
"name": "గాంబియా"
},
@@ -216,26 +216,23 @@
"name": "గినియా-బిస్సావ్"
},
"GL": {
- "name": "గ్రీన్‌లాండ్"
+ "name": "గ్రీన్‌ల్యాండ్"
},
"GR": {
"name": "గ్రీస్"
},
"GD": {
- "name": "గ్రెనెడా"
+ "name": "గ్రెనడా"
},
"GT": {
- "name": "గ్వాటిమాల"
+ "name": "గ్వాటిమాలా"
},
"GP": {
- "name": "గ్వాడేలోప్"
+ "name": "గ్వాడెలోప్"
},
"GU": {
"name": "గ్వామ్"
},
- "GG": {
- "name": "గ్వేర్నసే"
- },
"GH": {
"name": "ఘనా"
},
@@ -246,7 +243,7 @@
"name": "చిలీ"
},
"CZ": {
- "name": "చెక్ రిపబ్లిక్"
+ "name": "చెకియా"
},
"CN": {
"name": "చైనా"
@@ -273,7 +270,7 @@
"name": "జిబౌటి"
},
"GI": {
- "name": "జిబ్రాల్టార్"
+ "name": "జిబ్రాల్టర్"
},
"JE": {
"name": "జెర్సీ"
@@ -284,6 +281,15 @@
"TR": {
"name": "టర్కీ"
},
+ "TM": {
+ "name": "టర్క్‌మెనిస్తాన్"
+ },
+ "TC": {
+ "name": "టర్క్స్ & కైకోస్ దీవులు"
+ },
+ "TO": {
+ "name": "టాంగా"
+ },
"TZ": {
"name": "టాంజానియా"
},
@@ -293,11 +299,8 @@
"TV": {
"name": "టువాలు"
},
- "TO": {
- "name": "టోంగా"
- },
"TK": {
- "name": "టోకేలావ్"
+ "name": "టోకెలావ్"
},
"TG": {
"name": "టోగో"
@@ -318,20 +321,14 @@
"name": "డెన్మార్క్"
},
"DO": {
- "name": "డొమెనికన్ రిపబ్లిక్"
+ "name": "డొమినికన్ రిపబ్లిక్"
},
"DM": {
- "name": "డొమెనికా"
+ "name": "డొమినికా"
},
"TJ": {
"name": "తజికిస్తాన్"
},
- "TM": {
- "name": "తుర్కమేనిస్తాన్"
- },
- "TC": {
- "name": "తుర్క్ మరియు కాలికోస్ దీవులు"
- },
"TW": {
"name": "తైవాన్"
},
@@ -363,7 +360,7 @@
"name": "నికరాగువా"
},
"NU": {
- "name": "నియు"
+ "name": "నియూ"
},
"NL": {
"name": "నెదర్లాండ్స్"
@@ -392,18 +389,18 @@
"PY": {
"name": "పరాగ్వే"
},
- "PW": {
- "name": "పలావు"
- },
"PK": {
"name": "పాకిస్తాన్"
},
"PG": {
- "name": "పాపువా న్యు గినియా"
+ "name": "పాపువా న్యూ గినియా"
},
"PS": {
"name": "పాలస్తీనియన్ ప్రాంతాలు"
},
+ "PW": {
+ "name": "పాలావ్"
+ },
"PN": {
"name": "పిట్‌కెయిర్న్ దీవులు"
},
@@ -416,6 +413,9 @@
"PL": {
"name": "పోలాండ్"
},
+ "PR": {
+ "name": "ప్యూర్టో రికో"
+ },
"FK": {
"name": "ఫాక్‌ల్యాండ్ దీవులు"
},
@@ -429,10 +429,7 @@
"name": "ఫిన్లాండ్"
},
"PH": {
- "name": "ఫిలిప్పీన్స్"
- },
- "PR": {
- "name": "ఫ్యూర్టో రికో"
+ "name": "ఫిలిప్పైన్స్"
},
"FR": {
"name": "ఫ్రాన్స్‌"
@@ -444,7 +441,7 @@
"name": "ఫ్రెంచ్ దక్షిణ ప్రాంతాలు"
},
"PF": {
- "name": "ఫ్రెంచ్ పోలినిషియా"
+ "name": "ఫ్రెంచ్ పోలినీషియా"
},
"BD": {
"name": "బంగ్లాదేశ్"
@@ -495,16 +492,16 @@
"name": "బ్రిటిష్ వర్జిన్ దీవులు"
},
"IO": {
- "name": "బ్రిటీష్ భారతీయ సముద్రపు ప్రాంతం"
+ "name": "బ్రిటీష్ హిందూ మహాసముద్ర ప్రాంతం"
},
"BN": {
- "name": "బ్రూనై"
+ "name": "బ్రూనే"
},
"BR": {
"name": "బ్రెజిల్"
},
"IN": {
- "name": "భారత దేశం"
+ "name": "భారతదేశం"
},
"BT": {
"name": "భూటాన్"
@@ -513,7 +510,7 @@
"name": "మంగోలియా"
},
"MO": {
- "name": "మకావు ఎస్ఏఆర్ చైనా"
+ "name": "మకావ్ ఎస్ఏఆర్ చైనా"
},
"MG": {
"name": "మడగాస్కర్"
@@ -524,14 +521,17 @@
"MY": {
"name": "మలేషియా"
},
+ "MS": {
+ "name": "మాంట్సెరాట్"
+ },
"YT": {
- "name": "మాయొట్టి"
+ "name": "మాయొట్"
},
"MU": {
"name": "మారిషస్"
},
"MQ": {
- "name": "మార్టినిక్"
+ "name": "మార్టినీక్"
},
"MH": {
"name": "మార్షల్ దీవులు"
@@ -567,10 +567,7 @@
"name": "మొరాకో"
},
"ME": {
- "name": "మోంటేనేగ్రో"
- },
- "MS": {
- "name": "మోంట్సేర్రాట్"
+ "name": "మోంటెనీగ్రో"
},
"MD": {
"name": "మోల్డోవా"
@@ -587,6 +584,9 @@
"GB": {
"name": "యునైటెడ్ కింగ్‌డమ్"
},
+ "US": {
+ "name": "యునైటెడ్ స్టేట్స్"
+ },
"YE": {
"name": "యెమెన్"
},
@@ -612,7 +612,7 @@
"name": "లావోస్"
},
"LI": {
- "name": "లిక్టెస్టేన్"
+ "name": "లిక్టెన్‌స్టెయిన్"
},
"LT": {
"name": "లిథువేనియా"
@@ -642,7 +642,10 @@
"name": "వియత్నాం"
},
"VE": {
- "name": "వెనుజులా"
+ "name": "వెనిజులా"
+ },
+ "SM": {
+ "name": "శాన్ మారినో"
},
"LK": {
"name": "శ్రీలంక"
@@ -653,9 +656,6 @@
"WS": {
"name": "సమోవా"
},
- "SM": {
- "name": "సాన్ మారినో"
- },
"ST": {
"name": "సావోటోమ్ & ప్రిన్సిపే"
},
@@ -680,32 +680,32 @@
"SR": {
"name": "సూరినామ్"
},
+ "CF": {
+ "name": "సెంట్రల్ ఆఫ్రికన్ రిపబ్లిక్"
+ },
+ "SN": {
+ "name": "సెనెగల్"
+ },
"KN": {
- "name": "సెంట్ కిట్ట్స్ మరియు నెవిస్"
+ "name": "సెయింట్ కిట్స్ మరియు నెవిస్"
},
"PM": {
- "name": "సెంట్ పియెర్ మరియు మికెలాన్"
+ "name": "సెయింట్ పియెర్ మరియు మికెలాన్"
},
"BL": {
- "name": "సెంట్ బర్తేలెమీ"
+ "name": "సెయింట్ బర్తేలెమీ"
},
"MF": {
- "name": "సెంట్ మార్టిన్"
+ "name": "సెయింట్ మార్టిన్"
},
"LC": {
- "name": "సెంట్ లూసియా"
+ "name": "సెయింట్ లూసియా"
},
"VC": {
- "name": "సెంట్ విన్సెంట్ మరియు గ్రెనడీన్స్"
- },
- "CF": {
- "name": "సెంట్రల్ ఆఫ్రికన్ రిపబ్లిక్"
- },
- "SN": {
- "name": "సెనెగల్"
+ "name": "సెయింట్ విన్సెంట్ & గ్రెనడీన్స్"
},
"SH": {
- "name": "సెయింట్ హెలినా"
+ "name": "సెయింట్ హెలెనా"
},
"RS": {
"name": "సెర్బియా"
@@ -738,7 +738,7 @@
"name": "స్వాజిల్యాండ్"
},
"SJ": {
- "name": "స్వాల్బార్డ్ మరియు యాన్ మాయేన్"
+ "name": "స్వాల్‌బార్డ్ & జాన్ మాయెన్"
},
"CH": {
"name": "స్విట్జర్లాండ్"
diff --git a/vendor/commerceguys/intl/resources/country/tg.json b/vendor/commerceguys/intl/resources/country/tg.json
new file mode 100644
index 000000000..dd6afe16c
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/tg.json
@@ -0,0 +1,761 @@
+{
+ "IC": {
+ "name": "Canary Islands"
+ },
+ "BQ": {
+ "name": "Caribbean Netherlands"
+ },
+ "EA": {
+ "name": "Ceuta & Melilla"
+ },
+ "CG": {
+ "name": "Congo - Brazzaville"
+ },
+ "CD": {
+ "name": "Congo - Kinshasa"
+ },
+ "DG": {
+ "name": "Diego Garcia"
+ },
+ "PS": {
+ "name": "Palestinian Territories"
+ },
+ "KR": {
+ "name": "South Korea"
+ },
+ "EH": {
+ "name": "Western Sahara"
+ },
+ "AU": {
+ "name": "Австралия"
+ },
+ "AT": {
+ "name": "Австрия"
+ },
+ "AL": {
+ "name": "Албания"
+ },
+ "DZ": {
+ "name": "Алҷазоир"
+ },
+ "AE": {
+ "name": "Аморатҳои Муттаҳидаи Араб"
+ },
+ "AI": {
+ "name": "Ангилия"
+ },
+ "AO": {
+ "name": "Ангола"
+ },
+ "AD": {
+ "name": "Андорра"
+ },
+ "AQ": {
+ "name": "Антарктида"
+ },
+ "AG": {
+ "name": "Антигуа ва Барбуда"
+ },
+ "SA": {
+ "name": "Арабистони Саудӣ"
+ },
+ "AR": {
+ "name": "Аргентина"
+ },
+ "AM": {
+ "name": "Арманистон"
+ },
+ "AW": {
+ "name": "Аруба"
+ },
+ "AC": {
+ "name": "Асунсон"
+ },
+ "AF": {
+ "name": "Афғонистон"
+ },
+ "ZA": {
+ "name": "Африкаи Ҷанубӣ"
+ },
+ "BS": {
+ "name": "Багам"
+ },
+ "BD": {
+ "name": "Бангладеш"
+ },
+ "BB": {
+ "name": "Барбадос"
+ },
+ "BH": {
+ "name": "Баҳрайн"
+ },
+ "BE": {
+ "name": "Белгия"
+ },
+ "BZ": {
+ "name": "Белиз"
+ },
+ "BY": {
+ "name": "Белорус"
+ },
+ "BJ": {
+ "name": "Бенин"
+ },
+ "BM": {
+ "name": "Бермуда"
+ },
+ "BO": {
+ "name": "Боливия"
+ },
+ "BA": {
+ "name": "Босния ва Ҳерсеговина"
+ },
+ "BW": {
+ "name": "Ботсвана"
+ },
+ "BR": {
+ "name": "Бразилия"
+ },
+ "BN": {
+ "name": "Бруней"
+ },
+ "BG": {
+ "name": "Булғория"
+ },
+ "BF": {
+ "name": "Буркина-Фасо"
+ },
+ "BI": {
+ "name": "Бурунди"
+ },
+ "BT": {
+ "name": "Бутон"
+ },
+ "VU": {
+ "name": "Вануату"
+ },
+ "VE": {
+ "name": "Венесуэла"
+ },
+ "VN": {
+ "name": "Ветнам"
+ },
+ "GA": {
+ "name": "Габон"
+ },
+ "HT": {
+ "name": "Гаити"
+ },
+ "GY": {
+ "name": "Гайана"
+ },
+ "GM": {
+ "name": "Гамбия"
+ },
+ "GH": {
+ "name": "Гана"
+ },
+ "GP": {
+ "name": "Гваделупа"
+ },
+ "GT": {
+ "name": "Гватемала"
+ },
+ "GF": {
+ "name": "Гвианаи Фаронса"
+ },
+ "GN": {
+ "name": "Гвинея"
+ },
+ "GW": {
+ "name": "Гвинея-Бисау"
+ },
+ "GQ": {
+ "name": "Гвинеяи Экваторӣ"
+ },
+ "DE": {
+ "name": "Германия"
+ },
+ "GG": {
+ "name": "Гернси"
+ },
+ "GI": {
+ "name": "Гибралтар"
+ },
+ "HN": {
+ "name": "Гондурас"
+ },
+ "GD": {
+ "name": "Гренада"
+ },
+ "GL": {
+ "name": "Гренландия"
+ },
+ "GU": {
+ "name": "Гуам"
+ },
+ "GE": {
+ "name": "Гурҷистон"
+ },
+ "DK": {
+ "name": "Дания"
+ },
+ "DM": {
+ "name": "Доминика"
+ },
+ "ZM": {
+ "name": "Замбия"
+ },
+ "NZ": {
+ "name": "Зеландияи Нав"
+ },
+ "ZW": {
+ "name": "Зимбабве"
+ },
+ "US": {
+ "name": "Иёлоти Муттаҳида"
+ },
+ "ID": {
+ "name": "Индонезия"
+ },
+ "IE": {
+ "name": "Ирландия"
+ },
+ "IQ": {
+ "name": "Ироқ"
+ },
+ "IS": {
+ "name": "Исландия"
+ },
+ "ES": {
+ "name": "Испания"
+ },
+ "IL": {
+ "name": "Исроил"
+ },
+ "IT": {
+ "name": "Италия"
+ },
+ "CV": {
+ "name": "Кабо-Верде"
+ },
+ "NC": {
+ "name": "Каледонияи Нав"
+ },
+ "KH": {
+ "name": "Камбоҷа"
+ },
+ "CM": {
+ "name": "Камерун"
+ },
+ "CA": {
+ "name": "Канада"
+ },
+ "KE": {
+ "name": "Кения"
+ },
+ "CY": {
+ "name": "Кипр"
+ },
+ "KI": {
+ "name": "Кирибати"
+ },
+ "CO": {
+ "name": "Колумбия"
+ },
+ "KM": {
+ "name": "Комор"
+ },
+ "KP": {
+ "name": "Кореяи Шимолӣ"
+ },
+ "XK": {
+ "name": "Косово"
+ },
+ "CR": {
+ "name": "Коста-Рика"
+ },
+ "CI": {
+ "name": "Кот-д’Ивуар"
+ },
+ "CU": {
+ "name": "Куба"
+ },
+ "CW": {
+ "name": "Кюрасао"
+ },
+ "KZ": {
+ "name": "Қазоқистон"
+ },
+ "IO": {
+ "name": "Қаламрави Британия дар уқёнуси Ҳинд"
+ },
+ "QA": {
+ "name": "Қатар"
+ },
+ "KG": {
+ "name": "Қирғизистон"
+ },
+ "KW": {
+ "name": "Қувайт"
+ },
+ "LA": {
+ "name": "Лаос"
+ },
+ "LV": {
+ "name": "Латвия"
+ },
+ "PL": {
+ "name": "Лаҳистон"
+ },
+ "LS": {
+ "name": "Лесото"
+ },
+ "LR": {
+ "name": "Либерия"
+ },
+ "LY": {
+ "name": "Либия"
+ },
+ "LT": {
+ "name": "Литва"
+ },
+ "LI": {
+ "name": "Лихтенштейн"
+ },
+ "LB": {
+ "name": "Лубнон"
+ },
+ "LU": {
+ "name": "Люксембург"
+ },
+ "MU": {
+ "name": "Маврикий"
+ },
+ "MR": {
+ "name": "Мавритания"
+ },
+ "MG": {
+ "name": "Мадагаскар"
+ },
+ "YT": {
+ "name": "Майотта"
+ },
+ "MO": {
+ "name": "Макао (МММ)"
+ },
+ "MK": {
+ "name": "Мақдун"
+ },
+ "MW": {
+ "name": "Малави"
+ },
+ "MY": {
+ "name": "Малайзия"
+ },
+ "MV": {
+ "name": "Малдив"
+ },
+ "ML": {
+ "name": "Мали"
+ },
+ "MT": {
+ "name": "Малта"
+ },
+ "MA": {
+ "name": "Марокаш"
+ },
+ "MQ": {
+ "name": "Мартиника"
+ },
+ "HU": {
+ "name": "Маҷористон"
+ },
+ "MX": {
+ "name": "Мексика"
+ },
+ "TF": {
+ "name": "Минтақаҳои Ҷанубии Фаронса"
+ },
+ "EG": {
+ "name": "Миср"
+ },
+ "MZ": {
+ "name": "Мозамбик"
+ },
+ "MD": {
+ "name": "Молдова"
+ },
+ "MC": {
+ "name": "Монако"
+ },
+ "MS": {
+ "name": "Монтсеррат"
+ },
+ "MN": {
+ "name": "Муғулистон"
+ },
+ "MM": {
+ "name": "Мянма"
+ },
+ "NA": {
+ "name": "Намибия"
+ },
+ "NR": {
+ "name": "Науру"
+ },
+ "NP": {
+ "name": "Непал"
+ },
+ "NE": {
+ "name": "Нигер"
+ },
+ "NG": {
+ "name": "Нигерия"
+ },
+ "NL": {
+ "name": "Нидерландия"
+ },
+ "NI": {
+ "name": "Никарагуа"
+ },
+ "NU": {
+ "name": "Ниуэ"
+ },
+ "NO": {
+ "name": "Норвегия"
+ },
+ "AZ": {
+ "name": "Озарбойҷон"
+ },
+ "PW": {
+ "name": "Палау"
+ },
+ "PA": {
+ "name": "Панама"
+ },
+ "PG": {
+ "name": "Папуа Гвинеяи Нав"
+ },
+ "PY": {
+ "name": "Парагвай"
+ },
+ "PE": {
+ "name": "Перу"
+ },
+ "PK": {
+ "name": "Покистон"
+ },
+ "PF": {
+ "name": "Полинезияи Фаронса"
+ },
+ "PT": {
+ "name": "Португалия"
+ },
+ "PR": {
+ "name": "Пуэрто-Рико"
+ },
+ "RE": {
+ "name": "Реюнион"
+ },
+ "RW": {
+ "name": "Руанда"
+ },
+ "RO": {
+ "name": "Руминия"
+ },
+ "RU": {
+ "name": "Русия"
+ },
+ "WS": {
+ "name": "Самоа"
+ },
+ "AS": {
+ "name": "Самоаи Америка"
+ },
+ "ST": {
+ "name": "Сан Томе ва Принсипи"
+ },
+ "SM": {
+ "name": "Сан-Марино"
+ },
+ "SZ": {
+ "name": "Свазиленд"
+ },
+ "SC": {
+ "name": "Сейшел"
+ },
+ "SN": {
+ "name": "Сенегал"
+ },
+ "SH": {
+ "name": "Сент Елена"
+ },
+ "BL": {
+ "name": "Сент-Бартелми"
+ },
+ "VC": {
+ "name": "Сент-Винсент ва Гренадина"
+ },
+ "KN": {
+ "name": "Сент-Китс ва Невис"
+ },
+ "LC": {
+ "name": "Сент-Люсия"
+ },
+ "PM": {
+ "name": "Сент-Пер ва Микелон"
+ },
+ "RS": {
+ "name": "Сербия"
+ },
+ "SL": {
+ "name": "Сиерра-Леоне"
+ },
+ "SG": {
+ "name": "Сингапур"
+ },
+ "SX": {
+ "name": "Синт-Маартен"
+ },
+ "SK": {
+ "name": "Словакия"
+ },
+ "SI": {
+ "name": "Словения"
+ },
+ "SO": {
+ "name": "Сомалӣ"
+ },
+ "SD": {
+ "name": "Судон"
+ },
+ "SS": {
+ "name": "Судони Ҷанубӣ"
+ },
+ "SR": {
+ "name": "Суринам"
+ },
+ "SY": {
+ "name": "Сурия"
+ },
+ "TH": {
+ "name": "Таиланд"
+ },
+ "TW": {
+ "name": "Тайван"
+ },
+ "TZ": {
+ "name": "Танзания"
+ },
+ "TL": {
+ "name": "Тимор-Лесте"
+ },
+ "TG": {
+ "name": "Того"
+ },
+ "TK": {
+ "name": "Токелау"
+ },
+ "TO": {
+ "name": "Тонга"
+ },
+ "TJ": {
+ "name": "Тоҷикистон"
+ },
+ "TT": {
+ "name": "Тринидад ва Тобаго"
+ },
+ "TA": {
+ "name": "Тристан-да-Куня"
+ },
+ "TV": {
+ "name": "Тувалу"
+ },
+ "TN": {
+ "name": "Тунис"
+ },
+ "TR": {
+ "name": "Туркия"
+ },
+ "TM": {
+ "name": "Туркманистон"
+ },
+ "UG": {
+ "name": "Уганда"
+ },
+ "UZ": {
+ "name": "Ӯзбекистон"
+ },
+ "UA": {
+ "name": "Украина"
+ },
+ "OM": {
+ "name": "Умон"
+ },
+ "WF": {
+ "name": "Уоллис ва Футуна"
+ },
+ "JO": {
+ "name": "Урдун"
+ },
+ "UY": {
+ "name": "Уругвай"
+ },
+ "PH": {
+ "name": "Филиппин"
+ },
+ "FI": {
+ "name": "Финляндия"
+ },
+ "FJ": {
+ "name": "Фиҷи"
+ },
+ "FR": {
+ "name": "Франсия"
+ },
+ "CN": {
+ "name": "Хитой"
+ },
+ "HR": {
+ "name": "Хорватия"
+ },
+ "IN": {
+ "name": "Ҳиндустон"
+ },
+ "HK": {
+ "name": "Ҳонконг (МММ)"
+ },
+ "TD": {
+ "name": "Чад"
+ },
+ "ME": {
+ "name": "Черногория"
+ },
+ "CL": {
+ "name": "Чили"
+ },
+ "CX": {
+ "name": "Ҷазираи Крисмас"
+ },
+ "IM": {
+ "name": "Ҷазираи Мэн"
+ },
+ "NF": {
+ "name": "Ҷазираи Норфолк"
+ },
+ "MF": {
+ "name": "Ҷазираи Сент-Мартин"
+ },
+ "AX": {
+ "name": "Ҷазираҳои Аланд"
+ },
+ "VG": {
+ "name": "Ҷазираҳои Виргини Британия"
+ },
+ "VI": {
+ "name": "Ҷазираҳои Виргини ИМА"
+ },
+ "KY": {
+ "name": "Ҷазираҳои Кайман"
+ },
+ "CC": {
+ "name": "Ҷазираҳои Кокос (Килинг)"
+ },
+ "CK": {
+ "name": "Ҷазираҳои Кук"
+ },
+ "MP": {
+ "name": "Ҷазираҳои Марианаи Шимолӣ"
+ },
+ "MH": {
+ "name": "Ҷазираҳои Маршалл"
+ },
+ "PN": {
+ "name": "Ҷазираҳои Питкейрн"
+ },
+ "SB": {
+ "name": "Ҷазираҳои Соломон"
+ },
+ "TC": {
+ "name": "Ҷазираҳои Теркс ва Кайкос"
+ },
+ "FO": {
+ "name": "Ҷазираҳои Фарер"
+ },
+ "FK": {
+ "name": "Ҷазираҳои Фолкленд"
+ },
+ "UM": {
+ "name": "Ҷазираҳои Хурди Дурдасти ИМА"
+ },
+ "JE": {
+ "name": "Ҷерси"
+ },
+ "DJ": {
+ "name": "Ҷибути"
+ },
+ "GS": {
+ "name": "Ҷорҷияи Ҷанубӣ ва Ҷазираҳои Сандвич"
+ },
+ "CF": {
+ "name": "Ҷумҳурии Африқои Марказӣ"
+ },
+ "DO": {
+ "name": "Ҷумҳурии Доминикан"
+ },
+ "CZ": {
+ "name": "Ҷумҳурии Чех"
+ },
+ "VA": {
+ "name": "Шаҳри Вотикон"
+ },
+ "CH": {
+ "name": "Швейтсария"
+ },
+ "SE": {
+ "name": "Шветсия"
+ },
+ "GB": {
+ "name": "Шоҳигарии Муттаҳида"
+ },
+ "SJ": {
+ "name": "Шпитсберген ва Ян Майен"
+ },
+ "LK": {
+ "name": "Шри-Ланка"
+ },
+ "FM": {
+ "name": "Штатҳои Федеративии Микронезия"
+ },
+ "EC": {
+ "name": "Эквадор"
+ },
+ "SV": {
+ "name": "Эл-Салвадор"
+ },
+ "ER": {
+ "name": "Эритрея"
+ },
+ "IR": {
+ "name": "Эрон"
+ },
+ "EE": {
+ "name": "Эстония"
+ },
+ "ET": {
+ "name": "Эфиопия"
+ },
+ "GR": {
+ "name": "Юнон"
+ },
+ "JM": {
+ "name": "Ямайка"
+ },
+ "YE": {
+ "name": "Яман"
+ },
+ "JP": {
+ "name": "Япония"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/th.json b/vendor/commerceguys/intl/resources/country/th.json
index 91124bec9..d7888e136 100644
--- a/vendor/commerceguys/intl/resources/country/th.json
+++ b/vendor/commerceguys/intl/resources/country/th.json
@@ -75,10 +75,10 @@
"name": "เขตปกครองพิเศษฮ่องกงแห่งสาธารณรัฐประชาชนจีน"
},
"CD": {
- "name": "คองโก-กินชาซา"
+ "name": "คองโก - กินชาซา"
},
"CG": {
- "name": "คองโก-บราซซาวิล"
+ "name": "คองโก - บราซซาวิล"
},
"KM": {
"name": "คอโมโรส"
@@ -149,8 +149,11 @@
"CL": {
"name": "ชิลี"
},
+ "CZ": {
+ "name": "เช็ก"
+ },
"SM": {
- "name": "ซานมารีโน"
+ "name": "ซานมาริโน"
},
"WS": {
"name": "ซามัว"
@@ -161,6 +164,9 @@
"EH": {
"name": "ซาฮาราตะวันตก"
},
+ "SX": {
+ "name": "ซินต์มาร์เทน"
+ },
"ZW": {
"name": "ซิมบับเว"
},
@@ -186,9 +192,6 @@
"name": "เซนต์บาร์เธเลมี"
},
"MF": {
- "name": "เซนต์มาติน"
- },
- "SX": {
"name": "เซนต์มาร์ติน"
},
"LC": {
@@ -273,7 +276,7 @@
"name": "ไต้หวัน"
},
"TA": {
- "name": "ทริสตัน เดอ คูนา"
+ "name": "ทริสตันดาคูนา"
},
"TJ": {
"name": "ทาจิกิสถาน"
@@ -590,9 +593,6 @@
"GB": {
"name": "สหราชอาณาจักร"
},
- "CZ": {
- "name": "สาธารณรัฐเช็ก"
- },
"DO": {
"name": "สาธารณรัฐโดมินิกัน"
},
diff --git a/vendor/commerceguys/intl/resources/country/ti.json b/vendor/commerceguys/intl/resources/country/ti.json
new file mode 100644
index 000000000..ffd50295a
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/ti.json
@@ -0,0 +1,761 @@
+{
+ "HU": {
+ "name": "ሀንጋሪ"
+ },
+ "HT": {
+ "name": "ሀይቲ"
+ },
+ "IN": {
+ "name": "ህንዲ"
+ },
+ "HN": {
+ "name": "ሆንዱራስ"
+ },
+ "HK": {
+ "name": "ሆንግ ኮንግ"
+ },
+ "LU": {
+ "name": "ሉክሰምበርግ"
+ },
+ "LY": {
+ "name": "ሊቢያ"
+ },
+ "LB": {
+ "name": "ሊባኖስ"
+ },
+ "LT": {
+ "name": "ሊቱዌኒያ"
+ },
+ "LI": {
+ "name": "ሊችተንስታይን"
+ },
+ "LV": {
+ "name": "ላትቪያ"
+ },
+ "LA": {
+ "name": "ላኦስ"
+ },
+ "LR": {
+ "name": "ላይቤሪያ"
+ },
+ "LS": {
+ "name": "ሌሶቶ"
+ },
+ "AE": {
+ "name": "ሕቡራት ኢማራት ዓረብ"
+ },
+ "FM": {
+ "name": "ሚክሮኔዢያ"
+ },
+ "ML": {
+ "name": "ማሊ"
+ },
+ "MW": {
+ "name": "ማላዊ"
+ },
+ "MY": {
+ "name": "ማሌዢያ"
+ },
+ "MT": {
+ "name": "ማልታ"
+ },
+ "MV": {
+ "name": "ማልዲቭስ"
+ },
+ "MU": {
+ "name": "ማሩሸስ"
+ },
+ "MH": {
+ "name": "ማርሻል አይላንድ"
+ },
+ "MQ": {
+ "name": "ማርቲኒክ"
+ },
+ "CF": {
+ "name": "ማእከላይ ኣፍሪቃ ሪፓብሊክ"
+ },
+ "MK": {
+ "name": "ማከዶኒያ"
+ },
+ "MO": {
+ "name": "ማካዎ"
+ },
+ "MM": {
+ "name": "ማያንማር"
+ },
+ "MG": {
+ "name": "ማዳጋስካር"
+ },
+ "MX": {
+ "name": "ሜክሲኮ"
+ },
+ "YT": {
+ "name": "ሜይኦቴ"
+ },
+ "PS": {
+ "name": "ምምሕዳር ፍልስጤም"
+ },
+ "TL": {
+ "name": "ምብራቕ ቲሞር"
+ },
+ "EH": {
+ "name": "ምዕራባዊ ሳህራ"
+ },
+ "MD": {
+ "name": "ሞልዶቫ"
+ },
+ "MR": {
+ "name": "ሞሪቴኒያ"
+ },
+ "MA": {
+ "name": "ሞሮኮ"
+ },
+ "MC": {
+ "name": "ሞናኮ"
+ },
+ "ME": {
+ "name": "ሞንቴኔግሮ"
+ },
+ "MS": {
+ "name": "ሞንትሴራት"
+ },
+ "MN": {
+ "name": "ሞንጎሊያ"
+ },
+ "MZ": {
+ "name": "ሞዛምቢክ"
+ },
+ "RW": {
+ "name": "ሩዋንዳ"
+ },
+ "RE": {
+ "name": "ሪዩኒየን"
+ },
+ "RU": {
+ "name": "ራሺያ"
+ },
+ "RO": {
+ "name": "ሮሜኒያ"
+ },
+ "SB": {
+ "name": "ሰሎሞን ደሴት"
+ },
+ "KP": {
+ "name": "ሰሜን ኮሪያ"
+ },
+ "RS": {
+ "name": "ሰርቢያ"
+ },
+ "SO": {
+ "name": "ሱማሌ"
+ },
+ "SR": {
+ "name": "ሱሪናም"
+ },
+ "SZ": {
+ "name": "ሱዋዚላንድ"
+ },
+ "SD": {
+ "name": "ሱዳን"
+ },
+ "LK": {
+ "name": "ሲሪላንካ"
+ },
+ "SY": {
+ "name": "ሲሪያ"
+ },
+ "SC": {
+ "name": "ሲሼልስ"
+ },
+ "SX": {
+ "name": "ሲንት ማርቲን"
+ },
+ "SG": {
+ "name": "ሲንጋፖር"
+ },
+ "EA": {
+ "name": "ሲውታን ሜሊላን"
+ },
+ "WS": {
+ "name": "ሳሞአ"
+ },
+ "SM": {
+ "name": "ሳን ማሪኖ"
+ },
+ "ST": {
+ "name": "ሳኦ ቶሜን ፕሪንሲፔን"
+ },
+ "CY": {
+ "name": "ሳይፕረስ"
+ },
+ "SL": {
+ "name": "ሴራሊዮን"
+ },
+ "SN": {
+ "name": "ሴኔጋል"
+ },
+ "SH": {
+ "name": "ሴንት ሄለና"
+ },
+ "LC": {
+ "name": "ሴንት ሉቺያ"
+ },
+ "MF": {
+ "name": "ሴንት ማርቲን"
+ },
+ "SK": {
+ "name": "ስሎቫኪያ"
+ },
+ "SI": {
+ "name": "ስሎቬኒያ"
+ },
+ "SJ": {
+ "name": "ስቫልባርድን ዣን ማየን ደሴታት"
+ },
+ "CH": {
+ "name": "ስዊዘርላንድ"
+ },
+ "SE": {
+ "name": "ስዊድን"
+ },
+ "SA": {
+ "name": "ስዑዲ ዓረብ"
+ },
+ "ES": {
+ "name": "ስፔን"
+ },
+ "QA": {
+ "name": "ቀጠር"
+ },
+ "BL": {
+ "name": "ቅዱስ ባርተለሚይ"
+ },
+ "VC": {
+ "name": "ቅዱስ ቪንሴንትን ግሬናዲንስን"
+ },
+ "KN": {
+ "name": "ቅዱስ ኪትስን ኔቪስን"
+ },
+ "PM": {
+ "name": "ቅዱስ ፒዬርን ሚኩኤሎን"
+ },
+ "BT": {
+ "name": "ቡህታን"
+ },
+ "BG": {
+ "name": "ቡልጌሪያ"
+ },
+ "BF": {
+ "name": "ቡርኪና ፋሶ"
+ },
+ "GW": {
+ "name": "ቢሳዎ"
+ },
+ "BS": {
+ "name": "ባሃማስ"
+ },
+ "BH": {
+ "name": "ባህሬን"
+ },
+ "BB": {
+ "name": "ባርቤዶስ"
+ },
+ "BD": {
+ "name": "ባንግላዲሽ"
+ },
+ "BZ": {
+ "name": "ቤሊዘ"
+ },
+ "BY": {
+ "name": "ቤላሩስ"
+ },
+ "BE": {
+ "name": "ቤልጄም"
+ },
+ "BM": {
+ "name": "ቤርሙዳ"
+ },
+ "BJ": {
+ "name": "ቤኒን"
+ },
+ "BN": {
+ "name": "ብሩኒ"
+ },
+ "BI": {
+ "name": "ብሩንዲ"
+ },
+ "BR": {
+ "name": "ብራዚል"
+ },
+ "BO": {
+ "name": "ቦሊቪያ"
+ },
+ "BW": {
+ "name": "ቦትስዋና"
+ },
+ "BA": {
+ "name": "ቦዝንያን ሄርዘጎቪናን"
+ },
+ "VI": {
+ "name": "ቨርጂን ደሴታት ኣሜሪካ"
+ },
+ "VG": {
+ "name": "ቨርጂን ደሴታት እንግሊዝ"
+ },
+ "VA": {
+ "name": "ቫቲካን"
+ },
+ "VU": {
+ "name": "ቫኑአቱ"
+ },
+ "VN": {
+ "name": "ቬትናም"
+ },
+ "VE": {
+ "name": "ቬንዙዌላ"
+ },
+ "TR": {
+ "name": "ቱርክ"
+ },
+ "TM": {
+ "name": "ቱርክሜኒስታን"
+ },
+ "TV": {
+ "name": "ቱቫሉ"
+ },
+ "TN": {
+ "name": "ቱኒዚያ"
+ },
+ "TZ": {
+ "name": "ታንዛኒያ"
+ },
+ "TH": {
+ "name": "ታይላንድ"
+ },
+ "TW": {
+ "name": "ታይዋን"
+ },
+ "TJ": {
+ "name": "ታጃኪስታን"
+ },
+ "TA": {
+ "name": "ትሪስን ዳ ኩንሃ"
+ },
+ "TT": {
+ "name": "ትሪኒዳድን ቶባጎን"
+ },
+ "TO": {
+ "name": "ቶንጋ"
+ },
+ "TK": {
+ "name": "ቶክላው"
+ },
+ "TG": {
+ "name": "ቶጐ"
+ },
+ "CL": {
+ "name": "ቺሊ"
+ },
+ "CN": {
+ "name": "ቻይና"
+ },
+ "CZ": {
+ "name": "ቼክ ሪፓብሊክ"
+ },
+ "NU": {
+ "name": "ኒኡይ"
+ },
+ "NI": {
+ "name": "ኒካራጓ"
+ },
+ "NC": {
+ "name": "ኒው ካሌዶኒያ"
+ },
+ "NZ": {
+ "name": "ኒው ዚላንድ"
+ },
+ "NE": {
+ "name": "ኒጀር"
+ },
+ "NA": {
+ "name": "ናሚቢያ"
+ },
+ "NR": {
+ "name": "ናኡሩ"
+ },
+ "IO": {
+ "name": "ናይ ብሪጣንያ ህንዳዊ ውቅያኖስ ግዝኣት"
+ },
+ "AS": {
+ "name": "ናይ ኣሜሪካ ሳሞኣ"
+ },
+ "UM": {
+ "name": "ናይ ኣሜሪካ ፍንትት ዝበሉ ደሴታት"
+ },
+ "TF": {
+ "name": "ናይ ፈረንሳይ ደቡባዊ ግዝኣታት"
+ },
+ "GF": {
+ "name": "ናይ ፈረንሳይ ጉይና"
+ },
+ "PF": {
+ "name": "ናይ ፈረንሳይ ፖሊነዝያ"
+ },
+ "NG": {
+ "name": "ናይጄሪያ"
+ },
+ "NL": {
+ "name": "ኔዘርላንድስ"
+ },
+ "NP": {
+ "name": "ኔፓል"
+ },
+ "NO": {
+ "name": "ኖርዌ"
+ },
+ "NF": {
+ "name": "ኖርፎልክ ደሴት"
+ },
+ "AL": {
+ "name": "አልባኒያ"
+ },
+ "DZ": {
+ "name": "አልጄሪያ"
+ },
+ "US": {
+ "name": "አሜሪካ"
+ },
+ "AW": {
+ "name": "አሩባ"
+ },
+ "AM": {
+ "name": "አርሜኒያ"
+ },
+ "AR": {
+ "name": "አርጀንቲና"
+ },
+ "AC": {
+ "name": "አሴንሽን ደሴት"
+ },
+ "AQ": {
+ "name": "አንታርክቲካ"
+ },
+ "AD": {
+ "name": "አንዶራ"
+ },
+ "AI": {
+ "name": "አንጉኢላ"
+ },
+ "AO": {
+ "name": "አንጐላ"
+ },
+ "AU": {
+ "name": "አውስትሬሊያ"
+ },
+ "AZ": {
+ "name": "አዘርባጃን"
+ },
+ "IE": {
+ "name": "አየርላንድ"
+ },
+ "IM": {
+ "name": "አይል ኦፍ ማን"
+ },
+ "IS": {
+ "name": "አይስላንድ"
+ },
+ "AF": {
+ "name": "አፍጋኒስታን"
+ },
+ "UY": {
+ "name": "ኡራጓይ"
+ },
+ "IQ": {
+ "name": "ኢራቅ"
+ },
+ "IR": {
+ "name": "ኢራን"
+ },
+ "ET": {
+ "name": "ኢትዮጵያ"
+ },
+ "ID": {
+ "name": "ኢንዶኔዢያ"
+ },
+ "GQ": {
+ "name": "ኢኳቶሪያል ጊኒ"
+ },
+ "EC": {
+ "name": "ኢኳዶር"
+ },
+ "AG": {
+ "name": "ኣንቲጓን ባሩዳን"
+ },
+ "SV": {
+ "name": "ኤል ሳልቫዶር"
+ },
+ "ER": {
+ "name": "ኤርትራ"
+ },
+ "EE": {
+ "name": "ኤስቶኒያ"
+ },
+ "IL": {
+ "name": "እስራኤል"
+ },
+ "GB": {
+ "name": "እንግሊዝ"
+ },
+ "OM": {
+ "name": "ኦማን"
+ },
+ "AT": {
+ "name": "ኦስትሪያ"
+ },
+ "CW": {
+ "name": "ኩራካዎ"
+ },
+ "CU": {
+ "name": "ኩባ"
+ },
+ "KI": {
+ "name": "ኪሪባቲ"
+ },
+ "KG": {
+ "name": "ኪርጂስታን"
+ },
+ "CM": {
+ "name": "ካሜሩን"
+ },
+ "KH": {
+ "name": "ካምቦዲያ"
+ },
+ "BQ": {
+ "name": "ካሪቢያን ኔዘርላንድስ"
+ },
+ "CA": {
+ "name": "ካናዳ"
+ },
+ "KZ": {
+ "name": "ካዛኪስታን"
+ },
+ "KY": {
+ "name": "ካይማን ደሴቶች"
+ },
+ "KE": {
+ "name": "ኬንያ"
+ },
+ "CV": {
+ "name": "ኬፕ ቬርዴ"
+ },
+ "HR": {
+ "name": "ክሮኤሽያ"
+ },
+ "KW": {
+ "name": "ክዌት"
+ },
+ "CO": {
+ "name": "ኮሎምቢያ"
+ },
+ "KM": {
+ "name": "ኮሞሮስ"
+ },
+ "CR": {
+ "name": "ኮስታ ሪካ"
+ },
+ "XK": {
+ "name": "ኮሶቮ"
+ },
+ "CI": {
+ "name": "ኮት ዲቯር"
+ },
+ "CD": {
+ "name": "ኮንጎ"
+ },
+ "CG": {
+ "name": "ኮንጎ ሪፓብሊክ"
+ },
+ "CC": {
+ "name": "ኮኮስ ኬሊንግ ደሴቶች"
+ },
+ "WF": {
+ "name": "ዋሊስን ፉቱናን"
+ },
+ "ZW": {
+ "name": "ዚምቧቤ"
+ },
+ "ZM": {
+ "name": "ዛምቢያ"
+ },
+ "YE": {
+ "name": "የመን"
+ },
+ "UA": {
+ "name": "ዩክሬን"
+ },
+ "UZ": {
+ "name": "ዩዝበኪስታን"
+ },
+ "UG": {
+ "name": "ዩጋንዳ"
+ },
+ "MP": {
+ "name": "ደሴታት ሰሜናዊ ማሪያና"
+ },
+ "TC": {
+ "name": "ደሴታት ቱርክን ካይኮስን"
+ },
+ "AX": {
+ "name": "ደሴታት ኣላንድ"
+ },
+ "CK": {
+ "name": "ደሴታት ኩክ"
+ },
+ "IC": {
+ "name": "ደሴታት ካናሪ"
+ },
+ "CX": {
+ "name": "ደሴታት ክሪስትማስ"
+ },
+ "GS": {
+ "name": "ደሴታት ደቡብ ጆርጂያን ደቡድ ሳንድዊችን"
+ },
+ "FO": {
+ "name": "ደሴታት ፋራኦ"
+ },
+ "FK": {
+ "name": "ደሴታት ፎክላንድ"
+ },
+ "SS": {
+ "name": "ደቡብ ሱዳን"
+ },
+ "ZA": {
+ "name": "ደቡብ አፍሪካ"
+ },
+ "KR": {
+ "name": "ደቡብ ኮሪያ"
+ },
+ "DG": {
+ "name": "ዲየጎ ጋርሺያ"
+ },
+ "DK": {
+ "name": "ዴንማርክ"
+ },
+ "DO": {
+ "name": "ዶመኒካ ሪፓብሊክ"
+ },
+ "DM": {
+ "name": "ዶሚኒካ"
+ },
+ "DE": {
+ "name": "ጀርመን"
+ },
+ "JE": {
+ "name": "ጀርሲ"
+ },
+ "DJ": {
+ "name": "ጂቡቲ"
+ },
+ "JM": {
+ "name": "ጃማይካ"
+ },
+ "JP": {
+ "name": "ጃፓን"
+ },
+ "JO": {
+ "name": "ጆርዳን"
+ },
+ "GE": {
+ "name": "ጆርጂያ"
+ },
+ "GG": {
+ "name": "ገርንሲ"
+ },
+ "GU": {
+ "name": "ጉዋም"
+ },
+ "GT": {
+ "name": "ጉዋቲማላ"
+ },
+ "GP": {
+ "name": "ጉዋደሉፕ"
+ },
+ "GY": {
+ "name": "ጉያና"
+ },
+ "GI": {
+ "name": "ጊብራልታር"
+ },
+ "GN": {
+ "name": "ጊኒ"
+ },
+ "GM": {
+ "name": "ጋምቢያ"
+ },
+ "GA": {
+ "name": "ጋቦን"
+ },
+ "GH": {
+ "name": "ጋና"
+ },
+ "GL": {
+ "name": "ግሪንላንድ"
+ },
+ "GR": {
+ "name": "ግሪክ"
+ },
+ "GD": {
+ "name": "ግሬናዳ"
+ },
+ "EG": {
+ "name": "ግብጽ"
+ },
+ "IT": {
+ "name": "ጣሊያን"
+ },
+ "TD": {
+ "name": "ጫድ"
+ },
+ "FR": {
+ "name": "ፈረንሳይ"
+ },
+ "PH": {
+ "name": "ፊሊፒንስ"
+ },
+ "FI": {
+ "name": "ፊንላንድ"
+ },
+ "FJ": {
+ "name": "ፊጂ"
+ },
+ "PN": {
+ "name": "ፒትካኢርን"
+ },
+ "PW": {
+ "name": "ፓላው"
+ },
+ "PY": {
+ "name": "ፓራጓይ"
+ },
+ "PA": {
+ "name": "ፓናማ"
+ },
+ "PK": {
+ "name": "ፓኪስታን"
+ },
+ "PG": {
+ "name": "ፓፑዋ ኒው ጊኒ"
+ },
+ "PE": {
+ "name": "ፔሩ"
+ },
+ "PL": {
+ "name": "ፖላንድ"
+ },
+ "PT": {
+ "name": "ፖርቱጋል"
+ },
+ "PR": {
+ "name": "ፖርታ ሪኮ"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/tk.json b/vendor/commerceguys/intl/resources/country/tk.json
new file mode 100644
index 000000000..8ea77385d
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/tk.json
@@ -0,0 +1,761 @@
+{
+ "UM": {
+ "name": "ABŞ-nyň daşarky adalary"
+ },
+ "VI": {
+ "name": "ABŞ-nyň Wirgin adalary"
+ },
+ "AX": {
+ "name": "Aland adalary"
+ },
+ "AL": {
+ "name": "Albaniýa"
+ },
+ "DZ": {
+ "name": "Alžir"
+ },
+ "AS": {
+ "name": "Amerikan Samoasy"
+ },
+ "US": {
+ "name": "Amerikanyň Birleşen Ştatlary"
+ },
+ "AD": {
+ "name": "Andorra"
+ },
+ "AI": {
+ "name": "Angilýa"
+ },
+ "AO": {
+ "name": "Angola"
+ },
+ "AQ": {
+ "name": "Antarktika"
+ },
+ "AG": {
+ "name": "Antigua we Barbuda"
+ },
+ "AR": {
+ "name": "Argentina"
+ },
+ "AW": {
+ "name": "Aruba"
+ },
+ "AU": {
+ "name": "Awstraliýa"
+ },
+ "AT": {
+ "name": "Awstriýa"
+ },
+ "AZ": {
+ "name": "Azerbaýjan"
+ },
+ "BS": {
+ "name": "Bagama adalary"
+ },
+ "BH": {
+ "name": "Bahreýn"
+ },
+ "BD": {
+ "name": "Bangladeş"
+ },
+ "BB": {
+ "name": "Barbadow"
+ },
+ "BY": {
+ "name": "Belarus"
+ },
+ "BE": {
+ "name": "Belgiýa"
+ },
+ "BZ": {
+ "name": "Beliz"
+ },
+ "BJ": {
+ "name": "Benin"
+ },
+ "BM": {
+ "name": "Bermuda"
+ },
+ "AC": {
+ "name": "Beýgeliş adasy"
+ },
+ "AE": {
+ "name": "Birleşen Arap Emirlikleri"
+ },
+ "GB": {
+ "name": "Birleşen Patyşalyk"
+ },
+ "BG": {
+ "name": "Bolgariýa"
+ },
+ "BO": {
+ "name": "Boliwiýa"
+ },
+ "BA": {
+ "name": "Bosniýa we Gersegowina"
+ },
+ "BW": {
+ "name": "Botswana"
+ },
+ "BR": {
+ "name": "Braziliýa"
+ },
+ "VG": {
+ "name": "Britan Wirgin adalary"
+ },
+ "IO": {
+ "name": "Britaniýanyň Hint okeanyndaky territoriýalary"
+ },
+ "BN": {
+ "name": "Bruneý"
+ },
+ "BF": {
+ "name": "Burkina-Faso"
+ },
+ "BI": {
+ "name": "Burundi"
+ },
+ "BT": {
+ "name": "Butan"
+ },
+ "TD": {
+ "name": "Çad"
+ },
+ "CZ": {
+ "name": "Çehiýa"
+ },
+ "CL": {
+ "name": "Çili"
+ },
+ "DK": {
+ "name": "Daniýa"
+ },
+ "KP": {
+ "name": "Demirgazyk Koreýa"
+ },
+ "MP": {
+ "name": "Demirgazyk Mariana adalary"
+ },
+ "DG": {
+ "name": "Diýego-Garsiýa"
+ },
+ "DM": {
+ "name": "Dominika"
+ },
+ "DO": {
+ "name": "Dominikan Respublikasy"
+ },
+ "ET": {
+ "name": "Efiopiýa"
+ },
+ "EC": {
+ "name": "Ekwador"
+ },
+ "GQ": {
+ "name": "Ekwatorial Gwineýa"
+ },
+ "ER": {
+ "name": "Eritreýa"
+ },
+ "AM": {
+ "name": "Ermenistan"
+ },
+ "EE": {
+ "name": "Estoniýa"
+ },
+ "IR": {
+ "name": "Eýran"
+ },
+ "FO": {
+ "name": "Farer adalary"
+ },
+ "FJ": {
+ "name": "Fiji"
+ },
+ "PH": {
+ "name": "Filippinler"
+ },
+ "FI": {
+ "name": "Finlandiýa"
+ },
+ "FK": {
+ "name": "Folklend adalary"
+ },
+ "FR": {
+ "name": "Fransiýa"
+ },
+ "TF": {
+ "name": "Fransuz günorta territoriýalary"
+ },
+ "GF": {
+ "name": "Fransuz Gwianasy"
+ },
+ "PF": {
+ "name": "Fransuz Polineziýasy"
+ },
+ "GA": {
+ "name": "Gabon"
+ },
+ "HT": {
+ "name": "Gaiti"
+ },
+ "GM": {
+ "name": "Gambiýa"
+ },
+ "GH": {
+ "name": "Gana"
+ },
+ "GY": {
+ "name": "Gaýana"
+ },
+ "KZ": {
+ "name": "Gazagystan"
+ },
+ "DE": {
+ "name": "Germaniýa"
+ },
+ "GG": {
+ "name": "Gernsi"
+ },
+ "GI": {
+ "name": "Gibraltar"
+ },
+ "HN": {
+ "name": "Gonduras"
+ },
+ "HK": {
+ "name": "Gonkong AAS Hytaý"
+ },
+ "GD": {
+ "name": "Grenada"
+ },
+ "GL": {
+ "name": "Grenlandiýa"
+ },
+ "GR": {
+ "name": "Gresiýa"
+ },
+ "GE": {
+ "name": "Gruziýa"
+ },
+ "GU": {
+ "name": "Guam"
+ },
+ "EH": {
+ "name": "Günbatar Sahara"
+ },
+ "ZA": {
+ "name": "Günorta Afrika"
+ },
+ "GS": {
+ "name": "Günorta Georgiýa we Günorta Sendwiç adasy"
+ },
+ "KR": {
+ "name": "Günorta Koreýa"
+ },
+ "SS": {
+ "name": "Günorta Sudan"
+ },
+ "GP": {
+ "name": "Gwadelupa"
+ },
+ "GT": {
+ "name": "Gwatemala"
+ },
+ "GN": {
+ "name": "Gwineýa"
+ },
+ "GW": {
+ "name": "Gwineýa-Bisau"
+ },
+ "KG": {
+ "name": "Gyrgyzystan"
+ },
+ "IN": {
+ "name": "Hindistan"
+ },
+ "HR": {
+ "name": "Horwatiýa"
+ },
+ "CN": {
+ "name": "Hytaý"
+ },
+ "ID": {
+ "name": "Indoneziýa"
+ },
+ "JO": {
+ "name": "Iordaniýa"
+ },
+ "IE": {
+ "name": "Irlandiýa"
+ },
+ "IS": {
+ "name": "Islandiýa"
+ },
+ "ES": {
+ "name": "Ispaniýa"
+ },
+ "IT": {
+ "name": "Italiýa"
+ },
+ "JE": {
+ "name": "Jersi"
+ },
+ "DJ": {
+ "name": "Jibuti"
+ },
+ "CV": {
+ "name": "Kabo-Werde"
+ },
+ "KH": {
+ "name": "Kamboja"
+ },
+ "CM": {
+ "name": "Kamerun"
+ },
+ "CA": {
+ "name": "Kanada"
+ },
+ "IC": {
+ "name": "Kanar adalary"
+ },
+ "BQ": {
+ "name": "Karib Niderlandy"
+ },
+ "QA": {
+ "name": "Katar"
+ },
+ "KY": {
+ "name": "Kaýman adalary"
+ },
+ "KE": {
+ "name": "Keniýa"
+ },
+ "SH": {
+ "name": "Keramatly Ýelena adasy"
+ },
+ "CY": {
+ "name": "Kipr"
+ },
+ "KI": {
+ "name": "Kiribati"
+ },
+ "CC": {
+ "name": "Kokos (Kiling) adalary"
+ },
+ "CO": {
+ "name": "Kolumbiýa"
+ },
+ "KM": {
+ "name": "Komor Adalary"
+ },
+ "CG": {
+ "name": "Kongo - Brazzawil"
+ },
+ "CD": {
+ "name": "Kongo - Kinşasa"
+ },
+ "XK": {
+ "name": "Kosowo"
+ },
+ "CR": {
+ "name": "Kosta-Rika"
+ },
+ "CI": {
+ "name": "Kot-d’Iwuar"
+ },
+ "CU": {
+ "name": "Kuba"
+ },
+ "CK": {
+ "name": "Kuk adalary"
+ },
+ "KW": {
+ "name": "Kuweýt"
+ },
+ "CW": {
+ "name": "Kýurasao"
+ },
+ "LA": {
+ "name": "Laos"
+ },
+ "LV": {
+ "name": "Latwiýa"
+ },
+ "LS": {
+ "name": "Lesoto"
+ },
+ "LR": {
+ "name": "Liberiýa"
+ },
+ "LI": {
+ "name": "Lihtenşteýn"
+ },
+ "LT": {
+ "name": "Litwa"
+ },
+ "LB": {
+ "name": "Liwan"
+ },
+ "LY": {
+ "name": "Liwiýa"
+ },
+ "LU": {
+ "name": "Lýuksemburg"
+ },
+ "MG": {
+ "name": "Madagaskar"
+ },
+ "MO": {
+ "name": "Makau AAS Hytaý"
+ },
+ "MK": {
+ "name": "Makedoniýa"
+ },
+ "MW": {
+ "name": "Malawi"
+ },
+ "MY": {
+ "name": "Malaýziýa"
+ },
+ "MV": {
+ "name": "Maldiwler"
+ },
+ "ML": {
+ "name": "Mali"
+ },
+ "MT": {
+ "name": "Malta"
+ },
+ "MA": {
+ "name": "Marokko"
+ },
+ "MH": {
+ "name": "Marşall adalary"
+ },
+ "MQ": {
+ "name": "Martinika"
+ },
+ "MU": {
+ "name": "Mawrikiý"
+ },
+ "MR": {
+ "name": "Mawritaniýa"
+ },
+ "YT": {
+ "name": "Maýotta"
+ },
+ "MX": {
+ "name": "Meksika"
+ },
+ "IM": {
+ "name": "Men adasy"
+ },
+ "FM": {
+ "name": "Mikroneziýa"
+ },
+ "MD": {
+ "name": "Moldowa"
+ },
+ "MC": {
+ "name": "Monako"
+ },
+ "MN": {
+ "name": "Mongoliýa"
+ },
+ "MS": {
+ "name": "Monserrat"
+ },
+ "ME": {
+ "name": "Montenegro"
+ },
+ "MZ": {
+ "name": "Mozambik"
+ },
+ "EG": {
+ "name": "Müsür"
+ },
+ "MM": {
+ "name": "Mýanma (Burma)"
+ },
+ "NA": {
+ "name": "Namibiýa"
+ },
+ "NR": {
+ "name": "Nauru"
+ },
+ "NP": {
+ "name": "Nepal"
+ },
+ "NL": {
+ "name": "Niderlandiýa"
+ },
+ "NE": {
+ "name": "Niger"
+ },
+ "NG": {
+ "name": "Nigeriýa"
+ },
+ "NI": {
+ "name": "Nikaragua"
+ },
+ "NU": {
+ "name": "Niue"
+ },
+ "NF": {
+ "name": "Norfolk adasy"
+ },
+ "NO": {
+ "name": "Norwegiýa"
+ },
+ "OM": {
+ "name": "Oman"
+ },
+ "CF": {
+ "name": "Orta Afrika Respublikasy"
+ },
+ "AF": {
+ "name": "Owganystan"
+ },
+ "UZ": {
+ "name": "Özbegistan"
+ },
+ "PK": {
+ "name": "Pakistan"
+ },
+ "PW": {
+ "name": "Palau"
+ },
+ "PS": {
+ "name": "Palestina territoriýasy"
+ },
+ "PA": {
+ "name": "Panama"
+ },
+ "PG": {
+ "name": "Papua - Täze Gwineýa"
+ },
+ "PY": {
+ "name": "Paragwaý"
+ },
+ "PE": {
+ "name": "Peru"
+ },
+ "PN": {
+ "name": "Pitkern adalary"
+ },
+ "PL": {
+ "name": "Polşa"
+ },
+ "PT": {
+ "name": "Portugaliýa"
+ },
+ "PR": {
+ "name": "Puerto-Riko"
+ },
+ "RE": {
+ "name": "Reýunýon"
+ },
+ "CX": {
+ "name": "Roždestwo adasy"
+ },
+ "RW": {
+ "name": "Ruanda"
+ },
+ "RO": {
+ "name": "Rumyniýa"
+ },
+ "RU": {
+ "name": "Russiýa"
+ },
+ "SV": {
+ "name": "Salwador"
+ },
+ "WS": {
+ "name": "Samoa"
+ },
+ "SM": {
+ "name": "San-Marino"
+ },
+ "ST": {
+ "name": "San-Tome we Prinsipi"
+ },
+ "SA": {
+ "name": "Saud Arabystany"
+ },
+ "BL": {
+ "name": "Sen-Bartelemi"
+ },
+ "MF": {
+ "name": "Sen-Marten"
+ },
+ "PM": {
+ "name": "Sen-Pýer we Mikelon"
+ },
+ "SN": {
+ "name": "Senegal"
+ },
+ "KN": {
+ "name": "Sent-Kits we Newis"
+ },
+ "LC": {
+ "name": "Sent-Lýusiýa"
+ },
+ "VC": {
+ "name": "Sent-Winsent we Grenadinler"
+ },
+ "RS": {
+ "name": "Serbiýa"
+ },
+ "EA": {
+ "name": "Seuta we Melilýa"
+ },
+ "SC": {
+ "name": "Seýşel Adalary"
+ },
+ "SG": {
+ "name": "Singapur"
+ },
+ "SX": {
+ "name": "Sint-Marten"
+ },
+ "SY": {
+ "name": "Siriýa"
+ },
+ "SK": {
+ "name": "Slowakiýa"
+ },
+ "SI": {
+ "name": "Sloweniýa"
+ },
+ "SB": {
+ "name": "Solomon adalary"
+ },
+ "SO": {
+ "name": "Somali"
+ },
+ "SJ": {
+ "name": "Şpisbergen we Ýan-Maýen"
+ },
+ "LK": {
+ "name": "Şri-Lanka"
+ },
+ "SD": {
+ "name": "Sudan"
+ },
+ "SR": {
+ "name": "Surinam"
+ },
+ "SZ": {
+ "name": "Swazilend"
+ },
+ "SE": {
+ "name": "Şwesiýa"
+ },
+ "CH": {
+ "name": "Şweýsariýa"
+ },
+ "SL": {
+ "name": "Sýerra-Leone"
+ },
+ "TJ": {
+ "name": "Täjigistan"
+ },
+ "TZ": {
+ "name": "Tanzaniýa"
+ },
+ "TH": {
+ "name": "Taýland"
+ },
+ "TW": {
+ "name": "Taýwan"
+ },
+ "NC": {
+ "name": "Täze Kaledoniýa"
+ },
+ "NZ": {
+ "name": "Täze Zelandiýa"
+ },
+ "TC": {
+ "name": "Terks we Kaýkos adalary"
+ },
+ "TL": {
+ "name": "Timor-Leste"
+ },
+ "TG": {
+ "name": "Togo"
+ },
+ "TK": {
+ "name": "Tokelau"
+ },
+ "TO": {
+ "name": "Tonga"
+ },
+ "TT": {
+ "name": "Trinidad we Tobago"
+ },
+ "TA": {
+ "name": "Tristan-da-Kunýa"
+ },
+ "TN": {
+ "name": "Tunis"
+ },
+ "TR": {
+ "name": "Türkiýe"
+ },
+ "TM": {
+ "name": "Türkmenistan"
+ },
+ "TV": {
+ "name": "Tuwalu"
+ },
+ "UG": {
+ "name": "Uganda"
+ },
+ "UA": {
+ "name": "Ukraina"
+ },
+ "WF": {
+ "name": "Uollis we Futuna"
+ },
+ "UY": {
+ "name": "Urugwaý"
+ },
+ "VU": {
+ "name": "Wanuatu"
+ },
+ "VA": {
+ "name": "Watikan"
+ },
+ "VE": {
+ "name": "Wenesuela"
+ },
+ "HU": {
+ "name": "Wengriýa"
+ },
+ "VN": {
+ "name": "Wýetnam"
+ },
+ "JM": {
+ "name": "Ýamaýka"
+ },
+ "JP": {
+ "name": "Ýaponiýa"
+ },
+ "YE": {
+ "name": "Ýemen"
+ },
+ "IQ": {
+ "name": "Yrak"
+ },
+ "IL": {
+ "name": "Ysraýyl"
+ },
+ "ZM": {
+ "name": "Zambiýa"
+ },
+ "ZW": {
+ "name": "Zimbabwe"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/to.json b/vendor/commerceguys/intl/resources/country/to.json
index 38fc7193e..e62a9df5a 100644
--- a/vendor/commerceguys/intl/resources/country/to.json
+++ b/vendor/commerceguys/intl/resources/country/to.json
@@ -164,6 +164,12 @@
"LB": {
"name": "Lepanoni"
},
+ "DO": {
+ "name": "Lepupelika Tominika"
+ },
+ "CF": {
+ "name": "Lepupelika ʻAfilika Lotoloto"
+ },
"LS": {
"name": "Lesoto"
},
@@ -173,15 +179,6 @@
"LI": {
"name": "Likitenisiteini"
},
- "CZ": {
- "name": "Lipapilika Seki"
- },
- "DO": {
- "name": "Lipapilika Tominika"
- },
- "CF": {
- "name": "Lipapilika ʻAfilika Lotoloto"
- },
"LY": {
"name": "Līpia"
},
@@ -228,7 +225,7 @@
"name": "Matakasika"
},
"MQ": {
- "name": "Māteniki"
+ "name": "Mātiniki"
},
"MR": {
"name": "Maulitenia"
@@ -455,6 +452,9 @@
"SA": {
"name": "Saute ʻAlepea"
},
+ "CZ": {
+ "name": "Sēkia"
+ },
"JE": {
"name": "Selusī"
},
@@ -614,15 +614,15 @@
"IS": {
"name": "ʻAisilani"
},
- "DZ": {
- "name": "ʻAisilia"
- },
"AE": {
"name": "ʻAlepea Fakatahataha"
},
"AL": {
"name": "ʻAlipania"
},
+ "DZ": {
+ "name": "ʻAlisilia"
+ },
"AW": {
"name": "ʻAlupa"
},
diff --git a/vendor/commerceguys/intl/resources/country/tr.json b/vendor/commerceguys/intl/resources/country/tr.json
index a2c28fcb4..f3e5510fc 100644
--- a/vendor/commerceguys/intl/resources/country/tr.json
+++ b/vendor/commerceguys/intl/resources/country/tr.json
@@ -1,6 +1,6 @@
{
"UM": {
- "name": "ABD Uzak Adaları"
+ "name": "ABD Küçük Harici Adaları"
},
"VI": {
"name": "ABD Virjin Adaları"
@@ -156,7 +156,7 @@
"name": "Çad"
},
"CZ": {
- "name": "Çek Cumhuriyeti"
+ "name": "Çekya"
},
"CN": {
"name": "Çin"
@@ -261,7 +261,7 @@
"name": "Grönland"
},
"GP": {
- "name": "Guadalupe"
+ "name": "Guadeloupe"
},
"GU": {
"name": "Guam"
@@ -357,7 +357,7 @@
"name": "Karadağ"
},
"BQ": {
- "name": "Karayip Hollanda"
+ "name": "Karayip Hollandası"
},
"QA": {
"name": "Katar"
diff --git a/vendor/commerceguys/intl/resources/country/tt.json b/vendor/commerceguys/intl/resources/country/tt.json
new file mode 100644
index 000000000..c4fe7599a
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/tt.json
@@ -0,0 +1,761 @@
+{
+ "AC": {
+ "name": "Ascension Island"
+ },
+ "IC": {
+ "name": "Canary Islands"
+ },
+ "BQ": {
+ "name": "Caribbean Netherlands"
+ },
+ "EA": {
+ "name": "Ceuta & Melilla"
+ },
+ "CG": {
+ "name": "Congo - Brazzaville"
+ },
+ "CD": {
+ "name": "Congo - Kinshasa"
+ },
+ "DG": {
+ "name": "Diego Garcia"
+ },
+ "MK": {
+ "name": "Macedonia"
+ },
+ "MM": {
+ "name": "Myanmar (Burma)"
+ },
+ "PS": {
+ "name": "Palestinian Territories"
+ },
+ "KR": {
+ "name": "South Korea"
+ },
+ "SH": {
+ "name": "St. Helena"
+ },
+ "TA": {
+ "name": "Tristan da Cunha"
+ },
+ "VA": {
+ "name": "Vatican City"
+ },
+ "EH": {
+ "name": "Western Sahara"
+ },
+ "AU": {
+ "name": "Австралия"
+ },
+ "AT": {
+ "name": "Австрия"
+ },
+ "US": {
+ "name": "АКШ"
+ },
+ "VI": {
+ "name": "АКШ Виргин утраулары"
+ },
+ "UM": {
+ "name": "АКШ Кече Читтәге утраулары"
+ },
+ "AX": {
+ "name": "Аланд утраулары"
+ },
+ "AL": {
+ "name": "Албания"
+ },
+ "DZ": {
+ "name": "Алжир"
+ },
+ "AS": {
+ "name": "Америка Самоасы"
+ },
+ "AI": {
+ "name": "Ангилья"
+ },
+ "AO": {
+ "name": "Ангола"
+ },
+ "AD": {
+ "name": "Андорра"
+ },
+ "AQ": {
+ "name": "Антарктика"
+ },
+ "AG": {
+ "name": "Антигуа һәм Барбуда"
+ },
+ "AR": {
+ "name": "Аргентина"
+ },
+ "AW": {
+ "name": "Аруба"
+ },
+ "AZ": {
+ "name": "Әзәрбайҗан"
+ },
+ "AM": {
+ "name": "Әрмәнстан"
+ },
+ "AF": {
+ "name": "Әфганстан"
+ },
+ "BS": {
+ "name": "Багам утраулары"
+ },
+ "BD": {
+ "name": "Бангладеш"
+ },
+ "BB": {
+ "name": "Барбадос"
+ },
+ "BH": {
+ "name": "Бәхрәйн"
+ },
+ "BY": {
+ "name": "Беларусь"
+ },
+ "BZ": {
+ "name": "Белиз"
+ },
+ "BE": {
+ "name": "Бельгия"
+ },
+ "BJ": {
+ "name": "Бенин"
+ },
+ "AE": {
+ "name": "Берләшкән Гарәп Әмирлекләре"
+ },
+ "BM": {
+ "name": "Бермуд утраулары"
+ },
+ "BG": {
+ "name": "Болгария"
+ },
+ "BO": {
+ "name": "Боливия"
+ },
+ "BA": {
+ "name": "Босния һәм Герцеговина"
+ },
+ "BW": {
+ "name": "Ботсвана"
+ },
+ "GB": {
+ "name": "Бөекбритания"
+ },
+ "BR": {
+ "name": "Бразилия"
+ },
+ "VG": {
+ "name": "Британия Виргин утраулары"
+ },
+ "IO": {
+ "name": "Британиянең Һинд Океанындагы Территориясе"
+ },
+ "BN": {
+ "name": "Бруней"
+ },
+ "BF": {
+ "name": "Буркина-Фасо"
+ },
+ "BI": {
+ "name": "Бурунди"
+ },
+ "BT": {
+ "name": "Бутан"
+ },
+ "VU": {
+ "name": "Вануату"
+ },
+ "HU": {
+ "name": "Венгрия"
+ },
+ "VE": {
+ "name": "Венесуэла"
+ },
+ "VN": {
+ "name": "Вьетнам"
+ },
+ "GA": {
+ "name": "Габон"
+ },
+ "HT": {
+ "name": "Гаити"
+ },
+ "GY": {
+ "name": "Гайана"
+ },
+ "GM": {
+ "name": "Гамбия"
+ },
+ "GH": {
+ "name": "Гана"
+ },
+ "GP": {
+ "name": "Гваделупа"
+ },
+ "GT": {
+ "name": "Гватемала"
+ },
+ "GN": {
+ "name": "Гвинея"
+ },
+ "GW": {
+ "name": "Гвинея-Бисау"
+ },
+ "DE": {
+ "name": "Германия"
+ },
+ "GG": {
+ "name": "Гернси"
+ },
+ "GI": {
+ "name": "Гибралтар"
+ },
+ "HN": {
+ "name": "Гондурас"
+ },
+ "HK": {
+ "name": "Гонконг Махсус Идарәле Төбәге"
+ },
+ "GD": {
+ "name": "Гренада"
+ },
+ "GL": {
+ "name": "Гренландия"
+ },
+ "GR": {
+ "name": "Греция"
+ },
+ "GE": {
+ "name": "Грузия"
+ },
+ "GU": {
+ "name": "Гуам"
+ },
+ "IQ": {
+ "name": "Гыйрак"
+ },
+ "DK": {
+ "name": "Дания"
+ },
+ "JE": {
+ "name": "Джерси"
+ },
+ "DM": {
+ "name": "Доминика"
+ },
+ "DO": {
+ "name": "Доминикана Республикасы"
+ },
+ "DJ": {
+ "name": "Җибүти"
+ },
+ "ZM": {
+ "name": "Замбия"
+ },
+ "ZW": {
+ "name": "Зимбабве"
+ },
+ "IL": {
+ "name": "Израиль"
+ },
+ "IN": {
+ "name": "Индия"
+ },
+ "ID": {
+ "name": "Индонезия"
+ },
+ "JO": {
+ "name": "Иордания"
+ },
+ "IR": {
+ "name": "Иран"
+ },
+ "IE": {
+ "name": "Ирландия"
+ },
+ "IS": {
+ "name": "Исландия"
+ },
+ "ES": {
+ "name": "Испания"
+ },
+ "IT": {
+ "name": "Италия"
+ },
+ "YE": {
+ "name": "Йәмән"
+ },
+ "CV": {
+ "name": "Кабо-Верде"
+ },
+ "KZ": {
+ "name": "Казахстан"
+ },
+ "KY": {
+ "name": "Кайман утраулары"
+ },
+ "KH": {
+ "name": "Камбоджа"
+ },
+ "CM": {
+ "name": "Камерун"
+ },
+ "CA": {
+ "name": "Канада"
+ },
+ "QA": {
+ "name": "Катар"
+ },
+ "KE": {
+ "name": "Кения"
+ },
+ "CY": {
+ "name": "Кипр"
+ },
+ "KI": {
+ "name": "Кирибати"
+ },
+ "CC": {
+ "name": "Кокос (Килинг) утраулары"
+ },
+ "CO": {
+ "name": "Колумбия"
+ },
+ "KM": {
+ "name": "Комор утраулары"
+ },
+ "XK": {
+ "name": "Косово"
+ },
+ "CR": {
+ "name": "Коста-Рика"
+ },
+ "CI": {
+ "name": "Кот-д’Ивуар"
+ },
+ "ZA": {
+ "name": "Көньяк Африка"
+ },
+ "GS": {
+ "name": "Көньяк Георгия һәм Көньяк Сандвич утраулары"
+ },
+ "SS": {
+ "name": "Көньяк Судан"
+ },
+ "CU": {
+ "name": "Куба"
+ },
+ "CK": {
+ "name": "Кук утраулары"
+ },
+ "KW": {
+ "name": "Күвәйт"
+ },
+ "KG": {
+ "name": "Кыргызстан"
+ },
+ "CN": {
+ "name": "Кытай"
+ },
+ "CW": {
+ "name": "Кюрасао"
+ },
+ "LA": {
+ "name": "Лаос"
+ },
+ "LV": {
+ "name": "Латвия"
+ },
+ "LS": {
+ "name": "Лесото"
+ },
+ "LR": {
+ "name": "Либерия"
+ },
+ "LB": {
+ "name": "Ливан"
+ },
+ "LY": {
+ "name": "Ливия"
+ },
+ "LT": {
+ "name": "Литва"
+ },
+ "LI": {
+ "name": "Лихтенштейн"
+ },
+ "LU": {
+ "name": "Люксембург"
+ },
+ "MU": {
+ "name": "Маврикий"
+ },
+ "MR": {
+ "name": "Мавритания"
+ },
+ "MG": {
+ "name": "Мадагаскар"
+ },
+ "YT": {
+ "name": "Майотта"
+ },
+ "MO": {
+ "name": "Макао Махсус Идарәле Төбәге"
+ },
+ "MW": {
+ "name": "Малави"
+ },
+ "MY": {
+ "name": "Малайзия"
+ },
+ "ML": {
+ "name": "Мали"
+ },
+ "MV": {
+ "name": "Мальдив утраулары"
+ },
+ "MT": {
+ "name": "Мальта"
+ },
+ "MA": {
+ "name": "Марокко"
+ },
+ "MQ": {
+ "name": "Мартиника"
+ },
+ "MH": {
+ "name": "Маршалл утраулары"
+ },
+ "MX": {
+ "name": "Мексика"
+ },
+ "FM": {
+ "name": "Микронезия"
+ },
+ "EG": {
+ "name": "Мисыр"
+ },
+ "MZ": {
+ "name": "Мозамбик"
+ },
+ "MD": {
+ "name": "Молдова"
+ },
+ "MC": {
+ "name": "Монако"
+ },
+ "MN": {
+ "name": "Монголия"
+ },
+ "MS": {
+ "name": "Монтсеррат"
+ },
+ "IM": {
+ "name": "Мэн утравы"
+ },
+ "NA": {
+ "name": "Намибия"
+ },
+ "NR": {
+ "name": "Науру"
+ },
+ "NP": {
+ "name": "Непал"
+ },
+ "NE": {
+ "name": "Нигер"
+ },
+ "NG": {
+ "name": "Нигерия"
+ },
+ "NL": {
+ "name": "Нидерланд"
+ },
+ "NI": {
+ "name": "Никарагуа"
+ },
+ "NU": {
+ "name": "Ниуэ"
+ },
+ "NO": {
+ "name": "Норвегия"
+ },
+ "NF": {
+ "name": "Норфолк утравы"
+ },
+ "OM": {
+ "name": "Оман"
+ },
+ "PK": {
+ "name": "Пакистан"
+ },
+ "PW": {
+ "name": "Палау"
+ },
+ "PA": {
+ "name": "Панама"
+ },
+ "PG": {
+ "name": "Папуа - Яңа Гвинея"
+ },
+ "PY": {
+ "name": "Парагвай"
+ },
+ "PE": {
+ "name": "Перу"
+ },
+ "PN": {
+ "name": "Питкэрн утраулары"
+ },
+ "PL": {
+ "name": "Польша"
+ },
+ "PT": {
+ "name": "Португалия"
+ },
+ "PR": {
+ "name": "Пуэрто-Рико"
+ },
+ "CX": {
+ "name": "Раштуа утравы"
+ },
+ "RE": {
+ "name": "Реюньон"
+ },
+ "RU": {
+ "name": "Россия"
+ },
+ "RW": {
+ "name": "Руанда"
+ },
+ "RO": {
+ "name": "Румыния"
+ },
+ "SV": {
+ "name": "Сальвадор"
+ },
+ "WS": {
+ "name": "Самоа"
+ },
+ "SM": {
+ "name": "Сан-Марино"
+ },
+ "ST": {
+ "name": "Сан-Томе һәм Принсипи"
+ },
+ "SZ": {
+ "name": "Свазиленд"
+ },
+ "SC": {
+ "name": "Сейшел утраулары"
+ },
+ "BL": {
+ "name": "Сен-Бартельми"
+ },
+ "PM": {
+ "name": "Сен-Пьер һәм Микелон"
+ },
+ "SN": {
+ "name": "Сенегал"
+ },
+ "VC": {
+ "name": "Сент-Винсент һәм Гренадин"
+ },
+ "KN": {
+ "name": "Сент-Китс һәм Невис"
+ },
+ "LC": {
+ "name": "Сент-Люсия"
+ },
+ "MF": {
+ "name": "Сент-Мартин"
+ },
+ "RS": {
+ "name": "Сербия"
+ },
+ "SG": {
+ "name": "Сингапур"
+ },
+ "SX": {
+ "name": "Синт-Мартен"
+ },
+ "SK": {
+ "name": "Словакия"
+ },
+ "SI": {
+ "name": "Словения"
+ },
+ "SA": {
+ "name": "Согуд Гарәбстаны"
+ },
+ "SO": {
+ "name": "Сомали"
+ },
+ "SB": {
+ "name": "Сөләйман утраулары"
+ },
+ "SD": {
+ "name": "Судан"
+ },
+ "SR": {
+ "name": "Суринам"
+ },
+ "SY": {
+ "name": "Сүрия"
+ },
+ "SL": {
+ "name": "Сьерра-Леоне"
+ },
+ "TJ": {
+ "name": "Таҗикстан"
+ },
+ "TW": {
+ "name": "Тайвань"
+ },
+ "TH": {
+ "name": "Тайланд"
+ },
+ "TZ": {
+ "name": "Танзания"
+ },
+ "TC": {
+ "name": "Теркс һәм Кайкос утраулары"
+ },
+ "TL": {
+ "name": "Тимор-Лесте"
+ },
+ "TG": {
+ "name": "Того"
+ },
+ "TK": {
+ "name": "Токелау"
+ },
+ "TO": {
+ "name": "Тонга"
+ },
+ "KP": {
+ "name": "Төньяк Корея"
+ },
+ "MP": {
+ "name": "Төньяк Мариана утраулары"
+ },
+ "TR": {
+ "name": "Төркия"
+ },
+ "TM": {
+ "name": "Төркмәнстан"
+ },
+ "TT": {
+ "name": "Тринидад һәм Тобаго"
+ },
+ "TV": {
+ "name": "Тувалу"
+ },
+ "TN": {
+ "name": "Тунис"
+ },
+ "UG": {
+ "name": "Уганда"
+ },
+ "UA": {
+ "name": "Украина"
+ },
+ "WF": {
+ "name": "Уоллис һәм Футуна"
+ },
+ "UY": {
+ "name": "Уругвай"
+ },
+ "CF": {
+ "name": "Үзәк Африка Республикасы"
+ },
+ "UZ": {
+ "name": "Үзбәкстан"
+ },
+ "FO": {
+ "name": "Фарер утраулары"
+ },
+ "FJ": {
+ "name": "Фиджи"
+ },
+ "PH": {
+ "name": "Филиппин"
+ },
+ "FI": {
+ "name": "Финляндия"
+ },
+ "FK": {
+ "name": "Фолкленд утраулары"
+ },
+ "FR": {
+ "name": "Франция"
+ },
+ "TF": {
+ "name": "Франциянең Көньяк Территорияләре"
+ },
+ "GF": {
+ "name": "Француз Гвианасы"
+ },
+ "PF": {
+ "name": "Француз Полинезиясе"
+ },
+ "HR": {
+ "name": "Хорватия"
+ },
+ "TD": {
+ "name": "Чад"
+ },
+ "ME": {
+ "name": "Черногория"
+ },
+ "CZ": {
+ "name": "Чехия Республикасы"
+ },
+ "CL": {
+ "name": "Чили"
+ },
+ "CH": {
+ "name": "Швейцария"
+ },
+ "SE": {
+ "name": "Швеция"
+ },
+ "SJ": {
+ "name": "Шпицберген һәм Ян-Майен"
+ },
+ "LK": {
+ "name": "Шри-Ланка"
+ },
+ "EC": {
+ "name": "Эквадор"
+ },
+ "GQ": {
+ "name": "Экваториаль Гвинея"
+ },
+ "ER": {
+ "name": "Эритрея"
+ },
+ "EE": {
+ "name": "Эстония"
+ },
+ "ET": {
+ "name": "Эфиопия"
+ },
+ "JM": {
+ "name": "Ямайка"
+ },
+ "NZ": {
+ "name": "Яңа Зеландия"
+ },
+ "NC": {
+ "name": "Яңа Каледония"
+ },
+ "JP": {
+ "name": "Япония"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/uk.json b/vendor/commerceguys/intl/resources/country/uk.json
index e6462481e..fb457113a 100644
--- a/vendor/commerceguys/intl/resources/country/uk.json
+++ b/vendor/commerceguys/intl/resources/country/uk.json
@@ -20,12 +20,12 @@
"AS": {
"name": "Американське Самоа"
},
- "AI": {
- "name": "Ангілья"
- },
"AO": {
"name": "Ангола"
},
+ "AI": {
+ "name": "Анґілья"
+ },
"AD": {
"name": "Андорра"
},
@@ -33,7 +33,7 @@
"name": "Антарктика"
},
"AG": {
- "name": "Антигуа і Барбуда"
+ "name": "Антиґуа і Барбуда"
},
"AR": {
"name": "Аргентина"
@@ -60,7 +60,7 @@
"name": "Беліз"
},
"BE": {
- "name": "Бельгія"
+ "name": "Бельґія"
},
"BJ": {
"name": "Бенін"
@@ -78,20 +78,20 @@
"name": "Болівія"
},
"BA": {
- "name": "Боснія і Герцоговина"
+ "name": "Боснія і Герцеґовина"
},
"BW": {
"name": "Ботсвана"
},
"BR": {
- "name": "Бразилія"
+ "name": "Бразілія"
+ },
+ "IO": {
+ "name": "Британська територія в Індійському Океані"
},
"VG": {
"name": "Британські Віргінські острови"
},
- "IO": {
- "name": "Британські території в Індійському океані"
- },
"BN": {
"name": "Бруней"
},
@@ -125,9 +125,6 @@
"AM": {
"name": "Вірменія"
},
- "WF": {
- "name": "Волліс і Футуна"
- },
"VN": {
"name": "Вʼєтнам"
},
@@ -143,47 +140,47 @@
"GH": {
"name": "Гана"
},
- "GY": {
- "name": "Гаяна"
- },
- "GP": {
- "name": "Гваделупа"
- },
- "GT": {
- "name": "Гватемала"
- },
"GN": {
"name": "Гвінея"
},
"GW": {
"name": "Гвінея-Бісау"
},
- "GG": {
- "name": "Гернсі"
- },
- "GI": {
- "name": "Гібралтар"
- },
"HN": {
"name": "Гондурас"
},
"HK": {
"name": "Гонконг, О.А.Р. Китаю"
},
- "GD": {
- "name": "Гренада"
- },
- "GL": {
- "name": "Гренландія"
- },
"GR": {
"name": "Греція"
},
"GE": {
"name": "Грузія"
},
+ "GY": {
+ "name": "Ґайана"
+ },
+ "GP": {
+ "name": "Ґваделупа"
+ },
+ "GT": {
+ "name": "Ґватемала"
+ },
+ "GG": {
+ "name": "Ґернсі"
+ },
+ "GI": {
+ "name": "Ґібралтар"
+ },
+ "GD": {
+ "name": "Ґренада"
+ },
+ "GL": {
+ "name": "Ґренландія"
+ },
"GU": {
- "name": "Гуам"
+ "name": "Ґуам"
},
"DK": {
"name": "Данія"
@@ -300,7 +297,7 @@
"name": "Кіпр"
},
"KI": {
- "name": "Кірибаті"
+ "name": "Кірібаті"
},
"CC": {
"name": "Кокосові (Кілінгові) острови"
@@ -321,7 +318,7 @@
"name": "Косово"
},
"CR": {
- "name": "Коста-Рика"
+ "name": "Коста-Ріка"
},
"CI": {
"name": "Кот-д’Івуар"
@@ -360,14 +357,14 @@
"name": "Ліхтенштейн"
},
"LU": {
- "name": "Люксембург"
- },
- "MU": {
- "name": "Маврикій"
+ "name": "Люксембурґ"
},
"MR": {
"name": "Мавританія"
},
+ "MU": {
+ "name": "Маврікій"
+ },
"MG": {
"name": "Мадагаскар"
},
@@ -399,7 +396,7 @@
"name": "Марокко"
},
"MQ": {
- "name": "Мартиніка"
+ "name": "Мартініка"
},
"MH": {
"name": "Маршаллові Острови"
@@ -450,7 +447,7 @@
"name": "Нідерландські Карибські острови"
},
"NI": {
- "name": "Нікарагуа"
+ "name": "Нікараґуа"
},
"DE": {
"name": "Німеччина"
@@ -465,7 +462,7 @@
"name": "Нова Каледонія"
},
"NO": {
- "name": "Норвегія"
+ "name": "Норвеґія"
},
"AE": {
"name": "Обʼєднані Арабські Емірати"
@@ -494,9 +491,6 @@
"PN": {
"name": "Острови Піткерн"
},
- "SJ": {
- "name": "Острови Свальбард і Ян-Маєн"
- },
"TC": {
"name": "Острови Теркс і Кайкос"
},
@@ -513,10 +507,10 @@
"name": "Панама"
},
"PG": {
- "name": "Папуа Нова Гвінея"
+ "name": "Папуа-Нова Ґвінея"
},
"PY": {
- "name": "Парагвай"
+ "name": "Параґвай"
},
"PE": {
"name": "Перу"
@@ -543,10 +537,10 @@
"name": "Польща"
},
"PT": {
- "name": "Португалія"
+ "name": "Портуґалія"
},
"PR": {
- "name": "Пуерто-Рико"
+ "name": "Пуерто-Ріко"
},
"RE": {
"name": "Реюньйон"
@@ -567,7 +561,7 @@
"name": "Самоа"
},
"SM": {
- "name": "Сан-Марино"
+ "name": "Сан-Маріно"
},
"ST": {
"name": "Сан-Томе і Прінсіпі"
@@ -594,7 +588,7 @@
"name": "Сенегал"
},
"VC": {
- "name": "Сент-Вінсент і Гренадини"
+ "name": "Сент-Вінсент і Ґренадіни"
},
"KN": {
"name": "Сент-Кітс і Невіс"
@@ -629,14 +623,14 @@
"SO": {
"name": "Сомалі"
},
+ "US": {
+ "name": "Сполучені Штати"
+ },
"SD": {
"name": "Судан"
},
"SR": {
- "name": "Суринам"
- },
- "US": {
- "name": "США"
+ "name": "Сурінам"
},
"SL": {
"name": "Сьєрра-Леоне"
@@ -654,7 +648,7 @@
"name": "Танзанія"
},
"TL": {
- "name": "Тимор-Лешті"
+ "name": "Тімор-Лешті"
},
"TG": {
"name": "Того"
@@ -663,10 +657,10 @@
"name": "Токелау"
},
"TO": {
- "name": "Тонга"
+ "name": "Тонґа"
},
"TT": {
- "name": "Тринідад і Тобаго"
+ "name": "Трінідад і Тобаґо"
},
"TA": {
"name": "Трістан-да-Кунья"
@@ -695,8 +689,11 @@
"UA": {
"name": "Україна"
},
+ "WF": {
+ "name": "Уолліс і Футуна"
+ },
"UY": {
- "name": "Уругвай"
+ "name": "Уруґвай"
},
"FO": {
"name": "Фарерські Острови"
@@ -717,7 +714,7 @@
"name": "Франція"
},
"GF": {
- "name": "Французька Гвіана"
+ "name": "Французька Ґвіана"
},
"PF": {
"name": "Французька Полінезія"
@@ -735,10 +732,10 @@
"name": "Чад"
},
"CZ": {
- "name": "Чеська Республіка"
+ "name": "Чехія"
},
"CL": {
- "name": "Чилі"
+ "name": "Чілі"
},
"ME": {
"name": "Чорногорія"
@@ -749,6 +746,9 @@
"SE": {
"name": "Швеція"
},
+ "SJ": {
+ "name": "Шпіцберґен і Ян-Майен"
+ },
"LK": {
"name": "Шрі-Ланка"
},
diff --git a/vendor/commerceguys/intl/resources/country/ur-IN.json b/vendor/commerceguys/intl/resources/country/ur-IN.json
index 6ccc58c2c..f128719dc 100644
--- a/vendor/commerceguys/intl/resources/country/ur-IN.json
+++ b/vendor/commerceguys/intl/resources/country/ur-IN.json
@@ -75,7 +75,7 @@
"name": "ایکواڈور"
},
"AZ": {
- "name": "آذر بائیجان"
+ "name": "آذربائیجان"
},
"AM": {
"name": "آرمینیا"
@@ -290,6 +290,9 @@
"JM": {
"name": "جمائیکا"
},
+ "DO": {
+ "name": "جمہوریہ ڈومينيکن"
+ },
"ZA": {
"name": "جنوبی افریقہ"
},
@@ -309,7 +312,7 @@
"name": "چلی"
},
"CZ": {
- "name": "چیک جمہوریہ"
+ "name": "چیکیا"
},
"CN": {
"name": "چین"
@@ -320,9 +323,6 @@
"DM": {
"name": "ڈومنیکا"
},
- "DO": {
- "name": "ڈومنیکن جمہوریہ"
- },
"DG": {
"name": "ڈیگو گارشیا"
},
@@ -401,6 +401,9 @@
"SE": {
"name": "سویڈن"
},
+ "SL": {
+ "name": "سیرالیون"
+ },
"BL": {
"name": "سینٹ برتھلیمی"
},
@@ -425,9 +428,6 @@
"SN": {
"name": "سینیگل"
},
- "SL": {
- "name": "سیئر لیون"
- },
"EA": {
"name": "سیئوٹا اور میلیلا"
},
@@ -470,12 +470,12 @@
"FI": {
"name": "فن لینڈ"
},
- "KZ": {
- "name": "قازقستان"
- },
"CY": {
"name": "قبرص"
},
+ "KZ": {
+ "name": "قزاخستان"
+ },
"QA": {
"name": "قطر"
},
@@ -710,15 +710,15 @@
"NU": {
"name": "نیئو"
},
- "VA": {
- "name": "واٹیکن سٹی"
- },
"CF": {
"name": "وسط افریقی جمہوریہ"
},
"VN": {
"name": "ویتنام"
},
+ "VA": {
+ "name": "ویٹیکن سٹی"
+ },
"WF": {
"name": "ویلیز اور فیوٹیونا"
},
diff --git a/vendor/commerceguys/intl/resources/country/ur.json b/vendor/commerceguys/intl/resources/country/ur.json
index ca7d53525..c546ab3a0 100644
--- a/vendor/commerceguys/intl/resources/country/ur.json
+++ b/vendor/commerceguys/intl/resources/country/ur.json
@@ -78,7 +78,7 @@
"name": "ایکواڈور"
},
"AZ": {
- "name": "آذر بائیجان"
+ "name": "آذربائیجان"
},
"AM": {
"name": "آرمینیا"
@@ -266,6 +266,9 @@
"JM": {
"name": "جمائیکا"
},
+ "DO": {
+ "name": "جمہوریہ ڈومينيکن"
+ },
"ZA": {
"name": "جنوبی افریقہ"
},
@@ -285,7 +288,7 @@
"name": "چلی"
},
"CZ": {
- "name": "چیک جمہوریہ"
+ "name": "چیکیا"
},
"CN": {
"name": "چین"
@@ -299,9 +302,6 @@
"DM": {
"name": "ڈومنیکا"
},
- "DO": {
- "name": "ڈومنیکن جمہوریہ"
- },
"RW": {
"name": "روانڈا"
},
@@ -380,6 +380,9 @@
"SE": {
"name": "سویڈن"
},
+ "SL": {
+ "name": "سیرالیون"
+ },
"BL": {
"name": "سینٹ برتھلیمی"
},
@@ -404,9 +407,6 @@
"SN": {
"name": "سینیگل"
},
- "SL": {
- "name": "سیئر لیون"
- },
"EA": {
"name": "سیئوٹا اور میلیلا"
},
@@ -455,12 +455,12 @@
"FI": {
"name": "فن لینڈ"
},
- "KZ": {
- "name": "قازقستان"
- },
"CY": {
"name": "قبرص"
},
+ "KZ": {
+ "name": "قزاخستان"
+ },
"QA": {
"name": "قطر"
},
@@ -710,15 +710,15 @@
"NU": {
"name": "نیئو"
},
- "VA": {
- "name": "واٹیکن سٹی"
- },
"CF": {
"name": "وسط افریقی جمہوریہ"
},
"VN": {
"name": "ویتنام"
},
+ "VA": {
+ "name": "ویٹیکن سٹی"
+ },
"WF": {
"name": "ویلیز اور فیوٹیونا"
},
diff --git a/vendor/commerceguys/intl/resources/country/uz-Cyrl.json b/vendor/commerceguys/intl/resources/country/uz-Cyrl.json
index 1e1cd6d96..e9bddac67 100644
--- a/vendor/commerceguys/intl/resources/country/uz-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/country/uz-Cyrl.json
@@ -24,7 +24,7 @@
"name": "Америка Самоаси"
},
"AI": {
- "name": "Ангиля"
+ "name": "Ангилья"
},
"AO": {
"name": "Ангола"
@@ -62,12 +62,12 @@
"BH": {
"name": "Баҳрайн"
},
+ "BY": {
+ "name": "Беларус"
+ },
"BZ": {
"name": "Белиз"
},
- "BY": {
- "name": "Белорусия"
- },
"BE": {
"name": "Бельгия"
},
@@ -98,12 +98,12 @@
"BR": {
"name": "Бразилия"
},
+ "VG": {
+ "name": "Британия Виргин ороллари"
+ },
"IO": {
"name": "Британиянинг Ҳинд океанидаги ҳудуди"
},
- "VG": {
- "name": "Бртания Виргин ороллари"
- },
"BN": {
"name": "Бруней"
},
@@ -684,7 +684,7 @@
"name": "Француз Гвианаси"
},
"TF": {
- "name": "Француз жанубий худудлари"
+ "name": "Француз жанубий ҳудудлари"
},
"PF": {
"name": "Француз Полинезияси"
@@ -705,7 +705,7 @@
"name": "Черногория"
},
"CZ": {
- "name": "Чехия Республикаси"
+ "name": "Чехия"
},
"CL": {
"name": "Чили"
diff --git a/vendor/commerceguys/intl/resources/country/uz.json b/vendor/commerceguys/intl/resources/country/uz.json
index a07a8a8ba..cc36eceb7 100644
--- a/vendor/commerceguys/intl/resources/country/uz.json
+++ b/vendor/commerceguys/intl/resources/country/uz.json
@@ -119,18 +119,6 @@
"GB": {
"name": "Buyuk Britaniya"
},
- "TD": {
- "name": "Chad"
- },
- "ME": {
- "name": "Chernogoriya"
- },
- "CZ": {
- "name": "Chexiya Respublikasi"
- },
- "CL": {
- "name": "Chili"
- },
"DK": {
"name": "Daniya"
},
@@ -162,7 +150,7 @@
"name": "Estoniya"
},
"PS": {
- "name": "Falastin hududi"
+ "name": "Falastin hududlari"
},
"FO": {
"name": "Farer orollari"
@@ -191,9 +179,6 @@
"PF": {
"name": "Fransuz Polineziyasi"
},
- "EH": {
- "name": "G‘arbiy Sahroi Kabir"
- },
"GA": {
"name": "Gabon"
},
@@ -416,12 +401,12 @@
"MA": {
"name": "Marokash"
},
- "MH": {
- "name": "Marshall orollari"
- },
"MQ": {
"name": "Martinika"
},
+ "MH": {
+ "name": "Marshall orollari"
+ },
"MU": {
"name": "Mavrikiy"
},
@@ -497,9 +482,6 @@
"NO": {
"name": "Norvegiya"
},
- "UZ": {
- "name": "Oʻzbekiston"
- },
"AZ": {
"name": "Ozarbayjon"
},
@@ -605,21 +587,6 @@
"SC": {
"name": "Seyshel orollari"
},
- "KP": {
- "name": "Shimoliy Koreya"
- },
- "MP": {
- "name": "Shimoliy Mariana orollari"
- },
- "LK": {
- "name": "Shri-Lanka"
- },
- "SE": {
- "name": "Shvetsiya"
- },
- "CH": {
- "name": "Shveytsariya"
- },
"SG": {
"name": "Singapur"
},
@@ -647,9 +614,6 @@
"SY": {
"name": "Suriya"
},
- "SJ": {
- "name": "Svalbard va Yan-Mayen"
- },
"SZ": {
"name": "Svazilend"
},
@@ -757,5 +721,41 @@
},
"ZW": {
"name": "Zimbabve"
+ },
+ "UZ": {
+ "name": "Oʻzbekiston"
+ },
+ "EH": {
+ "name": "G‘arbiy Sahroi Kabir"
+ },
+ "KP": {
+ "name": "Shimoliy Koreya"
+ },
+ "MP": {
+ "name": "Shimoliy Mariana orollari"
+ },
+ "SJ": {
+ "name": "Shpitsbergen va Yan-Mayen"
+ },
+ "LK": {
+ "name": "Shri-Lanka"
+ },
+ "SE": {
+ "name": "Shvetsiya"
+ },
+ "CH": {
+ "name": "Shveytsariya"
+ },
+ "TD": {
+ "name": "Chad"
+ },
+ "ME": {
+ "name": "Chernogoriya"
+ },
+ "CZ": {
+ "name": "Chexiya"
+ },
+ "CL": {
+ "name": "Chili"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/vai.json b/vendor/commerceguys/intl/resources/country/vai.json
index e0a45b11e..062e0a79a 100644
--- a/vendor/commerceguys/intl/resources/country/vai.json
+++ b/vendor/commerceguys/intl/resources/country/vai.json
@@ -1,94 +1,10 @@
{
- "AX": {
- "name": "Åland Islands"
- },
- "AQ": {
- "name": "Antarctica"
- },
- "AC": {
- "name": "Ascension Island"
- },
- "IC": {
- "name": "Canary Islands"
- },
- "BQ": {
- "name": "Caribbean Netherlands"
- },
- "EA": {
- "name": "Ceuta & Melilla"
- },
- "CX": {
- "name": "Christmas Island"
- },
- "CC": {
- "name": "Cocos (Keeling) Islands"
- },
- "CW": {
- "name": "Curaçao"
- },
- "DG": {
- "name": "Diego Garcia"
- },
- "FO": {
- "name": "Faroe Islands"
- },
- "TF": {
- "name": "French Southern Territories"
- },
- "GG": {
- "name": "Guernsey"
- },
"HK": {
"name": "Hong Kong SAR China"
},
- "IM": {
- "name": "Isle of Man"
- },
- "JE": {
- "name": "Jersey"
- },
- "XK": {
- "name": "Kosovo"
- },
"MO": {
"name": "Macau SAR China"
},
- "ME": {
- "name": "Montenegro"
- },
- "RS": {
- "name": "Serbia"
- },
- "SX": {
- "name": "Sint Maarten"
- },
- "GS": {
- "name": "South Georgia & South Sandwich Islands"
- },
- "SS": {
- "name": "South Sudan"
- },
- "BL": {
- "name": "St. Barthélemy"
- },
- "MF": {
- "name": "St. Martin"
- },
- "SJ": {
- "name": "Svalbard & Jan Mayen"
- },
- "TA": {
- "name": "Tristan da Cunha"
- },
- "UM": {
- "name": "U.S. Outlying Islands"
- },
- "VA": {
- "name": "Vatican City"
- },
- "EH": {
- "name": "Western Sahara"
- },
"ER": {
"name": "ꔀꔸꔳꕟ"
},
@@ -134,6 +50,9 @@
"CV": {
"name": "ꔞꔪ ꗲꔵ ꔳꘋꗣ"
},
+ "CX": {
+ "name": "ꔞꔻꕮꔻ ꔳꘋꗣ"
+ },
"KE": {
"name": "ꔞꕰ"
},
@@ -167,9 +86,18 @@
"FJ": {
"name": "ꔱꔤꕀ"
},
+ "TF": {
+ "name": "ꔱꗷꘋꔻ ꗛꔤ ꔒꘋꗣ ꗏ ꕸꖃꔀ ꖸ"
+ },
"FI": {
"name": "ꔱꘋ ꖨꕮꕊ"
},
+ "TA": {
+ "name": "ꔳꔻꕚꘋ ꕜ ꖴꕯ"
+ },
+ "DG": {
+ "name": "ꔵꔀꖑ ꔳꘋꗣ"
+ },
"LS": {
"name": "ꔷꖇꕿ"
},
@@ -182,6 +110,9 @@
"SN": {
"name": "ꔻꕇꕭꕌ"
},
+ "SJ": {
+ "name": "ꔻꕙꕒꔵ ꗪ ꕧꘋ ꕮꘂꘋ"
+ },
"SY": {
"name": "ꔻꕩꘋ"
},
@@ -209,6 +140,9 @@
"SH": {
"name": "ꔻꘋ ꗥꔷꕯ"
},
+ "SX": {
+ "name": "ꔻꘋꔳ ꕮꕊꗳꘋ"
+ },
"NZ": {
"name": "ꔽꔤ ꖨꕮ ꕯꕮꕊ"
},
@@ -278,6 +212,9 @@
"AM": {
"name": "ꕉꕆꕯ"
},
+ "AX": {
+ "name": "ꕉꕞꔺ"
+ },
"AZ": {
"name": "ꕉꕤꕑꔤꕧꘋ"
},
@@ -296,6 +233,9 @@
"AG": {
"name": "ꕉꘋꔳꖶꕎ ꗪ ꕑꖜꕜ"
},
+ "AQ": {
+ "name": "ꕉꘋꕚꔳꕪ"
+ },
"HT": {
"name": "ꕌꔤꔳ"
},
@@ -341,6 +281,12 @@
"FK": {
"name": "ꕘꔷꕃ ꖨꕮ ꔳꘋꗣ"
},
+ "FO": {
+ "name": "ꕘꖄ ꔳꘋꗣ"
+ },
+ "VA": {
+ "name": "ꕙꔳꕪꘋ ꕢꕨꕌ"
+ },
"VE": {
"name": "ꕙꔳꕪꘋ ꕸꖃꔀ"
},
@@ -380,6 +326,9 @@
"RW": {
"name": "ꕟꖙꕡ"
},
+ "EH": {
+ "name": "ꕢꕌꕟ ꔎꔒ ꕀꔤ"
+ },
"ST": {
"name": "ꕢꕴ ꕿꔈ ꗪ ꕉ ꕮꔧ ꕗꕴꔀ"
},
@@ -410,6 +359,9 @@
"CM": {
"name": "ꕪꔈꖩꘋ"
},
+ "BQ": {
+ "name": "ꕪꔓꔬꘂꘋ ꖨꕮ ꗨꗳꗣ"
+ },
"NC": {
"name": "ꕪꔷꖁꕇꕰ ꕯꕮꕊ"
},
@@ -425,6 +377,12 @@
"KH": {
"name": "ꕪꕹꔵꕩ"
},
+ "BL": {
+ "name": "ꕪꘋꕓ ꗞꗢ ꕒꕚꕞꕆ"
+ },
+ "MF": {
+ "name": "ꕪꘋꕓ ꗞꗢ ꕮꕊꔳꘋ"
+ },
"GM": {
"name": "ꕭꔭꕩ"
},
@@ -467,6 +425,9 @@
"YT": {
"name": "ꕮꗚꔎ"
},
+ "IM": {
+ "name": "ꕮꘋ ꔳꘋꗣ"
+ },
"NG": {
"name": "ꕯꔤꕀꔸꕩ"
},
@@ -485,6 +446,9 @@
"AS": {
"name": "ꕶꕱ ꕢꕹꕎ"
},
+ "UM": {
+ "name": "ꕶꕱ ꕪꘋ ꗅꘋ ꔳꘋꗣ ꖸ"
+ },
"VI": {
"name": "ꕶꕱ ꗩꗡ ꗏ ꖷꖬ ꔳꘋꗣ"
},
@@ -551,6 +515,12 @@
"KM": {
"name": "ꖏꕹꖄꔻ"
},
+ "XK": {
+ "name": "ꖏꖇꕾ"
+ },
+ "CC": {
+ "name": "ꖏꖏꔻ (ꔞꔀꔷꘋ) ꔳꘋꗣ"
+ },
"CG": {
"name": "ꖏꖐ"
},
@@ -602,6 +572,9 @@
"SZ": {
"name": "ꖬꕎꔽ ꖨꕮꕊ"
},
+ "SS": {
+ "name": "ꖬꕜꘋ ꗛꔤ ꔒꘋꗣ ꗏ"
+ },
"SB": {
"name": "ꖬꕞꔤꕮꕊꕯ ꔳꘋꗣ"
},
@@ -626,6 +599,9 @@
"KW": {
"name": "ꖴꔃꔳ"
},
+ "CW": {
+ "name": "ꖴꕟꖇꕱ"
+ },
"GT": {
"name": "ꖶꕎꔎꕮꕞ"
},
@@ -641,6 +617,9 @@
"GY": {
"name": "ꖶꕩꕯ"
},
+ "GG": {
+ "name": "ꖶꗦꘋꔻ"
+ },
"NU": {
"name": "ꖸꔃꔤ"
},
@@ -680,12 +659,18 @@
"GE": {
"name": "ꗘꖺꕀꕩ"
},
+ "GS": {
+ "name": "ꗘꖺꕀꕩ ꗛꔤ ꔒꘋꗣ ꗏ ꗪ ꗇꖢ ꔳꘋꗣ ꗛꔤ ꔒꘋꗣ ꗏ"
+ },
"JO": {
"name": "ꗘꖺꗵꘋ"
},
"MP": {
"name": "ꗛꔤ ꕪꘋꗒ ꕮꔸꕩꕯ ꔳꘋꗣ"
},
+ "IC": {
+ "name": "ꗛꖺꔻꕩ ꔳꘋꗣ"
+ },
"CO": {
"name": "ꗛꗏꔭꕩ"
},
@@ -695,6 +680,9 @@
"MU": {
"name": "ꗞꔓꗔ"
},
+ "ME": {
+ "name": "ꗞꔳꕇꖶꖄ"
+ },
"MA": {
"name": "ꗞꕟꖏ"
},
@@ -749,9 +737,21 @@
"VN": {
"name": "ꗲꕇꖮꔃꕞ"
},
+ "EA": {
+ "name": "ꗻꕚ ꗪ ꔡꔷꕞ"
+ },
+ "AC": {
+ "name": "ꗻꗡ ꕒꕡꕌ ꗏ ꔳꘋꗣ"
+ },
+ "RS": {
+ "name": "ꗻꗡꔬꕩ"
+ },
"CZ": {
"name": "ꗿꕃ ꕸꖃꔀ"
},
+ "JE": {
+ "name": "ꘀꗡꔘ"
+ },
"MX": {
"name": "ꘈꔻꖏ"
},
diff --git a/vendor/commerceguys/intl/resources/country/vi.json b/vendor/commerceguys/intl/resources/country/vi.json
index e10ea0a3d..bf8a39968 100644
--- a/vendor/commerceguys/intl/resources/country/vi.json
+++ b/vendor/commerceguys/intl/resources/country/vi.json
@@ -111,7 +111,7 @@
"name": "Ca-ri-bê Hà Lan"
},
"UM": {
- "name": "Các đảo xa thuộc Hoa Kỳ"
+ "name": "Các tiểu đảo xa của Hoa Kỳ"
},
"AE": {
"name": "Các Tiểu Vương quốc Ả Rập Thống nhất"
@@ -155,9 +155,6 @@
"DO": {
"name": "Cộng hòa Dominica"
},
- "CZ": {
- "name": "Cộng hòa Séc"
- },
"CF": {
"name": "Cộng hòa Trung Phi"
},
@@ -314,6 +311,9 @@
"IL": {
"name": "Israel"
},
+ "IT": {
+ "name": "Italy"
+ },
"JM": {
"name": "Jamaica"
},
@@ -342,7 +342,7 @@
"name": "Kyrgyzstan"
},
"IO": {
- "name": "Lãnh thổ Anh tại Ấn Độ Dương"
+ "name": "Lãnh thổ Ấn độ dương thuộc Anh"
},
"PS": {
"name": "Lãnh thổ Palestine"
@@ -449,6 +449,9 @@
"AQ": {
"name": "Nam Cực"
},
+ "GS": {
+ "name": "Nam Georgia & Quần đảo Nam Sandwich"
+ },
"ZA": {
"name": "Nam Phi"
},
@@ -554,9 +557,6 @@
"MH": {
"name": "Quần đảo Marshall"
},
- "GS": {
- "name": "Quần đảo Nam Georgia và Nam Sandwich"
- },
"PN": {
"name": "Quần đảo Pitcairn"
},
@@ -564,7 +564,7 @@
"name": "Quần đảo Solomon"
},
"TC": {
- "name": "Quần đảo Turk và Caicos"
+ "name": "Quần đảo Turks và Caicos"
},
"VG": {
"name": "Quần đảo Virgin thuộc Anh"
@@ -593,6 +593,9 @@
"ST": {
"name": "São Tomé và Príncipe"
},
+ "CZ": {
+ "name": "Séc"
+ },
"SN": {
"name": "Senegal"
},
@@ -746,9 +749,6 @@
"WF": {
"name": "Wallis và Futuna"
},
- "IT": {
- "name": "Ý"
- },
"YE": {
"name": "Yemen"
},
diff --git a/vendor/commerceguys/intl/resources/country/wo.json b/vendor/commerceguys/intl/resources/country/wo.json
new file mode 100644
index 000000000..410efe466
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/country/wo.json
@@ -0,0 +1,761 @@
+{
+ "AF": {
+ "name": "Afganistaŋ"
+ },
+ "ZA": {
+ "name": "Afrik di Sid"
+ },
+ "AL": {
+ "name": "Albani"
+ },
+ "DE": {
+ "name": "Almaañ"
+ },
+ "DZ": {
+ "name": "Alseri"
+ },
+ "AD": {
+ "name": "Andoor"
+ },
+ "AI": {
+ "name": "Angiiy"
+ },
+ "AQ": {
+ "name": "Antarktik"
+ },
+ "AG": {
+ "name": "Antiguwa ak Barbuda"
+ },
+ "SA": {
+ "name": "Arabi Sawudi"
+ },
+ "AM": {
+ "name": "Armeni"
+ },
+ "AR": {
+ "name": "Arsàntin"
+ },
+ "AW": {
+ "name": "Aruba"
+ },
+ "AC": {
+ "name": "Ascension Island"
+ },
+ "AZ": {
+ "name": "Aserbayjaŋ"
+ },
+ "HT": {
+ "name": "Ayti"
+ },
+ "AO": {
+ "name": "Àngolaa"
+ },
+ "BS": {
+ "name": "Bahamas"
+ },
+ "BH": {
+ "name": "Bahreyin"
+ },
+ "BB": {
+ "name": "Barbad"
+ },
+ "BY": {
+ "name": "Belaris"
+ },
+ "BZ": {
+ "name": "Belis"
+ },
+ "BE": {
+ "name": "Belsig"
+ },
+ "BJ": {
+ "name": "Benee"
+ },
+ "BD": {
+ "name": "Bengalades"
+ },
+ "BR": {
+ "name": "Beresil"
+ },
+ "BM": {
+ "name": "Bermid"
+ },
+ "BG": {
+ "name": "Bilgari"
+ },
+ "BO": {
+ "name": "Boliwi"
+ },
+ "BA": {
+ "name": "Bosni Ersegowin"
+ },
+ "BW": {
+ "name": "Botswana"
+ },
+ "BF": {
+ "name": "Burkina Faaso"
+ },
+ "BN": {
+ "name": "Burney"
+ },
+ "BI": {
+ "name": "Burundi"
+ },
+ "BT": {
+ "name": "Butaŋ"
+ },
+ "IC": {
+ "name": "Canary Islands"
+ },
+ "BQ": {
+ "name": "Caribbean Netherlands"
+ },
+ "TD": {
+ "name": "Càdd"
+ },
+ "EA": {
+ "name": "Ceuta & Melilla"
+ },
+ "CG": {
+ "name": "Congo - Brazzaville"
+ },
+ "CD": {
+ "name": "Congo - Kinshasa"
+ },
+ "DK": {
+ "name": "Danmàrk"
+ },
+ "DG": {
+ "name": "Diego Garcia"
+ },
+ "DM": {
+ "name": "Dominik"
+ },
+ "AX": {
+ "name": "Duni Aalànd"
+ },
+ "UM": {
+ "name": "Duni Amerig Utar meer"
+ },
+ "FK": {
+ "name": "Duni Falkland"
+ },
+ "FO": {
+ "name": "Duni Faro"
+ },
+ "KY": {
+ "name": "Duni Kaymaŋ"
+ },
+ "CC": {
+ "name": "Duni Koko (Kilin)"
+ },
+ "CK": {
+ "name": "Duni Kuuk"
+ },
+ "MP": {
+ "name": "Duni Mariyaan Noor"
+ },
+ "MH": {
+ "name": "Duni Marsaal"
+ },
+ "PN": {
+ "name": "Duni Pitkayirn"
+ },
+ "SB": {
+ "name": "Duni Salmoon"
+ },
+ "TC": {
+ "name": "Duni Tirk ak Kaykos"
+ },
+ "VG": {
+ "name": "Duni Wirsin yu Brëtaañ"
+ },
+ "VI": {
+ "name": "Duni Wirsin yu Etaa-sini"
+ },
+ "CX": {
+ "name": "Dunu Kirismas"
+ },
+ "IM": {
+ "name": "Dunu Maan"
+ },
+ "NF": {
+ "name": "Dunu Norfolk"
+ },
+ "ET": {
+ "name": "Ecopi"
+ },
+ "EC": {
+ "name": "Ekwaatër"
+ },
+ "SV": {
+ "name": "El Salwadoor"
+ },
+ "AE": {
+ "name": "Emira Arab Ini"
+ },
+ "IN": {
+ "name": "End"
+ },
+ "ER": {
+ "name": "Eritere"
+ },
+ "EG": {
+ "name": "Esipt"
+ },
+ "SK": {
+ "name": "Eslowaki"
+ },
+ "SI": {
+ "name": "Esloweni"
+ },
+ "ES": {
+ "name": "Españ"
+ },
+ "EE": {
+ "name": "Estoni"
+ },
+ "US": {
+ "name": "Etaa Sini"
+ },
+ "FR": {
+ "name": "Faraans"
+ },
+ "FJ": {
+ "name": "Fijji"
+ },
+ "PH": {
+ "name": "Filipin"
+ },
+ "FI": {
+ "name": "Finlànd"
+ },
+ "GA": {
+ "name": "Gaboŋ"
+ },
+ "GH": {
+ "name": "Gana"
+ },
+ "GD": {
+ "name": "Garanad"
+ },
+ "GM": {
+ "name": "Gàmbi"
+ },
+ "GR": {
+ "name": "Gerees"
+ },
+ "GG": {
+ "name": "Gernase"
+ },
+ "GN": {
+ "name": "Gine"
+ },
+ "GQ": {
+ "name": "Gine Ekuwatoriyal"
+ },
+ "GW": {
+ "name": "Gine-Bisaawóo"
+ },
+ "GL": {
+ "name": "Girinlànd"
+ },
+ "GY": {
+ "name": "Giyaan"
+ },
+ "GP": {
+ "name": "Guwaadelup"
+ },
+ "GU": {
+ "name": "Guwam"
+ },
+ "GT": {
+ "name": "Guwatemala"
+ },
+ "GF": {
+ "name": "Guyaan Farañse"
+ },
+ "HK": {
+ "name": "Hong Kong SAR China"
+ },
+ "UA": {
+ "name": "Ikeren"
+ },
+ "ID": {
+ "name": "Indonesi"
+ },
+ "IQ": {
+ "name": "Irag"
+ },
+ "IR": {
+ "name": "Iraŋ"
+ },
+ "IE": {
+ "name": "Irlànd"
+ },
+ "IS": {
+ "name": "Islànd"
+ },
+ "IL": {
+ "name": "Israyel"
+ },
+ "IT": {
+ "name": "Itali"
+ },
+ "DJ": {
+ "name": "Jibuti"
+ },
+ "CV": {
+ "name": "Kabo Werde"
+ },
+ "CM": {
+ "name": "Kamerun"
+ },
+ "CA": {
+ "name": "Kanadaa"
+ },
+ "KZ": {
+ "name": "Kasaxstaŋ"
+ },
+ "QA": {
+ "name": "Kataar"
+ },
+ "KH": {
+ "name": "Kàmboj"
+ },
+ "KE": {
+ "name": "Keeña"
+ },
+ "KG": {
+ "name": "Kirgistaŋ"
+ },
+ "KI": {
+ "name": "Kiribati"
+ },
+ "CI": {
+ "name": "Kodiwaar (Côte d’Ivoire)"
+ },
+ "CO": {
+ "name": "Kolombi"
+ },
+ "KM": {
+ "name": "Komoor"
+ },
+ "KP": {
+ "name": "Kore Noor"
+ },
+ "HR": {
+ "name": "Korowasi"
+ },
+ "XK": {
+ "name": "Kosowo"
+ },
+ "CR": {
+ "name": "Kosta Rika"
+ },
+ "KW": {
+ "name": "Kowet"
+ },
+ "CU": {
+ "name": "Kuba"
+ },
+ "CW": {
+ "name": "Kursawo"
+ },
+ "LA": {
+ "name": "Lawos"
+ },
+ "LS": {
+ "name": "Lesoto"
+ },
+ "LV": {
+ "name": "Letoni"
+ },
+ "LB": {
+ "name": "Libaa"
+ },
+ "LR": {
+ "name": "Liberiya"
+ },
+ "LY": {
+ "name": "Libi"
+ },
+ "LU": {
+ "name": "Liksàmbur"
+ },
+ "LI": {
+ "name": "Liktensteyin"
+ },
+ "LT": {
+ "name": "Litiyani"
+ },
+ "MO": {
+ "name": "Macau SAR China"
+ },
+ "MG": {
+ "name": "Madagaskaar"
+ },
+ "MW": {
+ "name": "Malawi"
+ },
+ "MV": {
+ "name": "Maldiiw"
+ },
+ "MY": {
+ "name": "Malesi"
+ },
+ "ML": {
+ "name": "Mali"
+ },
+ "MT": {
+ "name": "Malt"
+ },
+ "MA": {
+ "name": "Marog"
+ },
+ "MQ": {
+ "name": "Martinik"
+ },
+ "MK": {
+ "name": "Maseduwaan"
+ },
+ "YT": {
+ "name": "Mayot"
+ },
+ "MX": {
+ "name": "Meksiko"
+ },
+ "FM": {
+ "name": "Mikoronesi"
+ },
+ "MM": {
+ "name": "Miyanmaar"
+ },
+ "MD": {
+ "name": "Moldawi"
+ },
+ "MC": {
+ "name": "Monako"
+ },
+ "MN": {
+ "name": "Mongoli"
+ },
+ "ME": {
+ "name": "Montenegoro"
+ },
+ "MR": {
+ "name": "Mooritani"
+ },
+ "MS": {
+ "name": "Mooseraa"
+ },
+ "MU": {
+ "name": "Moriis"
+ },
+ "MZ": {
+ "name": "Mosàmbig"
+ },
+ "NA": {
+ "name": "Namibi"
+ },
+ "NR": {
+ "name": "Nawru"
+ },
+ "NP": {
+ "name": "Nepaal"
+ },
+ "NE": {
+ "name": "Niiseer"
+ },
+ "NI": {
+ "name": "Nikaraguwa"
+ },
+ "NG": {
+ "name": "Niseriya"
+ },
+ "NU": {
+ "name": "Niw"
+ },
+ "NO": {
+ "name": "Norwees"
+ },
+ "NC": {
+ "name": "Nuwel Kaledoni"
+ },
+ "NZ": {
+ "name": "Nuwel Selànd"
+ },
+ "OM": {
+ "name": "Omaan"
+ },
+ "HN": {
+ "name": "Onduraas"
+ },
+ "HU": {
+ "name": "Ongari"
+ },
+ "AU": {
+ "name": "Ostarali"
+ },
+ "AT": {
+ "name": "Ótiriis"
+ },
+ "PK": {
+ "name": "Pakistaŋ"
+ },
+ "PW": {
+ "name": "Palaw"
+ },
+ "PS": {
+ "name": "Palestinian Territories"
+ },
+ "PA": {
+ "name": "Panama"
+ },
+ "PG": {
+ "name": "Papuwasi Gine Gu Bees"
+ },
+ "PY": {
+ "name": "Paraguwe"
+ },
+ "PE": {
+ "name": "Peru"
+ },
+ "NL": {
+ "name": "Peyi Baa"
+ },
+ "PF": {
+ "name": "Polinesi Farañse"
+ },
+ "PL": {
+ "name": "Poloñ"
+ },
+ "PT": {
+ "name": "Portigaal"
+ },
+ "PR": {
+ "name": "Porto Riko"
+ },
+ "RE": {
+ "name": "Reeñoo"
+ },
+ "DO": {
+ "name": "Repiblik Dominiken"
+ },
+ "CF": {
+ "name": "Repiblik Sàntar Afrik"
+ },
+ "CZ": {
+ "name": "Réewum Cek"
+ },
+ "RU": {
+ "name": "Risi"
+ },
+ "RO": {
+ "name": "Rumani"
+ },
+ "GB": {
+ "name": "Ruwaayom Ini"
+ },
+ "RW": {
+ "name": "Ruwànda"
+ },
+ "JM": {
+ "name": "Samayig"
+ },
+ "WS": {
+ "name": "Samowa"
+ },
+ "AS": {
+ "name": "Samowa bu Amerig"
+ },
+ "SM": {
+ "name": "San Marino"
+ },
+ "BL": {
+ "name": "Saŋ Bartalemi"
+ },
+ "SH": {
+ "name": "Saŋ Eleen"
+ },
+ "KN": {
+ "name": "Saŋ Kits ak Newis"
+ },
+ "LC": {
+ "name": "Saŋ Lusi"
+ },
+ "MF": {
+ "name": "Saŋ Marteŋ"
+ },
+ "PM": {
+ "name": "Saŋ Peer ak Mikeloŋ"
+ },
+ "VC": {
+ "name": "Saŋ Weesaa ak Garanadin"
+ },
+ "ST": {
+ "name": "Sawo Tome ak Pirinsipe"
+ },
+ "ZM": {
+ "name": "Sàmbi"
+ },
+ "JP": {
+ "name": "Sàppoŋ"
+ },
+ "SN": {
+ "name": "Senegaal"
+ },
+ "RS": {
+ "name": "Serbi"
+ },
+ "JE": {
+ "name": "Serse"
+ },
+ "GE": {
+ "name": "Seworsi"
+ },
+ "GS": {
+ "name": "Seworsi di Sid ak Duni Sàndwiis di Sid"
+ },
+ "SC": {
+ "name": "Seysel"
+ },
+ "GI": {
+ "name": "Sibraltaar"
+ },
+ "CN": {
+ "name": "Siin"
+ },
+ "CY": {
+ "name": "Siipar"
+ },
+ "CL": {
+ "name": "Sili"
+ },
+ "ZW": {
+ "name": "Simbabwe"
+ },
+ "SX": {
+ "name": "Sin Marten"
+ },
+ "SG": {
+ "name": "Singapuur"
+ },
+ "SY": {
+ "name": "Siri"
+ },
+ "LK": {
+ "name": "Siri Lànka"
+ },
+ "SR": {
+ "name": "Sirinam"
+ },
+ "VA": {
+ "name": "Site bu Watikaa"
+ },
+ "CH": {
+ "name": "Siwis"
+ },
+ "SL": {
+ "name": "Siyera Lewon"
+ },
+ "SO": {
+ "name": "Somali"
+ },
+ "JO": {
+ "name": "Sordani"
+ },
+ "KR": {
+ "name": "South Korea"
+ },
+ "SD": {
+ "name": "Sudaŋ"
+ },
+ "SS": {
+ "name": "Sudaŋ di Sid"
+ },
+ "SZ": {
+ "name": "Suwasilànd"
+ },
+ "SE": {
+ "name": "Suwed"
+ },
+ "SJ": {
+ "name": "Swalbaar ak Jan Mayen"
+ },
+ "TJ": {
+ "name": "Tajikistaŋ"
+ },
+ "TZ": {
+ "name": "Taŋsani"
+ },
+ "TH": {
+ "name": "Taylànd"
+ },
+ "TW": {
+ "name": "Taywan"
+ },
+ "TF": {
+ "name": "Teer Ostraal gu Fraas"
+ },
+ "IO": {
+ "name": "Terituwaaru Brëtaañ ci Oseyaa Enjeŋ"
+ },
+ "TL": {
+ "name": "Timor Leste"
+ },
+ "TN": {
+ "name": "Tinisi"
+ },
+ "TT": {
+ "name": "Tirinite ak Tobago"
+ },
+ "TR": {
+ "name": "Tirki"
+ },
+ "TM": {
+ "name": "Tirkmenistaŋ"
+ },
+ "TG": {
+ "name": "Togo"
+ },
+ "TK": {
+ "name": "Tokoloo"
+ },
+ "TO": {
+ "name": "Tonga"
+ },
+ "TA": {
+ "name": "Tristan da Cunha"
+ },
+ "TV": {
+ "name": "Tuwalo"
+ },
+ "UG": {
+ "name": "Ugànda"
+ },
+ "UY": {
+ "name": "Uruge"
+ },
+ "UZ": {
+ "name": "Usbekistaŋ"
+ },
+ "WF": {
+ "name": "Walis ak Futuna"
+ },
+ "VU": {
+ "name": "Wanuatu"
+ },
+ "VE": {
+ "name": "Wenesiyela"
+ },
+ "EH": {
+ "name": "Western Sahara"
+ },
+ "VN": {
+ "name": "Wiyetnam"
+ },
+ "YE": {
+ "name": "Yaman"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/yo-BJ.json b/vendor/commerceguys/intl/resources/country/yo-BJ.json
index e845e9262..a956369a2 100644
--- a/vendor/commerceguys/intl/resources/country/yo-BJ.json
+++ b/vendor/commerceguys/intl/resources/country/yo-BJ.json
@@ -41,6 +41,9 @@
"HK": {
"name": "Hong Kong SAR China"
},
+ "VA": {
+ "name": "Ìlú Vatican"
+ },
"IM": {
"name": "Isle of Man"
},
@@ -239,9 +242,6 @@
"FR": {
"name": "Orílɛ́ède Faranse"
},
- "VA": {
- "name": "Orílɛ́ède Fatikani"
- },
"VE": {
"name": "Orílɛ́ède Fɛnɛshuɛla"
},
diff --git a/vendor/commerceguys/intl/resources/country/yo.json b/vendor/commerceguys/intl/resources/country/yo.json
index 4e19fd200..dfd524f8c 100644
--- a/vendor/commerceguys/intl/resources/country/yo.json
+++ b/vendor/commerceguys/intl/resources/country/yo.json
@@ -41,6 +41,9 @@
"HK": {
"name": "Hong Kong SAR China"
},
+ "VA": {
+ "name": "Ìlú Vatican"
+ },
"IM": {
"name": "Isle of Man"
},
@@ -239,9 +242,6 @@
"FR": {
"name": "Orílẹ́ède Faranse"
},
- "VA": {
- "name": "Orílẹ́ède Fatikani"
- },
"VE": {
"name": "Orílẹ́ède Fẹnẹṣuẹla"
},
diff --git a/vendor/commerceguys/intl/resources/country/yue.json b/vendor/commerceguys/intl/resources/country/yue.json
deleted file mode 100644
index fd836461a..000000000
--- a/vendor/commerceguys/intl/resources/country/yue.json
+++ /dev/null
@@ -1,761 +0,0 @@
-{
- "BT": {
- "name": "不丹"
- },
- "CN": {
- "name": "中華人民共和國"
- },
- "MO": {
- "name": "中華人民共和國澳門特別行政區"
- },
- "HK": {
- "name": "中華人民共和國香港特別行政區"
- },
- "CF": {
- "name": "中非共和國"
- },
- "DK": {
- "name": "丹麥"
- },
- "AZ": {
- "name": "亞塞拜然"
- },
- "AM": {
- "name": "亞美尼亞"
- },
- "IL": {
- "name": "以色列"
- },
- "IQ": {
- "name": "伊拉克"
- },
- "IR": {
- "name": "伊朗"
- },
- "EA": {
- "name": "休達與梅利利亞"
- },
- "RU": {
- "name": "俄羅斯"
- },
- "BG": {
- "name": "保加利亞"
- },
- "HR": {
- "name": "克羅埃西亞"
- },
- "IS": {
- "name": "冰島"
- },
- "LI": {
- "name": "列支敦斯登"
- },
- "LY": {
- "name": "利比亞"
- },
- "CG": {
- "name": "剛果(布拉薩)"
- },
- "CD": {
- "name": "剛果(金夏沙)"
- },
- "GA": {
- "name": "加彭"
- },
- "CA": {
- "name": "加拿大"
- },
- "IC": {
- "name": "加那利群島"
- },
- "HU": {
- "name": "匈牙利"
- },
- "KP": {
- "name": "北韓"
- },
- "MP": {
- "name": "北馬里亞納群島"
- },
- "TT": {
- "name": "千里達同多巴哥"
- },
- "GS": {
- "name": "南佐治亞島同南桑威奇群島"
- },
- "AQ": {
- "name": "南極洲"
- },
- "SS": {
- "name": "南蘇丹"
- },
- "ZA": {
- "name": "南非"
- },
- "KR": {
- "name": "南韓"
- },
- "QA": {
- "name": "卡達"
- },
- "ID": {
- "name": "印尼"
- },
- "IN": {
- "name": "印度"
- },
- "ER": {
- "name": "厄利垂亞"
- },
- "EC": {
- "name": "厄瓜多"
- },
- "CU": {
- "name": "古巴"
- },
- "TW": {
- "name": "台灣"
- },
- "SZ": {
- "name": "史瓦濟蘭"
- },
- "DJ": {
- "name": "吉布地"
- },
- "KG": {
- "name": "吉爾吉斯"
- },
- "KI": {
- "name": "吉里巴斯"
- },
- "TV": {
- "name": "吐瓦魯"
- },
- "KZ": {
- "name": "哈薩克"
- },
- "CO": {
- "name": "哥倫比亞"
- },
- "CR": {
- "name": "哥斯大黎加"
- },
- "CM": {
- "name": "喀麥隆"
- },
- "GE": {
- "name": "喬治亞共和國"
- },
- "TC": {
- "name": "土克斯及開科斯群島"
- },
- "TM": {
- "name": "土庫曼"
- },
- "TR": {
- "name": "土耳其"
- },
- "TZ": {
- "name": "坦尚尼亞"
- },
- "EG": {
- "name": "埃及"
- },
- "TJ": {
- "name": "塔吉克"
- },
- "SN": {
- "name": "塞內加爾"
- },
- "SC": {
- "name": "塞席爾"
- },
- "RS": {
- "name": "塞爾維亞"
- },
- "TG": {
- "name": "多哥"
- },
- "DO": {
- "name": "多明尼加共和國"
- },
- "DM": {
- "name": "多米尼克"
- },
- "NG": {
- "name": "奈及利亞"
- },
- "AT": {
- "name": "奧地利"
- },
- "AX": {
- "name": "奧蘭群島"
- },
- "VE": {
- "name": "委內瑞拉"
- },
- "BD": {
- "name": "孟加拉"
- },
- "AO": {
- "name": "安哥拉"
- },
- "AI": {
- "name": "安圭拉"
- },
- "AG": {
- "name": "安提瓜同巴布達"
- },
- "AD": {
- "name": "安道爾"
- },
- "HN": {
- "name": "宏都拉斯"
- },
- "FM": {
- "name": "密克羅尼西亞群島"
- },
- "LA": {
- "name": "寮國"
- },
- "ZM": {
- "name": "尚比亞"
- },
- "NI": {
- "name": "尼加拉瓜"
- },
- "NE": {
- "name": "尼日"
- },
- "NP": {
- "name": "尼泊爾"
- },
- "PS": {
- "name": "巴勒斯坦自治區"
- },
- "BS": {
- "name": "巴哈馬"
- },
- "PK": {
- "name": "巴基斯坦"
- },
- "PG": {
- "name": "巴布亞紐幾內亞"
- },
- "PY": {
- "name": "巴拉圭"
- },
- "PA": {
- "name": "巴拿馬"
- },
- "BH": {
- "name": "巴林"
- },
- "BR": {
- "name": "巴西"
- },
- "BB": {
- "name": "巴貝多"
- },
- "BF": {
- "name": "布吉納法索"
- },
- "GR": {
- "name": "希臘"
- },
- "PW": {
- "name": "帛琉"
- },
- "GN": {
- "name": "幾內亞"
- },
- "GW": {
- "name": "幾內亞比索"
- },
- "CK": {
- "name": "庫克群島"
- },
- "CW": {
- "name": "庫拉索"
- },
- "DE": {
- "name": "德國"
- },
- "EE": {
- "name": "愛沙尼亞"
- },
- "IE": {
- "name": "愛爾蘭"
- },
- "TK": {
- "name": "托克勞群島"
- },
- "LV": {
- "name": "拉脫維亞"
- },
- "NO": {
- "name": "挪威"
- },
- "CZ": {
- "name": "捷克共和國"
- },
- "MA": {
- "name": "摩洛哥"
- },
- "MD": {
- "name": "摩爾多瓦"
- },
- "MC": {
- "name": "摩納哥"
- },
- "SY": {
- "name": "敘利亞"
- },
- "FJ": {
- "name": "斐濟"
- },
- "SK": {
- "name": "斯洛伐克"
- },
- "SI": {
- "name": "斯洛維尼亞"
- },
- "SJ": {
- "name": "斯瓦爾巴特群島同揚馬延島"
- },
- "LK": {
- "name": "斯里蘭卡"
- },
- "SG": {
- "name": "新加坡"
- },
- "NC": {
- "name": "新喀里多尼亞"
- },
- "JP": {
- "name": "日本"
- },
- "CL": {
- "name": "智利"
- },
- "IM": {
- "name": "曼島"
- },
- "TO": {
- "name": "東加"
- },
- "TL": {
- "name": "東帝汶"
- },
- "TD": {
- "name": "查德"
- },
- "KH": {
- "name": "柬埔寨"
- },
- "GG": {
- "name": "根西島"
- },
- "GD": {
- "name": "格瑞那達"
- },
- "GL": {
- "name": "格陵蘭"
- },
- "VA": {
- "name": "梵蒂岡"
- },
- "MU": {
- "name": "模里西斯"
- },
- "BE": {
- "name": "比利時"
- },
- "BN": {
- "name": "汶萊"
- },
- "SA": {
- "name": "沙烏地阿拉伯"
- },
- "FR": {
- "name": "法國"
- },
- "TF": {
- "name": "法屬南方屬地"
- },
- "GF": {
- "name": "法屬圭亞那"
- },
- "PF": {
- "name": "法屬玻里尼西亞"
- },
- "MF": {
- "name": "法屬聖馬丁"
- },
- "FO": {
- "name": "法羅群島"
- },
- "PR": {
- "name": "波多黎各"
- },
- "BA": {
- "name": "波斯尼亞同黑塞哥維那"
- },
- "BW": {
- "name": "波札那"
- },
- "PL": {
- "name": "波蘭"
- },
- "TH": {
- "name": "泰國"
- },
- "HT": {
- "name": "海地"
- },
- "JE": {
- "name": "澤西島"
- },
- "AU": {
- "name": "澳洲"
- },
- "UA": {
- "name": "烏克蘭"
- },
- "UG": {
- "name": "烏干達"
- },
- "UY": {
- "name": "烏拉圭"
- },
- "UZ": {
- "name": "烏茲別克"
- },
- "JM": {
- "name": "牙買加"
- },
- "TA": {
- "name": "特里斯坦達庫尼亞群島"
- },
- "SL": {
- "name": "獅子山"
- },
- "BO": {
- "name": "玻利維亞"
- },
- "SE": {
- "name": "瑞典"
- },
- "CH": {
- "name": "瑞士"
- },
- "GP": {
- "name": "瓜地洛普"
- },
- "GT": {
- "name": "瓜地馬拉"
- },
- "WF": {
- "name": "瓦利斯同富圖納群島"
- },
- "GM": {
- "name": "甘比亞"
- },
- "RE": {
- "name": "留尼旺"
- },
- "BY": {
- "name": "白俄羅斯"
- },
- "BM": {
- "name": "百慕達"
- },
- "PN": {
- "name": "皮特肯群島"
- },
- "RW": {
- "name": "盧安達"
- },
- "LU": {
- "name": "盧森堡"
- },
- "GI": {
- "name": "直布羅陀"
- },
- "FK": {
- "name": "福克蘭群島"
- },
- "VU": {
- "name": "萬那杜"
- },
- "KW": {
- "name": "科威特"
- },
- "CC": {
- "name": "科科斯(基林)群島"
- },
- "XK": {
- "name": "科索沃"
- },
- "PE": {
- "name": "秘魯"
- },
- "TN": {
- "name": "突尼西亞"
- },
- "LT": {
- "name": "立陶宛"
- },
- "JO": {
- "name": "約旦"
- },
- "NA": {
- "name": "納米比亞"
- },
- "NU": {
- "name": "紐埃島"
- },
- "NZ": {
- "name": "紐西蘭"
- },
- "SB": {
- "name": "索羅門群島"
- },
- "SO": {
- "name": "索馬利亞"
- },
- "CV": {
- "name": "維德角"
- },
- "MM": {
- "name": "緬甸"
- },
- "RO": {
- "name": "羅馬尼亞"
- },
- "US": {
- "name": "美國"
- },
- "UM": {
- "name": "美國本土外小島嶼"
- },
- "VI": {
- "name": "美屬維京群島"
- },
- "AS": {
- "name": "美屬薩摩亞"
- },
- "IT": {
- "name": "義大利"
- },
- "KN": {
- "name": "聖基茨同尼維斯"
- },
- "ST": {
- "name": "聖多美同普林西比"
- },
- "BL": {
- "name": "聖巴瑟米"
- },
- "VC": {
- "name": "聖文森特同格林納丁斯"
- },
- "PM": {
- "name": "聖皮埃爾同密克隆群島"
- },
- "CX": {
- "name": "聖誕島"
- },
- "SH": {
- "name": "聖赫勒拿島"
- },
- "LC": {
- "name": "聖露西亞"
- },
- "SM": {
- "name": "聖馬利諾"
- },
- "KE": {
- "name": "肯亞"
- },
- "FI": {
- "name": "芬蘭"
- },
- "GB": {
- "name": "英國"
- },
- "IO": {
- "name": "英屬印度洋領地"
- },
- "VG": {
- "name": "英屬維京群島"
- },
- "MR": {
- "name": "茅利塔尼亞"
- },
- "SX": {
- "name": "荷屬聖馬丁"
- },
- "AW": {
- "name": "荷屬阿魯巴"
- },
- "NL": {
- "name": "荷蘭"
- },
- "BQ": {
- "name": "荷蘭加勒比區"
- },
- "MZ": {
- "name": "莫三比克"
- },
- "PH": {
- "name": "菲律賓"
- },
- "YE": {
- "name": "葉門"
- },
- "KM": {
- "name": "葛摩"
- },
- "PT": {
- "name": "葡萄牙"
- },
- "MN": {
- "name": "蒙古"
- },
- "MS": {
- "name": "蒙哲臘"
- },
- "ME": {
- "name": "蒙特內哥羅"
- },
- "BI": {
- "name": "蒲隆地"
- },
- "GY": {
- "name": "蓋亞那"
- },
- "WS": {
- "name": "薩摩亞"
- },
- "SV": {
- "name": "薩爾瓦多"
- },
- "SD": {
- "name": "蘇丹"
- },
- "SR": {
- "name": "蘇利南"
- },
- "ET": {
- "name": "衣索比亞"
- },
- "EH": {
- "name": "西撒哈拉"
- },
- "ES": {
- "name": "西班牙"
- },
- "NF": {
- "name": "諾福克島"
- },
- "NR": {
- "name": "諾魯"
- },
- "CI": {
- "name": "象牙海岸"
- },
- "BJ": {
- "name": "貝南"
- },
- "BZ": {
- "name": "貝里斯"
- },
- "LR": {
- "name": "賴比瑞亞"
- },
- "LS": {
- "name": "賴索托"
- },
- "CY": {
- "name": "賽普勒斯"
- },
- "GQ": {
- "name": "赤道幾內亞"
- },
- "VN": {
- "name": "越南"
- },
- "ZW": {
- "name": "辛巴威"
- },
- "GH": {
- "name": "迦納"
- },
- "DG": {
- "name": "迪亞哥加西亞島"
- },
- "KY": {
- "name": "開曼群島"
- },
- "GU": {
- "name": "關島"
- },
- "AF": {
- "name": "阿富汗"
- },
- "AE": {
- "name": "阿拉伯聯合大公國"
- },
- "OM": {
- "name": "阿曼王國"
- },
- "AR": {
- "name": "阿根廷"
- },
- "AC": {
- "name": "阿森松島"
- },
- "DZ": {
- "name": "阿爾及利亞"
- },
- "AL": {
- "name": "阿爾巴尼亞"
- },
- "MQ": {
- "name": "馬丁尼克島"
- },
- "MY": {
- "name": "馬來西亞"
- },
- "MK": {
- "name": "馬其頓"
- },
- "ML": {
- "name": "馬利"
- },
- "MW": {
- "name": "馬拉威"
- },
- "MT": {
- "name": "馬爾他"
- },
- "MV": {
- "name": "馬爾地夫"
- },
- "YT": {
- "name": "馬約特"
- },
- "MH": {
- "name": "馬紹爾群島"
- },
- "MG": {
- "name": "馬達加斯加"
- },
- "LB": {
- "name": "黎巴嫩"
- },
- "MX": {
- "name": "墨西哥"
- }
-} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/country/zh-Hant-HK.json b/vendor/commerceguys/intl/resources/country/zh-Hant-HK.json
index f78b07103..71354c99f 100644
--- a/vendor/commerceguys/intl/resources/country/zh-Hant-HK.json
+++ b/vendor/commerceguys/intl/resources/country/zh-Hant-HK.json
@@ -96,7 +96,7 @@
"name": "加蓬"
},
"MP": {
- "name": "北馬里亞納群島"
+ "name": "北馬利安納群島"
},
"KP": {
"name": "北韓"
@@ -198,7 +198,7 @@
"name": "多哥共和國"
},
"AI": {
- "name": "安圭拉"
+ "name": "安奎拉"
},
"AO": {
"name": "安哥拉"
@@ -276,7 +276,7 @@
"name": "所羅門群島"
},
"LV": {
- "name": "拉脫維亞"
+ "name": "拉脱維亞"
},
"TL": {
"name": "東帝汶"
@@ -504,7 +504,7 @@
"name": "索馬里"
},
"MQ": {
- "name": "馬丁尼克島"
+ "name": "馬丁尼克"
},
"MT": {
"name": "馬耳他"
@@ -537,13 +537,13 @@
"name": "馬爾代夫"
},
"FM": {
- "name": "密克羅尼西亞群島"
+ "name": "密克羅尼西亞"
},
"CZ": {
- "name": "捷克共和國"
+ "name": "捷克"
},
"SY": {
- "name": "敍利亞"
+ "name": "敘利亞"
},
"VA": {
"name": "梵蒂岡"
@@ -599,9 +599,6 @@
"PH": {
"name": "菲律賓"
},
- "LS": {
- "name": "萊索托"
- },
"VN": {
"name": "越南"
},
@@ -666,7 +663,7 @@
"name": "聖文森特和格林納丁斯"
},
"PM": {
- "name": "聖皮埃爾和密克隆群島"
+ "name": "聖皮埃與密克隆群島"
},
"ST": {
"name": "聖多美和普林西比"
@@ -737,6 +734,9 @@
"NF": {
"name": "諾福克島"
},
+ "LS": {
+ "name": "賴索托"
+ },
"SV": {
"name": "薩爾瓦多"
},
diff --git a/vendor/commerceguys/intl/resources/country/zh-Hant-MO.json b/vendor/commerceguys/intl/resources/country/zh-Hant-MO.json
index f78b07103..71354c99f 100644
--- a/vendor/commerceguys/intl/resources/country/zh-Hant-MO.json
+++ b/vendor/commerceguys/intl/resources/country/zh-Hant-MO.json
@@ -96,7 +96,7 @@
"name": "加蓬"
},
"MP": {
- "name": "北馬里亞納群島"
+ "name": "北馬利安納群島"
},
"KP": {
"name": "北韓"
@@ -198,7 +198,7 @@
"name": "多哥共和國"
},
"AI": {
- "name": "安圭拉"
+ "name": "安奎拉"
},
"AO": {
"name": "安哥拉"
@@ -276,7 +276,7 @@
"name": "所羅門群島"
},
"LV": {
- "name": "拉脫維亞"
+ "name": "拉脱維亞"
},
"TL": {
"name": "東帝汶"
@@ -504,7 +504,7 @@
"name": "索馬里"
},
"MQ": {
- "name": "馬丁尼克島"
+ "name": "馬丁尼克"
},
"MT": {
"name": "馬耳他"
@@ -537,13 +537,13 @@
"name": "馬爾代夫"
},
"FM": {
- "name": "密克羅尼西亞群島"
+ "name": "密克羅尼西亞"
},
"CZ": {
- "name": "捷克共和國"
+ "name": "捷克"
},
"SY": {
- "name": "敍利亞"
+ "name": "敘利亞"
},
"VA": {
"name": "梵蒂岡"
@@ -599,9 +599,6 @@
"PH": {
"name": "菲律賓"
},
- "LS": {
- "name": "萊索托"
- },
"VN": {
"name": "越南"
},
@@ -666,7 +663,7 @@
"name": "聖文森特和格林納丁斯"
},
"PM": {
- "name": "聖皮埃爾和密克隆群島"
+ "name": "聖皮埃與密克隆群島"
},
"ST": {
"name": "聖多美和普林西比"
@@ -737,6 +734,9 @@
"NF": {
"name": "諾福克島"
},
+ "LS": {
+ "name": "賴索托"
+ },
"SV": {
"name": "薩爾瓦多"
},
diff --git a/vendor/commerceguys/intl/resources/country/zh-Hant.json b/vendor/commerceguys/intl/resources/country/zh-Hant.json
index 93c51a231..c1b94b2fd 100644
--- a/vendor/commerceguys/intl/resources/country/zh-Hant.json
+++ b/vendor/commerceguys/intl/resources/country/zh-Hant.json
@@ -84,7 +84,7 @@
"name": "加彭"
},
"MP": {
- "name": "北馬里亞納群島"
+ "name": "北馬利安納群島"
},
"KP": {
"name": "北韓"
@@ -179,12 +179,12 @@
"TG": {
"name": "多哥"
},
- "AI": {
- "name": "安圭拉"
- },
"AG": {
"name": "安地卡及巴布達"
},
+ "AI": {
+ "name": "安奎拉"
+ },
"AO": {
"name": "安哥拉"
},
@@ -209,9 +209,6 @@
"HR": {
"name": "克羅埃西亞"
},
- "SJ": {
- "name": "冷岸及央棉"
- },
"LY": {
"name": "利比亞"
},
@@ -282,7 +279,7 @@
"name": "法屬圭亞那"
},
"TF": {
- "name": "法屬南方屬地"
+ "name": "法屬南部屬地"
},
"PF": {
"name": "法屬玻里尼西亞"
@@ -318,7 +315,7 @@
"name": "阿根廷"
},
"OM": {
- "name": "阿曼王國"
+ "name": "阿曼"
},
"AF": {
"name": "阿富汗"
@@ -365,12 +362,12 @@
"BO": {
"name": "玻利維亞"
},
+ "CC": {
+ "name": "科克斯(基靈)群島"
+ },
"KW": {
"name": "科威特"
},
- "CC": {
- "name": "科科斯(基林)群島"
- },
"XK": {
"name": "科索沃"
},
@@ -434,6 +431,9 @@
"NO": {
"name": "挪威"
},
+ "SJ": {
+ "name": "挪威屬斯瓦巴及尖棉"
+ },
"GG": {
"name": "根息"
},
@@ -486,7 +486,7 @@
"name": "索羅門群島"
},
"MQ": {
- "name": "馬丁尼克島"
+ "name": "馬丁尼克"
},
"ML": {
"name": "馬利"
@@ -501,7 +501,7 @@
"name": "馬拉威"
},
"YT": {
- "name": "馬約特"
+ "name": "馬約特島"
},
"MH": {
"name": "馬紹爾群島"
@@ -516,10 +516,10 @@
"name": "馬爾地夫"
},
"FM": {
- "name": "密克羅尼西亞群島"
+ "name": "密克羅尼西亞"
},
"CZ": {
- "name": "捷克共和國"
+ "name": "捷克"
},
"SY": {
"name": "敘利亞"
@@ -636,7 +636,7 @@
"name": "聖文森及格瑞那丁"
},
"PM": {
- "name": "聖皮埃爾和密克隆群島"
+ "name": "聖皮埃與密克隆群島"
},
"ST": {
"name": "聖多美普林西比"
diff --git a/vendor/commerceguys/intl/resources/country/zh.json b/vendor/commerceguys/intl/resources/country/zh.json
index 5215f7776..ae5b2a4dc 100644
--- a/vendor/commerceguys/intl/resources/country/zh.json
+++ b/vendor/commerceguys/intl/resources/country/zh.json
@@ -185,6 +185,9 @@
"TF": {
"name": "法属南部领地"
},
+ "MF": {
+ "name": "法属圣马丁"
+ },
"VA": {
"name": "梵蒂冈"
},
@@ -218,9 +221,6 @@
"CR": {
"name": "哥斯达黎加"
},
- "GG": {
- "name": "格恩西岛"
- },
"GD": {
"name": "格林纳达"
},
@@ -230,6 +230,9 @@
"GE": {
"name": "格鲁吉亚"
},
+ "GG": {
+ "name": "根西岛"
+ },
"CU": {
"name": "古巴"
},
@@ -297,7 +300,7 @@
"name": "柬埔寨"
},
"CZ": {
- "name": "捷克共和国"
+ "name": "捷克"
},
"ZW": {
"name": "津巴布韦"
@@ -557,9 +560,6 @@
"LC": {
"name": "圣卢西亚"
},
- "MF": {
- "name": "圣马丁岛"
- },
"SM": {
"name": "圣马力诺"
},
@@ -662,15 +662,15 @@
"UZ": {
"name": "乌兹别克斯坦"
},
- "GR": {
- "name": "希腊"
- },
"ES": {
"name": "西班牙"
},
"EH": {
"name": "西撒哈拉"
},
+ "GR": {
+ "name": "希腊"
+ },
"SG": {
"name": "新加坡"
},
diff --git a/vendor/commerceguys/intl/resources/country/zu.json b/vendor/commerceguys/intl/resources/country/zu.json
index 0ce7b0451..f1f8f3c9e 100644
--- a/vendor/commerceguys/intl/resources/country/zu.json
+++ b/vendor/commerceguys/intl/resources/country/zu.json
@@ -183,7 +183,7 @@
"name": "i-Cyprus"
},
"CZ": {
- "name": "i-Czech Republic"
+ "name": "i-Czechia"
},
"DK": {
"name": "i-Denmark"
@@ -602,9 +602,6 @@
"SO": {
"name": "i-Somalia"
},
- "ZA": {
- "name": "i-South Africa"
- },
"GS": {
"name": "i-South Georgia ne-South Sandwich Islands"
},
@@ -752,6 +749,9 @@
"ML": {
"name": "iMali"
},
+ "ZA": {
+ "name": "iNingizimu Afrika"
+ },
"ZW": {
"name": "iZimbabwe"
},
diff --git a/vendor/commerceguys/intl/resources/currency/af.json b/vendor/commerceguys/intl/resources/currency/af.json
index d689c1003..cd8a831f4 100644
--- a/vendor/commerceguys/intl/resources/currency/af.json
+++ b/vendor/commerceguys/intl/resources/currency/af.json
@@ -49,9 +49,6 @@
"BYN": {
"name": "Belo-Russiese roebel"
},
- "BYR": {
- "name": "Belo-Russiese roebel (2000–2016)"
- },
"BMD": {
"name": "Bermuda-dollar"
},
@@ -355,7 +352,7 @@
"name": "Paraguaanse guarani"
},
"PEN": {
- "name": "Peruaanse nuwe sol"
+ "name": "Peruaanse sol"
},
"PLN": {
"name": "Poolse zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/agq.json b/vendor/commerceguys/intl/resources/currency/agq.json
index d23dcf674..f1f870ece 100644
--- a/vendor/commerceguys/intl/resources/currency/agq.json
+++ b/vendor/commerceguys/intl/resources/currency/agq.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -113,7 +110,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dàlasì è Gambìa"
@@ -379,7 +376,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ak.json b/vendor/commerceguys/intl/resources/currency/ak.json
index f866fb612..c7da6759b 100644
--- a/vendor/commerceguys/intl/resources/currency/ak.json
+++ b/vendor/commerceguys/intl/resources/currency/ak.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -109,7 +106,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -355,7 +352,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/am.json b/vendor/commerceguys/intl/resources/currency/am.json
index e96d302ec..d77c6c325 100644
--- a/vendor/commerceguys/intl/resources/currency/am.json
+++ b/vendor/commerceguys/intl/resources/currency/am.json
@@ -27,12 +27,12 @@
"AWG": {
"name": "አሩባን ፍሎሪን"
},
- "HUF": {
- "name": "የሁንጋሪ ፎሪንት"
- },
"HNL": {
"name": "የሃንዱራ ሌምፓአይራ"
},
+ "HUF": {
+ "name": "የሃንጋሪያን ፎሪንት"
+ },
"HTG": {
"name": "የሃያቲ ጓርዴ"
},
@@ -148,7 +148,7 @@
"name": "የሲንጋፖር ዶላር"
},
"STD": {
- "name": "የሳኦ ቶመ እና ፕሪንሲፐ ዶብራ"
+ "name": "የሳኦ ቶሜ እና ፕሪንሲፔ ዶብራ"
},
"SAR": {
"name": "የሳውዲ ሪያል"
@@ -192,9 +192,6 @@
"BYN": {
"name": "የቤላሩስያ ሩብል"
},
- "BYR": {
- "name": "የቤላሩስያ ሩብል (2000–2016)"
- },
"BMD": {
"name": "የቤርሙዳ ዶላር"
},
@@ -228,7 +225,7 @@
"symbol": "₫"
},
"AED": {
- "name": "የተባበሩት የአረብ ኤምረትስ ዲርሀም"
+ "name": "የተባበሩት የአረብ ኤምሬትስ ድርሀም"
},
"TRY": {
"name": "የቱርክ ሊራ"
@@ -375,9 +372,6 @@
"CVE": {
"name": "የኬፕ ቫርዲ ኤስኩዶ"
},
- "HRK": {
- "name": "የክሮሽያ ኩና"
- },
"COP": {
"name": "የኮሎምቢያ ፔሶ"
},
@@ -471,7 +465,7 @@
"name": "የፓፕዋ ኒው ጊኒ ኪና"
},
"PEN": {
- "name": "የፔሩቪያ ኑኤቮ ሶል"
+ "name": "የፔሩቪያ ሶል"
},
"PLN": {
"name": "የፖላንድ ዝሎቲ"
@@ -489,6 +483,9 @@
"PAB": {
"name": "ፓናማኒአን ባልቦአ"
},
+ "HRK": {
+ "name": "Croatian Kuna"
+ },
"SVC": {
"name": "Salvadoran Colón"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ar.json b/vendor/commerceguys/intl/resources/currency/ar.json
index b2ed83b64..8105b0ce0 100644
--- a/vendor/commerceguys/intl/resources/currency/ar.json
+++ b/vendor/commerceguys/intl/resources/currency/ar.json
@@ -47,7 +47,7 @@
"name": "بيزو اوروغواي"
},
"CLP": {
- "name": "بيزو شيلي"
+ "name": "بيزو تشيلي"
},
"PHP": {
"name": "بيزو فلبيني"
@@ -66,7 +66,7 @@
"symbol": "MX$"
},
"BDT": {
- "name": "تاكا بنجلاديشي"
+ "name": "تاكا بنغلاديشي"
},
"WST": {
"name": "تالا ساموا"
@@ -105,9 +105,6 @@
"name": "جنيه مصري",
"symbol": "ج.م.‏"
},
- "PYG": {
- "name": "جواراني باراجواي"
- },
"HTG": {
"name": "جوردى هايتي"
},
@@ -123,7 +120,7 @@
"symbol": "د.م.‏"
},
"GMD": {
- "name": "دلاسي جامبي"
+ "name": "دلاسي غامبي"
},
"STD": {
"name": "دوبرا ساو تومي وبرينسيبي"
@@ -156,7 +153,7 @@
"symbol": "NT$"
},
"TTD": {
- "name": "دولار ترينداد وتوباجو"
+ "name": "دولار ترينداد وتوباغو"
},
"JMD": {
"name": "دولار جامايكي"
@@ -248,9 +245,6 @@
"BYN": {
"name": "روبل بيلاروسي"
},
- "BYR": {
- "name": "روبل بيلاروسي (٢٠٠٠–٢٠١٦)"
- },
"RUB": {
"name": "روبل روسي"
},
@@ -313,7 +307,7 @@
"name": "زلوتي بولندي"
},
"PEN": {
- "name": "سول جديد البيرو"
+ "name": "سول بيروفي"
},
"UZS": {
"name": "سوم أوزبكستاني"
@@ -343,6 +337,9 @@
"name": "شيكل إسرائيلي جديد",
"symbol": "₪"
},
+ "PYG": {
+ "name": "غواراني باراغواي"
+ },
"ANG": {
"name": "غيلدر أنتيلي هولندي"
},
@@ -353,8 +350,7 @@
"name": "فرنك بروندي"
},
"KMF": {
- "name": "فرنك جزر القمر",
- "symbol": "ف.ج.ق.‏"
+ "name": "فرنك جزر القمر"
},
"DJF": {
"name": "فرنك جيبوتي"
@@ -387,16 +383,19 @@
"name": "فلورن أروبي"
},
"HUF": {
- "name": "فورينت مجري"
+ "name": "فورينت هنغاري"
},
"NIO": {
"name": "قرطبة نيكاراغوا"
},
+ "ISK": {
+ "name": "كرونة أيسلندية"
+ },
"CZK": {
"name": "كرونة تشيكية"
},
"DKK": {
- "name": "كرونة دانماركي"
+ "name": "كرونة دنماركية"
},
"SEK": {
"name": "كرونة سويدية"
@@ -404,9 +403,6 @@
"NOK": {
"name": "كرونة نرويجية"
},
- "ISK": {
- "name": "كرونه أيسلندي"
- },
"ZMW": {
"name": "كواشا زامبي"
},
@@ -414,13 +410,13 @@
"name": "كواشا مالاوي"
},
"AOA": {
- "name": "كوانزا أنجولي"
+ "name": "كوانزا أنغولي"
},
"GTQ": {
- "name": "كوتزال جواتيمالا"
+ "name": "كوتزال غواتيمالا"
},
"CRC": {
- "name": "كولن كوستا ريكي"
+ "name": "كولن كوستاريكي"
},
"SVC": {
"name": "كولون سلفادوري"
diff --git a/vendor/commerceguys/intl/resources/currency/asa.json b/vendor/commerceguys/intl/resources/currency/asa.json
index 168bb5ec9..6331116a8 100644
--- a/vendor/commerceguys/intl/resources/currency/asa.json
+++ b/vendor/commerceguys/intl/resources/currency/asa.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "dalathi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ast.json b/vendor/commerceguys/intl/resources/currency/ast.json
index 88b9bf9e9..248b9de86 100644
--- a/vendor/commerceguys/intl/resources/currency/ast.json
+++ b/vendor/commerceguys/intl/resources/currency/ast.json
@@ -402,9 +402,6 @@
"BYN": {
"name": "Rublu bielorrusu"
},
- "BYR": {
- "name": "Rublu bielorrusu (2000–2016)"
- },
"RUB": {
"name": "Rublu rusu"
},
@@ -446,7 +443,7 @@
"name": "Shilling ugandés"
},
"PEN": {
- "name": "sol nuevu peruanu"
+ "name": "Sol peruanu"
},
"KGS": {
"name": "Som kirguistanín"
diff --git a/vendor/commerceguys/intl/resources/currency/az.json b/vendor/commerceguys/intl/resources/currency/az.json
index 3796d0c60..f62f6a224 100644
--- a/vendor/commerceguys/intl/resources/currency/az.json
+++ b/vendor/commerceguys/intl/resources/currency/az.json
@@ -39,9 +39,6 @@
"BYN": {
"name": "Belarus Rublu"
},
- "BYR": {
- "name": "Belarus Rublu (2000–2016)"
- },
"BZD": {
"name": "Beliz Dolları"
},
@@ -364,7 +361,7 @@
"name": "Paraqvay Quaranisi"
},
"PEN": {
- "name": "Peru Nuevo Solu"
+ "name": "Peru Solu"
},
"PLN": {
"name": "Polşa Zlotısı"
diff --git a/vendor/commerceguys/intl/resources/currency/bas.json b/vendor/commerceguys/intl/resources/currency/bas.json
index 94106f1ce..4a1642f34 100644
--- a/vendor/commerceguys/intl/resources/currency/bas.json
+++ b/vendor/commerceguys/intl/resources/currency/bas.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasì gambìà"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/base.json b/vendor/commerceguys/intl/resources/currency/base.json
index cf527b22c..7d7ae1694 100644
--- a/vendor/commerceguys/intl/resources/currency/base.json
+++ b/vendor/commerceguys/intl/resources/currency/base.json
@@ -76,10 +76,6 @@
"BYN": {
"numeric_code": "933"
},
- "BYR": {
- "numeric_code": "974",
- "fraction_digits": "0"
- },
"BZD": {
"numeric_code": "084"
},
diff --git a/vendor/commerceguys/intl/resources/currency/be.json b/vendor/commerceguys/intl/resources/currency/be.json
index 3b88230c1..8d7d955eb 100644
--- a/vendor/commerceguys/intl/resources/currency/be.json
+++ b/vendor/commerceguys/intl/resources/currency/be.json
@@ -55,9 +55,6 @@
"name": "беларускі рубель",
"symbol": "Br"
},
- "BYR": {
- "name": "беларускі рубель (2000–2016)"
- },
"BZD": {
"name": "белізскі долар"
},
@@ -347,7 +344,7 @@
"name": "паўночнакарэйская вона"
},
"PEN": {
- "name": "перуанскі новы соль"
+ "name": "перуанскі соль"
},
"PLN": {
"name": "польскі злоты"
@@ -420,7 +417,7 @@
"name": "узбекскі сум"
},
"UAH": {
- "name": "украінская грыўна"
+ "name": "украінская грыўня"
},
"UYU": {
"name": "уругвайскае песа"
diff --git a/vendor/commerceguys/intl/resources/currency/bez.json b/vendor/commerceguys/intl/resources/currency/bez.json
index bedf0d618..5ab9cbbb0 100644
--- a/vendor/commerceguys/intl/resources/currency/bez.json
+++ b/vendor/commerceguys/intl/resources/currency/bez.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -393,7 +390,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/bg.json b/vendor/commerceguys/intl/resources/currency/bg.json
index d046fcb0c..5512f4d4e 100644
--- a/vendor/commerceguys/intl/resources/currency/bg.json
+++ b/vendor/commerceguys/intl/resources/currency/bg.json
@@ -44,9 +44,6 @@
"BYN": {
"name": "Беларуска рубла"
},
- "BYR": {
- "name": "Беларуска рубла (2000–2016)"
- },
"BZD": {
"name": "Белизийски долар"
},
@@ -324,7 +321,7 @@
"name": "Патака на Макао"
},
"PEN": {
- "name": "Перуански нов сол"
+ "name": "Перуански сол"
},
"PLN": {
"name": "Полска злота"
diff --git a/vendor/commerceguys/intl/resources/currency/bm.json b/vendor/commerceguys/intl/resources/currency/bm.json
index a4492fff9..2b6029151 100644
--- a/vendor/commerceguys/intl/resources/currency/bm.json
+++ b/vendor/commerceguys/intl/resources/currency/bm.json
@@ -49,9 +49,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -115,7 +112,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -344,7 +341,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/bn.json b/vendor/commerceguys/intl/resources/currency/bn.json
index 00fc47afe..1a707d4f1 100644
--- a/vendor/commerceguys/intl/resources/currency/bn.json
+++ b/vendor/commerceguys/intl/resources/currency/bn.json
@@ -4,7 +4,7 @@
"symbol": "A$"
},
"ISK": {
- "name": "আইসল্যান্ড ক্রৌন"
+ "name": "আইসল্যান্ডীয় ক্রোনা"
},
"AZN": {
"name": "আজারবাইজান মানাত"
@@ -93,7 +93,7 @@
"name": "কাজাখাস্তানি টেঙ্গে"
},
"QAR": {
- "name": "কাতার রিয়্যাল"
+ "name": "কাতার রিয়াল"
},
"CAD": {
"name": "কানাডিয়ান ডলার",
@@ -183,7 +183,7 @@
"name": "ডোমিনিকান পেসো"
},
"DKK": {
- "name": "ড্যানিশ ক্রৌন"
+ "name": "ড্যানিশ ক্রোন"
},
"TJS": {
"name": "তাজিকিস্তান সোমোনি"
@@ -222,7 +222,7 @@
"symbol": "NT$"
},
"NOK": {
- "name": "নরওয়ে ক্রৌন"
+ "name": "নরওয়েজিয়ান ক্রোন"
},
"NGN": {
"name": "নাইজেরিয়ান নায়রা"
@@ -261,7 +261,7 @@
"symbol": "EC$"
},
"PEN": {
- "name": "পেরুভিয়ান সোল নুয়েভো"
+ "name": "পেরুভিয়ান সোল"
},
"PLN": {
"name": "পোলিশ জ্লোটি"
@@ -285,7 +285,7 @@
"name": "বলিভিয়ানো"
},
"BAM": {
- "name": "বসনিয়া এবং হার্জেগোভিনা মার্ক"
+ "name": "বসনিয়া এবং হার্জেগোভিনা বিনিমেয় মার্ক"
},
"BDT": {
"name": "বাংলাদেশী টাকা",
@@ -307,14 +307,11 @@
"name": "বুরুন্ডি ফ্রাঙ্ক"
},
"BGN": {
- "name": "বুলগেরীয় নিউ লেভ"
+ "name": "বুলগেরীয় লেভ"
},
"BYN": {
"name": "বেলারুশিয়ান রুবেল"
},
- "BYR": {
- "name": "বেলারুশিয়ান রুবেল (2000–2016)"
- },
"BZD": {
"name": "বেলিজ ডলার"
},
@@ -410,7 +407,7 @@
"name": "রুয়ান্ডান ফ্রাঙ্ক"
},
"LYD": {
- "name": "লিবিয়ান ডলার"
+ "name": "লিবিয়ান দিনার"
},
"LRD": {
"name": "লিবেরিয়ান ডলার"
@@ -480,7 +477,7 @@
"name": "সোয়াজিল্যান্ড লিলাঙ্গেনি"
},
"SAR": {
- "name": "সৌদি রিয়্যাল"
+ "name": "সৌদি রিয়াল"
},
"HKD": {
"name": "হংকং ডলার",
diff --git a/vendor/commerceguys/intl/resources/currency/br.json b/vendor/commerceguys/intl/resources/currency/br.json
index 5fd6a16fe..f34426849 100644
--- a/vendor/commerceguys/intl/resources/currency/br.json
+++ b/vendor/commerceguys/intl/resources/currency/br.json
@@ -324,9 +324,6 @@
"BTN": {
"name": "ngultrum Bhoutan"
},
- "PEN": {
- "name": "nuevo sol Perou"
- },
"MRO": {
"name": "ouguiya Maouritania"
},
@@ -400,9 +397,6 @@
"BYN": {
"name": "roubl Belarus"
},
- "BYR": {
- "name": "roubl Belarus (2000–2016)"
- },
"RUB": {
"name": "roubl Rusia"
},
@@ -446,6 +440,9 @@
"TZS": {
"name": "shilling Tanzania"
},
+ "PEN": {
+ "name": "sol Perou"
+ },
"KGS": {
"name": "som Kyrgyzstan"
},
diff --git a/vendor/commerceguys/intl/resources/currency/brx.json b/vendor/commerceguys/intl/resources/currency/brx.json
index de82e0c03..ec7d50841 100644
--- a/vendor/commerceguys/intl/resources/currency/brx.json
+++ b/vendor/commerceguys/intl/resources/currency/brx.json
@@ -254,7 +254,7 @@
"name": "पारागुऐई गुआरानी"
},
"PEN": {
- "name": "पेरुवाई नया सोल"
+ "name": "पेरुवाई सोल"
},
"PLN": {
"name": "पोलिश ज़्लॉटी"
@@ -300,9 +300,6 @@
"BYN": {
"name": "बेलारुसी रूबल"
},
- "BYR": {
- "name": "बेलारुसी रूबल (2000–2016)"
- },
"BZD": {
"name": "बेलीज़ डॉलर"
},
diff --git a/vendor/commerceguys/intl/resources/currency/bs-Cyrl.json b/vendor/commerceguys/intl/resources/currency/bs-Cyrl.json
index 401787676..8b2bdf902 100644
--- a/vendor/commerceguys/intl/resources/currency/bs-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/currency/bs-Cyrl.json
@@ -46,9 +46,6 @@
"BYN": {
"name": "Белоруска рубља"
},
- "BYR": {
- "name": "Белоруска рубља (2000–2016)"
- },
"BMD": {
"name": "Бермудски долар"
},
@@ -335,7 +332,7 @@
"name": "Парагвајски гуарни"
},
"PEN": {
- "name": "Перуански нуево сол"
+ "name": "Перуански сол"
},
"PLN": {
"name": "Пољски злот",
diff --git a/vendor/commerceguys/intl/resources/currency/bs.json b/vendor/commerceguys/intl/resources/currency/bs.json
index adf31c61b..e16d68cb8 100644
--- a/vendor/commerceguys/intl/resources/currency/bs.json
+++ b/vendor/commerceguys/intl/resources/currency/bs.json
@@ -50,9 +50,6 @@
"BYN": {
"name": "Bjeloruska rublja"
},
- "BYR": {
- "name": "Bjeloruska rublja (2000–2016)"
- },
"BWP": {
"name": "Bocvanska pula"
},
@@ -356,7 +353,7 @@
"name": "Paragvajski gvarani"
},
"PEN": {
- "name": "Peruanski novi sol"
+ "name": "Peruanski sol"
},
"PLN": {
"name": "Poljski zlot"
diff --git a/vendor/commerceguys/intl/resources/currency/ca.json b/vendor/commerceguys/intl/resources/currency/ca.json
index 932ce5061..1c2d49cbe 100644
--- a/vendor/commerceguys/intl/resources/currency/ca.json
+++ b/vendor/commerceguys/intl/resources/currency/ca.json
@@ -333,9 +333,6 @@
"name": "nou dòlar de Taiwan",
"symbol": "NT$"
},
- "PEN": {
- "name": "nou sol peruà"
- },
"ILS": {
"name": "nou xéquel israelià",
"symbol": "₪"
@@ -412,9 +409,6 @@
"BYN": {
"name": "ruble bielorús"
},
- "BYR": {
- "name": "ruble bielorús (2000–2016)"
- },
"RUB": {
"name": "ruble rus"
},
@@ -443,6 +437,9 @@
"PKR": {
"name": "rupia pakistanesa"
},
+ "PEN": {
+ "name": "sol peruà"
+ },
"KGS": {
"name": "som kirguís"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ce.json b/vendor/commerceguys/intl/resources/currency/ce.json
index 042d6a546..20e535ad0 100644
--- a/vendor/commerceguys/intl/resources/currency/ce.json
+++ b/vendor/commerceguys/intl/resources/currency/ce.json
@@ -56,9 +56,6 @@
"BYN": {
"name": "Белоруссин сом"
},
- "BYR": {
- "name": "Белоруссин сом (2000–2016)"
- },
"BMD": {
"name": "Бермудан доллар"
},
@@ -173,9 +170,6 @@
"CVE": {
"name": "Кабо-Верден эскудо"
},
- "KZT": {
- "name": "Казахстанан тенге"
- },
"KYD": {
"name": "Кайманийн гӀайренийн доллар"
},
@@ -224,6 +218,9 @@
"KWD": {
"name": "Кувейтан динар"
},
+ "KZT": {
+ "name": "Кхазакхстанан тенге"
+ },
"KRW": {
"name": "Къилба Корейн вона",
"symbol": "₩"
@@ -343,7 +340,7 @@
"name": "Парагвайн гуарани"
},
"PEN": {
- "name": "Перун керла соль"
+ "name": "Перун соль"
},
"PLN": {
"name": "Польшан злотый"
@@ -365,7 +362,7 @@
"name": "Сан-Томен а, Принсипин а добра"
},
"SAR": {
- "name": "СаӀудийн Аравин риал"
+ "name": "СаӀудийн Ӏаьрбийчоьнан риал"
},
"SZL": {
"name": "Свазилендан лилангени"
@@ -426,7 +423,7 @@
"name": "Угандан шиллинг"
},
"UZS": {
- "name": "Узбекистанан сум"
+ "name": "Узбекистанан сом"
},
"UAH": {
"name": "Украинан гривна"
diff --git a/vendor/commerceguys/intl/resources/currency/cgg.json b/vendor/commerceguys/intl/resources/currency/cgg.json
index 649e56df5..1a80c45ed 100644
--- a/vendor/commerceguys/intl/resources/currency/cgg.json
+++ b/vendor/commerceguys/intl/resources/currency/cgg.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -366,7 +363,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/chr.json b/vendor/commerceguys/intl/resources/currency/chr.json
index 5b89c29e1..86e4a1b71 100644
--- a/vendor/commerceguys/intl/resources/currency/chr.json
+++ b/vendor/commerceguys/intl/resources/currency/chr.json
@@ -273,9 +273,6 @@
"BYN": {
"name": "ᏇᎳᎷᏍ ᎠᏕᎳ"
},
- "BYR": {
- "name": "ᏇᎳᎷᏍ ᎠᏕᎳ (2000–2016)"
- },
"BZD": {
"name": "ᏇᎵᏍ ᎠᏕᎳ"
},
diff --git a/vendor/commerceguys/intl/resources/currency/cs.json b/vendor/commerceguys/intl/resources/currency/cs.json
index 3824b157b..2f75f4228 100644
--- a/vendor/commerceguys/intl/resources/currency/cs.json
+++ b/vendor/commerceguys/intl/resources/currency/cs.json
@@ -49,9 +49,6 @@
"BYN": {
"name": "běloruský rubl"
},
- "BYR": {
- "name": "běloruský rubl (2000–2016)"
- },
"BMD": {
"name": "bermudský dolar"
},
@@ -79,7 +76,7 @@
"name": "brunejský dolar"
},
"BGN": {
- "name": "bulharský lev"
+ "name": "bulharský leva"
},
"BIF": {
"name": "burundský frank"
@@ -358,7 +355,7 @@
"name": "paraguajské guarani"
},
"PEN": {
- "name": "peruánský nový sol"
+ "name": "peruánský sol"
},
"PLN": {
"name": "polský zlotý"
diff --git a/vendor/commerceguys/intl/resources/currency/cy.json b/vendor/commerceguys/intl/resources/currency/cy.json
index ca64ac81d..b38a500d6 100644
--- a/vendor/commerceguys/intl/resources/currency/cy.json
+++ b/vendor/commerceguys/intl/resources/currency/cy.json
@@ -223,7 +223,7 @@
"name": "Kip Laos"
},
"CZK": {
- "name": "Koruna Tsiec"
+ "name": "Koruna’r Weriniaeth Tsiec"
},
"ISK": {
"name": "Króna Gwlad yr Iâ"
@@ -300,9 +300,6 @@
"ERN": {
"name": "Nakfa Eritrea"
},
- "PEN": {
- "name": "Nuevo Sol Periw"
- },
"MRO": {
"name": "Ouguiya Mauritania"
},
@@ -357,7 +354,7 @@
"symbol": "£"
},
"SHP": {
- "name": "Punt Saint Helena"
+ "name": "Punt St Helena"
},
"SDG": {
"name": "Punt Sudan"
@@ -411,9 +408,6 @@
"BYN": {
"name": "Rwbl Belarws"
},
- "BYR": {
- "name": "Rwbl Belarws (2000–2016)"
- },
"RUB": {
"name": "Rwbl Rwsia"
},
@@ -440,6 +434,9 @@
"name": "Shegel Newydd Israel",
"symbol": "₪"
},
+ "PEN": {
+ "name": "Sol Periw"
+ },
"KGS": {
"name": "Som Kyrgyzstan"
},
diff --git a/vendor/commerceguys/intl/resources/currency/da.json b/vendor/commerceguys/intl/resources/currency/da.json
index d53310c93..2053d040e 100644
--- a/vendor/commerceguys/intl/resources/currency/da.json
+++ b/vendor/commerceguys/intl/resources/currency/da.json
@@ -193,9 +193,6 @@
"BYN": {
"name": "hviderussisk rubel"
},
- "BYR": {
- "name": "hviderussisk rubel (2000–2016)"
- },
"INR": {
"name": "indisk rupee",
"symbol": "₹"
@@ -351,7 +348,7 @@
"name": "paraguaysk guarani"
},
"PEN": {
- "name": "peruviansk nuevo sol"
+ "name": "peruviansk sol"
},
"PLN": {
"name": "polsk zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/dav.json b/vendor/commerceguys/intl/resources/currency/dav.json
index 1c12c163f..0815fc583 100644
--- a/vendor/commerceguys/intl/resources/currency/dav.json
+++ b/vendor/commerceguys/intl/resources/currency/dav.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/de-CH.json b/vendor/commerceguys/intl/resources/currency/de-CH.json
index 7f6b29a41..0c69ad302 100644
--- a/vendor/commerceguys/intl/resources/currency/de-CH.json
+++ b/vendor/commerceguys/intl/resources/currency/de-CH.json
@@ -55,7 +55,7 @@
"name": "Bhutan-Ngultrum"
},
"BOB": {
- "name": "Bolivanischer Boliviano"
+ "name": "Bolivianischer Boliviano"
},
"BAM": {
"name": "Bosnien und Herzegowina Konvertierbare Mark"
@@ -117,8 +117,7 @@
"name": "Eritreischer Nakfa"
},
"EUR": {
- "name": "Euro",
- "symbol": "€"
+ "name": "Euro"
},
"FKP": {
"name": "Falkland-Pfund"
@@ -343,7 +342,7 @@
"name": "Paraguayischer Guaraní"
},
"PEN": {
- "name": "Peruanischer Sol"
+ "name": "Peruanischer Neuer Sol"
},
"PHP": {
"name": "Philippinischer Peso"
@@ -490,8 +489,5 @@
},
"BYN": {
"name": "Weissrussischer Rubel"
- },
- "BYR": {
- "name": "Weissrussischer Rubel (2000–2016)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/de.json b/vendor/commerceguys/intl/resources/currency/de.json
index eb009e567..0f97eb7b4 100644
--- a/vendor/commerceguys/intl/resources/currency/de.json
+++ b/vendor/commerceguys/intl/resources/currency/de.json
@@ -55,7 +55,7 @@
"name": "Bhutan-Ngultrum"
},
"BOB": {
- "name": "Bolivanischer Boliviano"
+ "name": "Bolivianischer Boliviano"
},
"BAM": {
"name": "Bosnien und Herzegowina Konvertierbare Mark"
@@ -490,8 +490,5 @@
},
"BYN": {
"name": "Weißrussischer Rubel"
- },
- "BYR": {
- "name": "Weißrussischer Rubel (2000–2016)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/dje.json b/vendor/commerceguys/intl/resources/currency/dje.json
index fddc77db1..bc323e79e 100644
--- a/vendor/commerceguys/intl/resources/currency/dje.json
+++ b/vendor/commerceguys/intl/resources/currency/dje.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -117,7 +114,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -362,7 +359,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/dsb.json b/vendor/commerceguys/intl/resources/currency/dsb.json
index 2a300e71f..b531834f3 100644
--- a/vendor/commerceguys/intl/resources/currency/dsb.json
+++ b/vendor/commerceguys/intl/resources/currency/dsb.json
@@ -51,9 +51,6 @@
"BYN": {
"name": "běłoruski rubl"
},
- "BYR": {
- "name": "běłoruski rubl (2000–2016)"
- },
"BTN": {
"name": "bhutański ngultrum"
},
@@ -355,7 +352,7 @@
"name": "paraguayski guarani"
},
"PEN": {
- "name": "peruski nowy sol"
+ "name": "peruski sol"
},
"ZAR": {
"name": "pódpołdnjowoafriski rand"
diff --git a/vendor/commerceguys/intl/resources/currency/dz.json b/vendor/commerceguys/intl/resources/currency/dz.json
index c42b4c1a8..4771d28ba 100644
--- a/vendor/commerceguys/intl/resources/currency/dz.json
+++ b/vendor/commerceguys/intl/resources/currency/dz.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -82,7 +79,7 @@
"name": "Cuban Convertible Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DJF": {
"name": "Djiboutian Franc"
diff --git a/vendor/commerceguys/intl/resources/currency/ebu.json b/vendor/commerceguys/intl/resources/currency/ebu.json
index c52936dfa..f831bedb4 100644
--- a/vendor/commerceguys/intl/resources/currency/ebu.json
+++ b/vendor/commerceguys/intl/resources/currency/ebu.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ee.json b/vendor/commerceguys/intl/resources/currency/ee.json
index 97041dc96..3202b60dc 100644
--- a/vendor/commerceguys/intl/resources/currency/ee.json
+++ b/vendor/commerceguys/intl/resources/currency/ee.json
@@ -2,9 +2,6 @@
"AFN": {
"name": "afghanistanga afghani"
},
- "ISK": {
- "name": "aiselandga króna"
- },
"ALL": {
"name": "albaniaga lek"
},
@@ -31,7 +28,7 @@
"name": "azerbaidzanga manat"
},
"BSD": {
- "name": "bahamiaga dollar"
+ "name": "bahamasga dollar"
},
"BHD": {
"name": "bahrainga dinar"
@@ -40,14 +37,11 @@
"name": "bangladeshga taka"
},
"BBD": {
- "name": "barbadiaga dollar"
+ "name": "barbadosga dollar"
},
"BYN": {
"name": "belarusiaga ruble"
},
- "BYR": {
- "name": "belarusiaga ruble (2000–2016)"
- },
"BZD": {
"name": "belizega dollar"
},
@@ -67,11 +61,11 @@
"name": "botswanaga pula"
},
"BRL": {
- "name": "Braziliaga real",
+ "name": "braziliaga real",
"symbol": "R$"
},
"GBP": {
- "name": "Britishga pound",
+ "name": "britainga pound",
"symbol": "£"
},
"BND": {
@@ -84,26 +78,47 @@
"name": "burundiga franc"
},
"CAD": {
- "name": "Canadaga dollar",
+ "name": "canadaga dollar",
"symbol": "CA$"
},
+ "KYD": {
+ "name": "cayman islandsga dollar"
+ },
"XPF": {
"name": "CFP ga franc",
"symbol": "CFPF"
},
+ "CLP": {
+ "name": "chilega peso"
+ },
"CNY": {
"name": "Chinesega yuan",
"symbol": "CN¥"
},
+ "COP": {
+ "name": "colombiaga peso"
+ },
+ "CRC": {
+ "name": "costa ricaga colón"
+ },
+ "HRK": {
+ "name": "croatiaga kuna"
+ },
+ "CUC": {
+ "name": "cubaga convertible peso"
+ },
+ "CUP": {
+ "name": "cubaga peso"
+ },
+ "CZK": {
+ "name": "czechga koruna"
+ },
"DKK": {
- "name": "Denmarkga krone"
+ "name": "denmarkga krone"
},
"DOP": {
"name": "dominicaga peso"
},
- "JMD": {
- "name": "dzamaikaga dollar"
- },
"DJF": {
"name": "dziboutiga franc"
},
@@ -113,6 +128,10 @@
"GEL": {
"name": "dzɔdziaga lari"
},
+ "XCD": {
+ "name": "east caribbeanga dollar",
+ "symbol": "EC$"
+ },
"EGP": {
"name": "egyptega pound"
},
@@ -127,7 +146,7 @@
"symbol": "€"
},
"FKP": {
- "name": "falklanɖ ƒudomekpo dukɔwo ƒe ga pound"
+ "name": "falkland islands pound"
},
"FJD": {
"name": "fidziga dollar"
@@ -143,7 +162,7 @@
"symbol": "GH₵"
},
"GIP": {
- "name": "gilbrataga pound"
+ "name": "gilbratarga pound"
},
"GNF": {
"name": "giniga franc"
@@ -154,10 +173,6 @@
"GYD": {
"name": "guyanaga dollar"
},
- "XCD": {
- "name": "ɣedzeƒe caribbeaga dollar",
- "symbol": "EC$"
- },
"XOF": {
"name": "ɣetoɖofe afrikaga CFA franc BCEAO",
"symbol": "CFA"
@@ -179,6 +194,9 @@
"HUF": {
"name": "hungariaga forint"
},
+ "ISK": {
+ "name": "icelandga króna"
+ },
"INR": {
"name": "Indiaga rupee",
"symbol": "₹"
@@ -196,6 +214,9 @@
"name": "israelga yeyetɔ sheqel",
"symbol": "₪"
},
+ "JMD": {
+ "name": "jamaicaga dollar"
+ },
"JPY": {
"name": "Japanesega yen",
"symbol": "JP¥"
@@ -209,9 +230,6 @@
"QAR": {
"name": "katarga rial"
},
- "KYD": {
- "name": "kayman ƒudomekpoga dollar"
- },
"KZT": {
"name": "kazakhstanga tenge"
},
@@ -221,27 +239,12 @@
"KGS": {
"name": "kirgistanga som"
},
- "COP": {
- "name": "kolombiaga peso"
- },
"KMF": {
"name": "komoroga franc"
},
"CDF": {
"name": "kongoga franc"
},
- "CRC": {
- "name": "kosta rikaga kolón"
- },
- "HRK": {
- "name": "kroatiaga kuna"
- },
- "CUC": {
- "name": "kubaga convertible peso"
- },
- "CUP": {
- "name": "kubaga peso"
- },
"KWD": {
"name": "kuwaitga dinar"
},
@@ -263,9 +266,6 @@
"MOP": {
"name": "makanesega pataca"
},
- "MKD": {
- "name": "makedoniaga denar"
- },
"MGA": {
"name": "malagasega ariary"
},
@@ -278,8 +278,11 @@
"MVR": {
"name": "maldiviaga rufiyaa"
},
+ "MKD": {
+ "name": "marcedoniaga denar"
+ },
"MXN": {
- "name": "Mexicoga peso",
+ "name": "mexicoga peso",
"symbol": "MX$"
},
"MDL": {
@@ -309,21 +312,21 @@
"NAD": {
"name": "Namibian Dollar"
},
- "ANG": {
- "name": "nedalands antilleaga guilder"
- },
"NPR": {
"name": "nepalga rupee"
},
+ "ANG": {
+ "name": "netherlands antilleaga guilder"
+ },
"NZD": {
"name": "new zealanɖga dollar",
"symbol": "NZ$"
},
"NIO": {
- "name": "nikaraguaga córdoba"
+ "name": "nicaraguaga córdoba"
},
"NOK": {
- "name": "Norwayga krone"
+ "name": "norwayga krone"
},
"OMR": {
"name": "omanga rial"
@@ -341,16 +344,16 @@
"name": "paraguayga guarani"
},
"PEN": {
- "name": "peruga nuevo sol"
+ "name": "peruga sol"
},
"PLN": {
- "name": "polanɖga zloty"
+ "name": "polandga zloty"
},
"RON": {
"name": "romaniaga leu"
},
"RUB": {
- "name": "Russiaga ruble"
+ "name": "russiaga ruble"
},
"RWF": {
"name": "rwandaga franc"
@@ -411,10 +414,10 @@
"name": "swaziga lilangeni"
},
"SEK": {
- "name": "Swedishga krone"
+ "name": "swedenga krone"
},
"CHF": {
- "name": "Swissga franc"
+ "name": "switzerlandga franc"
},
"SYP": {
"name": "syriaga pound"
@@ -437,7 +440,7 @@
"name": "tonagaga pa’anga"
},
"TTD": {
- "name": "trinidad kple tobagoga dollar"
+ "name": "trinidad & tobagoga dollar"
},
"TND": {
"name": "tunisiaga dinar"
@@ -448,12 +451,6 @@
"TMT": {
"name": "turkmenistanga manat"
},
- "CZK": {
- "name": "tsɛk repɔblikga koruna"
- },
- "CLP": {
- "name": "tsilega peso"
- },
"UGX": {
"name": "ugandaga shilling"
},
@@ -467,7 +464,7 @@
"name": "uruguayga peso"
},
"USD": {
- "name": "US ga dollar",
+ "name": "us ga dollar",
"symbol": "US$"
},
"UZS": {
diff --git a/vendor/commerceguys/intl/resources/currency/el.json b/vendor/commerceguys/intl/resources/currency/el.json
index a39940800..8f712441d 100644
--- a/vendor/commerceguys/intl/resources/currency/el.json
+++ b/vendor/commerceguys/intl/resources/currency/el.json
@@ -103,7 +103,7 @@
"name": "Δολάριο Μπρουνέι"
},
"NAD": {
- "name": "Δολάριο Ναμίμπια"
+ "name": "Δολάριο Ναμίμπιας"
},
"NZD": {
"name": "Δολάριο Νέας Ζηλανδίας",
@@ -226,7 +226,7 @@
"name": "Λίρα Λιβάνου"
},
"FKP": {
- "name": "Λίρα Νησιών Φώκλαντ"
+ "name": "Λίρα Νήσων Φόκλαντ"
},
"SSP": {
"name": "Λίρα Νότιου Σουδάν"
@@ -295,9 +295,6 @@
"name": "Νέο Σέκελ Ισραήλ",
"symbol": "₪"
},
- "PEN": {
- "name": "Νέο Σολ Περού"
- },
"GMD": {
"name": "Νταλάσι Γκάμπιας"
},
@@ -321,7 +318,7 @@
"name": "Ουγκίγια Μαυριτανίας"
},
"TOP": {
- "name": "Παάγκα νήσων Τόγκα"
+ "name": "Παάγκα Τόνγκα"
},
"MOP": {
"name": "Πατάκα Μακάο"
@@ -385,9 +382,6 @@
"BYN": {
"name": "Ρούβλι Λευκορωσίας"
},
- "BYR": {
- "name": "Ρούβλι Λευκορωσίας (2000–2016)"
- },
"RUB": {
"name": "Ρούβλι Ρωσίας"
},
@@ -431,6 +425,9 @@
"GHS": {
"name": "Σέντι Γκάνας"
},
+ "PEN": {
+ "name": "Σολ Περού"
+ },
"KGS": {
"name": "Σομ Κιργιζίας"
},
@@ -456,7 +453,7 @@
"name": "Φιορίνι Ουγγαρίας"
},
"AWG": {
- "name": "Φλορίνι Αρούμπα"
+ "name": "Φλορίνι Αρούμπας"
},
"GNF": {
"name": "Φράγκο Γουινέας"
diff --git a/vendor/commerceguys/intl/resources/currency/en-AG.json b/vendor/commerceguys/intl/resources/currency/en-AG.json
index 8b5a17450..f425158a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-AG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-AG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-AI.json b/vendor/commerceguys/intl/resources/currency/en-AI.json
index 8b5a17450..f425158a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-AI.json
+++ b/vendor/commerceguys/intl/resources/currency/en-AI.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-AT.json b/vendor/commerceguys/intl/resources/currency/en-AT.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-AT.json
+++ b/vendor/commerceguys/intl/resources/currency/en-AT.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-AU.json b/vendor/commerceguys/intl/resources/currency/en-AU.json
index 2086571d2..29ebfb1a6 100644
--- a/vendor/commerceguys/intl/resources/currency/en-AU.json
+++ b/vendor/commerceguys/intl/resources/currency/en-AU.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -125,7 +122,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -335,7 +332,7 @@
"name": "Peso Uruguayo"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-BB.json b/vendor/commerceguys/intl/resources/currency/en-BB.json
index a5ee75c9f..d052b2427 100644
--- a/vendor/commerceguys/intl/resources/currency/en-BB.json
+++ b/vendor/commerceguys/intl/resources/currency/en-BB.json
@@ -43,9 +43,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -131,7 +128,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-BE.json b/vendor/commerceguys/intl/resources/currency/en-BE.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-BE.json
+++ b/vendor/commerceguys/intl/resources/currency/en-BE.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-BM.json b/vendor/commerceguys/intl/resources/currency/en-BM.json
index 916bbd50e..a2714bcb8 100644
--- a/vendor/commerceguys/intl/resources/currency/en-BM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-BM.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -131,7 +128,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-BS.json b/vendor/commerceguys/intl/resources/currency/en-BS.json
index 8f9fe22de..c7534edb4 100644
--- a/vendor/commerceguys/intl/resources/currency/en-BS.json
+++ b/vendor/commerceguys/intl/resources/currency/en-BS.json
@@ -43,9 +43,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -131,7 +128,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-BW.json b/vendor/commerceguys/intl/resources/currency/en-BW.json
index 53c625795..b4ab19892 100644
--- a/vendor/commerceguys/intl/resources/currency/en-BW.json
+++ b/vendor/commerceguys/intl/resources/currency/en-BW.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -131,7 +128,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-BZ.json b/vendor/commerceguys/intl/resources/currency/en-BZ.json
index c5009ee58..d8b597ecd 100644
--- a/vendor/commerceguys/intl/resources/currency/en-BZ.json
+++ b/vendor/commerceguys/intl/resources/currency/en-BZ.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar",
"symbol": "$"
@@ -131,7 +128,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-CA.json b/vendor/commerceguys/intl/resources/currency/en-CA.json
index 6a9e82df3..41a380166 100644
--- a/vendor/commerceguys/intl/resources/currency/en-CA.json
+++ b/vendor/commerceguys/intl/resources/currency/en-CA.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-CC.json b/vendor/commerceguys/intl/resources/currency/en-CC.json
index 1b1219952..fd788caf9 100644
--- a/vendor/commerceguys/intl/resources/currency/en-CC.json
+++ b/vendor/commerceguys/intl/resources/currency/en-CC.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-CH.json b/vendor/commerceguys/intl/resources/currency/en-CH.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-CH.json
+++ b/vendor/commerceguys/intl/resources/currency/en-CH.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-CK.json b/vendor/commerceguys/intl/resources/currency/en-CK.json
index 9158ce9db..f382cfbb1 100644
--- a/vendor/commerceguys/intl/resources/currency/en-CK.json
+++ b/vendor/commerceguys/intl/resources/currency/en-CK.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-CM.json b/vendor/commerceguys/intl/resources/currency/en-CM.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-CM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-CM.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-CX.json b/vendor/commerceguys/intl/resources/currency/en-CX.json
index 1b1219952..fd788caf9 100644
--- a/vendor/commerceguys/intl/resources/currency/en-CX.json
+++ b/vendor/commerceguys/intl/resources/currency/en-CX.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-CY.json b/vendor/commerceguys/intl/resources/currency/en-CY.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-CY.json
+++ b/vendor/commerceguys/intl/resources/currency/en-CY.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-DE.json b/vendor/commerceguys/intl/resources/currency/en-DE.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-DE.json
+++ b/vendor/commerceguys/intl/resources/currency/en-DE.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-DG.json b/vendor/commerceguys/intl/resources/currency/en-DG.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-DG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-DG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-DK.json b/vendor/commerceguys/intl/resources/currency/en-DK.json
index 5fddb26dc..720fd9858 100644
--- a/vendor/commerceguys/intl/resources/currency/en-DK.json
+++ b/vendor/commerceguys/intl/resources/currency/en-DK.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone",
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-DM.json b/vendor/commerceguys/intl/resources/currency/en-DM.json
index 8b5a17450..f425158a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-DM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-DM.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-ER.json b/vendor/commerceguys/intl/resources/currency/en-ER.json
index b0623e0a7..492ca7a09 100644
--- a/vendor/commerceguys/intl/resources/currency/en-ER.json
+++ b/vendor/commerceguys/intl/resources/currency/en-ER.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-FI.json b/vendor/commerceguys/intl/resources/currency/en-FI.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-FI.json
+++ b/vendor/commerceguys/intl/resources/currency/en-FI.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-FJ.json b/vendor/commerceguys/intl/resources/currency/en-FJ.json
index 5ddd5fce4..0889c30d7 100644
--- a/vendor/commerceguys/intl/resources/currency/en-FJ.json
+++ b/vendor/commerceguys/intl/resources/currency/en-FJ.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-FK.json b/vendor/commerceguys/intl/resources/currency/en-FK.json
index 078c007e8..6a6555517 100644
--- a/vendor/commerceguys/intl/resources/currency/en-FK.json
+++ b/vendor/commerceguys/intl/resources/currency/en-FK.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-FM.json b/vendor/commerceguys/intl/resources/currency/en-FM.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-FM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-FM.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-GB.json b/vendor/commerceguys/intl/resources/currency/en-GB.json
index 0222bca60..dbd7fd92c 100644
--- a/vendor/commerceguys/intl/resources/currency/en-GB.json
+++ b/vendor/commerceguys/intl/resources/currency/en-GB.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
@@ -407,7 +404,7 @@
"name": "Sri Lankan Rupee"
},
"SHP": {
- "name": "St. Helena Pound"
+ "name": "St Helena Pound"
},
"SDG": {
"name": "Sudanese Pound"
diff --git a/vendor/commerceguys/intl/resources/currency/en-GD.json b/vendor/commerceguys/intl/resources/currency/en-GD.json
index 8b5a17450..f425158a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-GD.json
+++ b/vendor/commerceguys/intl/resources/currency/en-GD.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-GG.json b/vendor/commerceguys/intl/resources/currency/en-GG.json
index 5c8391a1f..7c0de43b6 100644
--- a/vendor/commerceguys/intl/resources/currency/en-GG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-GG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -126,7 +123,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -342,7 +339,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-GH.json b/vendor/commerceguys/intl/resources/currency/en-GH.json
index 261609038..e4395cf0f 100644
--- a/vendor/commerceguys/intl/resources/currency/en-GH.json
+++ b/vendor/commerceguys/intl/resources/currency/en-GH.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-GI.json b/vendor/commerceguys/intl/resources/currency/en-GI.json
index e1c32ef42..22f1ee19d 100644
--- a/vendor/commerceguys/intl/resources/currency/en-GI.json
+++ b/vendor/commerceguys/intl/resources/currency/en-GI.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-GM.json b/vendor/commerceguys/intl/resources/currency/en-GM.json
index 060badc84..8a6e8b5e2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-GM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-GM.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-GY.json b/vendor/commerceguys/intl/resources/currency/en-GY.json
index bc1df2236..ea586f163 100644
--- a/vendor/commerceguys/intl/resources/currency/en-GY.json
+++ b/vendor/commerceguys/intl/resources/currency/en-GY.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-HK.json b/vendor/commerceguys/intl/resources/currency/en-HK.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-HK.json
+++ b/vendor/commerceguys/intl/resources/currency/en-HK.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-IE.json b/vendor/commerceguys/intl/resources/currency/en-IE.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-IE.json
+++ b/vendor/commerceguys/intl/resources/currency/en-IE.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-IL.json b/vendor/commerceguys/intl/resources/currency/en-IL.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-IL.json
+++ b/vendor/commerceguys/intl/resources/currency/en-IL.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-IM.json b/vendor/commerceguys/intl/resources/currency/en-IM.json
index 5c8391a1f..7c0de43b6 100644
--- a/vendor/commerceguys/intl/resources/currency/en-IM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-IM.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -126,7 +123,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -342,7 +339,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-IN.json b/vendor/commerceguys/intl/resources/currency/en-IN.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-IN.json
+++ b/vendor/commerceguys/intl/resources/currency/en-IN.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-IO.json b/vendor/commerceguys/intl/resources/currency/en-IO.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-IO.json
+++ b/vendor/commerceguys/intl/resources/currency/en-IO.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-JE.json b/vendor/commerceguys/intl/resources/currency/en-JE.json
index 5c8391a1f..7c0de43b6 100644
--- a/vendor/commerceguys/intl/resources/currency/en-JE.json
+++ b/vendor/commerceguys/intl/resources/currency/en-JE.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -126,7 +123,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -342,7 +339,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-JM.json b/vendor/commerceguys/intl/resources/currency/en-JM.json
index 65c651ce7..b3e723358 100644
--- a/vendor/commerceguys/intl/resources/currency/en-JM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-JM.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-KE.json b/vendor/commerceguys/intl/resources/currency/en-KE.json
index e96a6c4a0..0a8b93bca 100644
--- a/vendor/commerceguys/intl/resources/currency/en-KE.json
+++ b/vendor/commerceguys/intl/resources/currency/en-KE.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-KI.json b/vendor/commerceguys/intl/resources/currency/en-KI.json
index 1b1219952..fd788caf9 100644
--- a/vendor/commerceguys/intl/resources/currency/en-KI.json
+++ b/vendor/commerceguys/intl/resources/currency/en-KI.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-KN.json b/vendor/commerceguys/intl/resources/currency/en-KN.json
index 8b5a17450..f425158a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-KN.json
+++ b/vendor/commerceguys/intl/resources/currency/en-KN.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-KY.json b/vendor/commerceguys/intl/resources/currency/en-KY.json
index 82884c315..33b08b531 100644
--- a/vendor/commerceguys/intl/resources/currency/en-KY.json
+++ b/vendor/commerceguys/intl/resources/currency/en-KY.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -131,7 +128,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-LC.json b/vendor/commerceguys/intl/resources/currency/en-LC.json
index 8b5a17450..f425158a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-LC.json
+++ b/vendor/commerceguys/intl/resources/currency/en-LC.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-LR.json b/vendor/commerceguys/intl/resources/currency/en-LR.json
index cc838c602..3d0008cce 100644
--- a/vendor/commerceguys/intl/resources/currency/en-LR.json
+++ b/vendor/commerceguys/intl/resources/currency/en-LR.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-LS.json b/vendor/commerceguys/intl/resources/currency/en-LS.json
index c9bb2a8af..ca6ddbbfd 100644
--- a/vendor/commerceguys/intl/resources/currency/en-LS.json
+++ b/vendor/commerceguys/intl/resources/currency/en-LS.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-MG.json b/vendor/commerceguys/intl/resources/currency/en-MG.json
index 6f78fca85..e6f461d19 100644
--- a/vendor/commerceguys/intl/resources/currency/en-MG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-MG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-MO.json b/vendor/commerceguys/intl/resources/currency/en-MO.json
index 506c4021c..e378f7135 100644
--- a/vendor/commerceguys/intl/resources/currency/en-MO.json
+++ b/vendor/commerceguys/intl/resources/currency/en-MO.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-MS.json b/vendor/commerceguys/intl/resources/currency/en-MS.json
index 8b5a17450..f425158a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-MS.json
+++ b/vendor/commerceguys/intl/resources/currency/en-MS.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-MT.json b/vendor/commerceguys/intl/resources/currency/en-MT.json
index e5cfcf45a..32a33e424 100644
--- a/vendor/commerceguys/intl/resources/currency/en-MT.json
+++ b/vendor/commerceguys/intl/resources/currency/en-MT.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-MU.json b/vendor/commerceguys/intl/resources/currency/en-MU.json
index 9a98b79b8..faa36a1a6 100644
--- a/vendor/commerceguys/intl/resources/currency/en-MU.json
+++ b/vendor/commerceguys/intl/resources/currency/en-MU.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-MW.json b/vendor/commerceguys/intl/resources/currency/en-MW.json
index 2cae7e10c..2e456d660 100644
--- a/vendor/commerceguys/intl/resources/currency/en-MW.json
+++ b/vendor/commerceguys/intl/resources/currency/en-MW.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-MY.json b/vendor/commerceguys/intl/resources/currency/en-MY.json
index f01a127b3..37867d004 100644
--- a/vendor/commerceguys/intl/resources/currency/en-MY.json
+++ b/vendor/commerceguys/intl/resources/currency/en-MY.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-NA.json b/vendor/commerceguys/intl/resources/currency/en-NA.json
index 0f6fc29fb..e749919f8 100644
--- a/vendor/commerceguys/intl/resources/currency/en-NA.json
+++ b/vendor/commerceguys/intl/resources/currency/en-NA.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-NF.json b/vendor/commerceguys/intl/resources/currency/en-NF.json
index 1b1219952..fd788caf9 100644
--- a/vendor/commerceguys/intl/resources/currency/en-NF.json
+++ b/vendor/commerceguys/intl/resources/currency/en-NF.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-NG.json b/vendor/commerceguys/intl/resources/currency/en-NG.json
index bd2936b1f..ee9ad672e 100644
--- a/vendor/commerceguys/intl/resources/currency/en-NG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-NG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-NL.json b/vendor/commerceguys/intl/resources/currency/en-NL.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-NL.json
+++ b/vendor/commerceguys/intl/resources/currency/en-NL.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-NR.json b/vendor/commerceguys/intl/resources/currency/en-NR.json
index 1b1219952..fd788caf9 100644
--- a/vendor/commerceguys/intl/resources/currency/en-NR.json
+++ b/vendor/commerceguys/intl/resources/currency/en-NR.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-NU.json b/vendor/commerceguys/intl/resources/currency/en-NU.json
index 9158ce9db..f382cfbb1 100644
--- a/vendor/commerceguys/intl/resources/currency/en-NU.json
+++ b/vendor/commerceguys/intl/resources/currency/en-NU.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-NZ.json b/vendor/commerceguys/intl/resources/currency/en-NZ.json
index 9158ce9db..f382cfbb1 100644
--- a/vendor/commerceguys/intl/resources/currency/en-NZ.json
+++ b/vendor/commerceguys/intl/resources/currency/en-NZ.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-PG.json b/vendor/commerceguys/intl/resources/currency/en-PG.json
index b516c4fa1..3946b09b9 100644
--- a/vendor/commerceguys/intl/resources/currency/en-PG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-PG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-PH.json b/vendor/commerceguys/intl/resources/currency/en-PH.json
index 0d0e909f4..6d205f099 100644
--- a/vendor/commerceguys/intl/resources/currency/en-PH.json
+++ b/vendor/commerceguys/intl/resources/currency/en-PH.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso",
+ "name": "Philippine Piso",
"symbol": "₱"
},
"PLN": {
diff --git a/vendor/commerceguys/intl/resources/currency/en-PK.json b/vendor/commerceguys/intl/resources/currency/en-PK.json
index 3efdccab9..bddc01155 100644
--- a/vendor/commerceguys/intl/resources/currency/en-PK.json
+++ b/vendor/commerceguys/intl/resources/currency/en-PK.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-PN.json b/vendor/commerceguys/intl/resources/currency/en-PN.json
index 9158ce9db..f382cfbb1 100644
--- a/vendor/commerceguys/intl/resources/currency/en-PN.json
+++ b/vendor/commerceguys/intl/resources/currency/en-PN.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-PW.json b/vendor/commerceguys/intl/resources/currency/en-PW.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-PW.json
+++ b/vendor/commerceguys/intl/resources/currency/en-PW.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-RW.json b/vendor/commerceguys/intl/resources/currency/en-RW.json
index 29ae52fa7..7ebe596f5 100644
--- a/vendor/commerceguys/intl/resources/currency/en-RW.json
+++ b/vendor/commerceguys/intl/resources/currency/en-RW.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SB.json b/vendor/commerceguys/intl/resources/currency/en-SB.json
index 3263b8692..1422bd9a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SB.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SB.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SC.json b/vendor/commerceguys/intl/resources/currency/en-SC.json
index 62595c166..ae2cf953f 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SC.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SC.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SD.json b/vendor/commerceguys/intl/resources/currency/en-SD.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SD.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SD.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SE.json b/vendor/commerceguys/intl/resources/currency/en-SE.json
index 06f298c3e..a819f0a28 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SE.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SE.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SG.json b/vendor/commerceguys/intl/resources/currency/en-SG.json
index d87cccad3..69a11d035 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SH.json b/vendor/commerceguys/intl/resources/currency/en-SH.json
index a09415df8..bb33a8525 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SH.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SH.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SI.json b/vendor/commerceguys/intl/resources/currency/en-SI.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SI.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SI.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SL.json b/vendor/commerceguys/intl/resources/currency/en-SL.json
index 855450aed..5c321f42b 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SL.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SL.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SS.json b/vendor/commerceguys/intl/resources/currency/en-SS.json
index 06451eb04..bd110e507 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SS.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SS.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SX.json b/vendor/commerceguys/intl/resources/currency/en-SX.json
index 8281d7ca8..17555d40d 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SX.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SX.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-SZ.json b/vendor/commerceguys/intl/resources/currency/en-SZ.json
index 13ba67805..a223db811 100644
--- a/vendor/commerceguys/intl/resources/currency/en-SZ.json
+++ b/vendor/commerceguys/intl/resources/currency/en-SZ.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-TC.json b/vendor/commerceguys/intl/resources/currency/en-TC.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-TC.json
+++ b/vendor/commerceguys/intl/resources/currency/en-TC.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-TK.json b/vendor/commerceguys/intl/resources/currency/en-TK.json
index 9158ce9db..f382cfbb1 100644
--- a/vendor/commerceguys/intl/resources/currency/en-TK.json
+++ b/vendor/commerceguys/intl/resources/currency/en-TK.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-TO.json b/vendor/commerceguys/intl/resources/currency/en-TO.json
index caf96fdb1..149f8c5c7 100644
--- a/vendor/commerceguys/intl/resources/currency/en-TO.json
+++ b/vendor/commerceguys/intl/resources/currency/en-TO.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-TT.json b/vendor/commerceguys/intl/resources/currency/en-TT.json
index ecc602635..c689ab9c4 100644
--- a/vendor/commerceguys/intl/resources/currency/en-TT.json
+++ b/vendor/commerceguys/intl/resources/currency/en-TT.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-TV.json b/vendor/commerceguys/intl/resources/currency/en-TV.json
index 1b1219952..fd788caf9 100644
--- a/vendor/commerceguys/intl/resources/currency/en-TV.json
+++ b/vendor/commerceguys/intl/resources/currency/en-TV.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-TZ.json b/vendor/commerceguys/intl/resources/currency/en-TZ.json
index 0bceeffe8..9c0b4f383 100644
--- a/vendor/commerceguys/intl/resources/currency/en-TZ.json
+++ b/vendor/commerceguys/intl/resources/currency/en-TZ.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-UG.json b/vendor/commerceguys/intl/resources/currency/en-UG.json
index 852f4f8ce..cb3c71e78 100644
--- a/vendor/commerceguys/intl/resources/currency/en-UG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-UG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-VC.json b/vendor/commerceguys/intl/resources/currency/en-VC.json
index 8b5a17450..f425158a2 100644
--- a/vendor/commerceguys/intl/resources/currency/en-VC.json
+++ b/vendor/commerceguys/intl/resources/currency/en-VC.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-VG.json b/vendor/commerceguys/intl/resources/currency/en-VG.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-VG.json
+++ b/vendor/commerceguys/intl/resources/currency/en-VG.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-VU.json b/vendor/commerceguys/intl/resources/currency/en-VU.json
index 2edb41ec8..15384fec4 100644
--- a/vendor/commerceguys/intl/resources/currency/en-VU.json
+++ b/vendor/commerceguys/intl/resources/currency/en-VU.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-WS.json b/vendor/commerceguys/intl/resources/currency/en-WS.json
index b27260797..8c61e44d4 100644
--- a/vendor/commerceguys/intl/resources/currency/en-WS.json
+++ b/vendor/commerceguys/intl/resources/currency/en-WS.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-ZA.json b/vendor/commerceguys/intl/resources/currency/en-ZA.json
index c9bb2a8af..ca6ddbbfd 100644
--- a/vendor/commerceguys/intl/resources/currency/en-ZA.json
+++ b/vendor/commerceguys/intl/resources/currency/en-ZA.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-ZM.json b/vendor/commerceguys/intl/resources/currency/en-ZM.json
index f04124b95..ee03dde05 100644
--- a/vendor/commerceguys/intl/resources/currency/en-ZM.json
+++ b/vendor/commerceguys/intl/resources/currency/en-ZM.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en-ZW.json b/vendor/commerceguys/intl/resources/currency/en-ZW.json
index 0222bca60..97dbe0dbf 100644
--- a/vendor/commerceguys/intl/resources/currency/en-ZW.json
+++ b/vendor/commerceguys/intl/resources/currency/en-ZW.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Rouble"
},
- "BYR": {
- "name": "Belarusian Rouble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/en.json b/vendor/commerceguys/intl/resources/currency/en.json
index c1c83d22a..14c23494a 100644
--- a/vendor/commerceguys/intl/resources/currency/en.json
+++ b/vendor/commerceguys/intl/resources/currency/en.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -130,7 +127,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -346,7 +343,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/es-AR.json b/vendor/commerceguys/intl/resources/currency/es-AR.json
index 6f11b94bc..f39cee55c 100644
--- a/vendor/commerceguys/intl/resources/currency/es-AR.json
+++ b/vendor/commerceguys/intl/resources/currency/es-AR.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -407,9 +404,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -437,6 +431,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-BO.json b/vendor/commerceguys/intl/resources/currency/es-BO.json
index e0417ed46..d9f9c41ed 100644
--- a/vendor/commerceguys/intl/resources/currency/es-BO.json
+++ b/vendor/commerceguys/intl/resources/currency/es-BO.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-BR.json b/vendor/commerceguys/intl/resources/currency/es-BR.json
index cd23cae0f..275be6956 100644
--- a/vendor/commerceguys/intl/resources/currency/es-BR.json
+++ b/vendor/commerceguys/intl/resources/currency/es-BR.json
@@ -191,11 +191,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -240,9 +240,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -252,6 +249,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -273,15 +273,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -310,13 +310,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -333,9 +333,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-BZ.json b/vendor/commerceguys/intl/resources/currency/es-BZ.json
new file mode 100644
index 000000000..eab95d716
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/currency/es-BZ.json
@@ -0,0 +1,475 @@
+{
+ "AFN": {
+ "name": "afgani"
+ },
+ "MGA": {
+ "name": "ariari"
+ },
+ "PAB": {
+ "name": "balboa panameño"
+ },
+ "THB": {
+ "name": "bat"
+ },
+ "ETB": {
+ "name": "bir"
+ },
+ "VEF": {
+ "name": "bolívar venezolano"
+ },
+ "BOB": {
+ "name": "boliviano"
+ },
+ "GHS": {
+ "name": "cedi"
+ },
+ "KES": {
+ "name": "chelín keniano"
+ },
+ "SOS": {
+ "name": "chelín somalí"
+ },
+ "TZS": {
+ "name": "chelín tanzano"
+ },
+ "UGX": {
+ "name": "chelín ugandés"
+ },
+ "CRC": {
+ "name": "colón costarricense"
+ },
+ "SVC": {
+ "name": "colón salvadoreño"
+ },
+ "NIO": {
+ "name": "córdoba nicaragüense"
+ },
+ "CZK": {
+ "name": "corona checa"
+ },
+ "DKK": {
+ "name": "corona danesa"
+ },
+ "ISK": {
+ "name": "corona islandesa"
+ },
+ "NOK": {
+ "name": "corona noruega"
+ },
+ "SEK": {
+ "name": "corona sueca"
+ },
+ "GMD": {
+ "name": "dalasi"
+ },
+ "DZD": {
+ "name": "dinar argelino"
+ },
+ "BHD": {
+ "name": "dinar bahreiní"
+ },
+ "IQD": {
+ "name": "dinar iraquí"
+ },
+ "JOD": {
+ "name": "dinar jordano"
+ },
+ "KWD": {
+ "name": "dinar kuwaití"
+ },
+ "LYD": {
+ "name": "dinar libio"
+ },
+ "MKD": {
+ "name": "dinar macedonio"
+ },
+ "RSD": {
+ "name": "dinar serbio"
+ },
+ "TND": {
+ "name": "dinar tunecino"
+ },
+ "AED": {
+ "name": "dírham de los Emiratos Árabes Unidos"
+ },
+ "MAD": {
+ "name": "dírham marroquí"
+ },
+ "STD": {
+ "name": "dobra"
+ },
+ "AUD": {
+ "name": "dólar australiano"
+ },
+ "BSD": {
+ "name": "dólar bahameño"
+ },
+ "BBD": {
+ "name": "dólar barbadense"
+ },
+ "BZD": {
+ "name": "dólar beliceño",
+ "symbol": "$"
+ },
+ "BND": {
+ "name": "dólar bruneano"
+ },
+ "CAD": {
+ "name": "dólar canadiense"
+ },
+ "BMD": {
+ "name": "dólar de Bermudas"
+ },
+ "KYD": {
+ "name": "dólar de las Islas Caimán"
+ },
+ "TTD": {
+ "name": "dólar de Trinidad y Tobago"
+ },
+ "XCD": {
+ "name": "dólar del Caribe Oriental"
+ },
+ "USD": {
+ "name": "dólar estadounidense"
+ },
+ "FJD": {
+ "name": "dólar fiyiano"
+ },
+ "GYD": {
+ "name": "dólar guyanés"
+ },
+ "HKD": {
+ "name": "dólar hongkonés"
+ },
+ "JMD": {
+ "name": "dólar jamaicano"
+ },
+ "LRD": {
+ "name": "dólar liberiano"
+ },
+ "NAD": {
+ "name": "dólar namibio"
+ },
+ "NZD": {
+ "name": "dólar neozelandés"
+ },
+ "SBD": {
+ "name": "dólar salomonense"
+ },
+ "SGD": {
+ "name": "dólar singapurense"
+ },
+ "SRD": {
+ "name": "dólar surinamés"
+ },
+ "ZWL": {
+ "name": "dólar zimbabuense"
+ },
+ "VND": {
+ "name": "dong"
+ },
+ "AMD": {
+ "name": "dram armenio"
+ },
+ "CVE": {
+ "name": "escudo de Cabo Verde"
+ },
+ "PLN": {
+ "name": "esloti"
+ },
+ "EUR": {
+ "name": "euro"
+ },
+ "AWG": {
+ "name": "florín arubeño"
+ },
+ "ANG": {
+ "name": "florín de las Antillas Neerlandesas"
+ },
+ "HUF": {
+ "name": "forinto húngaro"
+ },
+ "BIF": {
+ "name": "franco burundés"
+ },
+ "XAF": {
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
+ },
+ "XPF": {
+ "name": "franco CFP",
+ "symbol": "CFPF"
+ },
+ "KMF": {
+ "name": "franco comorense"
+ },
+ "CDF": {
+ "name": "franco congoleño"
+ },
+ "GNF": {
+ "name": "franco guineano"
+ },
+ "RWF": {
+ "name": "franco ruandés"
+ },
+ "CHF": {
+ "name": "franco suizo"
+ },
+ "DJF": {
+ "name": "franco yibutiano"
+ },
+ "HTG": {
+ "name": "gourde haitiano"
+ },
+ "UAH": {
+ "name": "grivna"
+ },
+ "PYG": {
+ "name": "guaraní paraguayo"
+ },
+ "BTN": {
+ "name": "gultrum"
+ },
+ "MMK": {
+ "name": "kiat"
+ },
+ "PGK": {
+ "name": "kina"
+ },
+ "LAK": {
+ "name": "kip"
+ },
+ "AOA": {
+ "name": "kuanza"
+ },
+ "HRK": {
+ "name": "kuna"
+ },
+ "MWK": {
+ "name": "kwacha malauí"
+ },
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
+ "GEL": {
+ "name": "lari"
+ },
+ "ALL": {
+ "name": "lek"
+ },
+ "HNL": {
+ "name": "lempira hondureño"
+ },
+ "SLL": {
+ "name": "leona"
+ },
+ "MDL": {
+ "name": "leu moldavo"
+ },
+ "RON": {
+ "name": "leu rumano"
+ },
+ "BGN": {
+ "name": "lev búlgaro"
+ },
+ "SHP": {
+ "name": "libra de Santa Elena"
+ },
+ "EGP": {
+ "name": "libra egipcia"
+ },
+ "GBP": {
+ "name": "libra esterlina"
+ },
+ "GIP": {
+ "name": "libra gibraltareña"
+ },
+ "LBP": {
+ "name": "libra libanesa"
+ },
+ "FKP": {
+ "name": "libra malvinense"
+ },
+ "SYP": {
+ "name": "libra siria"
+ },
+ "SDG": {
+ "name": "libra sudanesa"
+ },
+ "SSP": {
+ "name": "libra sursudanesa"
+ },
+ "SZL": {
+ "name": "lilangeni"
+ },
+ "TRY": {
+ "name": "lira turca"
+ },
+ "LSL": {
+ "name": "loti lesothense"
+ },
+ "AZN": {
+ "name": "manat azerbaiyano"
+ },
+ "TMT": {
+ "name": "manat turcomano"
+ },
+ "BAM": {
+ "name": "marco convertible de Bosnia y Herzegovina"
+ },
+ "MZN": {
+ "name": "metical"
+ },
+ "ERN": {
+ "name": "nafka"
+ },
+ "NGN": {
+ "name": "naira"
+ },
+ "TWD": {
+ "name": "nuevo dólar taiwanés"
+ },
+ "ILS": {
+ "name": "nuevo séquel israelí"
+ },
+ "TOP": {
+ "name": "paanga"
+ },
+ "MOP": {
+ "name": "pataca de Macao"
+ },
+ "ARS": {
+ "name": "peso argentino"
+ },
+ "CLP": {
+ "name": "peso chileno"
+ },
+ "COP": {
+ "name": "peso colombiano"
+ },
+ "CUP": {
+ "name": "peso cubano"
+ },
+ "CUC": {
+ "name": "peso cubano convertible"
+ },
+ "DOP": {
+ "name": "peso dominicano"
+ },
+ "PHP": {
+ "name": "peso filipino"
+ },
+ "MXN": {
+ "name": "peso mexicano"
+ },
+ "UYU": {
+ "name": "peso uruguayo"
+ },
+ "BWP": {
+ "name": "pula"
+ },
+ "GTQ": {
+ "name": "quetzal guatemalteco"
+ },
+ "ZAR": {
+ "name": "rand"
+ },
+ "BRL": {
+ "name": "real brasileño"
+ },
+ "QAR": {
+ "name": "rial catarí"
+ },
+ "IRR": {
+ "name": "rial iraní"
+ },
+ "OMR": {
+ "name": "rial omaní"
+ },
+ "SAR": {
+ "name": "rial saudí"
+ },
+ "YER": {
+ "name": "rial yemení"
+ },
+ "KHR": {
+ "name": "riel"
+ },
+ "MYR": {
+ "name": "ringit"
+ },
+ "BYN": {
+ "name": "rublo bielorruso"
+ },
+ "RUB": {
+ "name": "rublo ruso"
+ },
+ "MVR": {
+ "name": "rufiya"
+ },
+ "LKR": {
+ "name": "rupia esrilanquesa"
+ },
+ "INR": {
+ "name": "rupia india"
+ },
+ "IDR": {
+ "name": "rupia indonesia"
+ },
+ "MUR": {
+ "name": "rupia mauriciana"
+ },
+ "NPR": {
+ "name": "rupia nepalí"
+ },
+ "PKR": {
+ "name": "rupia pakistaní"
+ },
+ "SCR": {
+ "name": "rupia seychellense"
+ },
+ "PEN": {
+ "name": "sol peruano"
+ },
+ "KGS": {
+ "name": "som"
+ },
+ "TJS": {
+ "name": "somoni tayiko"
+ },
+ "UZS": {
+ "name": "sum"
+ },
+ "BDT": {
+ "name": "taka"
+ },
+ "WST": {
+ "name": "tala"
+ },
+ "KZT": {
+ "name": "tenge kazako"
+ },
+ "MNT": {
+ "name": "tugrik"
+ },
+ "MRO": {
+ "name": "uguiya"
+ },
+ "VUV": {
+ "name": "vatu"
+ },
+ "KPW": {
+ "name": "won norcoreano"
+ },
+ "KRW": {
+ "name": "won surcoreano"
+ },
+ "JPY": {
+ "name": "yen"
+ },
+ "CNY": {
+ "name": "yuan"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/es-CL.json b/vendor/commerceguys/intl/resources/currency/es-CL.json
index 874540fd3..4733acf05 100644
--- a/vendor/commerceguys/intl/resources/currency/es-CL.json
+++ b/vendor/commerceguys/intl/resources/currency/es-CL.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -407,9 +404,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -437,6 +431,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-CO.json b/vendor/commerceguys/intl/resources/currency/es-CO.json
index 75ab946d3..e53dc30ff 100644
--- a/vendor/commerceguys/intl/resources/currency/es-CO.json
+++ b/vendor/commerceguys/intl/resources/currency/es-CO.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -407,9 +404,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -437,6 +431,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-CR.json b/vendor/commerceguys/intl/resources/currency/es-CR.json
index f7ad79ccc..74dac039f 100644
--- a/vendor/commerceguys/intl/resources/currency/es-CR.json
+++ b/vendor/commerceguys/intl/resources/currency/es-CR.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-CU.json b/vendor/commerceguys/intl/resources/currency/es-CU.json
index 3bc3d9aa0..f11d6e3de 100644
--- a/vendor/commerceguys/intl/resources/currency/es-CU.json
+++ b/vendor/commerceguys/intl/resources/currency/es-CU.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -407,9 +404,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -437,6 +431,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-DO.json b/vendor/commerceguys/intl/resources/currency/es-DO.json
index 8c5b32e98..0862480bb 100644
--- a/vendor/commerceguys/intl/resources/currency/es-DO.json
+++ b/vendor/commerceguys/intl/resources/currency/es-DO.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -407,9 +404,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -437,6 +431,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-EC.json b/vendor/commerceguys/intl/resources/currency/es-EC.json
index 5530493cf..9ae0199f9 100644
--- a/vendor/commerceguys/intl/resources/currency/es-EC.json
+++ b/vendor/commerceguys/intl/resources/currency/es-EC.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-GT.json b/vendor/commerceguys/intl/resources/currency/es-GT.json
index 71c11a878..c829a0423 100644
--- a/vendor/commerceguys/intl/resources/currency/es-GT.json
+++ b/vendor/commerceguys/intl/resources/currency/es-GT.json
@@ -191,11 +191,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -240,9 +240,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -252,6 +249,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -273,15 +273,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -310,13 +310,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -333,9 +333,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-HN.json b/vendor/commerceguys/intl/resources/currency/es-HN.json
index 480e946c6..be28ed999 100644
--- a/vendor/commerceguys/intl/resources/currency/es-HN.json
+++ b/vendor/commerceguys/intl/resources/currency/es-HN.json
@@ -191,11 +191,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -240,9 +240,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -252,6 +249,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-MX.json b/vendor/commerceguys/intl/resources/currency/es-MX.json
index 8c5982e71..566daeb42 100644
--- a/vendor/commerceguys/intl/resources/currency/es-MX.json
+++ b/vendor/commerceguys/intl/resources/currency/es-MX.json
@@ -1,10 +1,9 @@
{
"AFN": {
- "name": "afgani afgano",
- "symbol": "Af"
+ "name": "afgani"
},
"MGA": {
- "name": "ariary malgache"
+ "name": "ariari"
},
"THB": {
"name": "baht tailandés"
@@ -13,7 +12,7 @@
"name": "balboa panameño"
},
"ETB": {
- "name": "birr etíope"
+ "name": "bir"
},
"VEF": {
"name": "bolívar venezolano"
@@ -22,7 +21,7 @@
"name": "boliviano"
},
"GHS": {
- "name": "cedi ghanés"
+ "name": "cedi"
},
"KES": {
"name": "chelín keniano"
@@ -61,7 +60,7 @@
"name": "corona sueca"
},
"GMD": {
- "name": "dalasi gambiano"
+ "name": "dalasi"
},
"DZD": {
"name": "dinar argelino"
@@ -97,11 +96,10 @@
"name": "dírham marroquí"
},
"STD": {
- "name": "dobra de Santo Tomé y Príncipe"
+ "name": "dobra"
},
"AUD": {
- "name": "dólar australiano",
- "symbol": "AU$"
+ "name": "dólar australiano"
},
"BSD": {
"name": "dólar bahameño"
@@ -112,24 +110,18 @@
"BZD": {
"name": "dólar beliceño"
},
+ "BND": {
+ "name": "dólar bruneano"
+ },
"CAD": {
"name": "dólar canadiense"
},
"BMD": {
"name": "dólar de Bermudas"
},
- "BND": {
- "name": "dólar de Brunéi"
- },
- "HKD": {
- "name": "dólar de Hong Kong"
- },
"KYD": {
"name": "dólar de las Islas Caimán"
},
- "SBD": {
- "name": "dólar de las Islas Salomón"
- },
"TTD": {
"name": "dólar de Trinidad y Tobago"
},
@@ -145,6 +137,9 @@
"GYD": {
"name": "dólar guyanés"
},
+ "HKD": {
+ "name": "dólar hongkonés"
+ },
"JMD": {
"name": "dólar jamaicano"
},
@@ -157,6 +152,9 @@
"NZD": {
"name": "dólar neozelandés"
},
+ "SBD": {
+ "name": "dólar salomonense"
+ },
"SGD": {
"name": "dólar singapurense"
},
@@ -167,7 +165,7 @@
"name": "dólar zimbabuense"
},
"VND": {
- "name": "dong vietnamita"
+ "name": "dong"
},
"AMD": {
"name": "dram armenio"
@@ -175,16 +173,17 @@
"CVE": {
"name": "escudo de Cabo Verde"
},
+ "PLN": {
+ "name": "esloti"
+ },
"EUR": {
"name": "euro"
},
"AWG": {
- "name": "florín arubeño",
- "symbol": "Afl."
+ "name": "florín arubeño"
},
"ANG": {
- "name": "florín de las Antillas Neerlandesas",
- "symbol": "Naf"
+ "name": "florín de las Antillas Neerlandesas"
},
"HUF": {
"name": "forinto húngaro"
@@ -192,14 +191,15 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
- "name": "franco CFP"
+ "name": "franco CFP",
+ "symbol": "CFPF"
},
"KMF": {
"name": "franco comorense"
@@ -223,19 +223,28 @@
"name": "gourde haitiano"
},
"UAH": {
- "name": "grivna ucraniana"
+ "name": "grivna"
},
"PYG": {
"name": "guaraní paraguayo"
},
+ "BTN": {
+ "name": "gultrum"
+ },
+ "MMK": {
+ "name": "kiat"
+ },
"PGK": {
- "name": "kina de Papúa Nueva Guinea"
+ "name": "kina"
},
"LAK": {
- "name": "kip laosiano"
+ "name": "kip"
+ },
+ "AOA": {
+ "name": "kuanza"
},
"HRK": {
- "name": "kuna croata"
+ "name": "kuna"
},
"MWK": {
"name": "kwacha malauí"
@@ -243,24 +252,17 @@
"ZMW": {
"name": "kwacha zambiano"
},
- "AOA": {
- "name": "kwanza angoleño",
- "symbol": "Kz"
- },
- "MMK": {
- "name": "kyat de Myanmar"
- },
"GEL": {
- "name": "lari georgiano"
+ "name": "lari"
},
"ALL": {
- "name": "lek albanés"
+ "name": "lek"
},
"HNL": {
"name": "lempira hondureño"
},
"SLL": {
- "name": "leone de Sierra Leona"
+ "name": "leona"
},
"MDL": {
"name": "leu moldavo"
@@ -271,15 +273,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -299,7 +301,7 @@
"name": "libra sursudanesa"
},
"SZL": {
- "name": "lilangeni suazi"
+ "name": "lilangeni"
},
"TRY": {
"name": "lira turca"
@@ -308,47 +310,37 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
- "name": "manat turkmeno"
+ "name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
- "name": "metical mozambiqueño"
- },
- "ERN": {
- "name": "nafka"
+ "name": "metical"
},
"NGN": {
- "name": "naira nigeriano"
+ "name": "naira"
},
- "BTN": {
- "name": "ngultrum butanés"
+ "ERN": {
+ "name": "nakfa"
},
"TWD": {
"name": "nuevo dólar taiwanés"
},
"ILS": {
- "name": "nuevo shéquel israelí"
- },
- "PEN": {
- "name": "nuevo sol peruano"
- },
- "MRO": {
- "name": "ouguiya mauritano"
+ "name": "nuevo séquel israelí"
},
"TOP": {
- "name": "paʻanga tongano"
+ "name": "paanga"
},
"MOP": {
"name": "pataca de Macao"
},
"ARS": {
- "name": "peso argentino",
- "symbol": "$a"
+ "name": "peso argentino"
},
"CLP": {
"name": "peso chileno"
@@ -376,55 +368,49 @@
"name": "peso uruguayo"
},
"BWP": {
- "name": "pula botsuano"
+ "name": "pula"
},
"GTQ": {
"name": "quetzal guatemalteco"
},
"ZAR": {
- "name": "rand sudafricano"
+ "name": "rand"
},
"BRL": {
"name": "real brasileño"
},
+ "QAR": {
+ "name": "rial catarí"
+ },
"IRR": {
"name": "rial iraní"
},
"OMR": {
"name": "rial omaní"
},
+ "SAR": {
+ "name": "rial saudí"
+ },
"YER": {
"name": "rial yemení"
},
"KHR": {
- "name": "riel camboyano"
+ "name": "riel"
},
"MYR": {
- "name": "ringgit malayo"
- },
- "QAR": {
- "name": "riyal de Qatar"
- },
- "SAR": {
- "name": "riyal saudí"
+ "name": "ringit"
},
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
"MVR": {
- "name": "rufiyaa de Maldivas"
- },
- "SCR": {
- "name": "rupia de Seychelles"
+ "name": "rufiya"
},
"LKR": {
- "name": "rupia de Sri Lanka"
+ "name": "rupia esrilanquesa"
},
"INR": {
"name": "rupia india"
@@ -441,29 +427,38 @@
"PKR": {
"name": "rupia pakistaní"
},
- "KGS": {
- "name": "som kirguís"
+ "SCR": {
+ "name": "rupia seychellense"
},
- "UZS": {
- "name": "som uzbeko"
+ "PEN": {
+ "name": "sol peruano"
+ },
+ "KGS": {
+ "name": "som"
},
"TJS": {
"name": "somoni tayiko"
},
+ "UZS": {
+ "name": "sum"
+ },
"BDT": {
- "name": "taka de Bangladesh"
+ "name": "taka"
},
"WST": {
- "name": "tala samoano"
+ "name": "tala"
},
"KZT": {
- "name": "tenge kazajo"
+ "name": "tenge kazako"
},
"MNT": {
- "name": "tugrik mongol"
+ "name": "tugrik"
+ },
+ "MRO": {
+ "name": "uguiya"
},
"VUV": {
- "name": "vatu vanuatuense"
+ "name": "vatu"
},
"KPW": {
"name": "won norcoreano"
@@ -472,13 +467,9 @@
"name": "won surcoreano"
},
"JPY": {
- "name": "yen japonés"
+ "name": "yen"
},
"CNY": {
- "name": "yuan chino",
- "symbol": "CN¥"
- },
- "PLN": {
- "name": "zloty polaco"
+ "name": "yuan"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/es-NI.json b/vendor/commerceguys/intl/resources/currency/es-NI.json
index 1bd0311ed..e04765e73 100644
--- a/vendor/commerceguys/intl/resources/currency/es-NI.json
+++ b/vendor/commerceguys/intl/resources/currency/es-NI.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-PA.json b/vendor/commerceguys/intl/resources/currency/es-PA.json
index f1b6b36ce..2d749eae7 100644
--- a/vendor/commerceguys/intl/resources/currency/es-PA.json
+++ b/vendor/commerceguys/intl/resources/currency/es-PA.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-PE.json b/vendor/commerceguys/intl/resources/currency/es-PE.json
index 0f30b8f59..28bfc780a 100644
--- a/vendor/commerceguys/intl/resources/currency/es-PE.json
+++ b/vendor/commerceguys/intl/resources/currency/es-PE.json
@@ -191,11 +191,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -240,9 +240,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -252,6 +249,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -273,15 +273,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -310,13 +310,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -333,10 +333,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano",
- "symbol": "S\/"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +402,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +429,10 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano",
+ "symbol": "S\/"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-PR.json b/vendor/commerceguys/intl/resources/currency/es-PR.json
index 5530493cf..9ae0199f9 100644
--- a/vendor/commerceguys/intl/resources/currency/es-PR.json
+++ b/vendor/commerceguys/intl/resources/currency/es-PR.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-PY.json b/vendor/commerceguys/intl/resources/currency/es-PY.json
index 8f2fc326d..abe564c78 100644
--- a/vendor/commerceguys/intl/resources/currency/es-PY.json
+++ b/vendor/commerceguys/intl/resources/currency/es-PY.json
@@ -191,11 +191,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-SV.json b/vendor/commerceguys/intl/resources/currency/es-SV.json
index 5530493cf..9ae0199f9 100644
--- a/vendor/commerceguys/intl/resources/currency/es-SV.json
+++ b/vendor/commerceguys/intl/resources/currency/es-SV.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-US.json b/vendor/commerceguys/intl/resources/currency/es-US.json
index 3241eee20..c3e21b38d 100644
--- a/vendor/commerceguys/intl/resources/currency/es-US.json
+++ b/vendor/commerceguys/intl/resources/currency/es-US.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-UY.json b/vendor/commerceguys/intl/resources/currency/es-UY.json
index 9ff6de1b4..82b926116 100644
--- a/vendor/commerceguys/intl/resources/currency/es-UY.json
+++ b/vendor/commerceguys/intl/resources/currency/es-UY.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -407,9 +404,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -437,6 +431,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es-VE.json b/vendor/commerceguys/intl/resources/currency/es-VE.json
index 3740b2d7d..8cc486914 100644
--- a/vendor/commerceguys/intl/resources/currency/es-VE.json
+++ b/vendor/commerceguys/intl/resources/currency/es-VE.json
@@ -192,11 +192,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -241,9 +241,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -253,6 +250,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -274,15 +274,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -311,13 +311,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -334,9 +334,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -406,9 +403,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -436,6 +430,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/es.json b/vendor/commerceguys/intl/resources/currency/es.json
index 8c930a423..b23abaeff 100644
--- a/vendor/commerceguys/intl/resources/currency/es.json
+++ b/vendor/commerceguys/intl/resources/currency/es.json
@@ -132,7 +132,7 @@
},
"USD": {
"name": "dólar estadounidense",
- "symbol": "$"
+ "symbol": "US$"
},
"FJD": {
"name": "dólar fiyiano"
@@ -196,11 +196,11 @@
"BIF": {
"name": "franco burundés"
},
- "XOF": {
- "name": "franco CFA BCEAO"
- },
"XAF": {
- "name": "franco CFA BEAC"
+ "name": "franco CFA de África Central"
+ },
+ "XOF": {
+ "name": "franco CFA de África Occidental"
},
"XPF": {
"name": "franco CFP",
@@ -245,9 +245,6 @@
"LAK": {
"name": "kip"
},
- "ZMW": {
- "name": "kuacha zambiano"
- },
"AOA": {
"name": "kuanza"
},
@@ -257,6 +254,9 @@
"MWK": {
"name": "kwacha malauí"
},
+ "ZMW": {
+ "name": "kwacha zambiano"
+ },
"GEL": {
"name": "lari"
},
@@ -278,15 +278,15 @@
"BGN": {
"name": "lev búlgaro"
},
- "GBP": {
- "name": "libra británica"
- },
"SHP": {
"name": "libra de Santa Elena"
},
"EGP": {
"name": "libra egipcia"
},
+ "GBP": {
+ "name": "libra esterlina"
+ },
"GIP": {
"name": "libra gibraltareña"
},
@@ -315,13 +315,13 @@
"name": "loti lesothense"
},
"AZN": {
- "name": "manat azerí"
+ "name": "manat azerbaiyano"
},
"TMT": {
"name": "manat turcomano"
},
"BAM": {
- "name": "marco convertible de Bosnia-Herzegovina"
+ "name": "marco convertible de Bosnia y Herzegovina"
},
"MZN": {
"name": "metical"
@@ -338,9 +338,6 @@
"ILS": {
"name": "nuevo séquel israelí"
},
- "PEN": {
- "name": "nuevo sol peruano"
- },
"TOP": {
"name": "paanga"
},
@@ -410,9 +407,6 @@
"BYN": {
"name": "rublo bielorruso"
},
- "BYR": {
- "name": "rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "rublo ruso"
},
@@ -440,6 +434,9 @@
"SCR": {
"name": "rupia seychellense"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/et.json b/vendor/commerceguys/intl/resources/currency/et.json
index 2c2c7397b..68416cf0b 100644
--- a/vendor/commerceguys/intl/resources/currency/et.json
+++ b/vendor/commerceguys/intl/resources/currency/et.json
@@ -339,7 +339,7 @@
"name": "Paraguay guaranii"
},
"PEN": {
- "name": "Peruu uus soll"
+ "name": "Peruu soll"
},
"PLN": {
"name": "Poola zlott"
@@ -424,10 +424,6 @@
"name": "Tai baat",
"symbol": "฿"
},
- "TWD": {
- "name": "Taiwani dollar",
- "symbol": "NT$"
- },
"TZS": {
"name": "Tansaania šilling"
},
@@ -471,6 +467,10 @@
"UZS": {
"name": "Usbekistani somm"
},
+ "TWD": {
+ "name": "uus Taiwani dollar",
+ "symbol": "NT$"
+ },
"NZD": {
"name": "Uus-Meremaa dollar",
"symbol": "NZ$"
@@ -478,9 +478,6 @@
"BYN": {
"name": "Valgevene rubla"
},
- "BYR": {
- "name": "Valgevene rubla (2000–2016)"
- },
"VUV": {
"name": "Vanuatu vatu"
},
diff --git a/vendor/commerceguys/intl/resources/currency/eu.json b/vendor/commerceguys/intl/resources/currency/eu.json
index ccdcc834f..5fc68d401 100644
--- a/vendor/commerceguys/intl/resources/currency/eu.json
+++ b/vendor/commerceguys/intl/resources/currency/eu.json
@@ -69,9 +69,6 @@
"BYN": {
"name": "Bielorrusiako errubloa"
},
- "BYR": {
- "name": "Bielorrusiako errubloa (2000–2016)"
- },
"BOB": {
"name": "Boliviako bolivianoa"
},
@@ -358,7 +355,7 @@
"name": "Paraguaiko guarania"
},
"PEN": {
- "name": "Peruko sol berria"
+ "name": "Peruko sol"
},
"PLN": {
"name": "Poloniako zlotya"
diff --git a/vendor/commerceguys/intl/resources/currency/ewo.json b/vendor/commerceguys/intl/resources/currency/ewo.json
index 9b356264f..6e15bc6d8 100644
--- a/vendor/commerceguys/intl/resources/currency/ewo.json
+++ b/vendor/commerceguys/intl/resources/currency/ewo.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasí yá Gámbía"
@@ -360,7 +357,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/fa-AF.json b/vendor/commerceguys/intl/resources/currency/fa-AF.json
index 7e8dee1d7..14c6eafdf 100644
--- a/vendor/commerceguys/intl/resources/currency/fa-AF.json
+++ b/vendor/commerceguys/intl/resources/currency/fa-AF.json
@@ -81,9 +81,15 @@
"SHP": {
"name": "پوند سنت هلن"
},
+ "SDG": {
+ "name": "پوند سودان"
+ },
"SSP": {
"name": "پوند سودان جنوبی"
},
+ "EGP": {
+ "name": "پوند مصر"
+ },
"BDT": {
"name": "تاکای بنگلادش"
},
@@ -227,9 +233,6 @@
"BYN": {
"name": "روبل روسیهٔ سفید"
},
- "BYR": {
- "name": "روبل روسیهٔ سفید (۲۰۰۰–۲۰۱۶)"
- },
"IDR": {
"name": "روپیهٔ اندونزی"
},
@@ -423,18 +426,12 @@
"TRY": {
"name": "لیرهٔ ترکیه"
},
- "SDG": {
- "name": "لیرهٔ سودان"
- },
"SYP": {
"name": "لیرهٔ سوریه"
},
"LBP": {
"name": "لیرهٔ لبنان"
},
- "EGP": {
- "name": "لیرهٔ مصر"
- },
"SZL": {
"name": "لیلانگنی سوازیلند"
},
diff --git a/vendor/commerceguys/intl/resources/currency/fa.json b/vendor/commerceguys/intl/resources/currency/fa.json
index b43afbc65..229f0d1bd 100644
--- a/vendor/commerceguys/intl/resources/currency/fa.json
+++ b/vendor/commerceguys/intl/resources/currency/fa.json
@@ -81,9 +81,15 @@
"SHP": {
"name": "پوند سنت هلن"
},
+ "SDG": {
+ "name": "پوند سودان"
+ },
"SSP": {
"name": "پوند سودان جنوبی"
},
+ "EGP": {
+ "name": "پوند مصر"
+ },
"BDT": {
"name": "تاکای بنگلادش"
},
@@ -226,10 +232,7 @@
"symbol": "R$"
},
"BYN": {
- "name": "روبل بیلوروسی"
- },
- "BYR": {
- "name": "روبل بیلوروسی (۲۰۰۰–۲۰۱۶)"
+ "name": "روبل بلاروسی"
},
"RUB": {
"name": "روبل روسیه"
@@ -432,18 +435,12 @@
"TRY": {
"name": "لیرهٔ ترکیه"
},
- "SDG": {
- "name": "لیرهٔ سودان"
- },
"SYP": {
"name": "لیرهٔ سوریه"
},
"LBP": {
"name": "لیرهٔ لبنان"
},
- "EGP": {
- "name": "لیرهٔ مصر"
- },
"SZL": {
"name": "لیلانگنی سوازیلند"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ff.json b/vendor/commerceguys/intl/resources/currency/ff.json
index b35af4b3d..30613be8f 100644
--- a/vendor/commerceguys/intl/resources/currency/ff.json
+++ b/vendor/commerceguys/intl/resources/currency/ff.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi Gammbi"
@@ -360,7 +357,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/fi.json b/vendor/commerceguys/intl/resources/currency/fi.json
index 6d78d9419..be1f58285 100644
--- a/vendor/commerceguys/intl/resources/currency/fi.json
+++ b/vendor/commerceguys/intl/resources/currency/fi.json
@@ -92,7 +92,7 @@
"name": "Chilen peso"
},
"CRC": {
- "name": "Costa Rican colon"
+ "name": "Costa Rican colón"
},
"DJF": {
"name": "Djiboutin frangi"
@@ -104,7 +104,7 @@
"name": "Egyptin punta"
},
"SVC": {
- "name": "El Salvadorin colon"
+ "name": "El Salvadorin colón"
},
"GBP": {
"name": "Englannin punta",
@@ -332,13 +332,13 @@
"name": "Paraguayn guarani"
},
"PEN": {
- "name": "Perun uusi sol"
+ "name": "Perun sol"
},
"KPW": {
"name": "Pohjois-Korean won"
},
"PLN": {
- "name": "Puolan zloty"
+ "name": "Puolan złoty"
},
"QAR": {
"name": "Qatarin rial"
@@ -457,9 +457,6 @@
"BYN": {
"name": "Valko-Venäjän rupla"
},
- "BYR": {
- "name": "Valko-Venäjän rupla (2000–2016)"
- },
"VUV": {
"name": "Vanuatun vatu"
},
diff --git a/vendor/commerceguys/intl/resources/currency/fil.json b/vendor/commerceguys/intl/resources/currency/fil.json
index d97acdb07..e99faeb31 100644
--- a/vendor/commerceguys/intl/resources/currency/fil.json
+++ b/vendor/commerceguys/intl/resources/currency/fil.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BTN": {
"name": "Bhutanese Ngultrum"
},
@@ -331,7 +328,7 @@
"name": "Paraguayan Guarani"
},
"PEN": {
- "name": "Peruvian Nuevo Sol"
+ "name": "Peruvian Sol"
},
"ARS": {
"name": "Piso ng Argentina"
diff --git a/vendor/commerceguys/intl/resources/currency/fo.json b/vendor/commerceguys/intl/resources/currency/fo.json
index bff216136..7620537b7 100644
--- a/vendor/commerceguys/intl/resources/currency/fo.json
+++ b/vendor/commerceguys/intl/resources/currency/fo.json
@@ -154,9 +154,6 @@
"BYN": {
"name": "Hvítarussland ruble"
},
- "BYR": {
- "name": "Hvítarussland ruble (2000–2016)"
- },
"INR": {
"name": "indiskir rupis",
"symbol": "₹"
@@ -346,7 +343,7 @@
"name": "Paraguai guarani"
},
"PEN": {
- "name": "Peru nuevo sol"
+ "name": "Peru sol"
},
"PLN": {
"name": "Pólland zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/fr-CA.json b/vendor/commerceguys/intl/resources/currency/fr-CA.json
index b20786d38..659a1697f 100644
--- a/vendor/commerceguys/intl/resources/currency/fr-CA.json
+++ b/vendor/commerceguys/intl/resources/currency/fr-CA.json
@@ -325,9 +325,6 @@
"ILS": {
"name": "nouveau shekel israélien"
},
- "PEN": {
- "name": "nouveau sol péruvien"
- },
"MRO": {
"name": "ouguiya mauritanien"
},
@@ -383,9 +380,6 @@
"OMR": {
"name": "rial omanais"
},
- "QAR": {
- "name": "rial qatari"
- },
"SAR": {
"name": "rial saoudien"
},
@@ -398,12 +392,12 @@
"MYR": {
"name": "ringgit malais"
},
+ "QAR": {
+ "name": "riyal qatari"
+ },
"BYN": {
"name": "rouble biélorusse"
},
- "BYR": {
- "name": "rouble biélorusse (2000–2016)"
- },
"RUB": {
"name": "rouble russe"
},
@@ -443,6 +437,9 @@
"TZS": {
"name": "shilling tanzanien"
},
+ "PEN": {
+ "name": "sol péruvien"
+ },
"KGS": {
"name": "som kirghize"
},
diff --git a/vendor/commerceguys/intl/resources/currency/fr.json b/vendor/commerceguys/intl/resources/currency/fr.json
index 515567341..f43d7cd0c 100644
--- a/vendor/commerceguys/intl/resources/currency/fr.json
+++ b/vendor/commerceguys/intl/resources/currency/fr.json
@@ -341,9 +341,6 @@
"name": "nouveau shekel israélien",
"symbol": "₪"
},
- "PEN": {
- "name": "nouveau sol péruvien"
- },
"MRO": {
"name": "ouguiya mauritanien"
},
@@ -398,33 +395,30 @@
"name": "réal brésilien",
"symbol": "R$"
},
+ "KHR": {
+ "name": "riel cambodgien"
+ },
+ "MYR": {
+ "name": "ringgit malais"
+ },
"IRR": {
- "name": "rial iranien"
+ "name": "riyal iranien"
},
"OMR": {
- "name": "rial omanais"
+ "name": "riyal omanais"
},
"QAR": {
- "name": "rial qatari"
+ "name": "riyal qatari"
},
"SAR": {
- "name": "rial saoudien"
+ "name": "riyal saoudien"
},
"YER": {
- "name": "rial yéménite"
- },
- "KHR": {
- "name": "riel cambodgien"
- },
- "MYR": {
- "name": "ringgit malais"
+ "name": "riyal yéménite"
},
"BYN": {
"name": "rouble biélorusse"
},
- "BYR": {
- "name": "rouble biélorusse (2000–2016)"
- },
"RUB": {
"name": "rouble russe"
},
@@ -465,6 +459,9 @@
"TZS": {
"name": "shilling tanzanien"
},
+ "PEN": {
+ "name": "sol péruvien"
+ },
"KGS": {
"name": "som kirghize"
},
diff --git a/vendor/commerceguys/intl/resources/currency/fur.json b/vendor/commerceguys/intl/resources/currency/fur.json
index 2ae5571c7..18f50089b 100644
--- a/vendor/commerceguys/intl/resources/currency/fur.json
+++ b/vendor/commerceguys/intl/resources/currency/fur.json
@@ -330,7 +330,7 @@
"symbol": "MX$"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"QAR": {
"name": "Qatari Rial"
@@ -354,9 +354,6 @@
"BYN": {
"name": "Rubli bielorùs"
},
- "BYR": {
- "name": "Rubli bielorùs (2000–2016)"
- },
"RUB": {
"name": "rubli rus"
},
diff --git a/vendor/commerceguys/intl/resources/currency/fy.json b/vendor/commerceguys/intl/resources/currency/fy.json
index 2525eebda..470706d73 100644
--- a/vendor/commerceguys/intl/resources/currency/fy.json
+++ b/vendor/commerceguys/intl/resources/currency/fy.json
@@ -357,7 +357,7 @@
"name": "Paraguayaanske guarani"
},
"PEN": {
- "name": "Peruaanske nieuwe sol"
+ "name": "Peruaanske sol"
},
"PLN": {
"name": "Poalske zloty"
@@ -486,9 +486,6 @@
"BYN": {
"name": "Wit-Russyske roebel"
},
- "BYR": {
- "name": "Wit-Russyske roebel (2000–2016)"
- },
"ISK": {
"name": "Yslânske kroon"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ga.json b/vendor/commerceguys/intl/resources/currency/ga.json
index a7796a1f1..d0f2424e4 100644
--- a/vendor/commerceguys/intl/resources/currency/ga.json
+++ b/vendor/commerceguys/intl/resources/currency/ga.json
@@ -297,9 +297,6 @@
"BTN": {
"name": "Ngultrum na Bútáine"
},
- "PEN": {
- "name": "Nuevo Sol Pheiriú"
- },
"MRO": {
"name": "Ouguiya na Máratáine"
},
@@ -402,9 +399,6 @@
"BYN": {
"name": "Rúbal na Bealarúise"
},
- "BYR": {
- "name": "Rúbal na Bealarúise (2000–2016)"
- },
"RUB": {
"name": "Rúbal na Rúise"
},
@@ -449,6 +443,9 @@
"name": "Seiceal Nua Iosrael",
"symbol": "₪"
},
+ "PEN": {
+ "name": "Sol Pheiriú"
+ },
"KGS": {
"name": "Som na Cirgeastáine"
},
diff --git a/vendor/commerceguys/intl/resources/currency/gd.json b/vendor/commerceguys/intl/resources/currency/gd.json
index e1ab68fe9..1c118f112 100644
--- a/vendor/commerceguys/intl/resources/currency/gd.json
+++ b/vendor/commerceguys/intl/resources/currency/gd.json
@@ -402,9 +402,6 @@
"BYN": {
"name": "Rùbal Bealaruiseach"
},
- "BYR": {
- "name": "Rùbal Bealaruiseach (2000–2016)"
- },
"RUB": {
"name": "Rùbal Ruiseach"
},
@@ -450,7 +447,7 @@
"name": "Shilling Ugandach"
},
"PEN": {
- "name": "Sol ùr Pearùthach"
+ "name": "Sol Pearùthach"
},
"KGS": {
"name": "Som Cìorgasach"
diff --git a/vendor/commerceguys/intl/resources/currency/gl.json b/vendor/commerceguys/intl/resources/currency/gl.json
index 1746741d6..94323ebb3 100644
--- a/vendor/commerceguys/intl/resources/currency/gl.json
+++ b/vendor/commerceguys/intl/resources/currency/gl.json
@@ -89,14 +89,14 @@
},
"AUD": {
"name": "Dólar australiano",
- "symbol": "$A"
+ "symbol": "A$"
},
"BZD": {
"name": "Dólar belizense"
},
"CAD": {
"name": "Dólar canadense",
- "symbol": "$CA"
+ "symbol": "CA$"
},
"BSD": {
"name": "Dólar das Bahamas"
@@ -385,7 +385,7 @@
},
"BRL": {
"name": "Real brasileiro",
- "symbol": "$R"
+ "symbol": "R$"
},
"YER": {
"name": "Rial iemení"
@@ -411,9 +411,6 @@
"BYN": {
"name": "Rublo bielorruso"
},
- "BYR": {
- "name": "Rublo bielorruso (2000–2016)"
- },
"RUB": {
"name": "Rublo ruso"
},
diff --git a/vendor/commerceguys/intl/resources/currency/gsw.json b/vendor/commerceguys/intl/resources/currency/gsw.json
index 4c4fd89ac..0f52b7ec8 100644
--- a/vendor/commerceguys/intl/resources/currency/gsw.json
+++ b/vendor/commerceguys/intl/resources/currency/gsw.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarus Rubel"
},
- "BYR": {
- "name": "Belarus Rubel (2000–2016)"
- },
"BZD": {
"name": "Belize-Dollar"
},
@@ -302,9 +299,6 @@
"ANG": {
"name": "Niderländischi-Antille-Gulde"
},
- "PEN": {
- "name": "Nöie Sol"
- },
"TWD": {
"name": "Nöii Taiwan-Dollar",
"symbol": "NT$"
@@ -397,6 +391,9 @@
"SGD": {
"name": "Singapur-Dollar"
},
+ "PEN": {
+ "name": "Sol"
+ },
"KGS": {
"name": "Som"
},
diff --git a/vendor/commerceguys/intl/resources/currency/gu.json b/vendor/commerceguys/intl/resources/currency/gu.json
index 8d3a6d70f..ffdafb14b 100644
--- a/vendor/commerceguys/intl/resources/currency/gu.json
+++ b/vendor/commerceguys/intl/resources/currency/gu.json
@@ -252,7 +252,7 @@
"name": "પાપુઆ ન્યૂ ગિનીયન કિના"
},
"PEN": {
- "name": "પેરુવિયન ન્યુવો સોલ"
+ "name": "પેરુવિયન સોલ"
},
"PLN": {
"name": "પોલિસ ઝ્લોટી"
@@ -287,9 +287,6 @@
"BYN": {
"name": "બેલારુશિયન રૂબલ"
},
- "BYR": {
- "name": "બેલારુશિયન રૂબલ (2000–2016)"
- },
"BZD": {
"name": "બેલિઝ ડોલર"
},
diff --git a/vendor/commerceguys/intl/resources/currency/guz.json b/vendor/commerceguys/intl/resources/currency/guz.json
index 1c12c163f..0815fc583 100644
--- a/vendor/commerceguys/intl/resources/currency/guz.json
+++ b/vendor/commerceguys/intl/resources/currency/guz.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ha.json b/vendor/commerceguys/intl/resources/currency/ha.json
index 254e280c4..6cc65420e 100644
--- a/vendor/commerceguys/intl/resources/currency/ha.json
+++ b/vendor/commerceguys/intl/resources/currency/ha.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"USD": {
"name": "Dalar Amurka",
@@ -384,7 +381,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/he.json b/vendor/commerceguys/intl/resources/currency/he.json
index e0dab4de2..99259436e 100644
--- a/vendor/commerceguys/intl/resources/currency/he.json
+++ b/vendor/commerceguys/intl/resources/currency/he.json
@@ -1,6 +1,6 @@
{
"MRO": {
- "name": "אוגוויה מאוריטני"
+ "name": "אואוגויה מאוריטני"
},
"EUR": {
"name": "אירו",
@@ -32,7 +32,7 @@
"name": "בלבואה פנמי"
},
"PYG": {
- "name": "גוורני פראגוואי"
+ "name": "גוארני פרגוואי"
},
"HTG": {
"name": "גורד האיטי"
@@ -40,9 +40,6 @@
"ANG": {
"name": "גילדר של האנטילים ההולנדיים"
},
- "UAH": {
- "name": "גריבנה אוקראיני"
- },
"STD": {
"name": "דוברה של סן טומה ופרינסיפה"
},
@@ -113,7 +110,7 @@
"name": "דולר פיג׳י"
},
"KYD": {
- "name": "דולר קיימאני"
+ "name": "דולר קיימני"
},
"CAD": {
"name": "דולר קנדי",
@@ -157,11 +154,14 @@
"name": "דירהם של איחוד הנסיכויות הערביות"
},
"GMD": {
- "name": "דלאסי גמבי"
+ "name": "דלסי גמבי"
},
"AMD": {
"name": "דראם ארמני"
},
+ "UAH": {
+ "name": "הריבנה אוקראיני"
+ },
"VUV": {
"name": "ואטו של ונואטו"
},
@@ -207,23 +207,26 @@
"SEK": {
"name": "כתר שוודי"
},
+ "MDL": {
+ "name": "לאו מולדובני"
+ },
"RON": {
"name": "לאו רומני"
},
+ "GEL": {
+ "name": "לארי גאורגי"
+ },
"BGN": {
"name": "לב בולגרי"
},
"LSL": {
"name": "לוטי לסותי"
},
- "MDL": {
- "name": "ליאו מולדובני"
- },
"SLL": {
"name": "ליאון סיירה לאוני"
},
"SZL": {
- "name": "לילנגני סווזי"
+ "name": "לילנגני סווזילנדי"
},
"SSP": {
"name": "לירה דרום-סודנית"
@@ -256,17 +259,14 @@
"ALL": {
"name": "לק אלבני"
},
- "GEL": {
- "name": "לרי גאורגי"
- },
"AZN": {
- "name": "מאנאט אזרביג׳ני"
+ "name": "מאנאט אזרבייג׳ני"
},
"TMT": {
"name": "מאנאט טורקמני"
},
"BAM": {
- "name": "מארק בר המרה של בוסניה־הרצגובינה"
+ "name": "מארק סחיר של בוסניה והרצגובינה"
},
"MZN": {
"name": "מטיקל מוזמביני"
@@ -284,7 +284,7 @@
"name": "סדי גאני"
},
"PEN": {
- "name": "סול פרואני חדש"
+ "name": "סול פרואני"
},
"UZS": {
"name": "סום אוזבקי"
@@ -305,7 +305,7 @@
"name": "פאנגה טונגי"
},
"BWP": {
- "name": "פולה בוצוואני"
+ "name": "פולה בוטסואני"
},
"HUF": {
"name": "פורינט הונגרי"
@@ -370,21 +370,21 @@
"name": "פרנק שוויצרי"
},
"XOF": {
- "name": "פרנק CFA BCEAO",
+ "name": "פרנק CFA מערב אפריקני",
"symbol": "CFA"
},
"XAF": {
- "name": "פרנק CFA BEAC",
+ "name": "פרנק CFA מרכז אפריקני",
"symbol": "FCFA"
},
"AOA": {
"name": "קואנזה אנגולי"
},
"MWK": {
- "name": "קואצ׳ה מלאוי"
+ "name": "קואצ׳ה מלאווי"
},
"ZMW": {
- "name": "קוואצ׳ה זמבית"
+ "name": "קוואצ׳ה זמבי"
},
"SVC": {
"name": "קולון סלבדורי"
@@ -411,7 +411,7 @@
"name": "קיפ לאי"
},
"GTQ": {
- "name": "קצל גואטמלי"
+ "name": "קצאל גואטמלי"
},
"ZAR": {
"name": "ראנד דרום אפריקאי"
@@ -419,9 +419,6 @@
"BYN": {
"name": "רובל בלרוסי"
},
- "BYR": {
- "name": "רובל בלרוסי (2000–2016)"
- },
"RUB": {
"name": "רובל רוסי"
},
@@ -482,10 +479,10 @@
"name": "שילינג טנזני"
},
"SOS": {
- "name": "שילינג סומאלי"
+ "name": "שילינג סומלי"
},
"KES": {
- "name": "שילינג קנייאתי"
+ "name": "שילינג קנייתי"
},
"ILS": {
"name": "שקל חדש",
diff --git a/vendor/commerceguys/intl/resources/currency/hi.json b/vendor/commerceguys/intl/resources/currency/hi.json
index 6a388889a..78f10ebcd 100644
--- a/vendor/commerceguys/intl/resources/currency/hi.json
+++ b/vendor/commerceguys/intl/resources/currency/hi.json
@@ -1,8 +1,4 @@
{
- "XAF": {
- "name": "[CFA] फ़्रैंक [BEAC]",
- "symbol": "FCFA"
- },
"XPF": {
"name": "[CFP] फ़्रैंक",
"symbol": "CFPF"
@@ -88,6 +84,10 @@
"KWD": {
"name": "कुवैती दिनार"
},
+ "XAF": {
+ "name": "केंद्रीय अफ़्रीकी CFA फ़्रैंक",
+ "symbol": "FCFA"
+ },
"KES": {
"name": "केन्याई शिलिंग"
},
@@ -236,7 +236,7 @@
"name": "पनामेनियन बैल्बोआ"
},
"XOF": {
- "name": "पश्चिमी अफ़्रीकी CFA फ्रैंक",
+ "name": "पश्चिमी अफ़्रीकी CFA फ़्रैंक",
"symbol": "CFA"
},
"PKR": {
@@ -250,7 +250,7 @@
"symbol": "EC$"
},
"PEN": {
- "name": "पेरूवियन नुएवो सोल"
+ "name": "पेरूवियन सोल"
},
"PYG": {
"name": "पैराग्वियन गुआरानी"
@@ -291,9 +291,6 @@
"BYN": {
"name": "बेलारूसी रूबल"
},
- "BYR": {
- "name": "बेलारूसी रूबल (2000–2016)"
- },
"BZD": {
"name": "बेलीज़ डॉलर"
},
diff --git a/vendor/commerceguys/intl/resources/currency/hr.json b/vendor/commerceguys/intl/resources/currency/hr.json
index 4039f8ba9..0ed89d942 100644
--- a/vendor/commerceguys/intl/resources/currency/hr.json
+++ b/vendor/commerceguys/intl/resources/currency/hr.json
@@ -50,9 +50,6 @@
"BYN": {
"name": "bjeloruska rublja"
},
- "BYR": {
- "name": "bjeloruska rublja (2000–2016)"
- },
"BWP": {
"name": "bocvanska pula"
},
@@ -350,7 +347,7 @@
"name": "paragvajski gvarani"
},
"PEN": {
- "name": "peruanski novi sol"
+ "name": "peruanski sol"
},
"PLN": {
"name": "poljska zlota"
diff --git a/vendor/commerceguys/intl/resources/currency/hsb.json b/vendor/commerceguys/intl/resources/currency/hsb.json
index 03343db72..eb47873ca 100644
--- a/vendor/commerceguys/intl/resources/currency/hsb.json
+++ b/vendor/commerceguys/intl/resources/currency/hsb.json
@@ -51,9 +51,6 @@
"BYN": {
"name": "běłoruski rubl"
},
- "BYR": {
- "name": "běłoruski rubl (2000–2016)"
- },
"BTN": {
"name": "bhutanski ngultrum"
},
@@ -365,7 +362,7 @@
"name": "paraguayski guarani"
},
"PEN": {
- "name": "peruski nowy sol"
+ "name": "peruski sol"
},
"PLN": {
"name": "pólski złoty",
diff --git a/vendor/commerceguys/intl/resources/currency/hu.json b/vendor/commerceguys/intl/resources/currency/hu.json
index 284e7cd05..72a163aca 100644
--- a/vendor/commerceguys/intl/resources/currency/hu.json
+++ b/vendor/commerceguys/intl/resources/currency/hu.json
@@ -137,9 +137,6 @@
"BYN": {
"name": "fehérorosz rubel"
},
- "BYR": {
- "name": "fehérorosz rubel (2000–2016)"
- },
"FJD": {
"name": "fidzsi dollár"
},
@@ -359,7 +356,7 @@
"name": "paraguayi guarani"
},
"PEN": {
- "name": "perui sol nuevo"
+ "name": "perui sol"
},
"RON": {
"name": "román lej"
diff --git a/vendor/commerceguys/intl/resources/currency/hy.json b/vendor/commerceguys/intl/resources/currency/hy.json
index bbf5b2052..5c745c2d9 100644
--- a/vendor/commerceguys/intl/resources/currency/hy.json
+++ b/vendor/commerceguys/intl/resources/currency/hy.json
@@ -1,35 +1,35 @@
{
"AZN": {
- "name": "Ադրբեջանական մանաթ"
+ "name": "ադրբեջանական մանաթ"
},
"ALL": {
- "name": "Ալբանական լեկ"
+ "name": "ալբանական լեկ"
},
"DZD": {
- "name": "Ալժիրյան դինար"
+ "name": "ալժիրական դինար"
},
"USD": {
"name": "ԱՄՆ դոլար",
"symbol": "$"
},
"AOA": {
- "name": "Անգոլական կվանզա"
+ "name": "անգոլական կվանզա"
},
"AUD": {
- "name": "Ավստրալիական դոլար",
+ "name": "ավստրալիական դոլար",
"symbol": "A$"
},
"AED": {
"name": "Արաբական Միացյալ Էմիրությունների դիրհամ"
},
"ARS": {
- "name": "Արգենտինական պեսո"
+ "name": "արգենտինական պեսո"
},
"AWG": {
- "name": "Արուբական ֆլորին"
+ "name": "արուբական ֆլորին"
},
"XCD": {
- "name": "Արևելակարիբյան դոլար",
+ "name": "արևելակարիբյան դոլար",
"symbol": "EC$"
},
"XOF": {
@@ -37,10 +37,10 @@
"symbol": "CFA"
},
"AFN": {
- "name": "Աֆղանական աֆղանի"
+ "name": "աֆղանական աֆղանի"
},
"BSD": {
- "name": "Բահամյան դոլար"
+ "name": "բահամյան դոլար"
},
"BHD": {
"name": "Բահրեյնի դինար"
@@ -49,151 +49,148 @@
"name": "Բանգլադեշի տակա"
},
"BBD": {
- "name": "Բարբադոսյան դոլար"
+ "name": "բարբադոսյան դոլար"
},
"BYN": {
- "name": "Բելառուսական ռուբլի"
- },
- "BYR": {
- "name": "Բելառուսական ռուբլի (2000–2016)"
+ "name": "բելառուսական ռուբլի"
},
"BZD": {
"name": "Բելիզի դոլար"
},
"BMD": {
- "name": "Բերմուդյան դոլար"
+ "name": "բերմուդյան դոլար"
},
"BWP": {
- "name": "Բոթսվանական պուլա"
+ "name": "բոթսվանական պուլա"
},
"BOB": {
- "name": "Բոլիվիական բոլիվիանո"
+ "name": "բոլիվիական բոլիվիանո"
},
"BAM": {
"name": "Բոսնիա և Հերցեգովինայի փոխարկվող մարկ"
},
"BTN": {
- "name": "Բութանական նգուլտրում"
+ "name": "բութանական նգուլտրում"
},
"BGN": {
- "name": "Բուլղարական լև"
+ "name": "բուլղարական լև"
},
"BIF": {
- "name": "Բուրունդիական ֆրանկ"
+ "name": "բուրունդիական ֆրանկ"
},
"BRL": {
- "name": "Բրազիլական ռեալ",
+ "name": "բրազիլական ռեալ",
"symbol": "R$"
},
"GBP": {
- "name": "Բրիտանական ֆունտ ստերլինգ",
+ "name": "բրիտանական ֆունտ ստերլինգ",
"symbol": "£"
},
"BND": {
"name": "Բրունեյի դոլար"
},
"GMD": {
- "name": "Գամբիական դալասի"
+ "name": "գամբիական դալասի"
},
"GYD": {
- "name": "Գայանական դոլար"
+ "name": "գայանական դոլար"
},
"GHS": {
- "name": "Գանայական սեդի"
+ "name": "գայանական սեդի"
},
"GTQ": {
- "name": "Գվատեմալական կետսալ"
+ "name": "գվատեմալական կետսալ"
},
"GNF": {
- "name": "Գվինեական ֆրանկ"
+ "name": "գվինեական ֆրանկ"
},
"DKK": {
- "name": "Դանիական կրոն"
+ "name": "դանիական կրոն"
},
"DOP": {
- "name": "Դոմինիկյան պեսո"
+ "name": "դոմինիկյան պեսո"
},
"EGP": {
- "name": "Եգիպտական ֆունտ"
+ "name": "եգիպտական ֆունտ"
},
"ETB": {
- "name": "Եթովպիական բիր"
+ "name": "եթովպիական բիր"
},
"YER": {
- "name": "Եմենական ռիալ"
+ "name": "եմենական ռիալ"
},
"EUR": {
- "name": "Եվրո",
+ "name": "եվրո",
"symbol": "€"
},
"ZMW": {
- "name": "Զամբիական կվաչա"
+ "name": "զամբիական կվաչա"
},
"ERN": {
- "name": "Էրիթրեական նակֆա"
+ "name": "էրիթրեական նակվա"
},
"THB": {
- "name": "Թայլանդական բատ",
+ "name": "թայլանդական բատ",
"symbol": "฿"
},
"TWD": {
- "name": "Թայվանական նոր դոլար",
+ "name": "թայվանական նոր դոլար",
"symbol": "NT$"
},
"TND": {
- "name": "Թունիսյան դինար"
+ "name": "թունիսյան դինար"
},
"TRY": {
- "name": "Թուրքական լիրա"
+ "name": "թուրքական լիրա"
},
"TMT": {
- "name": "Թուրքմենական մանաթ"
+ "name": "թուրքմենական մանաթ"
},
"IDR": {
- "name": "Ինդոնեզիական ռուփի"
+ "name": "ինդոնեզիական ռուփի"
},
"ISK": {
- "name": "Իսլանդական կրոն"
+ "name": "իսլանդական կրոն"
},
"ILS": {
"name": "Իսրայելի նոր շեկել",
"symbol": "₪"
},
"IRR": {
- "name": "Իրանական ռիալ"
+ "name": "իրանական ռիալ"
},
"IQD": {
- "name": "Իրաքյան դինար"
+ "name": "իրաքյան դինար"
},
"LAK": {
- "name": "Լաոսական կիպ"
+ "name": "լաոսական կիպ"
},
"PLN": {
- "name": "Լեհական զլոտի"
+ "name": "լեհական զլոտի"
},
"LBP": {
- "name": "Լիբանանյան ֆունտ"
+ "name": "լիբանանյան ֆունտ"
},
"LRD": {
- "name": "Լիբերիական դոլար"
+ "name": "լիբերիական դոլար"
},
"LYD": {
- "name": "Լիբիական դինար"
+ "name": "լիբիական դինար"
},
"HRK": {
- "name": "Խորվաթական կունա"
+ "name": "խորվաթական կունա"
},
"CVE": {
"name": "Կաբո Վերդեի էսկուդո"
},
"KHR": {
- "name": "Կամբոջական ռիել"
+ "name": "կամբոջական ռիել"
},
"KYD": {
"name": "Կայմանյան կղզիների դոլար"
},
"CAD": {
- "name": "Կանադական դոլար",
+ "name": "կանադական դոլար",
"symbol": "CA$"
},
"QAR": {
@@ -204,10 +201,10 @@
"symbol": "FCFA"
},
"COP": {
- "name": "Կոլումբիական պեսո"
+ "name": "կոլումբիական պեսո"
},
"KMF": {
- "name": "Կոմորյան ֆրանկ"
+ "name": "կոմորյան ֆրանկ"
},
"CDF": {
"name": "Կոնգոյի ֆրանկ"
@@ -219,172 +216,172 @@
"name": "կուբայական պեսո"
},
"CUC": {
- "name": "Կուբայական փոխարկվող պեսո"
+ "name": "կուբայական փոխարկվող պեսո"
},
"XPF": {
"name": "ԿՊՖ ֆրանկ",
"symbol": "CFPF"
},
"HTG": {
- "name": "Հայիթյան գուրդ"
+ "name": "հաիթյան գուրդ"
},
"AMD": {
- "name": "Հայկական դրամ",
+ "name": "հայկական դրամ",
"symbol": "֏"
},
"ZAR": {
- "name": "Հարավաֆրիկյան ռանդ"
+ "name": "հարավաֆրիկյան ռանդ"
},
"KRW": {
- "name": "Հարավկորեական վոն",
+ "name": "հարավկորեական վոն",
"symbol": "₩"
},
"SSP": {
- "name": "Հարավսուդանական ֆունտ"
+ "name": "հարավսուդանական ֆունտ"
},
"KPW": {
- "name": "Հյուսիսկորեական վոն"
+ "name": "հյուսիսկորեական վոն"
},
"INR": {
- "name": "Հնդկական ռուփի",
+ "name": "հնդկական ռուփի",
"symbol": "₹"
},
"HNL": {
- "name": "Հոնդուրասական լեմպիրա"
+ "name": "հոնդուրասական լեմպիրա"
},
"HKD": {
"name": "Հոնկոնգի դոլար",
"symbol": "HK$"
},
"JOD": {
- "name": "Հորդանանյան դինար"
+ "name": "հորդանանյան դինար"
},
"HUF": {
- "name": "Հունգարական ֆորինտ"
+ "name": "հունգարական ֆորինտ"
},
"KZT": {
- "name": "Ղազախական տենգե"
+ "name": "ղազախական տենգե"
},
"KGS": {
- "name": "Ղրղզական սոմ"
+ "name": "ղրղզական սոմ"
},
"JMD": {
"name": "Ճամայկայի դոլար"
},
"JPY": {
- "name": "Ճապոնական իեն",
+ "name": "ճապոնական իեն",
"symbol": "JP¥"
},
"MGA": {
"name": "Մադագասկարի արիարի"
},
"MYR": {
- "name": "Մալայզիական ռինգիտ"
+ "name": "մալայզիական ռինգիտ"
},
"MWK": {
- "name": "Մալավիական կվաչա"
+ "name": "մալավիական կվաչա"
},
"MVR": {
- "name": "Մալդիվյան ռուֆիյա"
+ "name": "մալդիվյան ռուֆիյա"
},
"MOP": {
- "name": "Մակաուի պատակա"
+ "name": "Մակաոյի պատակա"
},
"MKD": {
- "name": "Մակեդոնյան դենար"
+ "name": "մակեդոնական դենար"
},
"MUR": {
- "name": "Մավրիկյան ռուփի"
+ "name": "մավրիկյան ռուփի"
},
"MRO": {
- "name": "Մավրիտանական ուգիյա"
+ "name": "մավրիտանական ուգիյա"
},
"MAD": {
"name": "Մարոկկոյի դիրհամ"
},
"MXN": {
- "name": "Մեքսիկական պեսո",
+ "name": "մեքսիկական պեսո",
"symbol": "MX$"
},
"MMK": {
"name": "Մյանմայի կյատ"
},
"MZN": {
- "name": "Մոզամբիկյան մետիկալ"
+ "name": "մոզամբիկյան մետիկալ"
},
"MDL": {
- "name": "Մոլդովական լեյ"
+ "name": "մոլդովական լեյ"
},
"MNT": {
- "name": "Մոնղոլական տուգրիկ"
+ "name": "մոնղոլական տուգրիկ"
},
"NAD": {
- "name": "Նամիբիական դոլար"
+ "name": "նամիբիական դոլար"
},
"NPR": {
"name": "Նեպալի ռուփի"
},
"NGN": {
- "name": "Նիգերիական նայրա"
+ "name": "նիգերիական նայրա"
},
"ANG": {
- "name": "Նիդեռլանդական անտիլյան գուլդեն"
+ "name": "նիդեռլանդական անտիլյան գուլդեն"
},
"NIO": {
- "name": "Նիկարագուական կորդոբա"
+ "name": "նիկարագուական կորդոբա"
},
"NZD": {
- "name": "Նորզելանդական դոլար",
+ "name": "նորզելանդական դոլար",
"symbol": "NZ$"
},
"NOK": {
- "name": "Նորվեգական կրոն"
+ "name": "նորվեգական կրոն"
},
"SEK": {
- "name": "Շվեդական կրոն"
+ "name": "շվեդական կրոն"
},
"CHF": {
- "name": "Շվեյցարական ֆրանկ"
+ "name": "շվեյցարական ֆրանկ"
},
"LKR": {
"name": "Շրի Լանկայի ռուփի"
},
"UGX": {
- "name": "Ուգանդական շիլինգ"
+ "name": "ուգանդական շիլինգ"
},
"UZS": {
- "name": "Ուզբեկական սոմ"
+ "name": "ուզբեկական սոմ"
},
"UAH": {
- "name": "Ուկրաինական գրիվնա"
+ "name": "ուկրաինական գրիվնա"
},
"UYU": {
- "name": "Ուրուգվայական պեսո"
+ "name": "ուրուգվայական պեսո"
},
"CZK": {
- "name": "Չեխական կրոն"
+ "name": "չեխական կրոն"
},
"CLP": {
- "name": "Չիլիական պեսո"
+ "name": "չիլիական պեսո"
},
"CNY": {
- "name": "Չինական յուան",
+ "name": "չինական յուան",
"symbol": "CN¥"
},
"PKR": {
- "name": "Պակիստանյան ռուփի"
+ "name": "պակիստանյան ռուփի"
},
"PAB": {
- "name": "Պանամական բալբոա"
+ "name": "պանամական բալբոա"
},
"PGK": {
"name": "Պապուա Նոր Գվինեայի կինա"
},
"PYG": {
- "name": "Պարագվայական գուարանի"
+ "name": "պարագվայական գուարանի"
},
"PEN": {
- "name": "Պերուի նոր սոլ"
+ "name": "Պերուի սոլ"
},
"DJF": {
"name": "Ջիբութիի ֆրանկ"
@@ -393,16 +390,16 @@
"name": "Ջիբրալթարի ֆունտ"
},
"RWF": {
- "name": "Ռուանդական ֆրանկ"
+ "name": "ռուանդական ֆրանկ"
},
"RON": {
- "name": "Ռումինական լեյ"
+ "name": "ռումինական լեյ"
},
"RUB": {
- "name": "Ռուսական ռուբլի"
+ "name": "ռուսական ռուբլի"
},
"WST": {
- "name": "Սամոական տալա"
+ "name": "սամոական տալա"
},
"STD": {
"name": "Սան Տոմե և Փրինսիպիի դոբրա"
@@ -411,10 +408,10 @@
"name": "Սաուդյան Արաբիայի ռիալ"
},
"SCR": {
- "name": "Սեյշելյան ռուփի"
+ "name": "սեյշելյան ռուփի"
},
"RSD": {
- "name": "Սերբական դինար"
+ "name": "սերբական դինար"
},
"SLL": {
"name": "Սիեռա Լեոնեի լեոնե"
@@ -423,44 +420,44 @@
"name": "Սինգապուրի դոլար"
},
"SYP": {
- "name": "Սիրիական ֆունտ"
+ "name": "սիրիական ֆունտ"
},
"SBD": {
- "name": "Սողոմոնի կղզիների դոլար"
+ "name": "Սողոմոնյան կղզիների դոլար"
},
"SOS": {
- "name": "Սոմալիական շիլինգ"
+ "name": "սոմալիական շիլինգ"
},
"SDG": {
- "name": "Սուդանական ֆունտ"
+ "name": "սուդանական ֆունտ"
},
"SHP": {
"name": "Սուրբ Հեղինեի ֆունտ"
},
"SRD": {
- "name": "Սուրինամի դոլար"
+ "name": "սուրինամական դոլար"
},
"SZL": {
- "name": "Սվազիլենդական լիլանգենի"
+ "name": "սվազիլենդական լիլանգենի"
},
"VUV": {
"name": "Վանուատուի վատու"
},
"VEF": {
- "name": "Վենեսուելական բոլիվար"
+ "name": "վենեսուելական բոլիվար"
},
"VND": {
- "name": "Վիետնամական դոնգ",
+ "name": "վիետնամական դոնգ",
"symbol": "₫"
},
"GEL": {
- "name": "Վրացական լարի"
+ "name": "վրացական լարի"
},
"TZS": {
- "name": "Տանզանիական շիլինգ"
+ "name": "տանզանիական շիլինգ"
},
"TJS": {
- "name": "Տաջիկական սոմոնի"
+ "name": "տաջիկական սոմոնի"
},
"TOP": {
"name": "Տոնգայի պաանգա"
@@ -469,7 +466,7 @@
"name": "Տրինիդադ և Տոբագոյի դոլար"
},
"KES": {
- "name": "Քենիական շիլինգ"
+ "name": "քենիական շիլինգ"
},
"KWD": {
"name": "Քուվեյթի դինար"
@@ -478,10 +475,10 @@
"name": "Օմանի ռիալ"
},
"PHP": {
- "name": "Ֆիլիպինյան պեսո"
+ "name": "ֆիլիպինյան պեսո"
},
"FJD": {
- "name": "Ֆիջիական դոլար"
+ "name": "ֆիջիական դոլար"
},
"FKP": {
"name": "Ֆոլքլենդյան կղզիների ֆունտ"
diff --git a/vendor/commerceguys/intl/resources/currency/id.json b/vendor/commerceguys/intl/resources/currency/id.json
index c43aff82d..af13eb8f9 100644
--- a/vendor/commerceguys/intl/resources/currency/id.json
+++ b/vendor/commerceguys/intl/resources/currency/id.json
@@ -300,9 +300,6 @@
"BTN": {
"name": "Ngultrum Bhutan"
},
- "PEN": {
- "name": "Nuevo Sol Peru"
- },
"MRO": {
"name": "Ouguiya Mauritania"
},
@@ -408,9 +405,6 @@
"BYN": {
"name": "Rubel Belarusia"
},
- "BYR": {
- "name": "Rubel Belarusia (2000–2016)"
- },
"RUB": {
"name": "Rubel Rusia"
},
@@ -456,6 +450,9 @@
"UGX": {
"name": "Shilling Uganda"
},
+ "PEN": {
+ "name": "Sol Peru"
+ },
"KGS": {
"name": "Som Kirgistan"
},
diff --git a/vendor/commerceguys/intl/resources/currency/is.json b/vendor/commerceguys/intl/resources/currency/is.json
index 4b16aa872..54997c733 100644
--- a/vendor/commerceguys/intl/resources/currency/is.json
+++ b/vendor/commerceguys/intl/resources/currency/is.json
@@ -157,9 +157,6 @@
"BYN": {
"name": "hvítrússnesk rúbla"
},
- "BYR": {
- "name": "hvítrússnesk rúbla (2000–2016)"
- },
"IDR": {
"name": "indónesísk rúpía"
},
diff --git a/vendor/commerceguys/intl/resources/currency/it.json b/vendor/commerceguys/intl/resources/currency/it.json
index 60150d80a..c05d4c303 100644
--- a/vendor/commerceguys/intl/resources/currency/it.json
+++ b/vendor/commerceguys/intl/resources/currency/it.json
@@ -152,8 +152,7 @@
"symbol": "NZ$"
},
"USD": {
- "name": "dollaro statunitense",
- "symbol": "US$"
+ "name": "dollaro statunitense"
},
"ZWL": {
"name": "dollaro zimbabwiano (2009)"
@@ -308,9 +307,6 @@
"name": "nuovo siclo israeliano",
"symbol": "₪"
},
- "PEN": {
- "name": "nuovo sol peruviano"
- },
"MRO": {
"name": "ouguiya della Mauritania"
},
@@ -387,9 +383,6 @@
"BYN": {
"name": "rublo bielorusso"
},
- "BYR": {
- "name": "rublo bielorusso (2000–2016)"
- },
"RUB": {
"name": "rublo russo"
},
@@ -430,6 +423,9 @@
"UGX": {
"name": "scellino ugandese"
},
+ "PEN": {
+ "name": "sol peruviano"
+ },
"KGS": {
"name": "som kirghiso"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ja.json b/vendor/commerceguys/intl/resources/currency/ja.json
index c4ca60d98..84279e7b3 100644
--- a/vendor/commerceguys/intl/resources/currency/ja.json
+++ b/vendor/commerceguys/intl/resources/currency/ja.json
@@ -122,7 +122,7 @@
"name": "キューバ 兌換ペソ"
},
"KGS": {
- "name": "キルギスタン ソム"
+ "name": "キルギス ソム"
},
"GTQ": {
"name": "グアテマラ ケツァル"
@@ -209,7 +209,7 @@
"name": "セーシェル ルピー"
},
"SHP": {
- "name": "セントヘレナ島 ポンド"
+ "name": "セントヘレナ ポンド"
},
"SOS": {
"name": "ソマリア シリング"
@@ -245,7 +245,7 @@
"name": "ドミニカ ペソ"
},
"TTD": {
- "name": "トリニダードトバゴ ドル"
+ "name": "トリニダード・トバゴ ドル"
},
"TMT": {
"name": "トルクメニスタン マナト"
@@ -309,7 +309,7 @@
"name": "バングラデシュ タカ"
},
"FJD": {
- "name": "フィジー諸島 ドル"
+ "name": "フィジー ドル"
},
"PHP": {
"name": "フィリピン ペソ"
@@ -343,20 +343,17 @@
"BYN": {
"name": "ベラルーシ ルーブル"
},
- "BYR": {
- "name": "ベラルーシ ルーブル (2000–2016)"
- },
"BZD": {
"name": "ベリーズ ドル"
},
"PEN": {
- "name": "ペルー 新ソル"
+ "name": "ペルー ソル"
},
"PLN": {
"name": "ポーランド ズウォティ"
},
"BAM": {
- "name": "ボスニア マルク (BAM)"
+ "name": "ボスニア・ヘルツェゴビナ 兌換マルク (BAM)"
},
"BWP": {
"name": "ボツワナ プラ"
@@ -399,7 +396,7 @@
"name": "モザンビーク メティカル"
},
"MVR": {
- "name": "モルディブ諸島 ルフィア"
+ "name": "モルディブ ルフィア"
},
"MDL": {
"name": "モルドバ レイ"
diff --git a/vendor/commerceguys/intl/resources/currency/jmc.json b/vendor/commerceguys/intl/resources/currency/jmc.json
index 61220f73e..f5fec488b 100644
--- a/vendor/commerceguys/intl/resources/currency/jmc.json
+++ b/vendor/commerceguys/intl/resources/currency/jmc.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ka.json b/vendor/commerceguys/intl/resources/currency/ka.json
index 4694e134f..2a1484b1a 100644
--- a/vendor/commerceguys/intl/resources/currency/ka.json
+++ b/vendor/commerceguys/intl/resources/currency/ka.json
@@ -62,9 +62,6 @@
"BYN": {
"name": "ბელორუსული რუბლი"
},
- "BYR": {
- "name": "ბელორუსული რუბლი (2000–2016)"
- },
"BMD": {
"name": "ბერმუდული დოლარი"
},
@@ -305,7 +302,7 @@
"name": "პარაგვაული გუარანი"
},
"PEN": {
- "name": "პერუს ახალი სოლი"
+ "name": "პერუს სოლი"
},
"PLN": {
"name": "პოლონური ზლოტი"
diff --git a/vendor/commerceguys/intl/resources/currency/kab.json b/vendor/commerceguys/intl/resources/currency/kab.json
index e722120cf..2a81451f0 100644
--- a/vendor/commerceguys/intl/resources/currency/kab.json
+++ b/vendor/commerceguys/intl/resources/currency/kab.json
@@ -186,9 +186,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -243,7 +240,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -399,7 +396,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/kam.json b/vendor/commerceguys/intl/resources/currency/kam.json
index 4bae167d8..0143397c9 100644
--- a/vendor/commerceguys/intl/resources/currency/kam.json
+++ b/vendor/commerceguys/intl/resources/currency/kam.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/kde.json b/vendor/commerceguys/intl/resources/currency/kde.json
index 582622411..5930d1edb 100644
--- a/vendor/commerceguys/intl/resources/currency/kde.json
+++ b/vendor/commerceguys/intl/resources/currency/kde.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/kea.json b/vendor/commerceguys/intl/resources/currency/kea.json
index 9bd182bd9..89ab5c1af 100644
--- a/vendor/commerceguys/intl/resources/currency/kea.json
+++ b/vendor/commerceguys/intl/resources/currency/kea.json
@@ -36,9 +36,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi"
@@ -371,7 +368,7 @@
"symbol": "MX$"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"BWP": {
"name": "Pula di Botsuana"
diff --git a/vendor/commerceguys/intl/resources/currency/khq.json b/vendor/commerceguys/intl/resources/currency/khq.json
index fddc77db1..bc323e79e 100644
--- a/vendor/commerceguys/intl/resources/currency/khq.json
+++ b/vendor/commerceguys/intl/resources/currency/khq.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -117,7 +114,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -362,7 +359,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ki.json b/vendor/commerceguys/intl/resources/currency/ki.json
index 0cb6f6094..2c96b1d81 100644
--- a/vendor/commerceguys/intl/resources/currency/ki.json
+++ b/vendor/commerceguys/intl/resources/currency/ki.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -105,7 +102,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -369,7 +366,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/kk.json b/vendor/commerceguys/intl/resources/currency/kk.json
index fafe024f9..62f389c38 100644
--- a/vendor/commerceguys/intl/resources/currency/kk.json
+++ b/vendor/commerceguys/intl/resources/currency/kk.json
@@ -49,9 +49,6 @@
"BYN": {
"name": "Беларусь рублі"
},
- "BYR": {
- "name": "Беларусь рублі (2000–2016)"
- },
"BZD": {
"name": "Белиз доллары"
},
@@ -352,7 +349,7 @@
"name": "Пәкістан рупиясы"
},
"PEN": {
- "name": "Перу жаңа солі"
+ "name": "Перу солі"
},
"PLN": {
"name": "Польша злотасы"
diff --git a/vendor/commerceguys/intl/resources/currency/kln.json b/vendor/commerceguys/intl/resources/currency/kln.json
index 23edfe9a6..63d52d601 100644
--- a/vendor/commerceguys/intl/resources/currency/kln.json
+++ b/vendor/commerceguys/intl/resources/currency/kln.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -272,7 +269,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/km.json b/vendor/commerceguys/intl/resources/currency/km.json
index d07787964..3df85d04c 100644
--- a/vendor/commerceguys/intl/resources/currency/km.json
+++ b/vendor/commerceguys/intl/resources/currency/km.json
@@ -300,9 +300,6 @@
"BYN": {
"name": "រ៉ូបល​បេឡារុស"
},
- "BYR": {
- "name": "រ៉ូបល​បេឡារុស (2000–2016)"
- },
"RUB": {
"name": "រ៉ូបល​រុស្ស៊ី"
},
diff --git a/vendor/commerceguys/intl/resources/currency/kn.json b/vendor/commerceguys/intl/resources/currency/kn.json
index 109a09d11..8a1dff544 100644
--- a/vendor/commerceguys/intl/resources/currency/kn.json
+++ b/vendor/commerceguys/intl/resources/currency/kn.json
@@ -10,7 +10,7 @@
"name": "ಅಝರ್‌ಬೈಜಾನಿ ಮನಾತ್"
},
"AFN": {
- "name": "ಅಫ್‌ಘನ್ ಅಫಗಾನಿ"
+ "name": "ಅಫ್‌ಘನ್ ಅಫಘಾನಿ"
},
"USD": {
"name": "ಅಮೆರಿಕದ ಡಾಲರ್‌",
@@ -42,7 +42,7 @@
"name": "ಇಥಿಯೋಪಿಯನ್ ಬಿರ್"
},
"IQD": {
- "name": "ಇರಾಖಿಯನ್ ದಿನಾರ್"
+ "name": "ಇರಾಕಿಯನ್ ದಿನಾರ್‌"
},
"IRR": {
"name": "ಇರಾನಿಯನ್ ರಿಯಲ್"
@@ -90,6 +90,9 @@
"KGS": {
"name": "ಕಿರ್ಗಿಸ್ತಾನಿ ಸೋಮ್"
},
+ "KES": {
+ "name": "ಕೀನ್ಯಾದ ಶಿಲ್ಲಿಂಗ್‌"
+ },
"KWD": {
"name": "ಕುವೈತೀ ದಿನಾರ್"
},
@@ -97,9 +100,6 @@
"name": "ಕೆನಡಾದ ಡಾಲರ್",
"symbol": "CA$"
},
- "KES": {
- "name": "ಕೆನ್ಯನ್ ಶಿಲ್ಲಿಂಗ್"
- },
"KYD": {
"name": "ಕೆಮ್ಯಾನ್‌ ಐಲ್ಯಾಂಡ್‌ನ ಡಾಲರ್‌"
},
@@ -183,6 +183,9 @@
"TOP": {
"name": "ಟೊಂಗಾ ಪಾಂಗ"
},
+ "TND": {
+ "name": "ಟ್ಯುನೀಷಿಯನ್‌ ದಿನಾರ್"
+ },
"TTD": {
"name": "ಟ್ರಿನಿಡಾಡ್ ಮತ್ತು ಟೊಬಾಗೊ ಡಾಲರ್"
},
@@ -198,9 +201,6 @@
"TZS": {
"name": "ತಾನ್‌ಜೇನಿಯನ್ ಶಿಲ್ಲಿಂಗ್"
},
- "TND": {
- "name": "ತುನೀಸಿಯನ್ ದಿನಾರ್"
- },
"THB": {
"name": "ಥಾಯ್ ಬಹ್ತ್",
"symbol": "฿"
@@ -262,7 +262,7 @@
"name": "ಪೆರುಗ್ವೇಯ ಗ್ವಾರನೀ"
},
"PEN": {
- "name": "ಪೆರುವಿಯನ್ ನುಯೆವೊ ಸೊಲ್"
+ "name": "ಪೆರುವಿಯನ್ ಸೊಲ್"
},
"PLN": {
"name": "ಪೊಲಿಶ್ ಝ್ಲೋಟಿ"
@@ -300,9 +300,6 @@
"BYN": {
"name": "ಬೆಲಾರುಸಿಯನ್ ರೂಬಲ್"
},
- "BYR": {
- "name": "ಬೆಲಾರುಸಿಯನ್ ರೂಬಲ್ (2000–2016)"
- },
"BZD": {
"name": "ಬೆಲೀಜ್ ಡಾಲರ್"
},
@@ -339,6 +336,10 @@
"MOP": {
"name": "ಮಕ್ಯೂದ ಪಟಕಾ"
},
+ "XAF": {
+ "name": "ಮಧ್ಯ ಆಫ್ರಿಕನ್ CFA ಫ್ರಾಂಕ್",
+ "symbol": "FCFA"
+ },
"MGA": {
"name": "ಮಲಗಾಸಿ ಅರಿಯಾರಿ"
},
@@ -484,10 +485,6 @@
"HNL": {
"name": "ಹೊಂಡುರಾನ್‌ ಲೆಂಪಿರಾ"
},
- "XAF": {
- "name": "CFA ಫ್ರಾಂಕ್ BEAC",
- "symbol": "FCFA"
- },
"SVC": {
"name": "Salvadoran Colón"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ko.json b/vendor/commerceguys/intl/resources/currency/ko.json
index 30bf96ab3..644441ac9 100644
--- a/vendor/commerceguys/intl/resources/currency/ko.json
+++ b/vendor/commerceguys/intl/resources/currency/ko.json
@@ -155,9 +155,6 @@
"BYN": {
"name": "벨라루스 루블"
},
- "BYR": {
- "name": "벨라루스 루블 (2000–2016)"
- },
"BZD": {
"name": "벨리즈 달러"
},
@@ -461,7 +458,7 @@
"name": "파푸아뉴기니 키나"
},
"PEN": {
- "name": "페루 누에보 솔"
+ "name": "페루 솔"
},
"FKP": {
"name": "포클랜드제도 파운드"
diff --git a/vendor/commerceguys/intl/resources/currency/ks.json b/vendor/commerceguys/intl/resources/currency/ks.json
index 0b7d22eb3..a4006757f 100644
--- a/vendor/commerceguys/intl/resources/currency/ks.json
+++ b/vendor/commerceguys/intl/resources/currency/ks.json
@@ -117,9 +117,6 @@
"BYN": {
"name": "بِلیروشِیَن رِبٕل"
},
- "BYR": {
- "name": "بِلیروشِیَن رِبٕل (۲۰۰۰–۲۰۱۶)"
- },
"BDT": {
"name": "بَنگلادیٖشی ٹَکا"
},
@@ -151,7 +148,7 @@
"name": "پٮ۪رٮ۪گیوٗوَیَن گُعارانی"
},
"PEN": {
- "name": "پٔریوٗوِیَن نیوٗاوز سولٕز"
+ "name": "پٔریوٗوِیَن سولٕز"
},
"PHP": {
"name": "پھِلِپایِٔن پٮ۪سو"
diff --git a/vendor/commerceguys/intl/resources/currency/ksb.json b/vendor/commerceguys/intl/resources/currency/ksb.json
index 2531c7dc4..42f723d58 100644
--- a/vendor/commerceguys/intl/resources/currency/ksb.json
+++ b/vendor/commerceguys/intl/resources/currency/ksb.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "dalasi ya Gambia"
@@ -372,7 +369,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ksf.json b/vendor/commerceguys/intl/resources/currency/ksf.json
index 3cef423da..0831cd379 100644
--- a/vendor/commerceguys/intl/resources/currency/ksf.json
+++ b/vendor/commerceguys/intl/resources/currency/ksf.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -402,7 +399,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ksh.json b/vendor/commerceguys/intl/resources/currency/ksh.json
index 0b77eb2d2..ce20e351b 100644
--- a/vendor/commerceguys/intl/resources/currency/ksh.json
+++ b/vendor/commerceguys/intl/resources/currency/ksh.json
@@ -337,7 +337,7 @@
"name": "parajuaanesche Juarani"
},
"PEN": {
- "name": "perruaanesche Nuevo Sol"
+ "name": "perruaanesche Sol"
},
"IRR": {
"name": "persesche Rial"
@@ -487,9 +487,6 @@
"BYN": {
"name": "wiißrußesche Rubel"
},
- "BYR": {
- "name": "wiißrußesche Rubel (2000–2016)"
- },
"SHP": {
"name": "Zint-Hellena-Pongk"
}
diff --git a/vendor/commerceguys/intl/resources/currency/ky.json b/vendor/commerceguys/intl/resources/currency/ky.json
index 361705843..88416789e 100644
--- a/vendor/commerceguys/intl/resources/currency/ky.json
+++ b/vendor/commerceguys/intl/resources/currency/ky.json
@@ -44,9 +44,6 @@
"BYN": {
"name": "беларусь рублу"
},
- "BYR": {
- "name": "беларусь рублу (2000–2016)"
- },
"BZD": {
"name": "белиз доллары"
},
@@ -332,7 +329,7 @@
"name": "парагвай гуараниси"
},
"PEN": {
- "name": "перу нуэво солу"
+ "name": "перу солу"
},
"PLN": {
"name": "польша злотыйы"
diff --git a/vendor/commerceguys/intl/resources/currency/lag.json b/vendor/commerceguys/intl/resources/currency/lag.json
index 6f461e106..357a51a70 100644
--- a/vendor/commerceguys/intl/resources/currency/lag.json
+++ b/vendor/commerceguys/intl/resources/currency/lag.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Daláasi ya Gámbia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/lb.json b/vendor/commerceguys/intl/resources/currency/lb.json
index 1f6e8b59f..dfefd5390 100644
--- a/vendor/commerceguys/intl/resources/currency/lb.json
+++ b/vendor/commerceguys/intl/resources/currency/lb.json
@@ -343,7 +343,7 @@
"name": "Paraguayeschen Guaraní"
},
"PEN": {
- "name": "Peruaneschen Neie Sol"
+ "name": "Peruaneschen Sol"
},
"PHP": {
"name": "Philippinnesche Peso"
@@ -490,8 +490,5 @@
},
"BYN": {
"name": "Wäissrussesche Rubel"
- },
- "BYR": {
- "name": "Wäissrussesche Rubel (2000–2016)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/lg.json b/vendor/commerceguys/intl/resources/currency/lg.json
index d307432d3..5613520ae 100644
--- a/vendor/commerceguys/intl/resources/currency/lg.json
+++ b/vendor/commerceguys/intl/resources/currency/lg.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ey’eGambya"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ln.json b/vendor/commerceguys/intl/resources/currency/ln.json
index 409740f02..0f8fbc708 100644
--- a/vendor/commerceguys/intl/resources/currency/ln.json
+++ b/vendor/commerceguys/intl/resources/currency/ln.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambi"
@@ -361,7 +358,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/lo.json b/vendor/commerceguys/intl/resources/currency/lo.json
index d7a8a445e..9a163f516 100644
--- a/vendor/commerceguys/intl/resources/currency/lo.json
+++ b/vendor/commerceguys/intl/resources/currency/lo.json
@@ -280,9 +280,6 @@
"BYN": {
"name": "ເບ​ລາ​ຣຸ​ສ​ຊຽນ ຣູ​ເບິນ"
},
- "BYR": {
- "name": "ເບ​ລາ​ຣຸ​ສ​ຊຽນ ຣູ​ເບິນ (2000–2016)"
- },
"BOB": {
"name": "ໂບ​ລິ​ວຽນ ໂບ​ລິ​ເວຍ​ໂນ"
},
@@ -297,7 +294,7 @@
"name": "ປາ​ປົວ ນິວ ກິ​ນຽນ ກິ​ນາ"
},
"PEN": {
- "name": "ເປ​ຣູ​ວຽນ ນູ​ໂວ ໂຊ​ລ໌"
+ "name": "ເປ​ຣູ​ວຽນ ໂຊ​ລ໌"
},
"PLN": {
"name": "ໂປ​ລິ​ຊ ຊະ​ລໍ​ຕີ"
diff --git a/vendor/commerceguys/intl/resources/currency/lt.json b/vendor/commerceguys/intl/resources/currency/lt.json
index 6ab34834a..1da106896 100644
--- a/vendor/commerceguys/intl/resources/currency/lt.json
+++ b/vendor/commerceguys/intl/resources/currency/lt.json
@@ -35,9 +35,6 @@
"BYN": {
"name": "Baltarusijos rublis"
},
- "BYR": {
- "name": "Baltarusijos rublis (2000–2016)"
- },
"BDT": {
"name": "Bangladešo taka"
},
@@ -334,7 +331,7 @@
"name": "Paragvajaus guaranis"
},
"PEN": {
- "name": "Peru naujasis solis"
+ "name": "Peru solis"
},
"ZAR": {
"name": "Pietų Afrikos Respublikos randas"
diff --git a/vendor/commerceguys/intl/resources/currency/lu.json b/vendor/commerceguys/intl/resources/currency/lu.json
index a61f71c8e..093ece7db 100644
--- a/vendor/commerceguys/intl/resources/currency/lu.json
+++ b/vendor/commerceguys/intl/resources/currency/lu.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -373,7 +370,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/luo.json b/vendor/commerceguys/intl/resources/currency/luo.json
index 5b33e91e0..ae5b8aa3e 100644
--- a/vendor/commerceguys/intl/resources/currency/luo.json
+++ b/vendor/commerceguys/intl/resources/currency/luo.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/luy.json b/vendor/commerceguys/intl/resources/currency/luy.json
index fc6e4de4f..718245c7b 100644
--- a/vendor/commerceguys/intl/resources/currency/luy.json
+++ b/vendor/commerceguys/intl/resources/currency/luy.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/lv.json b/vendor/commerceguys/intl/resources/currency/lv.json
index 2d9918141..5271c3965 100644
--- a/vendor/commerceguys/intl/resources/currency/lv.json
+++ b/vendor/commerceguys/intl/resources/currency/lv.json
@@ -47,9 +47,6 @@
"BYN": {
"name": "Baltkrievijas rubelis"
},
- "BYR": {
- "name": "Baltkrievijas rubelis (2000–2016)"
- },
"BDT": {
"name": "Bangladešas taka"
},
@@ -190,7 +187,7 @@
"name": "Irānas riāls"
},
"ISK": {
- "name": "Īslandes krona"
+ "name": "Islandes krona"
},
"ILS": {
"name": "Izraēlas šekelis",
@@ -362,7 +359,7 @@
"name": "Paragvajas guarani"
},
"PEN": {
- "name": "Peru jaunais sols"
+ "name": "Peru sols"
},
"PLN": {
"name": "Polijas zlots"
diff --git a/vendor/commerceguys/intl/resources/currency/mas.json b/vendor/commerceguys/intl/resources/currency/mas.json
index 668979ed7..c03e88ddb 100644
--- a/vendor/commerceguys/intl/resources/currency/mas.json
+++ b/vendor/commerceguys/intl/resources/currency/mas.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -403,7 +400,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/mer.json b/vendor/commerceguys/intl/resources/currency/mer.json
index db111d0ed..020439fb6 100644
--- a/vendor/commerceguys/intl/resources/currency/mer.json
+++ b/vendor/commerceguys/intl/resources/currency/mer.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/mfe.json b/vendor/commerceguys/intl/resources/currency/mfe.json
index 6350eeb27..60adf6954 100644
--- a/vendor/commerceguys/intl/resources/currency/mfe.json
+++ b/vendor/commerceguys/intl/resources/currency/mfe.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "dalasi gambien"
@@ -363,7 +360,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/mg.json b/vendor/commerceguys/intl/resources/currency/mg.json
index 78cd0eb9b..84a9b6db1 100644
--- a/vendor/commerceguys/intl/resources/currency/mg.json
+++ b/vendor/commerceguys/intl/resources/currency/mg.json
@@ -33,9 +33,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -93,7 +90,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi gambianina"
@@ -361,7 +358,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"BWP": {
"name": "Pola botsoaney"
diff --git a/vendor/commerceguys/intl/resources/currency/mk.json b/vendor/commerceguys/intl/resources/currency/mk.json
index 8fd6569d1..04307a466 100644
--- a/vendor/commerceguys/intl/resources/currency/mk.json
+++ b/vendor/commerceguys/intl/resources/currency/mk.json
@@ -37,7 +37,7 @@
"name": "Бахамски долар"
},
"BHD": {
- "name": "Бахреински Динар"
+ "name": "Бахреински динар"
},
"BZD": {
"name": "Белизиски Долар"
@@ -45,9 +45,6 @@
"BYN": {
"name": "Белоруска рубља"
},
- "BYR": {
- "name": "Белоруска рубља (2000–2016)"
- },
"BMD": {
"name": "Бермудски долар"
},
@@ -58,7 +55,7 @@
"name": "Босанско-Херцеговска конвертибилна марка"
},
"BWP": {
- "name": "Боцванска Пула"
+ "name": "Боцванска пула"
},
"BRL": {
"name": "Бразилски реал",
@@ -112,8 +109,11 @@
"DKK": {
"name": "Данска круна"
},
+ "AED": {
+ "name": "Дирхам на Обединети Арапски Емирати"
+ },
"STD": {
- "name": "Добра на Сао Томе и Принсипе"
+ "name": "Добра на Саун Томе и Принсип"
},
"KYD": {
"name": "Долар на кајмански острови"
@@ -135,7 +135,7 @@
"name": "Еритрејска накфа"
},
"AMD": {
- "name": "Ермениски Драм"
+ "name": "Ерменски драм"
},
"ETB": {
"name": "Етиописки бир"
@@ -313,9 +313,6 @@
"NOK": {
"name": "Норвешка круна"
},
- "AED": {
- "name": "Обединети Арапски Емирати Дирхам"
- },
"OMR": {
"name": "Омански риал"
},
@@ -332,7 +329,7 @@
"name": "Парагвајска гуарана"
},
"PEN": {
- "name": "Перуански нов сол"
+ "name": "Перуански сол"
},
"PLN": {
"name": "Полска злота"
@@ -469,7 +466,7 @@
"name": "Чилеански пезос"
},
"DJF": {
- "name": "Џибути франк"
+ "name": "Џибутски франк"
},
"CHF": {
"name": "Швајцарски Франк"
diff --git a/vendor/commerceguys/intl/resources/currency/ml.json b/vendor/commerceguys/intl/resources/currency/ml.json
index 0cb7b89b2..e50845e1d 100644
--- a/vendor/commerceguys/intl/resources/currency/ml.json
+++ b/vendor/commerceguys/intl/resources/currency/ml.json
@@ -258,7 +258,7 @@
"name": "പാപ്പുവ ന്യൂ ഗിനിയൻ കിന"
},
"PEN": {
- "name": "പെറുവിയൻ ന്യൂവോ സോൾ"
+ "name": "പെറുവിയൻ സോൾ"
},
"PLN": {
"name": "പോളിഷ് സ്ലോട്ടി"
@@ -288,7 +288,7 @@
"name": "ബറുണ്ടിയൻ ഫ്രാങ്ക്"
},
"BBD": {
- "name": "ബാർബഡോസ് ഡോളർ"
+ "name": "ബാർബേഡിയൻ ഡോളർ"
},
"BMD": {
"name": "ബെർമുഡൻ ഡോളർ"
@@ -296,9 +296,6 @@
"BYN": {
"name": "ബെലാറുഷ്യൻ റൂബിൾ"
},
- "BYR": {
- "name": "ബെലാറുഷ്യൻ റൂബിൾ (2000–2016)"
- },
"BZD": {
"name": "ബെലീസ് ഡോളർ"
},
diff --git a/vendor/commerceguys/intl/resources/currency/mn.json b/vendor/commerceguys/intl/resources/currency/mn.json
index fce83e09a..14aa7b3a6 100644
--- a/vendor/commerceguys/intl/resources/currency/mn.json
+++ b/vendor/commerceguys/intl/resources/currency/mn.json
@@ -56,9 +56,6 @@
"BYN": {
"name": "беларусь рубль"
},
- "BYR": {
- "name": "беларусь рубль (2000–2016)"
- },
"BZD": {
"name": "белиз доллар"
},
@@ -318,7 +315,7 @@
"name": "парагвайн гуарани"
},
"PEN": {
- "name": "перугийн невосоль"
+ "name": "перугийн соль"
},
"PLN": {
"name": "польшийн злот"
diff --git a/vendor/commerceguys/intl/resources/currency/mr.json b/vendor/commerceguys/intl/resources/currency/mr.json
index d8e46039d..884a032a5 100644
--- a/vendor/commerceguys/intl/resources/currency/mr.json
+++ b/vendor/commerceguys/intl/resources/currency/mr.json
@@ -252,7 +252,7 @@
"symbol": "EC$"
},
"PEN": {
- "name": "पेरुवियन नुइव्हो सोल"
+ "name": "पेरुवियन सोल"
},
"PLN": {
"name": "पोलिश झ्लॉटी"
@@ -290,9 +290,6 @@
"BYN": {
"name": "बेलारुशियन रुबल"
},
- "BYR": {
- "name": "बेलारुशियन रुबल (2000–2016)"
- },
"BZD": {
"name": "बेलीझ डॉलर"
},
diff --git a/vendor/commerceguys/intl/resources/currency/ms.json b/vendor/commerceguys/intl/resources/currency/ms.json
index 7ecf19afe..f4e536ac6 100644
--- a/vendor/commerceguys/intl/resources/currency/ms.json
+++ b/vendor/commerceguys/intl/resources/currency/ms.json
@@ -163,7 +163,7 @@
"name": "Forint Hungary"
},
"BIF": {
- "name": "Franc Burundia"
+ "name": "Franc Burundi"
},
"XOF": {
"name": "Franc CFA BCEAO",
@@ -202,7 +202,7 @@
"name": "Guarani Paraguay"
},
"ANG": {
- "name": "Guilder Antillean Netherland"
+ "name": "Guilder Antillen Belanda"
},
"UAH": {
"name": "Hryvnia Ukraine"
@@ -291,12 +291,12 @@
"BTN": {
"name": "Ngultrum Bhutan"
},
- "PEN": {
- "name": "Nuevo Sol Peru"
- },
"MRO": {
"name": "Ouguiya Mauritania"
},
+ "TOP": {
+ "name": "Pa’anga Tonga"
+ },
"MOP": {
"name": "Pataca Macau"
},
@@ -352,6 +352,9 @@
"MXN": {
"name": "Peso Mexico"
},
+ "UYU": {
+ "name": "Peso Uruguay"
+ },
"BWP": {
"name": "Pula Botswana"
},
@@ -388,10 +391,7 @@
"name": "Riyal Saudi"
},
"BYN": {
- "name": "Rubel Belarus"
- },
- "BYR": {
- "name": "Rubel Belarus (2000–2016)"
+ "name": "Rubel Belarus baharu"
},
"RUB": {
"name": "Rubel Rusia"
@@ -404,7 +404,7 @@
"symbol": "₹"
},
"MUR": {
- "name": "Rupee Mauritia"
+ "name": "Rupee Mauritius"
},
"NPR": {
"name": "Rupee Nepal"
@@ -424,9 +424,8 @@
"SVC": {
"name": "Salvadoran Colón"
},
- "ILS": {
- "name": "Sheqel Baru Israel",
- "symbol": "₪"
+ "PEN": {
+ "name": "Sol Peru"
},
"KGS": {
"name": "Som Kyrgystani"
@@ -437,6 +436,10 @@
"TJS": {
"name": "Somoni Tajikistan"
},
+ "ILS": {
+ "name": "Syekel Baharu Israel",
+ "symbol": "₪"
+ },
"KES": {
"name": "Syiling Kenya"
},
@@ -458,15 +461,9 @@
"KZT": {
"name": "Tenge Kazakhstan"
},
- "TOP": {
- "name": "Tongan Paʻanga"
- },
"MNT": {
"name": "Tugrik Mongolia"
},
- "UYU": {
- "name": "Uruguayan Peso"
- },
"VUV": {
"name": "Vatu Vanuatu"
},
diff --git a/vendor/commerceguys/intl/resources/currency/mua.json b/vendor/commerceguys/intl/resources/currency/mua.json
index b04df3f12..ef8c9474a 100644
--- a/vendor/commerceguys/intl/resources/currency/mua.json
+++ b/vendor/commerceguys/intl/resources/currency/mua.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -242,7 +239,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/my.json b/vendor/commerceguys/intl/resources/currency/my.json
index a28c0e89a..e2463c2d3 100644
--- a/vendor/commerceguys/intl/resources/currency/my.json
+++ b/vendor/commerceguys/intl/resources/currency/my.json
@@ -10,10 +10,10 @@
"name": "ကာဇက်စတန် ထိန်ဂျီ"
},
"QAR": {
- "name": "ကာတာရီအော်လ်"
+ "name": "ကာတာရီ ရီရယ်"
},
"KWD": {
- "name": "ကူဝိတ်ဒီနာ"
+ "name": "ကူဝိတ် ဒီနာ"
},
"KYD": {
"name": "ကေမန် ကျွန်းစု ဒေါ်လာ"
@@ -28,10 +28,10 @@
"name": "ကို့စတာရီကာ ကိုလွန်"
},
"KES": {
- "name": "ကင်ညာသျှီလင်"
+ "name": "ကင်ညာ သျှီလင်"
},
"XAF": {
- "name": "ကင်မရွန်းဖရန့်",
+ "name": "ကင်မရွန်း ဖရန့်",
"symbol": "FCFA"
},
"CVE": {
@@ -47,19 +47,19 @@
"name": "ကွန်ဂို ဖရန့်"
},
"HRK": {
- "name": "ခရိုအေးရှားခူးနာ"
+ "name": "ခရိုအေးရှား ခူးနာ"
},
"CLP": {
"name": "ချီလီ ပီဆို"
},
"CZK": {
- "name": "ချက်ခိုရိုနာ"
+ "name": "ချက် ခိုရိုနာ"
},
"GHS": {
"name": "ဂါနာ ဆဲဒီ"
},
"GNF": {
- "name": "ဂီးနီ ဖရန့်"
+ "name": "ဂီနီရာ ဖရန့်"
},
"GYD": {
"name": "ဂိုင်ယာနာ ဒေါ်လာ"
@@ -68,7 +68,7 @@
"name": "ဂမ်ဘီယာ ဒါလာစီ"
},
"JPY": {
- "name": "ဂျပန်ယန်း",
+ "name": "ဂျပန် ယန်း",
"symbol": "JP¥"
},
"JMD": {
@@ -81,10 +81,10 @@
"name": "ဂျီဘူတီ ဖရန့်"
},
"GEL": {
- "name": "ဂျော်ဂျီယာလားရီ"
+ "name": "ဂျော်ဂျီယာ လားရီ"
},
"JOD": {
- "name": "ဂျော်ဒန်ဒီနား"
+ "name": "ဂျော်ဒန် ဒီနာ"
},
"GTQ": {
"name": "ဂွါတီမာလာ ခက်ဇော်လ်"
@@ -99,7 +99,7 @@
"name": "ဆမိုအား ထားလာ"
},
"RSD": {
- "name": "ဆားဘီးယားဒယ်နား"
+ "name": "ဆားဘီးယား ဒယ်နား"
},
"SLL": {
"name": "ဆီယာရာလီယွန်း လီအိုနီ"
@@ -117,13 +117,13 @@
"name": "ဆေးရှဲ ရူပီး"
},
"SAR": {
- "name": "ဆော်ဒီအာရေးဗီးယားရီယော်လ်"
+ "name": "ဆော်ဒီအာရေးဗီးယား ရီယော်လ်"
},
"SBD": {
"name": "ဆော်လမွန်ကျွန်းစု ဒေါ်လာ"
},
"SOS": {
- "name": "ဆိုမာလီသျှီလင်"
+ "name": "ဆိုမာလီ သျှီလင်"
},
"STD": {
"name": "ဆောင်တူမေးနှင့် ပရင်စီပီ ဒိုဘရာ"
@@ -138,7 +138,7 @@
"name": "ဆွစ် ဖရန့်"
},
"ZMW": {
- "name": "ဇင်ဘာဘွေခွါးချာ"
+ "name": "ဇင်ဘာဘွေ ခွါးချာ"
},
"CNY": {
"name": "တရုတ် ယွမ်",
@@ -151,7 +151,7 @@
"name": "တာ့ခ်မင်နစ္စတန် မာနတ်"
},
"TND": {
- "name": "တူနီးရှား ဒီနာ"
+ "name": "တူနီးရှား ဒိုင်နာ"
},
"TRY": {
"name": "တူရကီ လိုင်ရာ"
@@ -161,16 +161,16 @@
"symbol": "₩"
},
"SSP": {
- "name": "တောင်ဆူဒန်ပေါင်"
+ "name": "တောင်ဆူဒန် ပေါင်"
},
"ZAR": {
- "name": "တောင်အဖရိက ရန်း"
+ "name": "တောင်အာဖရိက ရန်း"
},
"TZS": {
- "name": "တန်ဇန်းနီးယားသျှီလင်"
+ "name": "တန်ဇန်းနီးယား သျှီလင်"
},
"TOP": {
- "name": "တွန်ဂါဗန်ဂါ"
+ "name": "တွန်ဂါ ဗန်ဂါ"
},
"TTD": {
"name": "ထရီနီဒတ်နှင့် တိုဘက်ဂို ဒေါ်လာ",
@@ -181,7 +181,7 @@
"symbol": "NT$"
},
"THB": {
- "name": "ထိုင်းဘတ်",
+ "name": "ထိုင်း ဘတ်",
"symbol": "฿"
},
"DOP": {
@@ -207,7 +207,7 @@
"name": "နော်ဝေ ခရိုဏာ"
},
"NGN": {
- "name": "နိုင်ဂျီးရီးယားနိုင်းရာ"
+ "name": "နိုင်ဂျီးရီးယား နိုင်းရာ"
},
"CUC": {
"name": "နိုင်ငံခြားငွေလဲလှယ်နိုင်သော ကျူးဘားပီဆို"
@@ -227,17 +227,13 @@
"name": "ပါပူအာ နယူးဂီနီ ခီးနာ"
},
"PYG": {
- "name": "ပါရာဂွေးဂွါးအ်နီး"
+ "name": "ပါရာဂွေး ဂွါးအ်နီး"
},
"PEN": {
- "name": "ပီရူး နူအီဗိုဆိုးလ်"
+ "name": "ပီရူး ဆိုးလ်"
},
"PLN": {
- "name": "ပိုလန်ဇလော့တီ"
- },
- "XOF": {
- "name": "ဖရန့်",
- "symbol": "CFA"
+ "name": "ပိုလန် ဇလော့တီ"
},
"PHP": {
"name": "ဖိလစ်ပိုင် ပီဆို"
@@ -282,16 +278,13 @@
"name": "ဘာမြူဒါ ဒေါ်လာ"
},
"BHD": {
- "name": "ဘာရိန်းဒီနား"
+ "name": "ဘာရိန်း ဒီနား"
},
"BYN": {
- "name": "ဘီလာရုဇ် ရူဘယ်"
- },
- "BYR": {
- "name": "ဘီလာရုဇ် ရူဘယ် (၂၀၀၀–၂၀၁၆)"
+ "name": "ဘီလာရုစ် ရူဘယ်"
},
"BTN": {
- "name": "ဘူတန်အံဂါလ်ထရန်"
+ "name": "ဘူတန် အံဂါလ်ထရန်"
},
"BIF": {
"name": "ဘူရွန်ဒီ ဖရန့်"
@@ -300,7 +293,7 @@
"name": "ဘူလ်ဂေးရီးယား လက်ဖ်"
},
"BAM": {
- "name": "ဘော့စနီးယားနှင့် ဟာဇီဂိုဘီးနားမတ်က်"
+ "name": "ဘော့စနီးယားနှင့် ဟာဇီဂိုဘီးနား ငွေလဲနိုင်သော မတ်က်"
},
"BWP": {
"name": "ဘော့ဆွာနာ ပုလ"
@@ -312,7 +305,7 @@
"name": "ဘင်္ဂလားဒေ့ရှ် တာကာ"
},
"MOP": {
- "name": "မကာအိုပါတားကား"
+ "name": "မကာအို ပါတားကား"
},
"MYR": {
"name": "မလေးရှား ရင်းဂစ်"
@@ -321,7 +314,7 @@
"name": "မာလာဂါစီ အရီရရီ"
},
"MWK": {
- "name": "မာလာဝီခွါးချာ"
+ "name": "မာလာဝီ ခွါးချာ"
},
"MUR": {
"name": "မောရစ်ရှ ရူပီး"
@@ -330,7 +323,7 @@
"name": "မော်ရီတေးနီးယား အူဂီးယာ"
},
"MVR": {
- "name": "မော်လ်ဒိုက်ရူးဖီရာ"
+ "name": "မော်လ်ဒိုက် ရူးဖီရာ"
},
"MZN": {
"name": "မိုဇမ်ဘစ် မက်တီခယ်လ်"
@@ -343,29 +336,29 @@
"symbol": "MX$"
},
"MKD": {
- "name": "မက်စီဒိုးနီးယား ဒီနာ"
+ "name": "မက်ဆီဒိုးနီးယား ဒီနာ"
},
"MDL": {
- "name": "မောလ်ဒိုဗာလယ်အို"
+ "name": "မောလ်ဒိုဗာ လယ်အို"
},
"KPW": {
"name": "မြောက်ကိုရီးယား ဝမ်"
},
"MMK": {
- "name": "မြန်မာကျပ်",
+ "name": "မြန်မာ ကျပ်",
"symbol": "K"
},
"MNT": {
- "name": "မွန်ဂိုးလီးယားထူးဂရခ်"
+ "name": "မွန်ဂိုးလီးယား ထူးဂရခ်"
},
"YER": {
- "name": "ယီမင်ရီအော်လ်"
+ "name": "ယီမင်နီ ရီရယ်"
},
"UAH": {
"name": "ယူကရိန်း ဟီရီဗင်းညား"
},
"UGX": {
- "name": "ယူဂန်းဒါး သျှီလင်"
+ "name": "ယူဂန္ဒာ သျှီလင်"
},
"EUR": {
"name": "ယူရို",
@@ -378,13 +371,10 @@
"name": "ရုရှ ရူဘယ်"
},
"RON": {
- "name": "ရိုမေးနီးယားလယ်အို"
+ "name": "ရိုမေးနီးယား လယ်အို"
},
"LAK": {
- "name": "လာအိုခိပ်"
- },
- "LYD": {
- "name": "လီဗျာ ဒီနာ"
+ "name": "လာအို ကစ်"
},
"LBP": {
"name": "လက်ဘနွန် ပေါင်"
@@ -392,6 +382,9 @@
"LRD": {
"name": "လိုက်ဘေးရီးယား ဒေါ်လာ"
},
+ "LYD": {
+ "name": "လစ်ဗျား ဒိုင်နာ"
+ },
"LKR": {
"name": "သီရိလင်္ကာ ရူပီး"
},
@@ -404,13 +397,17 @@
"symbol": "HK$"
},
"HUF": {
- "name": "ဟန်ဂေရီယံဖော်ရင့်တ်"
+ "name": "ဟန်ဂေရီယံ ဖော်ရင့်တ်"
},
"HNL": {
"name": "ဟွန်ဒူးရပ်စ် လမ်းပီရာ"
},
"AZN": {
- "name": "အဇာဘိုင်ဂျန်မာနတ်"
+ "name": "အဇာဘိုင်ဂျန် မာနတ်"
+ },
+ "XOF": {
+ "name": "အနောက် အာဖရိက CFA ဖရန့်",
+ "symbol": "CFA"
},
"USD": {
"name": "အမေရိကန် ဒေါ်လာ",
@@ -421,20 +418,20 @@
"symbol": "Afl"
},
"XCD": {
- "name": "အရှေ့ကာရစ်ဘီယံဒေါ်လာ",
+ "name": "အရှေ့ကာရစ်ဘီယံ ဒေါ်လာ",
"symbol": "EC$"
},
"ARS": {
"name": "အာဂျင်တီးနား ပီဆို"
},
"AFN": {
- "name": "အာဖဂန်အာဖဂါနီ"
+ "name": "အာဖဂန် အာဖဂါနီ"
},
"AMD": {
- "name": "အာမေးနီးယားဒရမ်း"
+ "name": "အာမေးနီးယား ဒရမ်"
},
"AED": {
- "name": "အာရပ်ဒူဟမ်း"
+ "name": "အာရပ်စော်ဘွားများ ပြည်ထောင်စု ဒါဟမ်း"
},
"EGP": {
"name": "အီဂျစ် ပေါင်"
@@ -443,26 +440,26 @@
"name": "အီရီထရီးယား နာ့ခ်ဖာ"
},
"IQD": {
- "name": "အီရတ် ဒီနား"
+ "name": "အီရတ် ဒီနာ"
},
"IRR": {
- "name": "အီရန်ရီအော်လ်"
+ "name": "အီရန် ရီအော်လ်"
},
"ETB": {
- "name": "အီသီယိုးပီးယားဘီးယာ"
+ "name": "အီသီယိုးပီးယား ဘီးယာ"
},
"UZS": {
"name": "ဥဇဘက်ကစ္စတန် ဆော်မ်"
},
"UYU": {
- "name": "ဥရုဂွေးပီဆို"
+ "name": "ဥရုဂွေး ပီဆို"
},
"AUD": {
"name": "ဩစတြေးလျ ဒေါ်လာ",
"symbol": "A$"
},
"OMR": {
- "name": "အိုမန်ရီအော်လ်"
+ "name": "အိုမန်နီ ရီရယ်"
},
"ISK": {
"name": "အိုက်စလန် ခရိုဏာ"
@@ -474,7 +471,7 @@
"name": "အင်ဒိုနီးရှား ရူပီးယား"
},
"ILS": {
- "name": "အစ္စရေးရှဲကလ်အသစ်",
+ "name": "အစ္စရေး ရှဲကလ်အသစ်",
"symbol": "₪"
},
"INR": {
diff --git a/vendor/commerceguys/intl/resources/currency/mzn.json b/vendor/commerceguys/intl/resources/currency/mzn.json
index f9235c777..2f9ac8124 100644
--- a/vendor/commerceguys/intl/resources/currency/mzn.json
+++ b/vendor/commerceguys/intl/resources/currency/mzn.json
@@ -126,9 +126,6 @@
"BYN": {
"name": "بلاروس ِروبل"
},
- "BYR": {
- "name": "بلاروس ِروبل (۲۰۰۰–۲۰۱۶)"
- },
"BGN": {
"name": "بلغارستون ِلیوا"
},
@@ -163,7 +160,7 @@
"name": "پانامای ِبالبوا"
},
"PEN": {
- "name": "پروی ِنوئوو سول"
+ "name": "پروی ِسول"
},
"TJS": {
"name": "تاجیکستون ِسامانی"
diff --git a/vendor/commerceguys/intl/resources/currency/naq.json b/vendor/commerceguys/intl/resources/currency/naq.json
index ef672cc21..0b31409d2 100644
--- a/vendor/commerceguys/intl/resources/currency/naq.json
+++ b/vendor/commerceguys/intl/resources/currency/naq.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -131,7 +128,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -357,7 +354,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/nb.json b/vendor/commerceguys/intl/resources/currency/nb.json
index e80cf0139..a555459b6 100644
--- a/vendor/commerceguys/intl/resources/currency/nb.json
+++ b/vendor/commerceguys/intl/resources/currency/nb.json
@@ -154,12 +154,6 @@
"HKD": {
"name": "Hongkong-dollar"
},
- "BYN": {
- "name": "hviterussiske rubler"
- },
- "BYR": {
- "name": "hviterussiske rubler (2000–2016)"
- },
"INR": {
"name": "indiske rupier"
},
@@ -308,6 +302,9 @@
"name": "norske kroner",
"symbol": "kr"
},
+ "BYN": {
+ "name": "nye hviterussiske rubler"
+ },
"ILS": {
"name": "nye israelske shekler"
},
@@ -330,7 +327,7 @@
"name": "paraguayanske guarani"
},
"PEN": {
- "name": "peruanske nuevo sol"
+ "name": "peruanske sol"
},
"PLN": {
"name": "polske zloty"
@@ -360,7 +357,7 @@
"name": "sankthelenske pund"
},
"STD": {
- "name": "São Tomé og Príncipe-dobra"
+ "name": "saotomesiske dobra"
},
"SAR": {
"name": "saudiarabiske riyaler"
diff --git a/vendor/commerceguys/intl/resources/currency/nd.json b/vendor/commerceguys/intl/resources/currency/nd.json
index e084e538c..cbdeddd60 100644
--- a/vendor/commerceguys/intl/resources/currency/nd.json
+++ b/vendor/commerceguys/intl/resources/currency/nd.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi yase Gambia"
@@ -356,7 +353,7 @@
"name": "Phawundindi laseSt Helena"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"BWP": {
"name": "Phula yase Botswana"
diff --git a/vendor/commerceguys/intl/resources/currency/ne.json b/vendor/commerceguys/intl/resources/currency/ne.json
index 045a85fb8..c9c0f7566 100644
--- a/vendor/commerceguys/intl/resources/currency/ne.json
+++ b/vendor/commerceguys/intl/resources/currency/ne.json
@@ -249,7 +249,7 @@
"symbol": "EC$"
},
"PEN": {
- "name": "पेरूभियाली न्यूभो सोल"
+ "name": "पेरूभियाली सोल"
},
"PLN": {
"name": "पोलिश ज्लोटाई"
@@ -291,9 +291,6 @@
"BYN": {
"name": "बेलारूसी रूबल"
},
- "BYR": {
- "name": "बेलारूसी रूबल (2000–2016)"
- },
"BWP": {
"name": "बोट्सवानान पुला"
},
@@ -365,7 +362,7 @@
"name": "मोरोक्काली डिर्‌हाम"
},
"MMK": {
- "name": "म्यान्मा क्याट"
+ "name": "म्यान्मार क्याट"
},
"MKD": {
"name": "म्यासेडोनियाली डेनार"
diff --git a/vendor/commerceguys/intl/resources/currency/nl.json b/vendor/commerceguys/intl/resources/currency/nl.json
index 7c2e70dcc..5e05a6f4c 100644
--- a/vendor/commerceguys/intl/resources/currency/nl.json
+++ b/vendor/commerceguys/intl/resources/currency/nl.json
@@ -100,7 +100,7 @@
"name": "Chileense peso"
},
"CNY": {
- "name": "Chinese renminbi",
+ "name": "Chinese Yuan",
"symbol": "CN¥"
},
"COP": {
@@ -357,7 +357,7 @@
"name": "Paraguayaanse guarani"
},
"PEN": {
- "name": "Peruaanse nieuwe sol"
+ "name": "Peruaanse sol"
},
"PLN": {
"name": "Poolse zloty"
@@ -470,9 +470,6 @@
"BYN": {
"name": "Wit-Russische roebel"
},
- "BYR": {
- "name": "Wit-Russische roebel (2000–2016)"
- },
"ZMW": {
"name": "Zambiaanse kwacha"
},
diff --git a/vendor/commerceguys/intl/resources/currency/nmg.json b/vendor/commerceguys/intl/resources/currency/nmg.json
index 5a8ba885d..9e61cae9a 100644
--- a/vendor/commerceguys/intl/resources/currency/nmg.json
+++ b/vendor/commerceguys/intl/resources/currency/nmg.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -402,7 +399,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/nn.json b/vendor/commerceguys/intl/resources/currency/nn.json
index ae1d1906b..1653ae21b 100644
--- a/vendor/commerceguys/intl/resources/currency/nn.json
+++ b/vendor/commerceguys/intl/resources/currency/nn.json
@@ -1,495 +1,474 @@
{
"AFN": {
- "name": "afghani"
+ "name": "afghanske afghani"
},
"ALL": {
- "name": "albansk lek"
+ "name": "albanske lek"
},
"DZD": {
- "name": "algerisk dinar"
+ "name": "algeriske dinarar"
},
"USD": {
- "name": "amerikansk dollar",
- "symbol": "US$"
+ "name": "amerikanske dollar"
},
"AOA": {
- "name": "angolsk kwanza"
+ "name": "angolanske kwanza"
},
"ARS": {
- "name": "argentinsk peso"
+ "name": "argentinske pesos"
},
"AMD": {
- "name": "armensk dram"
+ "name": "armenske dram"
},
"AWG": {
- "name": "arubisk gylden"
+ "name": "arubiske floriner"
},
"AZN": {
- "name": "aserbajdsjansk manat"
+ "name": "aserbajdsjanske manat"
},
"XCD": {
- "name": "austkaribisk dollar",
- "symbol": "EC$"
+ "name": "austkaribiske dollar"
},
"AUD": {
- "name": "australsk dollar",
- "symbol": "A$"
+ "name": "australske dollar"
},
"BSD": {
- "name": "bahamisk dollar"
+ "name": "bahamanske dollar"
},
"BHD": {
- "name": "bahrainsk dinar"
+ "name": "bahrainske dinarar"
},
"BDT": {
- "name": "bangladeshisk taka"
+ "name": "bangladeshiske taka"
},
"BBD": {
- "name": "barbadisk dollar"
+ "name": "barbadiske dollar"
},
"BZD": {
- "name": "belizisk dollar"
+ "name": "beliziske dollar"
},
"BMD": {
- "name": "bermudisk dollar"
+ "name": "bermudiske dollar"
},
"BTN": {
- "name": "bhutansk ngultrum"
+ "name": "bhutanske ngultrum"
},
"BOB": {
- "name": "boliviano"
+ "name": "bolivianske boliviano"
},
"BAM": {
- "name": "bosnisk-hercegovinsk mark (konvertibel)"
+ "name": "bosnisk-hercegovinske konvertible mark"
},
"BWP": {
- "name": "botswansk pula"
+ "name": "botswanske pula"
},
"BRL": {
- "name": "brasiliansk real",
- "symbol": "R$"
+ "name": "brasilianske real"
},
"GBP": {
- "name": "britisk pund",
- "symbol": "£"
+ "name": "britiske pund"
},
"BND": {
- "name": "bruneisk dollar"
+ "name": "bruneiske dollar"
},
"BGN": {
- "name": "bulgarsk ny lev"
+ "name": "bulgarske lev"
},
"BIF": {
- "name": "burundisk franc"
+ "name": "burundiske franc"
},
"KYD": {
- "name": "caymansk dollar"
- },
- "XOF": {
- "name": "CFA franc BCEAO",
- "symbol": "CFA"
- },
- "XAF": {
- "name": "CFA franc BEAC",
- "symbol": "FCFA"
+ "name": "caymanske dollar"
},
"XPF": {
- "name": "CFP franc",
- "symbol": "CFPF"
+ "name": "CFP-franc"
},
"CLP": {
- "name": "chilensk peso"
- },
- "COP": {
- "name": "colombiansk peso"
- },
- "CRC": {
- "name": "costaricansk colon"
- },
- "CUC": {
- "name": "Cuban Convertible Peso"
+ "name": "chilenske pesos"
},
"DKK": {
- "name": "dansk krone"
+ "name": "danske kroner"
},
"DJF": {
- "name": "djiboutisk franc"
+ "name": "djiboutiske franc"
},
"DOP": {
- "name": "dominikansk peso"
+ "name": "dominikanske pesos"
},
"EGP": {
- "name": "egyptisk pund"
+ "name": "egyptiske pund"
+ },
+ "AED": {
+ "name": "emiratarabiske dirham"
},
"ERN": {
- "name": "eritreisk nakfa"
+ "name": "eritreiske nakfa"
},
"ETB": {
- "name": "etiopisk birr"
+ "name": "etiopiske birr"
},
"EUR": {
"name": "euro",
"symbol": "€"
},
"FKP": {
- "name": "Falkland-pund"
+ "name": "falklandspund"
},
"FJD": {
- "name": "fijiansk dollar"
+ "name": "fijianske dollar"
},
"PHP": {
- "name": "filippinsk peso"
+ "name": "filippinske pesos"
},
"GMD": {
- "name": "gambisk dalasi"
+ "name": "gambiske dalasi"
},
"GEL": {
- "name": "georgisk lari"
+ "name": "georgiske lari"
},
"GHS": {
- "name": "ghanesisk cedi"
+ "name": "ghanesiske cedi"
},
"GIP": {
- "name": "gibraltarsk pund"
+ "name": "gibraltarske pund"
},
"GTQ": {
- "name": "guatemalansk quetzal"
+ "name": "guatemalanske quetzal"
},
"GNF": {
- "name": "guineansk franc"
+ "name": "guineanske franc"
},
"GYD": {
- "name": "guyansk dollar"
+ "name": "guyanske dollar"
},
"HTG": {
- "name": "haitisk gourde"
+ "name": "haitiske gourde"
},
"HNL": {
- "name": "honduransk lempira"
+ "name": "honduranske lempira"
},
"HKD": {
- "name": "Hongkong-dollar",
- "symbol": "HK$"
+ "name": "Hongkong-dollar"
},
"INR": {
- "name": "indisk rupi",
- "symbol": "₹"
+ "name": "indiske rupiar"
},
"IDR": {
- "name": "indonesisk rupi"
+ "name": "indonesiske rupiar"
},
"IQD": {
- "name": "iraksk dinar"
+ "name": "irakiske dinarar"
},
"IRR": {
- "name": "iransk rial"
+ "name": "iranske rial"
},
"ISK": {
- "name": "islandsk krone"
+ "name": "islandske kroner"
},
"ILS": {
- "name": "israelsk ny shekel",
- "symbol": "₪"
+ "name": "israelske nye sheklar"
},
"JMD": {
- "name": "jamaikansk dollar"
+ "name": "jamaikanske dollar"
},
"JPY": {
- "name": "japansk yen",
- "symbol": "JP¥"
+ "name": "japanske yen"
},
"YER": {
- "name": "jemenittisk rial"
+ "name": "jemenittiske rial"
},
"JOD": {
- "name": "jordansk dinar"
+ "name": "jordanske dinarar"
},
"KHR": {
- "name": "kambodsjansk riel"
+ "name": "kambodsjanske riel"
},
"CAD": {
- "name": "kanadisk dollar",
- "symbol": "CA$"
+ "name": "kanadiske dollar"
},
"CVE": {
- "name": "kappverdisk escudo"
+ "name": "kappverdiske escudo"
},
"KZT": {
- "name": "kasakhstansk tenge"
+ "name": "kasakhstanske tenge"
},
"KES": {
- "name": "kenyansk shilling"
+ "name": "kenyanske shilling"
},
"CNY": {
- "name": "kinesisk yuan renminbi",
- "symbol": "CN¥"
+ "name": "kinesiske yuan"
},
"KGS": {
- "name": "kirgisisk som"
+ "name": "kirgisiske som"
+ },
+ "COP": {
+ "name": "kolombianske pesos"
},
"KMF": {
- "name": "komorisk franc"
+ "name": "komoriske franc"
},
"CDF": {
- "name": "kongolesisk franc"
+ "name": "kongolesiske franc"
+ },
+ "CRC": {
+ "name": "kostarikanske colón"
},
"HRK": {
- "name": "kroatisk kuna"
+ "name": "kroatiske kuna"
+ },
+ "CUC": {
+ "name": "kubanske konvertible pesos"
},
"CUP": {
- "name": "kubansk peso"
+ "name": "kubanske pesos"
},
"KWD": {
- "name": "kuwaitisk dinar"
+ "name": "kuwaitiske dinarar"
},
"BYN": {
- "name": "kviterussisk rubel"
- },
- "BYR": {
- "name": "kviterussisk rubel (2000–2016)"
+ "name": "kviterussiske rublar"
},
"LAK": {
- "name": "laotisk kip"
+ "name": "laotiske kip"
},
"LSL": {
- "name": "lesothisk loti"
+ "name": "lesothiske loti"
},
"LBP": {
- "name": "libanesisk pund"
+ "name": "libanesiske pund"
},
"LRD": {
- "name": "liberisk dollar"
+ "name": "liberiske dollar"
},
"LYD": {
- "name": "libysk dinar"
+ "name": "libyske dinarar"
},
"MGA": {
- "name": "madagassisk ariary"
+ "name": "madagassiske ariary"
},
"MOP": {
- "name": "makaosk pataca"
+ "name": "makaoiske pataca"
},
"MKD": {
- "name": "makedonsk denar"
+ "name": "makedonske denarar"
},
"MWK": {
- "name": "malawisk kwacha"
+ "name": "malawiske kwacha"
},
"MYR": {
- "name": "malaysisk ringgit"
+ "name": "malaysiske ringgit"
},
"MVR": {
- "name": "maldivisk rufiyaa"
+ "name": "maldiviske rufiyaa"
},
"MAD": {
- "name": "marokkansk dirham"
+ "name": "marokkanske dirham"
},
"MRO": {
- "name": "mauritansk ouguiya"
+ "name": "mauritanske ouguiya"
},
"MUR": {
- "name": "mauritansk rupi"
+ "name": "mauritanske rupiar"
},
"MXN": {
- "name": "meksikansk peso",
- "symbol": "MX$"
+ "name": "meksikanske pesos"
},
"MDL": {
- "name": "moldovsk leu"
+ "name": "moldovske leuar"
},
"MNT": {
- "name": "mongolsk tugrik"
+ "name": "mongolske tugrik"
},
"MZN": {
- "name": "mosambikisk metical"
+ "name": "mosambikiske metical"
},
"MMK": {
- "name": "myanmarsk kyat"
+ "name": "myanmarske kyat"
},
"NAD": {
- "name": "namibisk dollar"
+ "name": "namibiske dollar"
},
"ANG": {
- "name": "nederlansk antillegylden"
+ "name": "nederlandske antillegylden"
},
"NPR": {
- "name": "nepalsk rupi"
- },
- "NZD": {
- "name": "new zealandsk dollar",
- "symbol": "NZ$"
+ "name": "nepalske rupiar"
},
"NIO": {
- "name": "nicaraguansk cordoba oro"
+ "name": "nicaraguanske córdoba"
},
"NGN": {
- "name": "nigeriansk naira"
+ "name": "nigerianske naira"
},
"KPW": {
- "name": "nordkoreansk won"
+ "name": "nordkoreanske won"
},
"NOK": {
- "name": "norsk krone",
+ "name": "norske kroner",
"symbol": "kr"
},
+ "TWD": {
+ "name": "nye taiwanske dollar"
+ },
+ "NZD": {
+ "name": "nyzealandske dollar"
+ },
"OMR": {
- "name": "omansk rial"
+ "name": "omanske rial"
},
"PKR": {
- "name": "pakistansk rupi"
+ "name": "pakistanske rupiar"
},
"PAB": {
- "name": "panamansk balboa"
+ "name": "panamanske balboa"
},
"PGK": {
- "name": "papuansk kina"
+ "name": "papuanske kina"
},
"PYG": {
- "name": "paraguayansk guarani"
+ "name": "paraguayanske guaraní"
},
"PEN": {
- "name": "peruansk nuevo sol"
+ "name": "peruanske sol"
},
"PLN": {
- "name": "polsk zloty"
+ "name": "polske zloty"
},
"QAR": {
- "name": "qatarsk rial"
+ "name": "qatarske rial"
},
"RON": {
- "name": "rumensk leu"
+ "name": "rumenske leuar"
},
"RUB": {
- "name": "russisk rubel"
+ "name": "russiske rublar"
},
"RWF": {
- "name": "rwandisk franc"
+ "name": "rwandiske franc"
},
"SBD": {
- "name": "salomonsk dollar"
+ "name": "salomonske dollar"
},
"SVC": {
- "name": "salvadoransk colon"
+ "name": "salvadoranske colon"
+ },
+ "WST": {
+ "name": "samoanske tala"
},
"SHP": {
- "name": "sankthelensk pund"
+ "name": "sankthelenske pund"
},
"STD": {
- "name": "Sao Tome og Principe-dobra"
+ "name": "saotomesiske dobra"
},
"SAR": {
- "name": "saudiarabisk rial"
+ "name": "saudiarabiske rial"
+ },
+ "XAF": {
+ "name": "sentralafrikanske CFA-franc"
},
"RSD": {
- "name": "serbisk dinar"
+ "name": "serbiske dinarar"
},
"SCR": {
- "name": "seychellisk rupi"
+ "name": "seychelliske rupiar"
},
"SLL": {
- "name": "sierraleonsk leone"
+ "name": "sierraleonske leone"
},
"SGD": {
- "name": "singaporsk dollar"
+ "name": "singaporske dollar"
},
"SOS": {
- "name": "somalisk shilling"
- },
- "SSP": {
- "name": "South Sudanese Pound"
+ "name": "somaliske shilling"
},
"LKR": {
- "name": "srilankisk rupi"
+ "name": "srilankiske rupiar"
},
"SDG": {
- "name": "sudansk pund"
+ "name": "sudanske pund"
},
"SRD": {
- "name": "surinamsk dollar"
+ "name": "surinamske dollar"
},
"CHF": {
- "name": "sveitsisk franc"
+ "name": "sveitsiske franc"
},
"SEK": {
- "name": "svensk krone"
+ "name": "svenske kroner"
},
"SZL": {
- "name": "swazilandsk lilangeni"
+ "name": "swazilandske lilangeni"
},
"SYP": {
- "name": "syrisk pund"
+ "name": "syriske pund"
},
"ZAR": {
- "name": "sørafrikansk rand"
+ "name": "sørafrikanske rand"
},
"KRW": {
- "name": "sørkoreansk won",
- "symbol": "₩"
+ "name": "sørkoreanske won"
},
- "TJS": {
- "name": "tadsjikisk somoni"
+ "SSP": {
+ "name": "sørsudanske pund"
},
- "TWD": {
- "name": "taiwansk ny dollar",
- "symbol": "NT$"
+ "TJS": {
+ "name": "tadsjikiske somoni"
},
"TZS": {
- "name": "tanzaniansk shilling"
+ "name": "tanzanianske shilling"
},
"THB": {
- "name": "thailandsk baht"
+ "name": "thailandske baht"
},
"TOP": {
- "name": "tongansk paʻanga"
+ "name": "tonganske paʻanga"
},
"TTD": {
- "name": "trinidadisk dollar"
+ "name": "trinidadiske dollar"
},
"CZK": {
- "name": "tsjekkisk koruna"
+ "name": "tsjekkiske koruna"
},
"TND": {
- "name": "tunisisk dinar"
+ "name": "tunisiske dinarar"
},
"TMT": {
- "name": "Turkmenistani Manat"
+ "name": "turkmenske manat"
},
"TRY": {
- "name": "tyrkisk lire"
- },
- "AED": {
- "name": "UAE dirham"
+ "name": "tyrkiske lire"
},
"UGX": {
- "name": "ugandisk shilling"
+ "name": "ugandiske shilling"
},
"UAH": {
- "name": "ukrainsk hryvnia"
+ "name": "ukrainske hryvnia"
},
"HUF": {
- "name": "ungarsk forint"
+ "name": "ungarske forintar"
},
"UYU": {
- "name": "uruguayansk peso"
+ "name": "uruguayanske pesos"
},
"UZS": {
- "name": "usbekisk sum"
+ "name": "usbekiske sum"
},
"VUV": {
- "name": "vanuatuisk vatu"
+ "name": "vanuatuiske vatu"
},
"VEF": {
- "name": "venezuelansk bolivar"
+ "name": "venezuelanske bolivar"
},
- "WST": {
- "name": "vestsamoisk tala"
+ "XOF": {
+ "name": "vestafrikanske CFA-franc",
+ "symbol": "CFA"
},
"VND": {
- "name": "vietnamesisk dong",
- "symbol": "₫"
+ "name": "vietnamesiske dong"
},
"ZMW": {
- "name": "zambisk kwacha"
+ "name": "zambiske kwacha"
},
"ZWL": {
"name": "Zimbabwean Dollar (2009)"
diff --git a/vendor/commerceguys/intl/resources/currency/nyn.json b/vendor/commerceguys/intl/resources/currency/nyn.json
index f084eb1cf..880f56d50 100644
--- a/vendor/commerceguys/intl/resources/currency/nyn.json
+++ b/vendor/commerceguys/intl/resources/currency/nyn.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -369,7 +366,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/or.json b/vendor/commerceguys/intl/resources/currency/or.json
new file mode 100644
index 000000000..640567dd6
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/currency/or.json
@@ -0,0 +1,493 @@
+{
+ "AOA": {
+ "name": "ଅଙ୍ଗୋଲିୟ କୱାନଜା"
+ },
+ "AMD": {
+ "name": "ଅର୍ମେନିୟ ଡ୍ରାମ୍"
+ },
+ "AUD": {
+ "name": "ଅଷ୍ଟ୍ରେଲିୟ ଡଲାର୍",
+ "symbol": "A$"
+ },
+ "ISK": {
+ "name": "ଆଇସଲ୍ୟାଣ୍ଡିୟ କ୍ରୋନା"
+ },
+ "AZN": {
+ "name": "ଆଜେରବାଇଜାନି ମନତ୍"
+ },
+ "AFN": {
+ "name": "ଆଫଘାନୀୟ ଆଫଘାନି"
+ },
+ "AWG": {
+ "name": "ଆରୁବିୟ ଫ୍ଲୋରିୟ"
+ },
+ "ARS": {
+ "name": "ଆର୍ଜେଣ୍ଟିନିୟ ପେସୋ"
+ },
+ "DZD": {
+ "name": "ଆଲଗେରିୟ ଦିନାର୍"
+ },
+ "ALL": {
+ "name": "ଆଲବାନିୟ ଲେକ୍"
+ },
+ "EGP": {
+ "name": "ଇଜିପ୍ଟିୟ ପାଉଣ୍ଡ୍"
+ },
+ "IDR": {
+ "name": "ଇଣ୍ଡୋନେସିୟ ରୁପିଆହ"
+ },
+ "IQD": {
+ "name": "ଇରାକି ଦିନାର୍"
+ },
+ "IRR": {
+ "name": "ଇରିୟ ରିଆଲ୍"
+ },
+ "ILS": {
+ "name": "ଇସ୍ରାଇଲି ନ୍ୟୁ ସେକେଲ୍",
+ "symbol": "₪"
+ },
+ "UZS": {
+ "name": "ଉଜବେକିସ୍ତାନିୟ ସୋମ୍"
+ },
+ "RUB": {
+ "name": "ଋଷିୟ ରୁବଲେ"
+ },
+ "ETB": {
+ "name": "ଏଥିଓପିୟୋ ବିର୍"
+ },
+ "ERN": {
+ "name": "ଏରିଟ୍ରେୟ ନାକଫା"
+ },
+ "OMR": {
+ "name": "ଓମାନି ରିଆଲ୍"
+ },
+ "COP": {
+ "name": "କଲୋମ୍ଵିୟ ପେସୋ"
+ },
+ "KZT": {
+ "name": "କାଜାଖସ୍ତାନିୟ ତେନଗେ"
+ },
+ "CAD": {
+ "name": "କାନେଡିୟ ଡଲାର୍",
+ "symbol": "CA$"
+ },
+ "KHR": {
+ "name": "କାମ୍ଵୋଡିୟ ରିଏଲ୍"
+ },
+ "KYD": {
+ "name": "କାୟମାନ୍ ଦ୍ଵୀପପୁଞ୍ଜ ଡଲାର୍"
+ },
+ "CUC": {
+ "name": "କୁବାନ୍ କୋନଭେର୍ଟିବ୍ଲେ ପେସୋ"
+ },
+ "CUP": {
+ "name": "କୁବାନ୍ ପେସୋ"
+ },
+ "KWD": {
+ "name": "କୁୱେତି ଦିନାର"
+ },
+ "KES": {
+ "name": "କେନୟାନ୍ ସିଲିଂ"
+ },
+ "XAF": {
+ "name": "କେନ୍ଦ୍ରୀୟ ଆଫ୍ରିକିୟ CFA ଫ୍ରାଙ୍କ୍",
+ "symbol": "FCFA"
+ },
+ "CVE": {
+ "name": "କେପ୍ ଭେର୍ଦେୟ ଏସକୁଡୋ"
+ },
+ "CDF": {
+ "name": "କୋନଗୋଲେସେ ଫ୍ରାଙ୍କ୍"
+ },
+ "KMF": {
+ "name": "କୋମୋରିୟ ଫ୍ରାଙ୍କ୍"
+ },
+ "CRC": {
+ "name": "କୋଷ୍ଟା ରିକିୟ କୋଲୋନ୍"
+ },
+ "KGS": {
+ "name": "କ୍ୟାରଗ୍ୟସ୍ତାନିୟ ସୋମ୍"
+ },
+ "HRK": {
+ "name": "କ୍ରୋଆଟିୟ କୁନା"
+ },
+ "QAR": {
+ "name": "କ୍ଵାତାରି ରିଆଲ୍"
+ },
+ "GMD": {
+ "name": "ଗାମବିୟ ଡାଲାସି"
+ },
+ "GIP": {
+ "name": "ଗିବ୍ରାଲଟାର୍ ପାଉଣ୍ଡ୍"
+ },
+ "GNF": {
+ "name": "ଗୁଇନେୟ ଫ୍ରାଙ୍କ୍"
+ },
+ "GTQ": {
+ "name": "ଗୁଏତେମାଲିୟ କ୍ଵେତଜାଲ୍"
+ },
+ "GYD": {
+ "name": "ଗୁୟାନାଏସେ ଡଲାର୍"
+ },
+ "GHS": {
+ "name": "ଘାନିୟ ସେଡି"
+ },
+ "CNY": {
+ "name": "ଚିନୀୟ ୟୁଆନ୍",
+ "symbol": "CN¥"
+ },
+ "CLP": {
+ "name": "ଚିଲିୟ ପେସୋ"
+ },
+ "CZK": {
+ "name": "ଚେକ୍ କୋରୁନା"
+ },
+ "ZMW": {
+ "name": "ଜମ୍ଵିୟ କୱାଚା"
+ },
+ "GEL": {
+ "name": "ଜର୍ଜିୟ ଲାରି"
+ },
+ "JOD": {
+ "name": "ଜର୍ଡିୟାନ୍ ଦିନାର୍"
+ },
+ "JPY": {
+ "name": "ଜାପାନୀୟ ୟେନ୍",
+ "symbol": "¥"
+ },
+ "JMD": {
+ "name": "ଜାମାଇକିୟ ଡଲାର୍"
+ },
+ "INR": {
+ "name": "ଟଙ୍କା",
+ "symbol": "₹"
+ },
+ "TTD": {
+ "name": "ଟ୍ରିନିଡାଡ୍ ଏବଂ ଟୋବାଗୋ ଡଲାର୍"
+ },
+ "DJF": {
+ "name": "ଡଜିବୌଟିୟ ଫ୍ରାଙ୍କ୍"
+ },
+ "DOP": {
+ "name": "ଡୋମିନିକିୟ ପେସୋ"
+ },
+ "TJS": {
+ "name": "ତାଜିକିସ୍ତାନିୟ ସୋମୋନି"
+ },
+ "TZS": {
+ "name": "ତାନଜାନିୟ ସିଲିଂ"
+ },
+ "TND": {
+ "name": "ତୁନିସିୟ ଦିନାର୍"
+ },
+ "TMT": {
+ "name": "ତୁର୍କମେନିସ୍ତାନିୟ ମନତ"
+ },
+ "TRY": {
+ "name": "ତୁର୍କିୟ ଲିରା"
+ },
+ "TOP": {
+ "name": "ତୋନଗିୟ ପାଙ୍ଗ୍"
+ },
+ "THB": {
+ "name": "ଥାଇ ବାହତ୍"
+ },
+ "ZAR": {
+ "name": "ଦକ୍ଷିଣ ଆଫ୍ରିକିୟ ରାଣ୍ଡ୍"
+ },
+ "KRW": {
+ "name": "ଦକ୍ଷିଣ କୋରିୟ ୱୋନ୍",
+ "symbol": "₩"
+ },
+ "SSP": {
+ "name": "ଦକ୍ଷିଣ ସୁଦାନେସେ ପାଉଣ୍ଡ୍"
+ },
+ "DKK": {
+ "name": "ଦାନିସ୍ କ୍ରୋନେ"
+ },
+ "NOK": {
+ "name": "ନରୱେଜିୟ କ୍ରୋନେ"
+ },
+ "NGN": {
+ "name": "ନାଇଜେରିୟ ନାଇରା"
+ },
+ "NAD": {
+ "name": "ନାମିବିୟ ଡଲାର୍"
+ },
+ "NIO": {
+ "name": "ନିକାରାଗୁଆନ୍ କୋର୍ଡୋବା"
+ },
+ "ANG": {
+ "name": "ନେଦରଲ୍ୟାଣ୍ଡ୍ ଆଣ୍ଟିଲିୟ ଗୁଇଲଡେର୍"
+ },
+ "NPR": {
+ "name": "ନେପାଳିୟ ରୁପି"
+ },
+ "TWD": {
+ "name": "ନ୍ୟୁ ତାଇୱାନ୍ ଡଲାର୍",
+ "symbol": "NT$"
+ },
+ "NZD": {
+ "name": "ନ୍ୟୁଜଲ୍ୟାଣ୍ଡ୍ ଡଲାର୍",
+ "symbol": "NZ$"
+ },
+ "PGK": {
+ "name": "ପପୁଆ ନ୍ୟୁ ଗୁଇନିୟ କିନା"
+ },
+ "XOF": {
+ "name": "ପଶ୍ଚିମ ଆଫ୍ରିକିୟ CFA ଫ୍ରାଙ୍କ୍",
+ "symbol": "CFA"
+ },
+ "KPW": {
+ "name": "ପଶ୍ଚିମ କୋରିୟ ୱୋନ୍"
+ },
+ "PKR": {
+ "name": "ପାକିସ୍ତାନି ରୁପି"
+ },
+ "PAB": {
+ "name": "ପାନାମାନିୟ ବାଲବୋଆ"
+ },
+ "PYG": {
+ "name": "ପାରାଗୁଆୟାନ୍ ଗୁଆରାନି"
+ },
+ "XCD": {
+ "name": "ପୂର୍ବ କାରିବିୟ ଡଲାର୍",
+ "symbol": "EC$"
+ },
+ "PEN": {
+ "name": "ପେରୁଭିୟ ସୋଲ୍"
+ },
+ "PLN": {
+ "name": "ପୋଲିସ୍ ଜଲୋଟି"
+ },
+ "FKP": {
+ "name": "ଫାଲ୍କଲ୍ୟାଣ୍ଡ୍ ଦ୍ଵୀପପୁଞ୍ଜ ପାଉଣ୍ଡ୍"
+ },
+ "FJD": {
+ "name": "ଫିଜିୟ ଡଲାର୍"
+ },
+ "PHP": {
+ "name": "ଫିଲିପିନି ପେସୋ"
+ },
+ "BDT": {
+ "name": "ବଙ୍ଗଳାଦେଶୀ ଟାକା"
+ },
+ "BGN": {
+ "name": "ବଲଗେରୀୟ ଲେଭ୍"
+ },
+ "BBD": {
+ "name": "ବାର୍ବଡିୟ ଡଲାର୍"
+ },
+ "BHD": {
+ "name": "ବାହରାଇନି ଦିନାର"
+ },
+ "BSD": {
+ "name": "ବାହାମିୟ ଡଲାର୍"
+ },
+ "BIF": {
+ "name": "ବୁରୁନଡିୟ ଫ୍ରାଙ୍କ୍"
+ },
+ "BMD": {
+ "name": "ବେରମୁଣ୍ଡିୟ ଡଲାର୍"
+ },
+ "BYN": {
+ "name": "ବେଲାରୁସିୟ ରୁବଲେ"
+ },
+ "BZD": {
+ "name": "ବେଲିଜେ ଡଲାର୍"
+ },
+ "BWP": {
+ "name": "ବୋଟସୱାନିୟ ପୁଲା"
+ },
+ "BOB": {
+ "name": "ବୋଲିଭିୟ ବୋଲିଭିଆନୋ"
+ },
+ "BAM": {
+ "name": "ବୋସନିଆ-ହେରଜେବୋଭିନା କନଭେରିଟେବଲ୍ ମାର୍କ"
+ },
+ "BRL": {
+ "name": "ବ୍ରାଜିଲିୟ ପ୍ରକୃତ",
+ "symbol": "R$"
+ },
+ "GBP": {
+ "name": "ବ୍ରିଟିସ୍ ପାଉଣ୍ଡ୍",
+ "symbol": "£"
+ },
+ "BND": {
+ "name": "ବ୍ରୁନେଇ ଡଲାର୍"
+ },
+ "VUV": {
+ "name": "ଭାନୁଆଟୁ ଭାଟୁ"
+ },
+ "VND": {
+ "name": "ଭୀଏତନାମୀୟ ଡଂ",
+ "symbol": "₫"
+ },
+ "BTN": {
+ "name": "ଭୁଟାନୀୟ ନଗୁଲଟ୍ରୁମ୍"
+ },
+ "VEF": {
+ "name": "ଭେନେଜୁଏଲାନ୍ ବୋଲିଭାର୍"
+ },
+ "MNT": {
+ "name": "ମଙ୍ଗୋଳିୟ ତୁଗ୍ରିକ୍"
+ },
+ "MWK": {
+ "name": "ମଲୱିୟ କୱାଚା"
+ },
+ "MRO": {
+ "name": "ମାଉରିଟାନିୟ ଓୟୁଗୁଇୟା"
+ },
+ "MOP": {
+ "name": "ମାକାନେସିୟ ପାଟାକା"
+ },
+ "MVR": {
+ "name": "ମାଲଡିଭିୟ ରୁଫିୟା"
+ },
+ "MGA": {
+ "name": "ମାଲାଗାସେ ଆରିଆରେ"
+ },
+ "MYR": {
+ "name": "ମାଲେସିୟ ରିଂଇଟ୍"
+ },
+ "MKD": {
+ "name": "ମାସେଡୋନିୟ ଡିନାର୍"
+ },
+ "MXN": {
+ "name": "ମେକ୍ସିକିୟ ପେସୋ",
+ "symbol": "MX$"
+ },
+ "MZN": {
+ "name": "ମୋଜାମବିକାନ୍ ମେଟିକାଲ୍"
+ },
+ "MAD": {
+ "name": "ମୋରୋକିୟ ଡିରହାମ୍"
+ },
+ "MDL": {
+ "name": "ମୋଲଡୋଭାନ୍ ଲେୟୁ"
+ },
+ "MUR": {
+ "name": "ମୌରିସିୟ ରୁପି"
+ },
+ "MMK": {
+ "name": "ମ୍ୟାନମାର୍ କ୍ୟାଟ୍"
+ },
+ "AED": {
+ "name": "ଯୁକ୍ତ ଆରବ ଏମିରେଟସ୍ ଦିରହାମ୍"
+ },
+ "USD": {
+ "name": "ଯୁକ୍ତରାଷ୍ଟ୍ର ଡଲାର୍",
+ "symbol": "$"
+ },
+ "UAH": {
+ "name": "ୟୁକ୍ରେନିୟ ହରୟଭନିଆ"
+ },
+ "UGX": {
+ "name": "ୟୁଗାନଡିୟ ସିଲିଂ"
+ },
+ "UYU": {
+ "name": "ୟୁରୁଗୁଆୟାନ୍ ପେସୋ"
+ },
+ "EUR": {
+ "name": "ୟୁରୋ",
+ "symbol": "€"
+ },
+ "YER": {
+ "name": "ୟେମେନି ରିଆଲ୍"
+ },
+ "RWF": {
+ "name": "ରୱାନାଦାନ୍ ଫ୍ରାଙ୍କ୍"
+ },
+ "RON": {
+ "name": "ରୋମାନିୟ ଲେଉ"
+ },
+ "LAK": {
+ "name": "ଲାଓଟିୟ କିପ୍"
+ },
+ "LRD": {
+ "name": "ଲିବେରିୟ ଡଲାର୍"
+ },
+ "LYD": {
+ "name": "ଲିବ୍ୟ ଦିନାର୍"
+ },
+ "LBP": {
+ "name": "ଲେବାନେସେ ପାଉଣ୍ଡ୍"
+ },
+ "LKR": {
+ "name": "ଶ୍ରୀଲଙ୍କିୟ ରୁପି"
+ },
+ "WST": {
+ "name": "ସମୋୟ ତାଲା"
+ },
+ "RSD": {
+ "name": "ସର୍ବିୟ ଦିନାର୍"
+ },
+ "STD": {
+ "name": "ସାଓ ଟୋମେ ଏବଂ ପ୍ରିସିପେ ଡୋବ୍ରା"
+ },
+ "SLL": {
+ "name": "ସିଏରା ଲେଓନେଆନ୍ ଲେଓନି"
+ },
+ "SGD": {
+ "name": "ସିଂଗାପୁର୍ ଡଲାର୍"
+ },
+ "SYP": {
+ "name": "ସିରିୟ ପାଉଣ୍ଡ୍"
+ },
+ "CHF": {
+ "name": "ସୁଇସ୍ ଫ୍ରାଙ୍କ୍"
+ },
+ "SDG": {
+ "name": "ସୁଦାନୀୟ ପାଉଣ୍ଡ୍"
+ },
+ "SRD": {
+ "name": "ସୁରିନାମେସେ ଡଲାର୍"
+ },
+ "SHP": {
+ "name": "ସେଣ୍ଟ୍. ହେଲେନା ପାଉଣ୍ଡ୍"
+ },
+ "SCR": {
+ "name": "ସେୟଚେଲୋଇସ୍ ରୁପି"
+ },
+ "SOS": {
+ "name": "ସୋମାଲି ସିଲିଂ"
+ },
+ "SBD": {
+ "name": "ସୋଲୋମୋନ ଦ୍ଵୀପପୁଞ୍ଜ ଡଲାର୍"
+ },
+ "SAR": {
+ "name": "ସୌଦି ରିୟାଲ୍"
+ },
+ "SZL": {
+ "name": "ସ୍ଵାଜି ଲିଲାନଜେନି"
+ },
+ "SEK": {
+ "name": "ସ୍ୱେଡିୟ କ୍ରୋନା"
+ },
+ "HKD": {
+ "name": "ହଂ କଂ ଡଲାର୍",
+ "symbol": "HK$"
+ },
+ "HUF": {
+ "name": "ହଙ୍ଗେରିୟ ଫୋରିଣ୍ଟ"
+ },
+ "HTG": {
+ "name": "ହାଇତିୟ ଗୌରଡେ"
+ },
+ "HNL": {
+ "name": "ହୋଣ୍ଡୁରିୟ ଲେମପିରା"
+ },
+ "XPF": {
+ "name": "CFP ଫ୍ରାଙ୍କ୍",
+ "symbol": "CFPF"
+ },
+ "LSL": {
+ "name": "Lesotho Loti"
+ },
+ "SVC": {
+ "name": "Salvadoran Colón"
+ },
+ "ZWL": {
+ "name": "Zimbabwean Dollar (2009)"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pa.json b/vendor/commerceguys/intl/resources/currency/pa.json
index ad53223ee..e8e31d44c 100644
--- a/vendor/commerceguys/intl/resources/currency/pa.json
+++ b/vendor/commerceguys/intl/resources/currency/pa.json
@@ -313,7 +313,7 @@
"symbol": "EC$"
},
"PEN": {
- "name": "ਪੇਰੂਵੀਅਨ ਨਿਊਵੋ ਸੋਲ"
+ "name": "ਪੇਰੂਵੀਅਨ ਸੋਲ"
},
"PYG": {
"name": "ਪੈਰਾਗੁਵਾਇਨ ਗੁਆਰਾਨੀ"
@@ -369,9 +369,6 @@
"BYN": {
"name": "ਬੇਲਾਰੂਸੀ ਰੂਬਲ"
},
- "BYR": {
- "name": "ਬੇਲਾਰੂਸੀ ਰੂਬਲ (2000–2016)"
- },
"BZD": {
"name": "ਬੇਲੀਜ਼ ਡਾਲਰ"
},
diff --git a/vendor/commerceguys/intl/resources/currency/pl.json b/vendor/commerceguys/intl/resources/currency/pl.json
index c9991b1f3..acfb0fdbc 100644
--- a/vendor/commerceguys/intl/resources/currency/pl.json
+++ b/vendor/commerceguys/intl/resources/currency/pl.json
@@ -325,9 +325,6 @@
"TWD": {
"name": "nowy dolar tajwański"
},
- "PEN": {
- "name": "nowy sol peruwiański"
- },
"ILS": {
"name": "nowy szekel izraelski"
},
@@ -404,9 +401,6 @@
"BYN": {
"name": "rubel białoruski"
},
- "BYR": {
- "name": "rubel białoruski (2000–2016)"
- },
"RUB": {
"name": "rubel rosyjski"
},
@@ -434,6 +428,9 @@
"SCR": {
"name": "rupia seszelska"
},
+ "PEN": {
+ "name": "sol peruwiański"
+ },
"KGS": {
"name": "som kirgiski"
},
diff --git a/vendor/commerceguys/intl/resources/currency/pt-AO.json b/vendor/commerceguys/intl/resources/currency/pt-AO.json
index 7c949e7aa..987ab162e 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-AO.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-AO.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -254,37 +254,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -294,7 +294,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -315,7 +315,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -333,9 +333,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -346,19 +343,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -367,23 +364,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -408,13 +405,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -445,6 +439,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -489,10 +486,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-CH.json b/vendor/commerceguys/intl/resources/currency/pt-CH.json
index e554f1fe6..12d872afa 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-CH.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-CH.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -253,37 +253,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -293,7 +293,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -314,7 +314,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -332,9 +332,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -345,19 +342,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -366,23 +363,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -407,13 +404,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -444,6 +438,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -488,10 +485,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-CV.json b/vendor/commerceguys/intl/resources/currency/pt-CV.json
index 0eea46f61..d71dae713 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-CV.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-CV.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,27 +167,27 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano",
+ "name": "escudo cabo-verdiano",
"symbol": "​"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -214,16 +214,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -236,7 +236,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -254,37 +254,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -294,7 +294,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -315,7 +315,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -333,9 +333,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -346,19 +343,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -367,23 +364,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -408,13 +405,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -445,6 +439,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -489,10 +486,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-GQ.json b/vendor/commerceguys/intl/resources/currency/pt-GQ.json
index e554f1fe6..12d872afa 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-GQ.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-GQ.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -253,37 +253,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -293,7 +293,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -314,7 +314,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -332,9 +332,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -345,19 +342,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -366,23 +363,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -407,13 +404,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -444,6 +438,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -488,10 +485,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-GW.json b/vendor/commerceguys/intl/resources/currency/pt-GW.json
index e554f1fe6..12d872afa 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-GW.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-GW.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -253,37 +253,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -293,7 +293,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -314,7 +314,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -332,9 +332,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -345,19 +342,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -366,23 +363,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -407,13 +404,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -444,6 +438,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -488,10 +485,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-LU.json b/vendor/commerceguys/intl/resources/currency/pt-LU.json
index e554f1fe6..12d872afa 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-LU.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-LU.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -253,37 +253,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -293,7 +293,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -314,7 +314,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -332,9 +332,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -345,19 +342,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -366,23 +363,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -407,13 +404,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -444,6 +438,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -488,10 +485,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-MO.json b/vendor/commerceguys/intl/resources/currency/pt-MO.json
index f625f9ae0..634adb2e3 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-MO.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-MO.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -253,37 +253,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -293,7 +293,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -314,7 +314,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -332,9 +332,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -346,19 +343,19 @@
"symbol": "MOP$"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -367,23 +364,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -408,13 +405,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -445,6 +439,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -489,10 +486,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-MZ.json b/vendor/commerceguys/intl/resources/currency/pt-MZ.json
index df00f7b90..7d32a696c 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-MZ.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-MZ.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -253,37 +253,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -293,7 +293,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -314,7 +314,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique",
@@ -333,9 +333,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -346,19 +343,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -367,23 +364,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -408,13 +405,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -445,6 +439,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -489,10 +486,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-PT.json b/vendor/commerceguys/intl/resources/currency/pt-PT.json
index e554f1fe6..12d872afa 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-PT.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-PT.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -253,37 +253,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -293,7 +293,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -314,7 +314,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -332,9 +332,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -345,19 +342,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -366,23 +363,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -407,13 +404,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -444,6 +438,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -488,10 +485,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-ST.json b/vendor/commerceguys/intl/resources/currency/pt-ST.json
index 9e1aadb6c..8165ccfc0 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-ST.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-ST.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe",
@@ -93,29 +93,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -141,13 +141,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -168,26 +168,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -214,16 +214,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -236,7 +236,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -254,37 +254,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -294,7 +294,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -315,7 +315,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -333,9 +333,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -346,19 +343,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -367,23 +364,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -408,13 +405,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -445,6 +439,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -489,10 +486,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt-TL.json b/vendor/commerceguys/intl/resources/currency/pt-TL.json
index e554f1fe6..12d872afa 100644
--- a/vendor/commerceguys/intl/resources/currency/pt-TL.json
+++ b/vendor/commerceguys/intl/resources/currency/pt-TL.json
@@ -10,16 +10,16 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa do Panamá"
+ "name": "balboa do Panamá"
},
"ETB": {
"name": "Birr etíope"
},
"VEF": {
- "name": "Bolívar venezuelano"
+ "name": "bolívar"
},
"BOB": {
- "name": "Boliviano"
+ "name": "boliviano"
},
"GHS": {
"name": "Cedi de Gana"
@@ -28,31 +28,31 @@
"name": "Colom salvadorenho"
},
"CRC": {
- "name": "Colon costa-riquenho"
+ "name": "colon costa-riquenho"
},
"NIO": {
- "name": "Córdoba nicaraguano"
+ "name": "córdoba nicaraguano"
},
"CZK": {
- "name": "Coroa checa"
+ "name": "coroa checa"
},
"DKK": {
- "name": "Coroa dinamarquesa"
+ "name": "coroa dinamarquesa"
},
"ISK": {
- "name": "Coroa islandesa"
+ "name": "coroa islandesa"
},
"NOK": {
- "name": "Coroa norueguesa"
+ "name": "coroa norueguesa"
},
"SEK": {
- "name": "Coroa sueca"
+ "name": "coroa sueca"
},
"GMD": {
"name": "Dalasi da Gâmbia"
},
"DZD": {
- "name": "Dinar argelino"
+ "name": "dinar argelino"
},
"BHD": {
"name": "Dinar baremita"
@@ -67,22 +67,22 @@
"name": "Dinar kuwaitiano"
},
"LYD": {
- "name": "Dinar líbio"
+ "name": "dinar líbio"
},
"MKD": {
- "name": "Dinar macedónio"
+ "name": "dinar macedónio"
},
"RSD": {
- "name": "Dinar sérvio"
+ "name": "dinar sérvio"
},
"TND": {
- "name": "Dinar tunisino"
+ "name": "dinar tunisino"
},
"AED": {
"name": "Dirham dos Emirados Árabes Unidos"
},
"MAD": {
- "name": "Dirham marroquino"
+ "name": "dirham marroquino"
},
"STD": {
"name": "Dobra de São Tomé e Príncipe"
@@ -92,29 +92,29 @@
"symbol": "AU$"
},
"BBD": {
- "name": "Dólar barbadense"
+ "name": "dólar barbadense"
},
"BZD": {
- "name": "Dólar belizense"
+ "name": "dólar belizense"
},
"BMD": {
- "name": "Dólar bermudense"
+ "name": "dólar bermudense"
},
"BND": {
"name": "Dólar bruneíno"
},
"CAD": {
- "name": "Dólar canadiano",
+ "name": "dólar canadiano",
"symbol": "CA$"
},
"GYD": {
- "name": "Dólar da Guiana"
+ "name": "dólar da Guiana"
},
"NAD": {
"name": "Dólar da Namíbia"
},
"BSD": {
- "name": "Dólar das Bahamas"
+ "name": "dólar das Bahamas"
},
"XCD": {
"name": "Dólar das Caraíbas Orientais",
@@ -140,13 +140,13 @@
"name": "Dólar de Trindade e Tobago"
},
"SRD": {
- "name": "Dólar do Suriname"
+ "name": "dólar do Suriname"
},
"ZWL": {
"name": "Dólar do Zimbábue (2009)"
},
"USD": {
- "name": "Dólar dos Estados Unidos",
+ "name": "dólar dos Estados Unidos",
"symbol": "US$"
},
"JMD": {
@@ -167,26 +167,26 @@
"name": "Dram arménio"
},
"CVE": {
- "name": "Escudo cabo-verdiano"
+ "name": "escudo cabo-verdiano"
},
"EUR": {
- "name": "Euro",
+ "name": "euro",
"symbol": "€"
},
"ANG": {
"name": "Florim das Antilhas Holandesas"
},
"AWG": {
- "name": "Florim de Aruba"
+ "name": "florim de Aruba"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "forint húngaro"
},
"BIF": {
"name": "Franco burundiano"
},
"XOF": {
- "name": "Franco CFA (BCEAO)",
+ "name": "franco CFA (BCEAO)",
"symbol": "CFA"
},
"XAF": {
@@ -213,16 +213,16 @@
"name": "Franco ruandês"
},
"CHF": {
- "name": "Franco suíço"
+ "name": "franco suíço"
},
"HTG": {
"name": "Gourde haitiano"
},
"PYG": {
- "name": "Guarani paraguaio"
+ "name": "guarani paraguaio"
},
"UAH": {
- "name": "Hryvnia da Ucrânia"
+ "name": "hryvnia ucraniano"
},
"JPY": {
"name": "Iene japonês",
@@ -235,7 +235,7 @@
"name": "Kip de Laos"
},
"HRK": {
- "name": "Kuna croata"
+ "name": "kuna croata"
},
"MWK": {
"name": "Kwacha do Malawi"
@@ -253,37 +253,37 @@
"name": "Lari georgiano"
},
"ALL": {
- "name": "Lek albanês"
+ "name": "lek albanês"
},
"HNL": {
- "name": "Lempira das Honduras"
+ "name": "lempira das Honduras"
},
"SLL": {
"name": "Leone de Serra Leoa"
},
"MDL": {
- "name": "Leu moldavo"
+ "name": "leu moldavo"
},
"RON": {
- "name": "Leu romeno"
+ "name": "leu romeno"
},
"BGN": {
- "name": "Lev búlgaro"
+ "name": "lev búlgaro"
},
"FKP": {
- "name": "Libra das Ilhas Falkland"
+ "name": "libra das Ilhas Falkland"
},
"GIP": {
- "name": "Libra de Gibraltar"
+ "name": "libra de Gibraltar"
},
"SHP": {
"name": "Libra de Santa Helena"
},
"EGP": {
- "name": "Libra egípcia"
+ "name": "libra egípcia"
},
"GBP": {
- "name": "Libra esterlina britânica",
+ "name": "libra esterlina britânica",
"symbol": "£"
},
"LBP": {
@@ -293,7 +293,7 @@
"name": "Libra síria"
},
"SDG": {
- "name": "Libra sudanesa"
+ "name": "libra sudanesa"
},
"SSP": {
"name": "Libra sul-sudanesa"
@@ -314,7 +314,7 @@
"name": "Manat do Turquemenistão"
},
"BAM": {
- "name": "Marco bósnio-herzegóvino conversível"
+ "name": "marco bósnio-herzegóvino conversível"
},
"MZN": {
"name": "Metical de Moçambique"
@@ -332,9 +332,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya da Mauritânia"
},
@@ -345,19 +342,19 @@
"name": "Pataca de Macau"
},
"ARS": {
- "name": "Peso argentino"
+ "name": "peso argentino"
},
"CLP": {
- "name": "Peso chileno"
+ "name": "peso chileno"
},
"COP": {
- "name": "Peso colombiano"
+ "name": "peso colombiano"
},
"CUP": {
- "name": "Peso cubano"
+ "name": "peso cubano"
},
"CUC": {
- "name": "Peso cubano conversível"
+ "name": "peso cubano conversível"
},
"DOP": {
"name": "Peso dominicano"
@@ -366,23 +363,23 @@
"name": "Peso filipino"
},
"MXN": {
- "name": "Peso mexicano",
+ "name": "peso mexicano",
"symbol": "MX$"
},
"UYU": {
- "name": "Peso uruguaio"
+ "name": "peso uruguaio"
},
"BWP": {
"name": "Pula de Botswana"
},
"GTQ": {
- "name": "Quetzal da Guatemala"
+ "name": "quetzal da Guatemala"
},
"ZAR": {
"name": "Rand sul-africano"
},
"BRL": {
- "name": "Real brasileiro",
+ "name": "real brasileiro",
"symbol": "R$"
},
"OMR": {
@@ -407,13 +404,10 @@
"name": "Ringgit malaio"
},
"BYN": {
- "name": "Rublo bielorrusso"
- },
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
+ "name": "rublo bielorrusso"
},
"RUB": {
- "name": "Rublo russo"
+ "name": "rublo russo"
},
"MVR": {
"name": "Rupia das Ilhas Maldivas"
@@ -444,6 +438,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruano"
+ },
"KGS": {
"name": "Som do Quirguistão"
},
@@ -488,10 +485,10 @@
"name": "Xelim ugandense"
},
"CNY": {
- "name": "Yuan chinês",
+ "name": "yuan",
"symbol": "CN¥"
},
"PLN": {
- "name": "Zloti polaco"
+ "name": "zloti polaco"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/pt.json b/vendor/commerceguys/intl/resources/currency/pt.json
index 66d141e0a..f377de905 100644
--- a/vendor/commerceguys/intl/resources/currency/pt.json
+++ b/vendor/commerceguys/intl/resources/currency/pt.json
@@ -10,7 +10,7 @@
"symbol": "฿"
},
"PAB": {
- "name": "Balboa panamenha"
+ "name": "Balboa panamenho"
},
"ETB": {
"name": "Birr etíope"
@@ -78,12 +78,12 @@
"TND": {
"name": "Dinar tunisiano"
},
+ "MAD": {
+ "name": "Dirham marroquino"
+ },
"AED": {
"name": "Dirrã dos Emirados Árabes Unidos"
},
- "MAD": {
- "name": "Dirrã marroquino"
- },
"STD": {
"name": "Dobra de São Tomé e Príncipe"
},
@@ -115,7 +115,7 @@
"symbol": "CA$"
},
"KYD": {
- "name": "Dólar das Ilhas Caiman"
+ "name": "Dólar das Ilhas Cayman"
},
"SBD": {
"name": "Dólar das Ilhas Salomão"
@@ -180,7 +180,7 @@
"name": "Florim das Antilhas Holandesas"
},
"HUF": {
- "name": "Forint húngaro"
+ "name": "Florim húngaro"
},
"BIF": {
"name": "Franco burundiano"
@@ -198,13 +198,13 @@
"symbol": "CFPF"
},
"KMF": {
- "name": "Franco comorense"
+ "name": "Franco comoriano"
},
"CDF": {
"name": "Franco congolês"
},
"DJF": {
- "name": "Franco djibutiense"
+ "name": "Franco djiboutiano"
},
"GNF": {
"name": "Franco guineano"
@@ -238,7 +238,7 @@
"name": "Kuna croata"
},
"MWK": {
- "name": "Kwacha malawiana"
+ "name": "Kwacha malauiana"
},
"ZMW": {
"name": "Kwacha zambiano"
@@ -270,10 +270,6 @@
"BGN": {
"name": "Lev búlgaro"
},
- "GBP": {
- "name": "Libra britânica",
- "symbol": "£"
- },
"GIP": {
"name": "Libra de Gibraltar"
},
@@ -283,6 +279,10 @@
"EGP": {
"name": "Libra egípcia"
},
+ "GBP": {
+ "name": "Libra esterlina",
+ "symbol": "£"
+ },
"LBP": {
"name": "Libra libanesa"
},
@@ -314,7 +314,7 @@
"name": "Manat turcomeno"
},
"BAM": {
- "name": "Marco bósnio-herzegovino conversível"
+ "name": "Marco conversível da Bósnia e Herzegovina"
},
"MZN": {
"name": "Metical moçambicano"
@@ -332,9 +332,6 @@
"name": "Novo dólar taiwanês",
"symbol": "NT$"
},
- "PEN": {
- "name": "Novo sol peruano"
- },
"MRO": {
"name": "Ouguiya mauritana"
},
@@ -376,7 +373,7 @@
"name": "Pula botsuanesa"
},
"GTQ": {
- "name": "Quetzal guatemalense"
+ "name": "Quetzal guatemalteco"
},
"ZAR": {
"name": "Rand sul-africano"
@@ -409,9 +406,6 @@
"BYN": {
"name": "Rublo bielorrusso"
},
- "BYR": {
- "name": "Rublo bielorrusso (2000–2016)"
- },
"RUB": {
"name": "Rublo russo"
},
@@ -444,6 +438,9 @@
"name": "Sheqel novo israelita",
"symbol": "₪"
},
+ "PEN": {
+ "name": "Sol peruano"
+ },
"KGS": {
"name": "Som quirguiz"
},
diff --git a/vendor/commerceguys/intl/resources/currency/rm.json b/vendor/commerceguys/intl/resources/currency/rm.json
index 1722e52ab..a6841d2c5 100644
--- a/vendor/commerceguys/intl/resources/currency/rm.json
+++ b/vendor/commerceguys/intl/resources/currency/rm.json
@@ -318,9 +318,6 @@
"BGN": {
"name": "nov lev bulgar"
},
- "PEN": {
- "name": "nov sol peruan"
- },
"TRY": {
"name": "nova lira tirca"
},
@@ -395,9 +392,6 @@
"BYN": {
"name": "rubel bieloruss"
},
- "BYR": {
- "name": "rubel bieloruss (2000–2016)"
- },
"RUB": {
"name": "rubel russ (nov)"
},
@@ -442,6 +436,9 @@
"name": "sheqel",
"symbol": "₪"
},
+ "PEN": {
+ "name": "sol peruan"
+ },
"KGS": {
"name": "som kirghis"
},
diff --git a/vendor/commerceguys/intl/resources/currency/rn.json b/vendor/commerceguys/intl/resources/currency/rn.json
index 5f10865c5..9ccbcc9f7 100644
--- a/vendor/commerceguys/intl/resources/currency/rn.json
+++ b/vendor/commerceguys/intl/resources/currency/rn.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -90,7 +87,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -396,7 +393,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ro.json b/vendor/commerceguys/intl/resources/currency/ro.json
index 2e315443d..a23842570 100644
--- a/vendor/commerceguys/intl/resources/currency/ro.json
+++ b/vendor/commerceguys/intl/resources/currency/ro.json
@@ -389,9 +389,6 @@
"BYN": {
"name": "rublă belarusă"
},
- "BYR": {
- "name": "rublă belarusă (2000–2016)"
- },
"RUB": {
"name": "rublă rusească"
},
@@ -420,7 +417,7 @@
"name": "rupie srilankeză"
},
"PEN": {
- "name": "sol nou peruvian"
+ "name": "sol peruvian"
},
"KGS": {
"name": "som kârgâz"
diff --git a/vendor/commerceguys/intl/resources/currency/rof.json b/vendor/commerceguys/intl/resources/currency/rof.json
index a464a9b25..ef662550f 100644
--- a/vendor/commerceguys/intl/resources/currency/rof.json
+++ b/vendor/commerceguys/intl/resources/currency/rof.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -399,7 +396,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ru.json b/vendor/commerceguys/intl/resources/currency/ru.json
index 0a244498b..2e9e7cc41 100644
--- a/vendor/commerceguys/intl/resources/currency/ru.json
+++ b/vendor/commerceguys/intl/resources/currency/ru.json
@@ -1,500 +1,497 @@
{
"AUD": {
- "name": "Австралийский доллар",
+ "name": "австралийский доллар",
"symbol": "A$"
},
"AZN": {
- "name": "Азербайджанский манат"
+ "name": "азербайджанский манат"
},
"ALL": {
- "name": "Албанский лек"
+ "name": "албанский лек"
},
"DZD": {
- "name": "Алжирский динар"
+ "name": "алжирский динар"
},
"AOA": {
- "name": "Ангольская кванза"
+ "name": "ангольская кванза"
},
"ARS": {
- "name": "Аргентинское песо"
+ "name": "аргентинское песо"
},
"AMD": {
- "name": "Армянский драм"
+ "name": "армянский драм"
},
"AWG": {
- "name": "Арубанский флорин"
+ "name": "арубанский флорин"
},
"AFN": {
- "name": "Афгани"
+ "name": "афгани"
},
"BSD": {
- "name": "Багамский доллар"
+ "name": "багамский доллар"
},
"BDT": {
- "name": "Бангладешская така"
+ "name": "бангладешская така"
},
"BBD": {
- "name": "Барбадосский доллар"
+ "name": "барбадосский доллар"
},
"BHD": {
- "name": "Бахрейнский динар"
+ "name": "бахрейнский динар"
},
"BZD": {
- "name": "Белизский доллар"
+ "name": "белизский доллар"
},
"BYN": {
- "name": "Белорусский рубль"
- },
- "BYR": {
- "name": "Белорусский рубль (2000–2016)"
+ "name": "белорусский рубль"
},
"BMD": {
- "name": "Бермудский доллар"
+ "name": "бермудский доллар"
},
"BGN": {
- "name": "Болгарский лев"
+ "name": "болгарский лев"
},
"BOB": {
- "name": "Боливийский боливиано"
+ "name": "боливийский боливиано"
},
"BWP": {
- "name": "Ботсванская пула"
+ "name": "ботсванская пула"
},
"BRL": {
- "name": "Бразильский реал",
+ "name": "бразильский реал",
"symbol": "R$"
},
"GBP": {
- "name": "Британский фунт стерлингов",
+ "name": "британский фунт стерлингов",
"symbol": "£"
},
"BND": {
- "name": "Брунейский доллар"
+ "name": "брунейский доллар"
},
"BIF": {
- "name": "Бурундийский франк"
+ "name": "бурундийский франк"
},
"BTN": {
- "name": "Бутанский нгултрум"
+ "name": "бутанский нгултрум"
},
"VUV": {
- "name": "Вату Вануату"
+ "name": "вату Вануату"
},
"HUF": {
- "name": "Венгерский форинт"
+ "name": "венгерский форинт"
},
"VEF": {
- "name": "Венесуэльский боливар"
+ "name": "венесуэльский боливар"
},
"XCD": {
- "name": "Восточно-карибский доллар",
+ "name": "восточно-карибский доллар",
"symbol": "EC$"
},
"VND": {
- "name": "Вьетнамский донг",
+ "name": "вьетнамский донг",
"symbol": "₫"
},
"HTG": {
- "name": "Гаитянский гурд"
+ "name": "гаитянский гурд"
},
"GYD": {
- "name": "Гайанский доллар"
+ "name": "гайанский доллар"
},
"GMD": {
- "name": "Гамбийский даласи"
+ "name": "гамбийский даласи"
},
"GHS": {
- "name": "Ганский седи"
+ "name": "ганский седи"
},
"GTQ": {
- "name": "Гватемальский кетсаль"
+ "name": "гватемальский кетсаль"
},
"GNF": {
- "name": "Гвинейский франк"
+ "name": "гвинейский франк"
},
"GIP": {
- "name": "Гибралтарский фунт"
+ "name": "гибралтарский фунт"
},
"HNL": {
- "name": "Гондурасская лемпира"
+ "name": "гондурасская лемпира"
},
"HKD": {
- "name": "Гонконгский доллар",
+ "name": "гонконгский доллар",
"symbol": "HK$"
},
"GEL": {
- "name": "Грузинский лари"
+ "name": "грузинский лари"
},
"DKK": {
- "name": "Датская крона"
+ "name": "датская крона"
},
"AED": {
- "name": "Дирхам ОАЭ"
+ "name": "дирхам ОАЭ"
},
"STD": {
- "name": "Добра Сан-Томе и Принсипи"
+ "name": "добра Сан-Томе и Принсипи"
},
"ZWL": {
"name": "Доллар Зимбабве (2009)"
},
"KYD": {
- "name": "Доллар Каймановых островов"
+ "name": "доллар Каймановых островов"
},
"NAD": {
- "name": "Доллар Намибии"
+ "name": "доллар Намибии"
},
"SBD": {
- "name": "Доллар Соломоновых Островов"
+ "name": "доллар Соломоновых островов"
},
"USD": {
- "name": "Доллар США",
+ "name": "доллар США",
"symbol": "$"
},
"TTD": {
- "name": "Доллар Тринидада и Тобаго"
+ "name": "доллар Тринидада и Тобаго"
},
"FJD": {
- "name": "Доллар Фиджи"
+ "name": "доллар Фиджи"
},
"DOP": {
- "name": "Доминиканское песо"
+ "name": "доминиканское песо"
},
"EUR": {
- "name": "Евро",
+ "name": "евро",
"symbol": "€"
},
"EGP": {
- "name": "Египетский фунт"
+ "name": "египетский фунт"
},
"ZMW": {
- "name": "Замбийская квача"
+ "name": "замбийская квача"
},
"INR": {
- "name": "Индийская рупия",
+ "name": "индийская рупия",
"symbol": "₹"
},
"IDR": {
- "name": "Индонезийская рупия"
+ "name": "индонезийская рупия"
},
"JOD": {
- "name": "Иорданский динар"
+ "name": "иорданский динар"
},
"IQD": {
- "name": "Иракский динар"
+ "name": "иракский динар"
},
"IRR": {
- "name": "Иранский риал"
+ "name": "иранский риал"
},
"ISK": {
- "name": "Исландская крона"
+ "name": "исландская крона"
},
"YER": {
- "name": "Йеменский риал"
+ "name": "йеменский риал"
},
"KZT": {
- "name": "Казахский тенге"
+ "name": "казахский тенге"
},
"KHR": {
- "name": "Камбоджийский риель"
+ "name": "камбоджийский риель"
},
"CAD": {
- "name": "Канадский доллар",
+ "name": "канадский доллар",
"symbol": "CA$"
},
"QAR": {
- "name": "Катарский риал"
+ "name": "катарский риал"
},
"KES": {
- "name": "Кенийский шиллинг"
+ "name": "кенийский шиллинг"
},
"PGK": {
- "name": "Кина Папуа – Новой Гвинеи"
+ "name": "кина Папуа – Новой Гвинеи"
},
"KGS": {
- "name": "Киргизский сом"
+ "name": "киргизский сом"
},
"CNY": {
- "name": "Китайский юань",
+ "name": "китайский юань",
"symbol": "CN¥"
},
"COP": {
- "name": "Колумбийское песо"
+ "name": "колумбийское песо"
},
"BAM": {
- "name": "Конвертируемая марка Боснии и Герцеговины"
+ "name": "конвертируемая марка Боснии и Герцеговины"
},
"CDF": {
- "name": "Конголезский франк"
+ "name": "конголезский франк"
},
"CRC": {
- "name": "Костариканский колон"
+ "name": "костариканский колон"
},
"CUC": {
- "name": "Кубинское конвертируемое песо"
+ "name": "кубинское конвертируемое песо"
},
"CUP": {
- "name": "Кубинское песо"
+ "name": "кубинское песо"
},
"KWD": {
- "name": "Кувейтский динар"
+ "name": "кувейтский динар"
},
"LAK": {
- "name": "Лаосский кип"
+ "name": "лаосский кип"
},
"SLL": {
- "name": "Леоне"
+ "name": "леоне"
},
"LRD": {
- "name": "Либерийский доллар"
+ "name": "либерийский доллар"
},
"LBP": {
- "name": "Ливанский фунт"
+ "name": "ливанский фунт"
},
"LYD": {
- "name": "Ливийский динар"
+ "name": "ливийский динар"
},
"LSL": {
"name": "Лоти"
},
"MUR": {
- "name": "Маврикийская рупия"
+ "name": "маврикийская рупия"
},
"MRO": {
- "name": "Мавританская угия"
+ "name": "мавританская угия"
},
"MKD": {
- "name": "Македонский денар"
+ "name": "македонский денар"
},
"MWK": {
- "name": "Малавийская квача"
+ "name": "малавийская квача"
},
"MGA": {
- "name": "Малагасийский ариари"
+ "name": "малагасийский ариари"
},
"MYR": {
- "name": "Малайзийский ринггит"
+ "name": "малайзийский ринггит"
},
"MVR": {
- "name": "Мальдивская руфия"
+ "name": "мальдивская руфия"
},
"MAD": {
- "name": "Марокканский дирхам"
+ "name": "марокканский дирхам"
},
"MXN": {
- "name": "Мексиканское песо",
+ "name": "мексиканское песо",
"symbol": "MX$"
},
"MZN": {
- "name": "Мозамбикский метикал"
+ "name": "мозамбикский метикал"
},
"MDL": {
- "name": "Молдавский лей"
+ "name": "молдавский лей"
},
"MNT": {
- "name": "Монгольский тугрик"
+ "name": "монгольский тугрик"
},
"MMK": {
- "name": "Мьянманский кьят"
- },
- "ERN": {
- "name": "Накфа"
+ "name": "мьянманский кьят"
},
"NPR": {
- "name": "Непальская рупия"
+ "name": "непальская рупия"
},
"NGN": {
- "name": "Нигерийская найра"
+ "name": "нигерийская найра"
},
"ANG": {
- "name": "Нидерландский антильский гульден"
+ "name": "нидерландский антильский гульден"
},
"NIO": {
- "name": "Никарагуанская кордоба"
+ "name": "никарагуанская кордоба"
},
"NZD": {
- "name": "Новозеландский доллар",
+ "name": "новозеландский доллар",
"symbol": "NZ$"
},
"ILS": {
- "name": "Новый израильский шекель",
+ "name": "новый израильский шекель",
"symbol": "₪"
},
"TWD": {
- "name": "Новый тайваньский доллар",
+ "name": "новый тайваньский доллар",
"symbol": "NT$"
},
"TMT": {
- "name": "Новый туркменский манат",
+ "name": "новый туркменский манат",
"symbol": "ТМТ"
},
"NOK": {
- "name": "Норвежская крона"
+ "name": "норвежская крона"
},
"OMR": {
- "name": "Оманский риал"
+ "name": "оманский риал"
},
"PKR": {
- "name": "Пакистанская рупия"
+ "name": "пакистанская рупия"
},
"PAB": {
- "name": "Панамское бальбоа"
+ "name": "панамский бальбоа"
},
"PYG": {
- "name": "Парагвайский гуарани"
+ "name": "парагвайский гуарани"
},
"MOP": {
- "name": "Патака Макао"
+ "name": "патака Макао"
},
"PEN": {
- "name": "Перуанский новый соль"
+ "name": "перуанский соль"
},
"PLN": {
- "name": "Польский злотый"
+ "name": "польский злотый"
},
"RUB": {
- "name": "Российский рубль",
+ "name": "российский рубль",
"symbol": "₽"
},
"RON": {
- "name": "Румынский лей"
+ "name": "румынский лей"
},
"SVC": {
"name": "Сальвадорский колон"
},
"WST": {
- "name": "Самоанская тала"
+ "name": "самоанская тала"
},
"SAR": {
- "name": "Саудовский риял"
+ "name": "саудовский риял"
},
"SZL": {
- "name": "Свазилендский лилангени"
+ "name": "свазилендский лилангени"
},
"KPW": {
- "name": "Северокорейская вона"
+ "name": "северокорейская вона"
},
"SCR": {
- "name": "Сейшельская рупия"
+ "name": "сейшельская рупия"
},
"RSD": {
- "name": "Сербский динар"
+ "name": "сербский динар"
},
"SGD": {
- "name": "Сингапурский доллар"
+ "name": "сингапурский доллар"
},
"SYP": {
- "name": "Сирийский фунт"
+ "name": "сирийский фунт"
},
"SOS": {
- "name": "Сомалийский шиллинг"
+ "name": "сомалийский шиллинг"
},
"SDG": {
- "name": "Суданский фунт"
+ "name": "суданский фунт"
},
"SRD": {
- "name": "Суринамский доллар"
+ "name": "суринамский доллар"
},
"TJS": {
- "name": "Таджикский сомони"
+ "name": "таджикский сомони"
},
"THB": {
- "name": "Таиландский бат",
+ "name": "таиландский бат",
"symbol": "฿"
},
"TZS": {
- "name": "Танзанийский шиллинг"
+ "name": "танзанийский шиллинг"
},
"TOP": {
- "name": "Тонганская паанга"
+ "name": "тонганская паанга"
},
"TND": {
- "name": "Тунисский динар"
+ "name": "тунисский динар"
},
"TRY": {
- "name": "Турецкая лира"
+ "name": "турецкая лира"
},
"UGX": {
- "name": "Угандийский шиллинг"
+ "name": "угандийский шиллинг"
},
"UZS": {
- "name": "Узбекский сум"
+ "name": "узбекский сум"
},
"UAH": {
- "name": "Украинская гривна",
+ "name": "украинская гривна",
"symbol": "₴"
},
"UYU": {
- "name": "Уругвайское песо"
+ "name": "уругвайское песо"
},
"PHP": {
- "name": "Филиппинское песо"
+ "name": "филиппинское песо"
},
"DJF": {
- "name": "Франк Джибути"
+ "name": "франк Джибути"
},
"KMF": {
- "name": "Франк Коморских Островов"
- },
- "XAF": {
- "name": "Франк КФА ВЕАС",
- "symbol": "FCFA"
+ "name": "франк Коморских островов"
},
"XOF": {
- "name": "Франк КФА ВСЕАО",
+ "name": "франк КФА ВСЕАО",
"symbol": "CFA"
},
+ "XAF": {
+ "name": "франк КФА BEAC",
+ "symbol": "FCFA"
+ },
"RWF": {
- "name": "Франк Руанды"
+ "name": "франк Руанды"
},
"XPF": {
- "name": "Французский тихоокеанский франк",
+ "name": "французский тихоокеанский франк",
"symbol": "CFPF"
},
"SHP": {
- "name": "Фунт острова Святой Елены"
+ "name": "фунт острова Святой Елены"
},
"FKP": {
- "name": "Фунт Фолклендских островов"
+ "name": "фунт Фолклендских островов"
},
"HRK": {
- "name": "Хорватская куна"
+ "name": "хорватская куна"
},
"CZK": {
- "name": "Чешская крона"
+ "name": "чешская крона"
},
"CLP": {
- "name": "Чилийское песо"
+ "name": "чилийское песо"
},
"SEK": {
- "name": "Шведская крона"
+ "name": "шведская крона"
},
"CHF": {
- "name": "Швейцарский франк"
+ "name": "швейцарский франк"
},
"LKR": {
- "name": "Шри-ланкийская рупия"
+ "name": "шри-ланкийская рупия"
+ },
+ "ERN": {
+ "name": "эритрейская накфа"
},
"CVE": {
- "name": "Эскудо Кабо-Верде"
+ "name": "эскудо Кабо-Верде"
},
"ETB": {
- "name": "Эфиопский быр"
+ "name": "эфиопский быр"
},
"ZAR": {
- "name": "Южноафриканский рэнд"
+ "name": "южноафриканский рэнд"
},
"KRW": {
- "name": "Южнокорейская вона",
+ "name": "южнокорейская вона",
"symbol": "₩"
},
"SSP": {
- "name": "Южносуданский фунт"
+ "name": "южносуданский фунт"
},
"JMD": {
- "name": "Ямайский доллар"
+ "name": "ямайский доллар"
},
"JPY": {
- "name": "Японская иена",
+ "name": "японская иена",
"symbol": "¥"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/rwk.json b/vendor/commerceguys/intl/resources/currency/rwk.json
index 61220f73e..f5fec488b 100644
--- a/vendor/commerceguys/intl/resources/currency/rwk.json
+++ b/vendor/commerceguys/intl/resources/currency/rwk.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/saq.json b/vendor/commerceguys/intl/resources/currency/saq.json
index 0cf830b9f..ccf37f8de 100644
--- a/vendor/commerceguys/intl/resources/currency/saq.json
+++ b/vendor/commerceguys/intl/resources/currency/saq.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -399,7 +396,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/sbp.json b/vendor/commerceguys/intl/resources/currency/sbp.json
index b5e75288e..116fc4d76 100644
--- a/vendor/commerceguys/intl/resources/currency/sbp.json
+++ b/vendor/commerceguys/intl/resources/currency/sbp.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -403,7 +400,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/sd.json b/vendor/commerceguys/intl/resources/currency/sd.json
new file mode 100644
index 000000000..7495a2eff
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/currency/sd.json
@@ -0,0 +1,494 @@
+{
+ "XPF": {
+ "name": "CFP فرينڪ",
+ "symbol": "CFPF"
+ },
+ "LSL": {
+ "name": "Lesotho Loti"
+ },
+ "SVC": {
+ "name": "Salvadoran Colón"
+ },
+ "ZWL": {
+ "name": "Zimbabwean Dollar (2009)"
+ },
+ "ISK": {
+ "name": "آئيس لينڊي ڪرونا"
+ },
+ "AZN": {
+ "name": "آذربائيجاني منت"
+ },
+ "AUD": {
+ "name": "آسٽريلوي ڊالر",
+ "symbol": "A$"
+ },
+ "USD": {
+ "name": "آمريڪي ڊالر",
+ "symbol": "US$"
+ },
+ "KPW": {
+ "name": "اتر ڪوريائي ون"
+ },
+ "ARS": {
+ "name": "ارجنٽائن پيسو"
+ },
+ "JOD": {
+ "name": "اردني دينار"
+ },
+ "AMD": {
+ "name": "ارماني ڊرم"
+ },
+ "AWG": {
+ "name": "اروبن فلورن"
+ },
+ "UZS": {
+ "name": "ازبڪستاني سوم"
+ },
+ "ILS": {
+ "name": "اسرائيلي نيو شيڪل",
+ "symbol": "₪"
+ },
+ "AFN": {
+ "name": "افغاني افغاني"
+ },
+ "ALL": {
+ "name": "الباني ليڪ"
+ },
+ "DZD": {
+ "name": "الجيريائي دينار"
+ },
+ "IDR": {
+ "name": "انڊونيشيائي رپيه"
+ },
+ "INR": {
+ "name": "انڊين رپي",
+ "symbol": "₹"
+ },
+ "AOA": {
+ "name": "انگوليائي ڪوانزا"
+ },
+ "XCD": {
+ "name": "اوڀر ڪيريبين ڊالر",
+ "symbol": "EC$"
+ },
+ "XOF": {
+ "name": "اولهه آفريڪا فرينڪ",
+ "symbol": "CFA"
+ },
+ "ETB": {
+ "name": "ايٿوپيائي بر"
+ },
+ "IRR": {
+ "name": "ايراني ريال"
+ },
+ "ERN": {
+ "name": "ايريٽيريائي ناڪفا"
+ },
+ "BBD": {
+ "name": "باربيڊين ڊالر"
+ },
+ "BHD": {
+ "name": "بحريني دينار"
+ },
+ "BRL": {
+ "name": "برازيلي ريل",
+ "symbol": "R$"
+ },
+ "GBP": {
+ "name": "برطانوي پائونڊ",
+ "symbol": "£"
+ },
+ "BMD": {
+ "name": "برمودي ڊالر"
+ },
+ "BND": {
+ "name": "برونائي ڊالر"
+ },
+ "BIF": {
+ "name": "برونڊي فرينڪ"
+ },
+ "BGN": {
+ "name": "بلغارین لیو"
+ },
+ "BDT": {
+ "name": "بنگلاديشي ٽڪا"
+ },
+ "BSD": {
+ "name": "بهاماني ڊادلر"
+ },
+ "BWP": {
+ "name": "بوستواني پولا"
+ },
+ "BAM": {
+ "name": "بوسنيا هرزگوينا ڪنورٽبل مارڪ"
+ },
+ "BOB": {
+ "name": "بولیوین بولیویانو"
+ },
+ "BZD": {
+ "name": "بيليز ڊالر"
+ },
+ "BYN": {
+ "name": "بیلاروسی ربل"
+ },
+ "PGK": {
+ "name": "پاپوا نيو گني ڪنا"
+ },
+ "PKR": {
+ "name": "پاڪستاني رپي",
+ "symbol": "Rs"
+ },
+ "PAB": {
+ "name": "پاناما پالبوا"
+ },
+ "PLN": {
+ "name": "پولش زلاٽي"
+ },
+ "PYG": {
+ "name": "پيراگوئي گاراني"
+ },
+ "PEN": {
+ "name": "پيرو سول"
+ },
+ "BTN": {
+ "name": "ڀوٽاني گلٽرم"
+ },
+ "TJS": {
+ "name": "تاجڪستاني سوموني"
+ },
+ "TMT": {
+ "name": "ترڪمانستان منت"
+ },
+ "TRY": {
+ "name": "ترڪي لرا"
+ },
+ "TZS": {
+ "name": "تنزانيائي شلنگ"
+ },
+ "TOP": {
+ "name": "تونگن پانگا"
+ },
+ "TND": {
+ "name": "تیونس دینار"
+ },
+ "TTD": {
+ "name": "ٽرينڊيڊ ۽ ٽوباگو ڊالر"
+ },
+ "THB": {
+ "name": "ٿائي باهت"
+ },
+ "JPY": {
+ "name": "جاپاني يين",
+ "symbol": "JP¥"
+ },
+ "GEL": {
+ "name": "جارجيائي لاري"
+ },
+ "GIP": {
+ "name": "جبرالٽر پائونڊ"
+ },
+ "DJF": {
+ "name": "جبوتي فرينڪ"
+ },
+ "JMD": {
+ "name": "جميڪائي ڊالر"
+ },
+ "CLP": {
+ "name": "چلي پيسو"
+ },
+ "CZK": {
+ "name": "چيڪ ڪرونا"
+ },
+ "CNY": {
+ "name": "چيني يوآن",
+ "symbol": "CN¥"
+ },
+ "DKK": {
+ "name": "دانش ڪرون"
+ },
+ "DOP": {
+ "name": "ڊومينيڪن پيسو"
+ },
+ "ZAR": {
+ "name": "ڏکڻ آفريقي رانڊ"
+ },
+ "SSP": {
+ "name": "ڏکڻ سوڊاني پائونڊ"
+ },
+ "KRW": {
+ "name": "ڏکڻ ڪوريائي ون",
+ "symbol": "₩"
+ },
+ "RWF": {
+ "name": "روانڊا فرينڪ"
+ },
+ "RUB": {
+ "name": "روسي ربل"
+ },
+ "RON": {
+ "name": "رومانیائي لیو"
+ },
+ "ZMW": {
+ "name": "زمبائي ڪواچا"
+ },
+ "STD": {
+ "name": "سائو ٽوم ۽ پرنسپي دوبرا"
+ },
+ "WST": {
+ "name": "ساموآن ٽالا"
+ },
+ "RSD": {
+ "name": "سربيا دينار"
+ },
+ "LKR": {
+ "name": "سري لنڪن رپي"
+ },
+ "SRD": {
+ "name": "سرينامي ڊالر"
+ },
+ "SCR": {
+ "name": "سشلي رپي"
+ },
+ "SAR": {
+ "name": "سعودي ريال"
+ },
+ "SGD": {
+ "name": "سنگاپوري ڊالر"
+ },
+ "CHF": {
+ "name": "سوئس فرينڪ"
+ },
+ "SZL": {
+ "name": "سوازي للانگيني"
+ },
+ "SDG": {
+ "name": "سوڊاني پائونڊ"
+ },
+ "SBD": {
+ "name": "سولومان ٻيٽ ڊالر"
+ },
+ "SOS": {
+ "name": "سومالي شلنگ"
+ },
+ "SEK": {
+ "name": "سويڊني ڪرونا"
+ },
+ "SYP": {
+ "name": "سيريائي پائونڊ"
+ },
+ "SHP": {
+ "name": "سينٽ هيلنا پائونڊ"
+ },
+ "SLL": {
+ "name": "سیرا لیونيائي لیون"
+ },
+ "IQD": {
+ "name": "عراقي دينار"
+ },
+ "OMR": {
+ "name": "عماني ريال"
+ },
+ "FKP": {
+ "name": "فاڪلينڊ ٻيٽ پائونڊ"
+ },
+ "FJD": {
+ "name": "فجي ڊالر"
+ },
+ "PHP": {
+ "name": "فلپائني پيسو"
+ },
+ "KZT": {
+ "name": "قازقستان ٽينگا"
+ },
+ "QAR": {
+ "name": "قطري ريال"
+ },
+ "CAD": {
+ "name": "ڪئينڊيائي ڊالر",
+ "symbol": "CA$"
+ },
+ "CDF": {
+ "name": "ڪانگو فرينڪ"
+ },
+ "KGS": {
+ "name": "ڪرغزستاني سوم"
+ },
+ "HRK": {
+ "name": "ڪروشيائي ڪونا"
+ },
+ "KHR": {
+ "name": "ڪمبوڊيائي ريال"
+ },
+ "CRC": {
+ "name": "ڪوسٽا ريڪا ڪولن"
+ },
+ "COP": {
+ "name": "ڪولمبيائي پيسو"
+ },
+ "KMF": {
+ "name": "ڪوموريائي فرينڪ"
+ },
+ "KWD": {
+ "name": "ڪويتي دينار"
+ },
+ "CVE": {
+ "name": "ڪيپ وردي ايسڪوڊو"
+ },
+ "KYD": {
+ "name": "ڪيمين ٻيٽ ڊالر"
+ },
+ "KES": {
+ "name": "ڪينيائي سلنگ"
+ },
+ "CUP": {
+ "name": "ڪيوبن پيسو"
+ },
+ "CUC": {
+ "name": "ڪيوبن ڪنورٽيبل پيسو"
+ },
+ "AED": {
+ "name": "گڏيل عرب امارات درهم"
+ },
+ "GNF": {
+ "name": "گني فرينڪ"
+ },
+ "GHS": {
+ "name": "گهانين سيدي"
+ },
+ "GTQ": {
+ "name": "گوئٽي مالا ڪٽزل"
+ },
+ "GYD": {
+ "name": "گيانا ڊالر"
+ },
+ "GMD": {
+ "name": "گيمبيا دلاسائي"
+ },
+ "LRD": {
+ "name": "لائبیریائی ڊالر"
+ },
+ "LAK": {
+ "name": "لائوشيائي ڪپ"
+ },
+ "LBP": {
+ "name": "لبناني پائونڊ"
+ },
+ "LYD": {
+ "name": "لبيائي دينار"
+ },
+ "MUR": {
+ "name": "ماريشيائي رپي"
+ },
+ "MVR": {
+ "name": "مالديپ روفيا"
+ },
+ "MDL": {
+ "name": "مالديپ ليو"
+ },
+ "EGP": {
+ "name": "مصري پائونڊ"
+ },
+ "MYR": {
+ "name": "ملائيشيائي رنگٽ"
+ },
+ "MGA": {
+ "name": "ملاگاسي اریاری"
+ },
+ "MWK": {
+ "name": "ملاوي ڪواچا"
+ },
+ "MNT": {
+ "name": "منگولي تجرڪ"
+ },
+ "MAD": {
+ "name": "موروڪيائي درهم"
+ },
+ "MRO": {
+ "name": "موريشيائي اوگوئیا"
+ },
+ "MZN": {
+ "name": "موزمبيق ميٽيڪل"
+ },
+ "MMK": {
+ "name": "ميانمار ڪياٽ"
+ },
+ "MKD": {
+ "name": "ميسي ڊوني دينار"
+ },
+ "MOP": {
+ "name": "ميڪانيز پٽاڪا"
+ },
+ "MXN": {
+ "name": "ميڪسيڪو پيسو",
+ "symbol": "MX$"
+ },
+ "NGN": {
+ "name": "نائجريائي نائرا"
+ },
+ "NOK": {
+ "name": "نارويائي ڪرون"
+ },
+ "NIO": {
+ "name": "نڪارا گوا ڪارڊوبا"
+ },
+ "NAD": {
+ "name": "نميبائي ڊالر"
+ },
+ "NPR": {
+ "name": "نيپالي رپي"
+ },
+ "ANG": {
+ "name": "نيڌرلينڊ انٽليئن گلڊر"
+ },
+ "TWD": {
+ "name": "نيو تائيوان ڊالر",
+ "symbol": "NT$"
+ },
+ "NZD": {
+ "name": "نيوزي لينڊي ڊالر",
+ "symbol": "NZ$"
+ },
+ "HKD": {
+ "name": "هانگ ڪانگ ڊالر",
+ "symbol": "HK$"
+ },
+ "HUF": {
+ "name": "هنگيرين فورنٽ"
+ },
+ "HNL": {
+ "name": "هونڊوراس ليمپرا"
+ },
+ "HTG": {
+ "name": "هيٽي گورڊي"
+ },
+ "VUV": {
+ "name": "وانواتو واتو"
+ },
+ "XAF": {
+ "name": "وچ آفريڪا فرينڪ",
+ "symbol": "FCFA"
+ },
+ "VND": {
+ "name": "ويٽنامي ڊونگ",
+ "symbol": "₫"
+ },
+ "VEF": {
+ "name": "وینزویلا بولیور"
+ },
+ "UGX": {
+ "name": "يگانڊا شلنگ"
+ },
+ "YER": {
+ "name": "يمني ريال"
+ },
+ "EUR": {
+ "name": "يورو",
+ "symbol": "€"
+ },
+ "UYU": {
+ "name": "يوروگوئي پيسو"
+ },
+ "UAH": {
+ "name": "یوڪرائن هریونیا"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/seh.json b/vendor/commerceguys/intl/resources/currency/seh.json
index 2f68b62c2..b7ae8882e 100644
--- a/vendor/commerceguys/intl/resources/currency/seh.json
+++ b/vendor/commerceguys/intl/resources/currency/seh.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -98,7 +95,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi de Gâmbia"
@@ -368,7 +365,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ses.json b/vendor/commerceguys/intl/resources/currency/ses.json
index fddc77db1..bc323e79e 100644
--- a/vendor/commerceguys/intl/resources/currency/ses.json
+++ b/vendor/commerceguys/intl/resources/currency/ses.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -117,7 +114,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -362,7 +359,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/sg.json b/vendor/commerceguys/intl/resources/currency/sg.json
index 268829582..1ee13e081 100644
--- a/vendor/commerceguys/intl/resources/currency/sg.json
+++ b/vendor/commerceguys/intl/resources/currency/sg.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -92,7 +89,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "dalasi tî gambïi"
@@ -343,7 +340,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/shi-Latn.json b/vendor/commerceguys/intl/resources/currency/shi-Latn.json
index 10638b572..91315e45b 100644
--- a/vendor/commerceguys/intl/resources/currency/shi-Latn.json
+++ b/vendor/commerceguys/intl/resources/currency/shi-Latn.json
@@ -129,9 +129,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -189,7 +186,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "dalasi n gambya"
@@ -395,7 +392,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/shi.json b/vendor/commerceguys/intl/resources/currency/shi.json
index 317c61300..2c2b02fa2 100644
--- a/vendor/commerceguys/intl/resources/currency/shi.json
+++ b/vendor/commerceguys/intl/resources/currency/shi.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -242,7 +239,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/si.json b/vendor/commerceguys/intl/resources/currency/si.json
index c5e45dbad..41b90d3b7 100644
--- a/vendor/commerceguys/intl/resources/currency/si.json
+++ b/vendor/commerceguys/intl/resources/currency/si.json
@@ -255,7 +255,7 @@
"name": "පිලිපීන පෙසෝ"
},
"PEN": {
- "name": "පේරු නියුවෝ සොල්"
+ "name": "පේරු සොල්"
},
"PLN": {
"name": "පොලිෂ් ස්ලොටි"
@@ -294,9 +294,6 @@
"BYN": {
"name": "බෙලරූස් රූබල්"
},
- "BYR": {
- "name": "බෙලරූස් රූබල් (2000–2016)"
- },
"BZD": {
"name": "බෙලීස් ඩොලර්"
},
diff --git a/vendor/commerceguys/intl/resources/currency/sk.json b/vendor/commerceguys/intl/resources/currency/sk.json
index 64a03dd89..53fbb2e6a 100644
--- a/vendor/commerceguys/intl/resources/currency/sk.json
+++ b/vendor/commerceguys/intl/resources/currency/sk.json
@@ -56,12 +56,12 @@
"BYN": {
"name": "bieloruský rubeľ"
},
- "BYR": {
- "name": "bieloruský rubeľ (2000–2016)"
- },
"BOB": {
"name": "bolívijské boliviano"
},
+ "BAM": {
+ "name": "bosniansko-hercegovinská konvertibilná marka"
+ },
"BWP": {
"name": "botswanská pula"
},
@@ -227,9 +227,6 @@
"KMF": {
"name": "komorský frank"
},
- "BAM": {
- "name": "konvertibilná marka"
- },
"CDF": {
"name": "konžský frank"
},
@@ -249,7 +246,7 @@
"name": "laoský kip"
},
"LSL": {
- "name": "Lesothský loti"
+ "name": "lesothský loti"
},
"LBP": {
"name": "libanonská libra"
@@ -343,7 +340,7 @@
"name": "paraguajské guaraní"
},
"PEN": {
- "name": "peruánsky nový sol"
+ "name": "peruánsky sol"
},
"PLN": {
"name": "poľský zlotý"
@@ -361,7 +358,7 @@
"name": "SAE dirham"
},
"SVC": {
- "name": "Salvádorský colón"
+ "name": "salvádorský colón"
},
"WST": {
"name": "samojská tala"
@@ -478,6 +475,6 @@
"symbol": "CFA"
},
"ZWL": {
- "name": "Zimbabwiansky dolár (2009)"
+ "name": "zimbabwiansky dolár (2009)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/sl.json b/vendor/commerceguys/intl/resources/currency/sl.json
index 32db310c5..7f2373fff 100644
--- a/vendor/commerceguys/intl/resources/currency/sl.json
+++ b/vendor/commerceguys/intl/resources/currency/sl.json
@@ -25,8 +25,7 @@
"name": "arubski florin"
},
"AUD": {
- "name": "avstralski dolar",
- "symbol": "A$"
+ "name": "avstralski dolar"
},
"AZN": {
"name": "azerbajdžanski manat"
@@ -49,9 +48,6 @@
"BYN": {
"name": "beloruski rubelj"
},
- "BYR": {
- "name": "beloruski rubelj (2000–2016)"
- },
"BMD": {
"name": "bermudski dolar"
},
@@ -68,12 +64,10 @@
"name": "bosansko-hercegovska konvertibilna marka"
},
"BRL": {
- "name": "brazilski real",
- "symbol": "R$"
+ "name": "brazilski real"
},
"GBP": {
- "name": "britanski funt",
- "symbol": "£"
+ "name": "britanski funt"
},
"BND": {
"name": "brunejski dolar"
@@ -310,8 +304,7 @@
"name": "mavricijska rupija"
},
"MXN": {
- "name": "mehiški peso",
- "symbol": "MX$"
+ "name": "mehiški peso"
},
"MMK": {
"name": "mjanmarski kjat"
@@ -347,12 +340,10 @@
"name": "nova turška lira"
},
"TWD": {
- "name": "novi tajvanski dolar",
- "symbol": "NT$"
+ "name": "novi tajvanski dolar"
},
"NZD": {
- "name": "novozelandski dolar",
- "symbol": "NZ$"
+ "name": "novozelandski dolar"
},
"OMR": {
"name": "omanski rial"
@@ -367,7 +358,7 @@
"name": "paragvajski gvarani"
},
"PEN": {
- "name": "perujski novi sol"
+ "name": "perujski sol"
},
"PLN": {
"name": "poljski novi zlot"
@@ -439,8 +430,7 @@
"name": "tadžikistanski somoni"
},
"THB": {
- "name": "tajski baht",
- "symbol": "฿"
+ "name": "tajski baht"
},
"TZS": {
"name": "tanzanijski šiling"
@@ -477,8 +467,7 @@
"symbol": "₫"
},
"XCD": {
- "name": "vzhodnokaribski dolar",
- "symbol": "EC$"
+ "name": "vzhodnokaribski dolar"
},
"XOF": {
"name": "zahodnoafriški frank CFA",
diff --git a/vendor/commerceguys/intl/resources/currency/sn.json b/vendor/commerceguys/intl/resources/currency/sn.json
index 3d09c37da..41b970571 100644
--- a/vendor/commerceguys/intl/resources/currency/sn.json
+++ b/vendor/commerceguys/intl/resources/currency/sn.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ye Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/sq.json b/vendor/commerceguys/intl/resources/currency/sq.json
index 13186b2e5..70ed073a6 100644
--- a/vendor/commerceguys/intl/resources/currency/sq.json
+++ b/vendor/commerceguys/intl/resources/currency/sq.json
@@ -87,7 +87,7 @@
"name": "Dollari i Fixhit"
},
"HKD": {
- "name": "Dollari i Hong Kongut",
+ "name": "Dollari i Hong-Kongut",
"symbol": "HK$"
},
"BZD": {
@@ -207,7 +207,7 @@
"name": "Kiata e Mianmarit"
},
"PGK": {
- "name": "Kina e Papua-Guineas së Re"
+ "name": "Kina e Guinesë së Re-Papua"
},
"LAK": {
"name": "Kipa e Laosit"
@@ -265,10 +265,10 @@
"name": "Lesotho Loti"
},
"MDL": {
- "name": "Leu moldav"
+ "name": "Leuja moldave"
},
"RON": {
- "name": "Leu rumun"
+ "name": "Leuja rumune"
},
"BGN": {
"name": "Leva bullgare"
@@ -371,9 +371,6 @@
"BYN": {
"name": "Rubla bjelloruse"
},
- "BYR": {
- "name": "Rubla bjelloruse (2000–2016)"
- },
"RUB": {
"name": "Rubla ruse"
},
@@ -409,7 +406,7 @@
"name": "Sejda ganeze"
},
"PEN": {
- "name": "Sola nuevo-peruane"
+ "name": "Sola peruane"
},
"KGS": {
"name": "Soma kirgize"
diff --git a/vendor/commerceguys/intl/resources/currency/sr-Latn.json b/vendor/commerceguys/intl/resources/currency/sr-Latn.json
index 639734a2e..0efefda54 100644
--- a/vendor/commerceguys/intl/resources/currency/sr-Latn.json
+++ b/vendor/commerceguys/intl/resources/currency/sr-Latn.json
@@ -45,9 +45,6 @@
"BYN": {
"name": "Beloruska rublja"
},
- "BYR": {
- "name": "Beloruska rublja (2000–2016)"
- },
"BMD": {
"name": "Bermudski dolar"
},
@@ -362,7 +359,7 @@
"name": "Paragvajski gvarani"
},
"PEN": {
- "name": "Peruanski novi sol"
+ "name": "Peruanski sol"
},
"PLN": {
"name": "Poljski zlot"
diff --git a/vendor/commerceguys/intl/resources/currency/sr.json b/vendor/commerceguys/intl/resources/currency/sr.json
index 724a3f9c5..0ddb8ce21 100644
--- a/vendor/commerceguys/intl/resources/currency/sr.json
+++ b/vendor/commerceguys/intl/resources/currency/sr.json
@@ -45,9 +45,6 @@
"BYN": {
"name": "Белоруска рубља"
},
- "BYR": {
- "name": "Белоруска рубља (2000–2016)"
- },
"BMD": {
"name": "Бермудски долар"
},
@@ -328,7 +325,7 @@
"name": "Парагвајски гварани"
},
"PEN": {
- "name": "Перуански нови сол"
+ "name": "Перуански сол"
},
"PLN": {
"name": "Пољски злот"
diff --git a/vendor/commerceguys/intl/resources/currency/sv.json b/vendor/commerceguys/intl/resources/currency/sv.json
index 1e007b4af..3d1175d46 100644
--- a/vendor/commerceguys/intl/resources/currency/sv.json
+++ b/vendor/commerceguys/intl/resources/currency/sv.json
@@ -335,7 +335,7 @@
"name": "paraguayansk guarani"
},
"PEN": {
- "name": "peruansk nuevo sol"
+ "name": "peruansk sol"
},
"PLN": {
"name": "polsk zloty"
@@ -474,9 +474,6 @@
"BYN": {
"name": "vitrysk rubel"
},
- "BYR": {
- "name": "vitrysk rubel (2000–2016)"
- },
"XOF": {
"name": "västafrikansk franc",
"symbol": "CFA"
diff --git a/vendor/commerceguys/intl/resources/currency/sw-CD.json b/vendor/commerceguys/intl/resources/currency/sw-CD.json
index fb72d626f..474ddbcc1 100644
--- a/vendor/commerceguys/intl/resources/currency/sw-CD.json
+++ b/vendor/commerceguys/intl/resources/currency/sw-CD.json
@@ -25,35 +25,41 @@
"name": "Cedi ya Ghana"
},
"CRC": {
- "name": "Colon ya Kostarika"
+ "name": "Colon ya Costa Rica"
+ },
+ "BAM": {
+ "name": "Convertible Mark ya Bosnia na Hezegovina"
},
"NIO": {
- "name": "Cordoba ya Nikaragua"
+ "name": "Cordoba ya Nicaragua"
+ },
+ "CZK": {
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
},
"MKD": {
- "name": "Denar ya Masedonia"
+ "name": "Denar ya Macedonia"
+ },
+ "DZD": {
+ "name": "Dinar ya Algeria"
},
"BHD": {
- "name": "Dinar ya Bahareni"
+ "name": "Dinar ya Bahrain"
},
"IQD": {
- "name": "Dinar ya Iraki"
+ "name": "Dinar ya Iraq"
+ },
+ "JOD": {
+ "name": "Dinar ya Jordan"
},
"KWD": {
- "name": "Dinar ya Kuwaiti"
+ "name": "Dinar ya Kuwait"
},
"RSD": {
"name": "Dinar ya Serbia"
},
- "JOD": {
- "name": "Dinar ya Yordani"
- },
- "DZD": {
- "name": "Dinari ya Aljeria"
- },
"LYD": {
"name": "Dinari ya Libya"
},
@@ -64,7 +70,7 @@
"name": "Dirham ya Falme za Kiarabu"
},
"MAD": {
- "name": "Dirham ya Moroko"
+ "name": "Dirham ya Morocco"
},
"STD": {
"name": "Dobra ya Sao Tome na Principe"
@@ -88,6 +94,14 @@
"BND": {
"name": "Dola ya Brunei"
},
+ "CAD": {
+ "name": "Dola ya Canada",
+ "symbol": "CA$"
+ },
+ "XCD": {
+ "name": "Dola ya Caribbean Mashariki",
+ "symbol": "EC$"
+ },
"FJD": {
"name": "Dola ya Fiji"
},
@@ -101,14 +115,6 @@
"JMD": {
"name": "Dola ya Jamaica"
},
- "CAD": {
- "name": "Dola ya Kanada",
- "symbol": "CA$"
- },
- "XCD": {
- "name": "Dola ya Karibea ya Mashariki",
- "symbol": "EC$"
- },
"LRD": {
"name": "Dola ya Liberia"
},
@@ -120,7 +126,7 @@
"name": "Dola ya Namibia"
},
"NZD": {
- "name": "Dola ya Nyuzilandi",
+ "name": "Dola ya New Zealand",
"symbol": "NZ$"
},
"SGD": {
@@ -167,14 +173,14 @@
"name": "Faranga ya CFP",
"symbol": "CFPF"
},
- "GNF": {
- "name": "Faranga ya Guinea"
+ "KMF": {
+ "name": "Faranga ya Comoros"
},
"DJF": {
- "name": "Faranga ya Jibuti"
+ "name": "Faranga ya Djibouti"
},
- "KMF": {
- "name": "Faranga ya Komoro"
+ "GNF": {
+ "name": "Faranga ya Guinea"
},
"CDF": {
"name": "Faranga ya Kongo",
@@ -196,13 +202,13 @@
"name": "Gourde ya Haiti"
},
"PYG": {
- "name": "Guarani ya Paragwai"
+ "name": "Guarani ya Paraguay"
},
"ANG": {
"name": "Guilder ya Antili za Kiholanzi"
},
"UAH": {
- "name": "Hryvnia ya Ukrania"
+ "name": "Hryvnia ya Ukraine"
},
"PGK": {
"name": "Kina ya Papua New Guinea"
@@ -210,9 +216,6 @@
"LAK": {
"name": "Kip ya Laosi"
},
- "CZK": {
- "name": "Koruna ya Jamhuri ya Cheki"
- },
"ISK": {
"name": "Krona ya Aisilandi"
},
@@ -220,13 +223,13 @@
"name": "Krona ya Uswidi"
},
"DKK": {
- "name": "Krone ya Denmaki"
+ "name": "Krone ya Denmark"
},
"NOK": {
- "name": "Krone ya Norwe"
+ "name": "Krone ya Norway"
},
"HRK": {
- "name": "Kuna ya Kroeshia"
+ "name": "Kuna ya Croatia"
},
"MWK": {
"name": "Kwacha ya Malawi"
@@ -238,7 +241,7 @@
"name": "Kwanza ya Angola"
},
"MMK": {
- "name": "Kyat ya Myama"
+ "name": "Kyat ya Myanmar"
},
"GEL": {
"name": "Lari ya Georgia"
@@ -271,19 +274,16 @@
"name": "Loti ya Lesoto"
},
"AZN": {
- "name": "Manat ya Azebaijani"
+ "name": "Manat ya Azerbaijan"
},
"TMT": {
- "name": "Manat ya Turukimenistani"
- },
- "BAM": {
- "name": "Mark Inayoweza Kubadilishwa ya Bosnia na Hezegovina"
+ "name": "Manat ya Turkmenistan"
},
"MZN": {
"name": "Metikali ya Msumbiji"
},
"NGN": {
- "name": "Naira ya Nijeria"
+ "name": "Naira ya Nigeria"
},
"ERN": {
"name": "Nakfa ya Eritrea"
@@ -291,9 +291,6 @@
"BTN": {
"name": "Ngultrum ya Bhutan"
},
- "PEN": {
- "name": "Nuevo Sol ya Peru"
- },
"TOP": {
"name": "Paʻanga ya Tonga"
},
@@ -310,13 +307,13 @@
"name": "Pauni ya Misri"
},
"SHP": {
- "name": "Pauni ya Santahelena"
+ "name": "Pauni ya St. Helena"
},
"SDG": {
- "name": "Pauni ya Sudani"
+ "name": "Pauni ya Sudan"
},
"SSP": {
- "name": "Pauni ya Sudani Kusini"
+ "name": "Pauni ya Sudan Kusini"
},
"SYP": {
"name": "Pauni ya Syria"
@@ -329,11 +326,14 @@
"name": "Pauni ya Visiwa vya Falkland"
},
"ARS": {
- "name": "Peso ya Ajentina"
+ "name": "Peso ya Argentina"
},
"CLP": {
"name": "Peso ya Chile"
},
+ "COP": {
+ "name": "Peso ya Colombia"
+ },
"CUP": {
"name": "Peso ya Cuba"
},
@@ -341,20 +341,17 @@
"name": "Peso ya Cuba Inayoweza Kubadilishwa"
},
"DOP": {
- "name": "Peso ya Dominika"
- },
- "COP": {
- "name": "Peso ya Kolombia"
+ "name": "Peso ya Dominica"
},
"MXN": {
- "name": "Peso ya Meksiko",
+ "name": "Peso ya Mexico",
"symbol": "MX$"
},
"PHP": {
"name": "Peso ya Ufilipino"
},
"UYU": {
- "name": "Peso ya Urugwai"
+ "name": "Peso ya Uruguay"
},
"BWP": {
"name": "Pula ya Botswana"
@@ -376,13 +373,13 @@
"name": "Rial ya Omani"
},
"QAR": {
- "name": "Rial ya Qatari"
+ "name": "Rial ya Qatar"
},
"YER": {
- "name": "Rial ya Yemeni"
+ "name": "Rial ya Yemen"
},
"KHR": {
- "name": "Riel ya Kambodia"
+ "name": "Riel ya Cambodia"
},
"MYR": {
"name": "Ringgit ya Malaysia"
@@ -391,29 +388,26 @@
"name": "Riyal ya Saudia"
},
"BYN": {
- "name": "Ruble ya Belarusi"
- },
- "BYR": {
- "name": "Ruble ya Belarusi (2000–2016)"
+ "name": "Ruble ya Belarus"
},
"RUB": {
"name": "Ruble ya Urusi"
},
"MVR": {
- "name": "Rufiyaa ya Maldivi"
+ "name": "Rufiyaa ya Maldives"
},
"INR": {
"name": "Rupia ya India",
"symbol": "₹"
},
"MUR": {
- "name": "Rupia ya Morisi"
+ "name": "Rupia ya Mauritius"
},
"NPR": {
- "name": "Rupia ya Nepali"
+ "name": "Rupia ya Nepal"
},
"PKR": {
- "name": "Rupia ya Pakistani"
+ "name": "Rupia ya Pakistan"
},
"SCR": {
"name": "Rupia ya Shelisheli"
@@ -449,23 +443,26 @@
"UGX": {
"name": "Shilingi ya Uganda"
},
+ "PEN": {
+ "name": "Sol ya Peru"
+ },
"KGS": {
- "name": "Som ya Kyrgystani"
+ "name": "Som ya Kyrgystan"
},
"UZS": {
- "name": "Som ya Uzibekistani"
+ "name": "Som ya Uzbekistan"
},
"TJS": {
- "name": "Somoni ya Tajikistani"
+ "name": "Somoni ya Tajikistan"
},
"BDT": {
- "name": "Taka ya Bangladeshi"
+ "name": "Taka ya Bangladesh"
},
"WST": {
"name": "Tala ya Samoa"
},
"KZT": {
- "name": "Tenge ya Kazakistani"
+ "name": "Tenge ya Kazakhstan"
},
"MNT": {
"name": "Tugrik ya Mongolia"
@@ -495,6 +492,6 @@
"name": "Zimbabwean Dollar (2009)"
},
"PLN": {
- "name": "Zloty ya Polandi"
+ "name": "Zloty ya Poland"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/sw.json b/vendor/commerceguys/intl/resources/currency/sw.json
index 8ca8e556a..de35351f7 100644
--- a/vendor/commerceguys/intl/resources/currency/sw.json
+++ b/vendor/commerceguys/intl/resources/currency/sw.json
@@ -3,7 +3,7 @@
"name": "Afghani ya Afghanistan"
},
"MGA": {
- "name": "Ariari ya Madagaska"
+ "name": "Ariari ya Madagascar"
},
"THB": {
"name": "Baht ya Tailandi",
@@ -25,35 +25,41 @@
"name": "Cedi ya Ghana"
},
"CRC": {
- "name": "Colon ya Kostarika"
+ "name": "Colon ya Costa Rica"
+ },
+ "BAM": {
+ "name": "Convertible Mark ya Bosnia na Hezegovina"
},
"NIO": {
- "name": "Cordoba ya Nikaragua"
+ "name": "Cordoba ya Nicaragua"
+ },
+ "CZK": {
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
},
"MKD": {
- "name": "Denar ya Masedonia"
+ "name": "Denar ya Macedonia"
+ },
+ "DZD": {
+ "name": "Dinar ya Algeria"
},
"BHD": {
- "name": "Dinar ya Bahareni"
+ "name": "Dinar ya Bahrain"
},
"IQD": {
- "name": "Dinar ya Iraki"
+ "name": "Dinar ya Iraq"
+ },
+ "JOD": {
+ "name": "Dinar ya Jordan"
},
"KWD": {
- "name": "Dinar ya Kuwaiti"
+ "name": "Dinar ya Kuwait"
},
"RSD": {
"name": "Dinar ya Serbia"
},
- "JOD": {
- "name": "Dinar ya Yordani"
- },
- "DZD": {
- "name": "Dinari ya Aljeria"
- },
"LYD": {
"name": "Dinari ya Libya"
},
@@ -64,7 +70,7 @@
"name": "Dirham ya Falme za Kiarabu"
},
"MAD": {
- "name": "Dirham ya Moroko"
+ "name": "Dirham ya Morocco"
},
"STD": {
"name": "Dobra ya Sao Tome na Principe"
@@ -88,6 +94,14 @@
"BND": {
"name": "Dola ya Brunei"
},
+ "CAD": {
+ "name": "Dola ya Canada",
+ "symbol": "CA$"
+ },
+ "XCD": {
+ "name": "Dola ya Caribbean Mashariki",
+ "symbol": "EC$"
+ },
"FJD": {
"name": "Dola ya Fiji"
},
@@ -101,14 +115,6 @@
"JMD": {
"name": "Dola ya Jamaica"
},
- "CAD": {
- "name": "Dola ya Kanada",
- "symbol": "CA$"
- },
- "XCD": {
- "name": "Dola ya Karibea ya Mashariki",
- "symbol": "EC$"
- },
"LRD": {
"name": "Dola ya Liberia"
},
@@ -120,7 +126,7 @@
"name": "Dola ya Namibia"
},
"NZD": {
- "name": "Dola ya Nyuzilandi",
+ "name": "Dola ya New Zealand",
"symbol": "NZ$"
},
"SGD": {
@@ -167,14 +173,14 @@
"name": "Faranga ya CFP",
"symbol": "CFPF"
},
- "GNF": {
- "name": "Faranga ya Guinea"
+ "KMF": {
+ "name": "Faranga ya Comoros"
},
"DJF": {
- "name": "Faranga ya Jibuti"
+ "name": "Faranga ya Djibouti"
},
- "KMF": {
- "name": "Faranga ya Komoro"
+ "GNF": {
+ "name": "Faranga ya Guinea"
},
"CDF": {
"name": "Faranga ya Kongo"
@@ -195,13 +201,13 @@
"name": "Gourde ya Haiti"
},
"PYG": {
- "name": "Guarani ya Paragwai"
+ "name": "Guarani ya Paraguay"
},
"ANG": {
"name": "Guilder ya Antili za Kiholanzi"
},
"UAH": {
- "name": "Hryvnia ya Ukrania"
+ "name": "Hryvnia ya Ukraine"
},
"PGK": {
"name": "Kina ya Papua New Guinea"
@@ -209,9 +215,6 @@
"LAK": {
"name": "Kip ya Laosi"
},
- "CZK": {
- "name": "Koruna ya Jamhuri ya Cheki"
- },
"ISK": {
"name": "Krona ya Aisilandi"
},
@@ -219,13 +222,13 @@
"name": "Krona ya Uswidi"
},
"DKK": {
- "name": "Krone ya Denmaki"
+ "name": "Krone ya Denmark"
},
"NOK": {
- "name": "Krone ya Norwe"
+ "name": "Krone ya Norway"
},
"HRK": {
- "name": "Kuna ya Kroeshia"
+ "name": "Kuna ya Croatia"
},
"MWK": {
"name": "Kwacha ya Malawi"
@@ -237,7 +240,7 @@
"name": "Kwanza ya Angola"
},
"MMK": {
- "name": "Kyat ya Myama"
+ "name": "Kyat ya Myanmar"
},
"GEL": {
"name": "Lari ya Georgia"
@@ -270,19 +273,16 @@
"name": "Loti ya Lesoto"
},
"AZN": {
- "name": "Manat ya Azebaijani"
+ "name": "Manat ya Azerbaijan"
},
"TMT": {
- "name": "Manat ya Turukimenistani"
- },
- "BAM": {
- "name": "Mark Inayoweza Kubadilishwa ya Bosnia na Hezegovina"
+ "name": "Manat ya Turkmenistan"
},
"MZN": {
"name": "Metikali ya Msumbiji"
},
"NGN": {
- "name": "Naira ya Nijeria"
+ "name": "Naira ya Nigeria"
},
"ERN": {
"name": "Nakfa ya Eritrea"
@@ -290,11 +290,8 @@
"BTN": {
"name": "Ngultrum ya Bhutan"
},
- "PEN": {
- "name": "Nuevo Sol ya Peru"
- },
"MRO": {
- "name": "Ouguiya ya Moritania"
+ "name": "Ouguiya ya Mauritania"
},
"TOP": {
"name": "Paʻanga ya Tonga"
@@ -312,13 +309,13 @@
"name": "Pauni ya Misri"
},
"SHP": {
- "name": "Pauni ya Santahelena"
+ "name": "Pauni ya St. Helena"
},
"SDG": {
- "name": "Pauni ya Sudani"
+ "name": "Pauni ya Sudan"
},
"SSP": {
- "name": "Pauni ya Sudani Kusini"
+ "name": "Pauni ya Sudan Kusini"
},
"SYP": {
"name": "Pauni ya Syria"
@@ -331,11 +328,14 @@
"name": "Pauni ya Visiwa vya Falkland"
},
"ARS": {
- "name": "Peso ya Ajentina"
+ "name": "Peso ya Argentina"
},
"CLP": {
"name": "Peso ya Chile"
},
+ "COP": {
+ "name": "Peso ya Colombia"
+ },
"CUP": {
"name": "Peso ya Cuba"
},
@@ -343,20 +343,17 @@
"name": "Peso ya Cuba Inayoweza Kubadilishwa"
},
"DOP": {
- "name": "Peso ya Dominika"
- },
- "COP": {
- "name": "Peso ya Kolombia"
+ "name": "Peso ya Dominica"
},
"MXN": {
- "name": "Peso ya Meksiko",
+ "name": "Peso ya Mexico",
"symbol": "MX$"
},
"PHP": {
"name": "Peso ya Ufilipino"
},
"UYU": {
- "name": "Peso ya Urugwai"
+ "name": "Peso ya Uruguay"
},
"BWP": {
"name": "Pula ya Botswana"
@@ -378,13 +375,13 @@
"name": "Rial ya Omani"
},
"QAR": {
- "name": "Rial ya Qatari"
+ "name": "Rial ya Qatar"
},
"YER": {
- "name": "Rial ya Yemeni"
+ "name": "Rial ya Yemen"
},
"KHR": {
- "name": "Riel ya Kambodia"
+ "name": "Riel ya Cambodia"
},
"MYR": {
"name": "Ringgit ya Malaysia"
@@ -393,29 +390,26 @@
"name": "Riyal ya Saudia"
},
"BYN": {
- "name": "Ruble ya Belarusi"
- },
- "BYR": {
- "name": "Ruble ya Belarusi (2000–2016)"
+ "name": "Ruble ya Belarus"
},
"RUB": {
"name": "Ruble ya Urusi"
},
"MVR": {
- "name": "Rufiyaa ya Maldivi"
+ "name": "Rufiyaa ya Maldives"
},
"INR": {
"name": "Rupia ya India",
"symbol": "₹"
},
"MUR": {
- "name": "Rupia ya Morisi"
+ "name": "Rupia ya Mauritius"
},
"NPR": {
- "name": "Rupia ya Nepali"
+ "name": "Rupia ya Nepal"
},
"PKR": {
- "name": "Rupia ya Pakistani"
+ "name": "Rupia ya Pakistan"
},
"LKR": {
"name": "Rupia ya Sri Lanka"
@@ -447,23 +441,26 @@
"UGX": {
"name": "Shilingi ya Uganda"
},
+ "PEN": {
+ "name": "Sol ya Peru"
+ },
"KGS": {
- "name": "Som ya Kyrgystani"
+ "name": "Som ya Kyrgystan"
},
"UZS": {
- "name": "Som ya Uzibekistani"
+ "name": "Som ya Uzbekistan"
},
"TJS": {
- "name": "Somoni ya Tajikistani"
+ "name": "Somoni ya Tajikistan"
},
"BDT": {
- "name": "Taka ya Bangladeshi"
+ "name": "Taka ya Bangladesh"
},
"WST": {
"name": "Tala ya Samoa"
},
"KZT": {
- "name": "Tenge ya Kazakistani"
+ "name": "Tenge ya Kazakhstan"
},
"MNT": {
"name": "Tugrik ya Mongolia"
@@ -479,7 +476,7 @@
"symbol": "₩"
},
"JPY": {
- "name": "Yen ya Japani",
+ "name": "Yen ya Ujapani",
"symbol": "JP¥"
},
"CNY": {
@@ -494,6 +491,6 @@
"name": "Zimbabwean Dollar (2009)"
},
"PLN": {
- "name": "Zloty ya Polandi"
+ "name": "Zloty ya Poland"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/ta.json b/vendor/commerceguys/intl/resources/currency/ta.json
index 4309b5a4b..d674839e2 100644
--- a/vendor/commerceguys/intl/resources/currency/ta.json
+++ b/vendor/commerceguys/intl/resources/currency/ta.json
@@ -340,9 +340,6 @@
"BYN": {
"name": "பெலருசியன் ரூபிள்"
},
- "BYR": {
- "name": "பெலருசியன் ரூபிள் (2000–2016)"
- },
"BZD": {
"name": "பெலீஸ் டாலர்"
},
diff --git a/vendor/commerceguys/intl/resources/currency/te.json b/vendor/commerceguys/intl/resources/currency/te.json
index 06e18955a..7274fb858 100644
--- a/vendor/commerceguys/intl/resources/currency/te.json
+++ b/vendor/commerceguys/intl/resources/currency/te.json
@@ -261,7 +261,7 @@
"name": "పాకిస్థాన్ రూపాయి"
},
"PEN": {
- "name": "పెరువియన్ న్యూవో సోల్"
+ "name": "పెరువియన్ సోల్"
},
"PLN": {
"name": "పోలిష్ జ్లోటీ"
@@ -299,9 +299,6 @@
"BYN": {
"name": "బెలరూసియన్ రూబల్"
},
- "BYR": {
- "name": "బెలరూసియన్ రూబల్ (2000–2016)"
- },
"BZD": {
"name": "బెలీజ్ డాలర్"
},
@@ -476,7 +473,7 @@
"name": "స్వీడిష్ క్రోనా"
},
"HUF": {
- "name": "హంగేరియన్ ఫోరిన్ట్"
+ "name": "హంగేరియన్ ఫోరింట్"
},
"HKD": {
"name": "హాంకాంగ్ డాలర్",
diff --git a/vendor/commerceguys/intl/resources/currency/teo.json b/vendor/commerceguys/intl/resources/currency/teo.json
index d90addc6e..693ad5df5 100644
--- a/vendor/commerceguys/intl/resources/currency/teo.json
+++ b/vendor/commerceguys/intl/resources/currency/teo.json
@@ -156,9 +156,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -213,7 +210,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -399,7 +396,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/th.json b/vendor/commerceguys/intl/resources/currency/th.json
index 140f653b4..6a9d7b036 100644
--- a/vendor/commerceguys/intl/resources/currency/th.json
+++ b/vendor/commerceguys/intl/resources/currency/th.json
@@ -77,6 +77,9 @@
"UZS": {
"name": "ซอมอุซเบกิสถาน"
},
+ "PEN": {
+ "name": "ซอลเปรู"
+ },
"GHS": {
"name": "เซดีกานา"
},
@@ -221,9 +224,6 @@
"name": "นิวเชเกลอิสราเอล",
"symbol": "₪"
},
- "PEN": {
- "name": "นูโวซอลเปรู"
- },
"ERN": {
"name": "แนกฟาเอริเทรีย"
},
@@ -234,7 +234,7 @@
"name": "บัลบัวปานามา"
},
"THB": {
- "name": "บาทไทย"
+ "name": "บาท"
},
"ETB": {
"name": "เบอรร์เอธิโอเปีย"
@@ -378,9 +378,6 @@
"BYN": {
"name": "รูเบิลเบลารุส"
},
- "BYR": {
- "name": "รูเบิลเบลารุส (2000–2016)"
- },
"RUB": {
"name": "รูเบิลรัสเซีย"
},
diff --git a/vendor/commerceguys/intl/resources/currency/tk.json b/vendor/commerceguys/intl/resources/currency/tk.json
index 94cf5c9bf..0f000326c 100644
--- a/vendor/commerceguys/intl/resources/currency/tk.json
+++ b/vendor/commerceguys/intl/resources/currency/tk.json
@@ -7,7 +7,7 @@
"name": "Alban leki"
},
"DZD": {
- "name": "Aljir dinary"
+ "name": "Alžir dinary"
},
"AOA": {
"name": "Angol kwanzasy"
@@ -23,7 +23,7 @@
"symbol": "A$"
},
"AZN": {
- "name": "Azerbaýjan manaty"
+ "name": "Azerbaýjan manady"
},
"AED": {
"name": "BAE dirhemi"
@@ -40,20 +40,17 @@
"BBD": {
"name": "Barbados dollary"
},
- "BZD": {
- "name": "Beliz dollary"
- },
"BYN": {
- "name": "Belorus rubly"
+ "name": "Belarus rubly"
},
- "BYR": {
- "name": "Belorus rubly (2000–2016)"
+ "BZD": {
+ "name": "Beliz dollary"
},
"BMD": {
"name": "Bermuda dollary"
},
"BGN": {
- "name": "Bolgar lewy"
+ "name": "Bolgar lewi"
},
"BOB": {
"name": "Boliwiýa boliwianosy"
@@ -65,11 +62,14 @@
"name": "Brazil realy",
"symbol": "R$"
},
+ "GBP": {
+ "name": "Britan funt sterlingi"
+ },
"BND": {
"name": "Bruneý dollary"
},
"BIF": {
- "name": "Burundiý franky"
+ "name": "Burundi franky"
},
"BTN": {
"name": "Butan ngultrumy"
@@ -84,7 +84,7 @@
"name": "Daniýa kronasy"
},
"KPW": {
- "name": "Demirgazyk Koreýa wony"
+ "name": "Demirgazyk Koreý wony"
},
"DOP": {
"name": "Dominikan pesosy"
@@ -115,16 +115,16 @@
"symbol": "CFPF"
},
"HTG": {
- "name": "Gaitýan gurdy"
+ "name": "Gaiti gurdy"
},
"GMD": {
- "name": "Gambiýa dalasy"
+ "name": "Gambiýa dalasisi"
},
"GHS": {
"name": "Gano sedisi"
},
"GYD": {
- "name": "Gaýan dollary"
+ "name": "Gaýana dollary"
},
"KZT": {
"name": "Gazak teňňesi"
@@ -140,7 +140,7 @@
"symbol": "HK$"
},
"GEL": {
- "name": "Gruzin lari"
+ "name": "Gruzin larisi"
},
"XCD": {
"name": "Gündogar karib dollary",
@@ -150,11 +150,11 @@
"name": "Günorta Afrika rendi"
},
"KRW": {
- "name": "Günorta Koreýa wony",
+ "name": "Günorta Koreý wony",
"symbol": "₩"
},
"SSP": {
- "name": "Günorta sudan funty"
+ "name": "Günorta Sudan funty"
},
"GTQ": {
"name": "Gwatemala ketsaly"
@@ -179,11 +179,8 @@
"IDR": {
"name": "Indoneziýa rupiýasy"
},
- "GBP": {
- "name": "Iňlis funt sterlingi"
- },
"JOD": {
- "name": "Iordaniýa dinary"
+ "name": "Iordan dinary"
},
"ISK": {
"name": "Islandiýa kronasy"
@@ -225,13 +222,13 @@
"name": "Kolumbiýa pesosy"
},
"KMF": {
- "name": "Komor adalar franky"
+ "name": "Komor adalarynyň franky"
},
"CDF": {
- "name": "Kongolez franky"
+ "name": "Kongo franky"
},
"BAM": {
- "name": "Konwertirlenýän bosniýa we gersogowina markasy"
+ "name": "Konwertirlenýän Bosniýa we Gersogowina markasy"
},
"CUC": {
"name": "Konwertirlenýän kuba pesosy"
@@ -248,9 +245,6 @@
"LAK": {
"name": "Laos kipi"
},
- "SLL": {
- "name": "Leon"
- },
"LSL": {
"name": "Lesotho Loti"
},
@@ -282,7 +276,7 @@
"name": "Maldiw rufiýasy"
},
"MAD": {
- "name": "Marokka dirhamy"
+ "name": "Marokko dirhamy"
},
"MUR": {
"name": "Mawrikiý rupiýasy"
@@ -301,7 +295,7 @@
"name": "Mongol tugrigi"
},
"MZN": {
- "name": "Mozambik metikal"
+ "name": "Mozambik metikaly"
},
"EGP": {
"name": "Müsür funty"
@@ -343,13 +337,19 @@
"name": "Panama balboasy"
},
"PGK": {
- "name": "Papua — Täze Gwineýa kinasy"
+ "name": "Papua - Täze Gwineýa kinasy"
},
"PYG": {
- "name": "Paragwaý guarani"
+ "name": "Paragwaý guaranisi"
+ },
+ "PEN": {
+ "name": "Peru soly"
},
"PLN": {
- "name": "Polýak zloty"
+ "name": "Polýak zlotysy"
+ },
+ "RWF": {
+ "name": "Ruanda franky"
},
"RON": {
"name": "Rumyn leýi"
@@ -357,9 +357,6 @@
"RUB": {
"name": "Rus rubly"
},
- "RWF": {
- "name": "Rwanda franky"
- },
"SVC": {
"name": "Salvadoran Colón"
},
@@ -388,7 +385,7 @@
"name": "Solomon adalarynyň dollary"
},
"SOS": {
- "name": "Somali şilingi"
+ "name": "Somali şillingi"
},
"LKR": {
"name": "Şri-Lanka rupiýasy"
@@ -408,18 +405,18 @@
"CHF": {
"name": "Şweýsar franky"
},
+ "SLL": {
+ "name": "Sýerra-Leone leony"
+ },
"TJS": {
"name": "Täjik somonisy"
},
"TZS": {
- "name": "Tanzaniýa şilingi"
+ "name": "Tanzaniýa şillingi"
},
"THB": {
"name": "Taýland baty"
},
- "PEN": {
- "name": "Täze peru soly"
- },
"TWD": {
"name": "Täze Taýwan dollary",
"symbol": "NT$"
@@ -445,10 +442,10 @@
"name": "Türk lirasy"
},
"TMT": {
- "name": "Türkmen manaty"
+ "name": "Türkmen manady"
},
"UGX": {
- "name": "Uganda şilingi"
+ "name": "Uganda şillingi"
},
"UAH": {
"name": "Ukrain griwnasy"
@@ -460,10 +457,10 @@
"name": "Wanuatu watusy"
},
"VEF": {
- "name": "Wenezuela boliwary"
+ "name": "Wenesuela boliwary"
},
"HUF": {
- "name": "Wenger forinty"
+ "name": "Wenger forinti"
},
"VND": {
"name": "Wýetnam dongy",
diff --git a/vendor/commerceguys/intl/resources/currency/tr.json b/vendor/commerceguys/intl/resources/currency/tr.json
index 5a0557814..e63c5c8b5 100644
--- a/vendor/commerceguys/intl/resources/currency/tr.json
+++ b/vendor/commerceguys/intl/resources/currency/tr.json
@@ -37,18 +37,15 @@
"BBD": {
"name": "Barbados Doları"
},
+ "BYN": {
+ "name": "Belarus Rublesi"
+ },
"BZD": {
"name": "Belize Doları"
},
"BMD": {
"name": "Bermuda Doları"
},
- "BYN": {
- "name": "Beyaz Rusya Rublesi"
- },
- "BYR": {
- "name": "Beyaz Rusya Rublesi (2000–2016)"
- },
"BTN": {
"name": "Bhutan Ngultrumu"
},
@@ -361,7 +358,7 @@
"name": "Paraguay Guaranisi"
},
"PEN": {
- "name": "Peru Nuevo Solü"
+ "name": "Peru Solü"
},
"PLN": {
"name": "Polonya Zlotisi"
diff --git a/vendor/commerceguys/intl/resources/currency/twq.json b/vendor/commerceguys/intl/resources/currency/twq.json
index fddc77db1..bc323e79e 100644
--- a/vendor/commerceguys/intl/resources/currency/twq.json
+++ b/vendor/commerceguys/intl/resources/currency/twq.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -117,7 +114,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -362,7 +359,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/tzm.json b/vendor/commerceguys/intl/resources/currency/tzm.json
index 3015bb7c7..cf9a981e1 100644
--- a/vendor/commerceguys/intl/resources/currency/tzm.json
+++ b/vendor/commerceguys/intl/resources/currency/tzm.json
@@ -32,9 +32,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -104,7 +101,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi Agambi"
@@ -368,7 +365,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/ug.json b/vendor/commerceguys/intl/resources/currency/ug.json
index 4d5bb7d97..b9b4387e1 100644
--- a/vendor/commerceguys/intl/resources/currency/ug.json
+++ b/vendor/commerceguys/intl/resources/currency/ug.json
@@ -122,9 +122,6 @@
"BYN": {
"name": "بېلارۇسىيە رۇبلىسى"
},
- "BYR": {
- "name": "بېلارۇسىيە رۇبلىسى (۲۰۰۰–۲۰۱۶)"
- },
"BZD": {
"name": "بېلىز دوللىرى"
},
@@ -151,7 +148,7 @@
"name": "پولشا زىلوتى"
},
"PEN": {
- "name": "پېرۇ يېڭى سولى"
+ "name": "پېرۇ سولى"
},
"TJS": {
"name": "تاجىكىستان سومونىسى"
diff --git a/vendor/commerceguys/intl/resources/currency/uk.json b/vendor/commerceguys/intl/resources/currency/uk.json
index 9695c269d..4c9e092cc 100644
--- a/vendor/commerceguys/intl/resources/currency/uk.json
+++ b/vendor/commerceguys/intl/resources/currency/uk.json
@@ -47,9 +47,6 @@
"BYN": {
"name": "білоруський рубль"
},
- "BYR": {
- "name": "білоруський рубль (2000–2016)"
- },
"BGN": {
"name": "болгарський лев"
},
@@ -123,7 +120,7 @@
"name": "дирхам ОАЕ"
},
"STD": {
- "name": "добра Сан-Томе і Принсіпі"
+ "name": "добра Сан-Томе і Прінсіпі"
},
"KYD": {
"name": "долар Кайманових островів"
@@ -135,7 +132,7 @@
"name": "долар США"
},
"TTD": {
- "name": "долар Тринідаду і Тобаго"
+ "name": "долар Трінідаду і Тобаґо"
},
"DOP": {
"name": "домініканський песо"
@@ -211,7 +208,7 @@
"name": "китайський юань"
},
"PGK": {
- "name": "кіна Папуа Нової Гвінеї"
+ "name": "кіна Папуа-Нової Ґвінеї"
},
"COP": {
"name": "колумбійський песо"
@@ -325,7 +322,7 @@
"name": "пакистанська рупія"
},
"PAB": {
- "name": "панамська бальбоа"
+ "name": "панамське бальбоа"
},
"PYG": {
"name": "парагвайський гуарані"
@@ -406,7 +403,7 @@
"name": "танзанійський шилінг"
},
"TOP": {
- "name": "тонганська паанга"
+ "name": "тонґанська паанга"
},
"TND": {
"name": "туніський динар"
diff --git a/vendor/commerceguys/intl/resources/currency/ur-IN.json b/vendor/commerceguys/intl/resources/currency/ur-IN.json
index bf269bfd7..a0ac2cc76 100644
--- a/vendor/commerceguys/intl/resources/currency/ur-IN.json
+++ b/vendor/commerceguys/intl/resources/currency/ur-IN.json
@@ -100,9 +100,6 @@
"BYN": {
"name": "بیلاروسی روبل"
},
- "BYR": {
- "name": "بیلاروسی روبل (۲۰۰۰–۲۰۱۶)"
- },
"BZD": {
"name": "بیلائز ڈالر"
},
@@ -129,7 +126,7 @@
"name": "پیراگوئے کا گوآرنی"
},
"PEN": {
- "name": "پیروین نیووسول"
+ "name": "پیرو نیووسول"
},
"TJS": {
"name": "تاجکستانی سومونی"
diff --git a/vendor/commerceguys/intl/resources/currency/ur.json b/vendor/commerceguys/intl/resources/currency/ur.json
index c20208883..d413a63e3 100644
--- a/vendor/commerceguys/intl/resources/currency/ur.json
+++ b/vendor/commerceguys/intl/resources/currency/ur.json
@@ -100,9 +100,6 @@
"BYN": {
"name": "بیلاروسی روبل"
},
- "BYR": {
- "name": "بیلاروسی روبل (۲۰۰۰–۲۰۱۶)"
- },
"BZD": {
"name": "بیلائز ڈالر"
},
@@ -130,7 +127,7 @@
"name": "پیراگوئے کا گوآرنی"
},
"PEN": {
- "name": "پیروین نیووسول"
+ "name": "پیرو نیووسول"
},
"TJS": {
"name": "تاجکستانی سومونی"
diff --git a/vendor/commerceguys/intl/resources/currency/uz-Cyrl.json b/vendor/commerceguys/intl/resources/currency/uz-Cyrl.json
index b51674b7a..0db4b4720 100644
--- a/vendor/commerceguys/intl/resources/currency/uz-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/currency/uz-Cyrl.json
@@ -27,9 +27,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BTN": {
"name": "Bhutanese Ngultrum"
},
@@ -72,7 +69,7 @@
"name": "Croatian Kuna"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -223,7 +220,7 @@
"name": "Papua New Guinean Kina"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
@@ -452,7 +449,7 @@
"name": "Парагвай гуарани"
},
"PEN": {
- "name": "Перу нуево сол"
+ "name": "Перу сол"
},
"RUB": {
"name": "Рус рубли"
diff --git a/vendor/commerceguys/intl/resources/currency/uz.json b/vendor/commerceguys/intl/resources/currency/uz.json
index b137357dc..c193e0f0f 100644
--- a/vendor/commerceguys/intl/resources/currency/uz.json
+++ b/vendor/commerceguys/intl/resources/currency/uz.json
@@ -44,9 +44,6 @@
"BYN": {
"name": "Belarus rubli"
},
- "BYR": {
- "name": "Belarus rubli (2000–2016)"
- },
"BZD": {
"name": "Beliz dollari"
},
@@ -81,12 +78,6 @@
"BTN": {
"name": "Butan ngultrumi"
},
- "CZK": {
- "name": "Chexiya kronasi"
- },
- "CLP": {
- "name": "Chili pesosi"
- },
"DKK": {
"name": "Daniya kronasi"
},
@@ -115,10 +106,6 @@
"name": "Fransuz Polineziyasi franki",
"symbol": "CFPF"
},
- "XOF": {
- "name": "G‘arbiy Afrika CFA franki",
- "symbol": "CFA"
- },
"HTG": {
"name": "Gaiti gurdi"
},
@@ -309,10 +296,6 @@
"NOK": {
"name": "Norvegiya kronasi"
},
- "UZS": {
- "name": "O‘zbekiston so‘mi",
- "symbol": "soʻm"
- },
"AZN": {
"name": "Ozarbayjon manati"
},
@@ -326,7 +309,7 @@
"name": "Paragvay guaranisi"
},
"PEN": {
- "name": "Peru yangi soli"
+ "name": "Peru soli"
},
"PKR": {
"name": "Pokiston rupiyasi"
@@ -370,22 +353,6 @@
"SCR": {
"name": "Seyshel rupiyasi"
},
- "XCD": {
- "name": "Sharqiy Karib dollari",
- "symbol": "EC$"
- },
- "KPW": {
- "name": "Shimoliy Koreya voni"
- },
- "LKR": {
- "name": "Shri-Lanka rupiyasi"
- },
- "SEK": {
- "name": "Shvetsiya kronasi"
- },
- "CHF": {
- "name": "Shveytsariya franki"
- },
"SGD": {
"name": "Singapur dollari"
},
@@ -493,5 +460,35 @@
},
"ZWL": {
"name": "Zimbabwean Dollar (2009)"
+ },
+ "UZS": {
+ "name": "O‘zbekiston so‘mi",
+ "symbol": "soʻm"
+ },
+ "XOF": {
+ "name": "G‘arbiy Afrika CFA franki",
+ "symbol": "CFA"
+ },
+ "XCD": {
+ "name": "Sharqiy Karib dollari",
+ "symbol": "EC$"
+ },
+ "KPW": {
+ "name": "Shimoliy Koreya voni"
+ },
+ "LKR": {
+ "name": "Shri-Lanka rupiyasi"
+ },
+ "SEK": {
+ "name": "Shvetsiya kronasi"
+ },
+ "CHF": {
+ "name": "Shveytsariya franki"
+ },
+ "CZK": {
+ "name": "Chexiya kronasi"
+ },
+ "CLP": {
+ "name": "Chili pesosi"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/vai-Latn.json b/vendor/commerceguys/intl/resources/currency/vai-Latn.json
index fb596ab61..2fcd6a4cd 100644
--- a/vendor/commerceguys/intl/resources/currency/vai-Latn.json
+++ b/vendor/commerceguys/intl/resources/currency/vai-Latn.json
@@ -46,9 +46,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -116,7 +113,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -359,7 +356,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/vai.json b/vendor/commerceguys/intl/resources/currency/vai.json
index b2708f81f..fcd6e7726 100644
--- a/vendor/commerceguys/intl/resources/currency/vai.json
+++ b/vendor/commerceguys/intl/resources/currency/vai.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -90,7 +87,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -246,7 +243,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/vi.json b/vendor/commerceguys/intl/resources/currency/vi.json
index cea476214..e36efcc3f 100644
--- a/vendor/commerceguys/intl/resources/currency/vi.json
+++ b/vendor/commerceguys/intl/resources/currency/vi.json
@@ -236,7 +236,7 @@
"name": "Guarani Paraguay"
},
"ANG": {
- "name": "Guilder Tây Ấn Hà Lan"
+ "name": "Guilder Antille Hà Lan"
},
"UAH": {
"name": "Hryvnia Ucraina"
@@ -332,9 +332,6 @@
"name": "Nhân dân tệ",
"symbol": "CN¥"
},
- "PEN": {
- "name": "Nuevo Sol Peru"
- },
"MRO": {
"name": "Ouguiya Mauritania"
},
@@ -412,9 +409,6 @@
"BYN": {
"name": "Rúp Belarus"
},
- "BYR": {
- "name": "Rúp Belarus (2000–2016)"
- },
"RUB": {
"name": "Rúp Nga"
},
@@ -456,6 +450,9 @@
"UGX": {
"name": "Shilling Uganda"
},
+ "PEN": {
+ "name": "Sol Peru"
+ },
"KGS": {
"name": "Som Kyrgyzstan"
},
diff --git a/vendor/commerceguys/intl/resources/currency/vun.json b/vendor/commerceguys/intl/resources/currency/vun.json
index 61220f73e..f5fec488b 100644
--- a/vendor/commerceguys/intl/resources/currency/vun.json
+++ b/vendor/commerceguys/intl/resources/currency/vun.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambia"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/xog.json b/vendor/commerceguys/intl/resources/currency/xog.json
index ee12de9b3..e4a530578 100644
--- a/vendor/commerceguys/intl/resources/currency/xog.json
+++ b/vendor/commerceguys/intl/resources/currency/xog.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ya Gambya"
@@ -356,7 +353,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/yo-BJ.json b/vendor/commerceguys/intl/resources/currency/yo-BJ.json
index 6d65a0b80..888ebe828 100644
--- a/vendor/commerceguys/intl/resources/currency/yo-BJ.json
+++ b/vendor/commerceguys/intl/resources/currency/yo-BJ.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ti Orílɛ́ède Gamibia"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/yo.json b/vendor/commerceguys/intl/resources/currency/yo.json
index de76fd4f4..ff1ecc7a0 100644
--- a/vendor/commerceguys/intl/resources/currency/yo.json
+++ b/vendor/commerceguys/intl/resources/currency/yo.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -89,7 +86,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"GMD": {
"name": "Dalasi ti Orílẹ́ède Gamibia"
@@ -347,7 +344,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/yue.json b/vendor/commerceguys/intl/resources/currency/yue.json
deleted file mode 100644
index 60ee55f85..000000000
--- a/vendor/commerceguys/intl/resources/currency/yue.json
+++ /dev/null
@@ -1,496 +0,0 @@
-{
- "BTN": {
- "name": "不丹那特倫"
- },
- "DKK": {
- "name": "丹麥克朗"
- },
- "AZN": {
- "name": "亞塞拜然馬納特"
- },
- "AMD": {
- "name": "亞美尼亞德拉姆"
- },
- "CNY": {
- "name": "人民幣",
- "symbol": "CN¥"
- },
- "ILS": {
- "name": "以色列新謝克爾",
- "symbol": "₪"
- },
- "IQD": {
- "name": "伊拉克第納爾"
- },
- "IRR": {
- "name": "伊朗里亞爾"
- },
- "RUB": {
- "name": "俄羅斯盧布"
- },
- "BGN": {
- "name": "保加利亞新列弗"
- },
- "HRK": {
- "name": "克羅埃西亞庫納"
- },
- "ISK": {
- "name": "冰島克朗"
- },
- "LYD": {
- "name": "利比亞第納爾"
- },
- "CDF": {
- "name": "剛果法郎"
- },
- "CAD": {
- "name": "加幣",
- "symbol": "CA$"
- },
- "HUF": {
- "name": "匈牙利福林"
- },
- "KPW": {
- "name": "北韓圓"
- },
- "TTD": {
- "name": "千里達及托巴哥元"
- },
- "SSP": {
- "name": "南蘇丹鎊"
- },
- "ZAR": {
- "name": "南非蘭特"
- },
- "KZT": {
- "name": "卡扎克斯坦坦吉"
- },
- "QAR": {
- "name": "卡達里亞爾"
- },
- "IDR": {
- "name": "印尼盾"
- },
- "INR": {
- "name": "印度盧比",
- "symbol": "₹"
- },
- "ERN": {
- "name": "厄立特里亞納克法"
- },
- "CUC": {
- "name": "古巴可轉換披索"
- },
- "CUP": {
- "name": "古巴披索"
- },
- "SZL": {
- "name": "史瓦濟蘭里朗吉尼"
- },
- "DJF": {
- "name": "吉布地法郎"
- },
- "KGS": {
- "name": "吉爾吉斯索姆"
- },
- "COP": {
- "name": "哥倫比亞披索"
- },
- "CRC": {
- "name": "哥斯大黎加科朗"
- },
- "GEL": {
- "name": "喬治亞拉里"
- },
- "TMT": {
- "name": "土庫曼馬納特"
- },
- "GYD": {
- "name": "圭亞那元"
- },
- "TZS": {
- "name": "坦尚尼亞先令"
- },
- "EGP": {
- "name": "埃及鎊"
- },
- "TJS": {
- "name": "塔吉克索莫尼"
- },
- "SCR": {
- "name": "塞席爾盧比"
- },
- "RSD": {
- "name": "塞爾維亞戴納"
- },
- "DOP": {
- "name": "多明尼加披索"
- },
- "NGN": {
- "name": "奈及利亞奈拉"
- },
- "VEF": {
- "name": "委內瑞拉玻利瓦"
- },
- "BDT": {
- "name": "孟加拉塔卡"
- },
- "AOA": {
- "name": "安哥拉寬扎"
- },
- "LAK": {
- "name": "寮國基普"
- },
- "ZMW": {
- "name": "尚比亞克瓦查"
- },
- "NIO": {
- "name": "尼加拉瓜金科多巴"
- },
- "NPR": {
- "name": "尼泊爾盧比"
- },
- "BSD": {
- "name": "巴哈馬元"
- },
- "PKR": {
- "name": "巴基斯坦盧比"
- },
- "PGK": {
- "name": "巴布亞紐幾內亞基那"
- },
- "PYG": {
- "name": "巴拉圭瓜拉尼"
- },
- "PAB": {
- "name": "巴拿馬巴波亞"
- },
- "BHD": {
- "name": "巴林第納爾"
- },
- "BRL": {
- "name": "巴西里拉",
- "symbol": "R$"
- },
- "BBD": {
- "name": "巴貝多元"
- },
- "GNF": {
- "name": "幾內亞法郎"
- },
- "NOK": {
- "name": "挪威克朗"
- },
- "CZK": {
- "name": "捷克克朗"
- },
- "MDL": {
- "name": "摩杜雲列伊"
- },
- "MAD": {
- "name": "摩洛哥迪拉姆"
- },
- "SYP": {
- "name": "敘利亞鎊"
- },
- "FJD": {
- "name": "斐濟元"
- },
- "LKR": {
- "name": "斯里蘭卡盧比"
- },
- "SGD": {
- "name": "新加坡幣"
- },
- "TWD": {
- "name": "新台幣",
- "symbol": "NT$"
- },
- "TRY": {
- "name": "新土耳其里拉"
- },
- "JPY": {
- "name": "日圓",
- "symbol": "¥"
- },
- "CLP": {
- "name": "智利披索"
- },
- "TOP": {
- "name": "東加潘加"
- },
- "KHR": {
- "name": "柬埔寨瑞爾"
- },
- "XCD": {
- "name": "格瑞那達元",
- "symbol": "EC$"
- },
- "MUR": {
- "name": "模里西斯盧比"
- },
- "EUR": {
- "name": "歐元",
- "symbol": "€"
- },
- "BND": {
- "name": "汶萊元"
- },
- "SAR": {
- "name": "沙烏地里亞爾"
- },
- "XOF": {
- "name": "法郎 (CFA–BCEAO)",
- "symbol": "CFA"
- },
- "XAF": {
- "name": "法郎 (CFA–BEAC)",
- "symbol": "FCFA"
- },
- "XPF": {
- "name": "法郎 (CFP)",
- "symbol": "CFPF"
- },
- "BAM": {
- "name": "波士尼亞-赫塞哥維納可轉換馬克"
- },
- "BWP": {
- "name": "波札那普拉"
- },
- "PLN": {
- "name": "波蘭茲羅提"
- },
- "THB": {
- "name": "泰銖"
- },
- "HNL": {
- "name": "洪都拉斯倫皮拉"
- },
- "HTG": {
- "name": "海地古德"
- },
- "HKD": {
- "name": "港幣",
- "symbol": "HK$"
- },
- "AUD": {
- "name": "澳幣",
- "symbol": "AU$"
- },
- "MOP": {
- "name": "澳門元"
- },
- "UAH": {
- "name": "烏克蘭格里夫納"
- },
- "UGX": {
- "name": "烏干達先令"
- },
- "UYU": {
- "name": "烏拉圭披索"
- },
- "UZS": {
- "name": "烏茲別克索姆"
- },
- "JMD": {
- "name": "牙買加元"
- },
- "SLL": {
- "name": "獅子山利昂"
- },
- "BOB": {
- "name": "玻利維亞諾"
- },
- "SEK": {
- "name": "瑞典克朗"
- },
- "CHF": {
- "name": "瑞士法郎"
- },
- "GTQ": {
- "name": "瓜地馬拉格查爾"
- },
- "GMD": {
- "name": "甘比亞達拉西"
- },
- "BYN": {
- "name": "白俄羅斯盧布"
- },
- "BYR": {
- "name": "白俄羅斯盧布 (2000–2016)"
- },
- "BMD": {
- "name": "百慕達幣"
- },
- "RWF": {
- "name": "盧安達法郎"
- },
- "GIP": {
- "name": "直布羅陀鎊"
- },
- "FKP": {
- "name": "福克蘭群島鎊"
- },
- "VUV": {
- "name": "萬那杜瓦圖"
- },
- "KWD": {
- "name": "科威特第納爾"
- },
- "KMF": {
- "name": "科摩羅法郎"
- },
- "PEN": {
- "name": "秘魯新太陽幣"
- },
- "TND": {
- "name": "突尼西亞第納爾"
- },
- "JOD": {
- "name": "約旦第納爾"
- },
- "NAD": {
- "name": "納米比亞元"
- },
- "NZD": {
- "name": "紐西蘭幣",
- "symbol": "NZ$"
- },
- "SBD": {
- "name": "索羅門群島元"
- },
- "SOS": {
- "name": "索馬利亞先令"
- },
- "CVE": {
- "name": "維德角埃斯庫多"
- },
- "MMK": {
- "name": "緬甸元"
- },
- "RON": {
- "name": "羅馬尼亞列伊"
- },
- "USD": {
- "name": "美元",
- "symbol": "US$"
- },
- "STD": {
- "name": "聖多美島和普林西比島多布拉"
- },
- "SHP": {
- "name": "聖赫勒拿鎊"
- },
- "KES": {
- "name": "肯尼亞先令"
- },
- "GBP": {
- "name": "英鎊",
- "symbol": "£"
- },
- "MRO": {
- "name": "茅利塔尼亞烏吉亞"
- },
- "ANG": {
- "name": "荷屬安地列斯盾"
- },
- "MZN": {
- "name": "莫三比克梅蒂卡爾"
- },
- "PHP": {
- "name": "菲律賓披索"
- },
- "YER": {
- "name": "葉門里亞爾"
- },
- "MNT": {
- "name": "蒙古圖格里克"
- },
- "BIF": {
- "name": "蒲隆地法郎"
- },
- "SVC": {
- "name": "薩爾瓦多科郎"
- },
- "SDG": {
- "name": "蘇丹鎊"
- },
- "SRD": {
- "name": "蘇利南元"
- },
- "ETB": {
- "name": "衣索比亞比爾"
- },
- "WST": {
- "name": "西薩摩亞塔拉"
- },
- "BZD": {
- "name": "貝里斯元"
- },
- "LRD": {
- "name": "賴比瑞亞元"
- },
- "LSL": {
- "name": "賴索托洛蒂"
- },
- "VND": {
- "name": "越南盾",
- "symbol": "₫"
- },
- "ZWL": {
- "name": "辛巴威元 (2009)"
- },
- "GHS": {
- "name": "迦納塞地"
- },
- "KYD": {
- "name": "開曼群島元"
- },
- "AFN": {
- "name": "阿富汗尼"
- },
- "AED": {
- "name": "阿拉伯聯合大公國迪爾汗"
- },
- "OMR": {
- "name": "阿曼里亞爾"
- },
- "ARS": {
- "name": "阿根廷披索"
- },
- "DZD": {
- "name": "阿爾及利亞第納爾"
- },
- "ALL": {
- "name": "阿爾巴尼亞列克"
- },
- "AWG": {
- "name": "阿路巴盾"
- },
- "KRW": {
- "name": "韓圓",
- "symbol": "₩"
- },
- "MYR": {
- "name": "馬來西亞令吉"
- },
- "MKD": {
- "name": "馬其頓第納爾"
- },
- "MWK": {
- "name": "馬拉維克瓦查"
- },
- "MVR": {
- "name": "馬爾地夫盧非亞"
- },
- "MGA": {
- "name": "馬達加斯加阿里亞里"
- },
- "LBP": {
- "name": "黎巴嫩鎊"
- },
- "MXN": {
- "name": "墨西哥披索",
- "symbol": "MX$"
- }
-} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/currency/zgh.json b/vendor/commerceguys/intl/resources/currency/zgh.json
index dccd83038..cc4d7347e 100644
--- a/vendor/commerceguys/intl/resources/currency/zgh.json
+++ b/vendor/commerceguys/intl/resources/currency/zgh.json
@@ -29,9 +29,6 @@
"BYN": {
"name": "Belarusian Ruble"
},
- "BYR": {
- "name": "Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "Belize Dollar"
},
@@ -86,7 +83,7 @@
"name": "Cuban Peso"
},
"CZK": {
- "name": "Czech Republic Koruna"
+ "name": "Czech Koruna"
},
"DKK": {
"name": "Danish Krone"
@@ -236,7 +233,7 @@
"name": "Peruvian Sol"
},
"PHP": {
- "name": "Philippine Peso"
+ "name": "Philippine Piso"
},
"PLN": {
"name": "Polish Zloty"
diff --git a/vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json b/vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json
index b3e6889e1..9d179e767 100644
--- a/vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json
+++ b/vendor/commerceguys/intl/resources/currency/zh-Hans-HK.json
@@ -67,9 +67,6 @@
"BYN": {
"name": "白俄罗斯卢布"
},
- "BYR": {
- "name": "白俄罗斯卢布 (2000–2016)"
- },
"BMD": {
"name": "百慕大元"
},
@@ -271,7 +268,7 @@
"name": "孟加拉塔卡"
},
"PEN": {
- "name": "秘鲁新索尔"
+ "name": "秘鲁索尔"
},
"MMK": {
"name": "缅甸元"
diff --git a/vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json b/vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json
index 2e7f33b46..75ee33849 100644
--- a/vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json
+++ b/vendor/commerceguys/intl/resources/currency/zh-Hant-HK.json
@@ -108,9 +108,6 @@
"BYN": {
"name": "白俄羅斯盧布"
},
- "BYR": {
- "name": "白俄羅斯盧布 (2000–2016)"
- },
"IQD": {
"name": "伊拉克第納爾"
},
@@ -153,7 +150,7 @@
"name": "安哥拉寬扎"
},
"BMD": {
- "name": "百慕達幣"
+ "name": "百慕達元"
},
"LAK": {
"name": "老撾基普"
@@ -327,7 +324,7 @@
"name": "烏茲別克索姆"
},
"PEN": {
- "name": "秘魯新太陽幣"
+ "name": "秘魯太陽幣"
},
"NAD": {
"name": "納米比亞元"
@@ -475,7 +472,7 @@
"name": "賴索托洛蒂"
},
"KRW": {
- "name": "韓圓",
+ "name": "韓元",
"symbol": "₩"
},
"SVC": {
diff --git a/vendor/commerceguys/intl/resources/currency/zh-Hant-MO.json b/vendor/commerceguys/intl/resources/currency/zh-Hant-MO.json
index 249daa54e..44cef2c3b 100644
--- a/vendor/commerceguys/intl/resources/currency/zh-Hant-MO.json
+++ b/vendor/commerceguys/intl/resources/currency/zh-Hant-MO.json
@@ -108,9 +108,6 @@
"BYN": {
"name": "白俄羅斯盧布"
},
- "BYR": {
- "name": "白俄羅斯盧布 (2000–2016)"
- },
"IQD": {
"name": "伊拉克第納爾"
},
@@ -153,7 +150,7 @@
"name": "安哥拉寬扎"
},
"BMD": {
- "name": "百慕達幣"
+ "name": "百慕達元"
},
"LAK": {
"name": "老撾基普"
@@ -327,7 +324,7 @@
"name": "烏茲別克索姆"
},
"PEN": {
- "name": "秘魯新太陽幣"
+ "name": "秘魯太陽幣"
},
"NAD": {
"name": "納米比亞元"
@@ -476,7 +473,7 @@
"name": "賴索托洛蒂"
},
"KRW": {
- "name": "韓圓",
+ "name": "韓元",
"symbol": "₩"
},
"SVC": {
diff --git a/vendor/commerceguys/intl/resources/currency/zh-Hant.json b/vendor/commerceguys/intl/resources/currency/zh-Hant.json
index 11396cd52..7587abe43 100644
--- a/vendor/commerceguys/intl/resources/currency/zh-Hant.json
+++ b/vendor/commerceguys/intl/resources/currency/zh-Hant.json
@@ -59,10 +59,7 @@
"symbol": "CA$"
},
"KPW": {
- "name": "北韓圓"
- },
- "KZT": {
- "name": "卡扎克斯坦坦吉"
+ "name": "北韓元"
},
"QAR": {
"name": "卡達里亞爾"
@@ -91,9 +88,6 @@
"BYN": {
"name": "白俄羅斯盧布"
},
- "BYR": {
- "name": "白俄羅斯盧布 (2000–2016)"
- },
"IQD": {
"name": "伊拉克第納爾"
},
@@ -239,6 +233,9 @@
"SSP": {
"name": "南蘇丹鎊"
},
+ "KZT": {
+ "name": "哈薩克堅戈"
+ },
"KHR": {
"name": "柬埔寨瑞爾"
},
@@ -312,7 +309,7 @@
"name": "烏茲別克索姆"
},
"PEN": {
- "name": "秘魯新太陽幣"
+ "name": "秘魯太陽幣"
},
"NAD": {
"name": "納米比亞元"
@@ -478,7 +475,7 @@
"name": "賴索托洛蒂"
},
"KRW": {
- "name": "韓圓",
+ "name": "韓元",
"symbol": "₩"
},
"SVC": {
diff --git a/vendor/commerceguys/intl/resources/currency/zh.json b/vendor/commerceguys/intl/resources/currency/zh.json
index 351bf07ac..c7202d22f 100644
--- a/vendor/commerceguys/intl/resources/currency/zh.json
+++ b/vendor/commerceguys/intl/resources/currency/zh.json
@@ -67,9 +67,6 @@
"BYN": {
"name": "白俄罗斯卢布"
},
- "BYR": {
- "name": "白俄罗斯卢布 (2000–2016)"
- },
"BMD": {
"name": "百慕大元"
},
@@ -271,7 +268,7 @@
"name": "孟加拉塔卡"
},
"PEN": {
- "name": "秘鲁新索尔"
+ "name": "秘鲁索尔"
},
"MMK": {
"name": "缅甸元"
diff --git a/vendor/commerceguys/intl/resources/currency/zu.json b/vendor/commerceguys/intl/resources/currency/zu.json
index 591d6d7f5..4f0fd2392 100644
--- a/vendor/commerceguys/intl/resources/currency/zu.json
+++ b/vendor/commerceguys/intl/resources/currency/zu.json
@@ -42,9 +42,6 @@
"BYN": {
"name": "i-Belarusian Ruble"
},
- "BYR": {
- "name": "i-Belarusian Ruble (2000–2016)"
- },
"BZD": {
"name": "i-Belize Dollar"
},
diff --git a/vendor/commerceguys/intl/resources/language/af.json b/vendor/commerceguys/intl/resources/language/af.json
index 8f6af95f0..39da31909 100644
--- a/vendor/commerceguys/intl/resources/language/af.json
+++ b/vendor/commerceguys/intl/resources/language/af.json
@@ -45,7 +45,7 @@
"name": "Baskies"
},
"be": {
- "name": "Belo-Russies"
+ "name": "Belarussies"
},
"bem": {
"name": "Bemba"
@@ -102,7 +102,7 @@
"name": "Engels (Kanada)"
},
"en-GB": {
- "name": "Engels (Verenigde Koninkryk)"
+ "name": "Engels (VK)"
},
"eo": {
"name": "Esperanto"
@@ -117,7 +117,7 @@
"name": "Ewondo"
},
"fo": {
- "name": "Faroees"
+ "name": "Faroëes"
},
"fil": {
"name": "Filippyns"
@@ -134,6 +134,9 @@
"fr-CH": {
"name": "Frans (Switserland)"
},
+ "fy": {
+ "name": "Fries"
+ },
"fur": {
"name": "Friuliaans"
},
@@ -173,9 +176,6 @@
"hu": {
"name": "Hongaars"
},
- "hsb": {
- "name": "Hoog-Sorbies"
- },
"ga": {
"name": "Iers"
},
@@ -221,9 +221,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantonees"
- },
"ks": {
"name": "Kasjmirs"
},
@@ -242,6 +239,9 @@
"km": {
"name": "Khmer"
},
+ "cgg": {
+ "name": "Kiga"
+ },
"ki": {
"name": "Kikuyu"
},
@@ -407,6 +407,9 @@
"uz": {
"name": "Oezbeeks"
},
+ "hsb": {
+ "name": "Oppersorbies"
+ },
"or": {
"name": "Oriya"
},
@@ -477,7 +480,7 @@
"name": "Sena"
},
"tzm": {
- "name": "Sentraal Atlas Tamazight"
+ "name": "Sentraal-Atlas-Tamazight"
},
"sr": {
"name": "Serwies"
@@ -491,12 +494,12 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
- "cgg": {
- "name": "Sjiga"
- },
"zh": {
"name": "Sjinees"
},
@@ -522,7 +525,7 @@
"name": "Somalies"
},
"ckb": {
- "name": "Sorani Koerdies"
+ "name": "Sorani"
},
"es": {
"name": "Spaans"
@@ -551,6 +554,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "Tadzjieks"
+ },
"dav": {
"name": "Taita"
},
@@ -560,6 +566,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tataars"
+ },
"te": {
"name": "Teloegoe"
},
@@ -582,7 +591,7 @@
"name": "Tsjeggies"
},
"ce": {
- "name": "Tsjetsjen"
+ "name": "Tsjetsjeens"
},
"tk": {
"name": "Turkmeens"
@@ -614,8 +623,8 @@
"wae": {
"name": "Walser"
},
- "fy": {
- "name": "Wes-Fries"
+ "wo": {
+ "name": "Wolof"
},
"yav": {
"name": "Yangben"
diff --git a/vendor/commerceguys/intl/resources/language/agq.json b/vendor/commerceguys/intl/resources/language/agq.json
index 43b0f932b..7da659af1 100644
--- a/vendor/commerceguys/intl/resources/language/agq.json
+++ b/vendor/commerceguys/intl/resources/language/agq.json
@@ -71,9 +71,6 @@
"my": {
"name": "Bùumɛsɛ̀"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -506,6 +503,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamì"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ak.json b/vendor/commerceguys/intl/resources/language/ak.json
index 6a48dc1df..a723be59f 100644
--- a/vendor/commerceguys/intl/resources/language/ak.json
+++ b/vendor/commerceguys/intl/resources/language/ak.json
@@ -83,9 +83,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -506,6 +503,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil kasa"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/am.json b/vendor/commerceguys/intl/resources/language/am.json
index 7d7da2689..de9998d25 100644
--- a/vendor/commerceguys/intl/resources/language/am.json
+++ b/vendor/commerceguys/intl/resources/language/am.json
@@ -18,7 +18,7 @@
"name": "ሉኦ"
},
"lb": {
- "name": "ሉክዘምበርገርኛ"
+ "name": "ሉክዘምበርኛ"
},
"luy": {
"name": "ሉዪያ"
@@ -33,7 +33,7 @@
"name": "ላንጊ"
},
"lo": {
- "name": "ላኦስኛ"
+ "name": "ላኦኛ"
},
"lkt": {
"name": "ላኮታ"
@@ -92,6 +92,9 @@
"mgo": {
"name": "ሜታ"
},
+ "fy": {
+ "name": "ምዕራባዊ ፍሪሲኛ"
+ },
"ro-MD": {
"name": "ሞልዳቪያንኛ"
},
@@ -140,6 +143,9 @@
"si": {
"name": "ሲንሃልኛ"
},
+ "sd": {
+ "name": "ሲንድሂኛ"
+ },
"saq": {
"name": "ሳምቡሩ"
},
@@ -254,6 +260,9 @@
"twq": {
"name": "ታሳዋቅ"
},
+ "tt": {
+ "name": "ታታርኛ"
+ },
"shi": {
"name": "ታቼልሂት"
},
@@ -263,6 +272,9 @@
"th": {
"name": "ታይኛ"
},
+ "tg": {
+ "name": "ታጂኪኛ"
+ },
"teo": {
"name": "ቴሶ"
},
@@ -422,9 +434,6 @@
"kn": {
"name": "ካናዳኛ"
},
- "yue": {
- "name": "ካንቶኒዝ"
- },
"kkj": {
"name": "ካኮ"
},
@@ -470,11 +479,14 @@
"wae": {
"name": "ዋልሰር"
},
+ "wo": {
+ "name": "ዎሎፍኛ"
+ },
"ar": {
"name": "ዓረብኛ"
},
"he": {
- "name": "ዕብራስጥ"
+ "name": "ዕብራይስጥ"
},
"zu": {
"name": "ዙሉኛ"
@@ -488,9 +500,6 @@
"es-MX": {
"name": "የሜክሲኮ ስፓንሽኛ"
},
- "fy": {
- "name": "የምዕራብ ፍሪስኛ"
- },
"gd": {
"name": "የስኮቲሽ ጌልክኛ"
},
diff --git a/vendor/commerceguys/intl/resources/language/ar-EG.json b/vendor/commerceguys/intl/resources/language/ar-EG.json
index 0d125a761..71392e8ac 100644
--- a/vendor/commerceguys/intl/resources/language/ar-EG.json
+++ b/vendor/commerceguys/intl/resources/language/ar-EG.json
@@ -6,7 +6,7 @@
"name": "الأذربيجانية"
},
"hy": {
- "name": "الأرمينية"
+ "name": "الأرمنية"
},
"as": {
"name": "الأسامية"
@@ -80,6 +80,9 @@
"om": {
"name": "الأورومية"
},
+ "or": {
+ "name": "الأورية"
+ },
"uz": {
"name": "الأوزبكية"
},
@@ -116,6 +119,9 @@
"bas": {
"name": "الباسا"
},
+ "eu": {
+ "name": "الباسكية"
+ },
"bm": {
"name": "البامبارا"
},
@@ -132,7 +138,7 @@
"name": "البريتونية"
},
"ps": {
- "name": "البشتونية"
+ "name": "البشتو"
},
"bg": {
"name": "البلغارية"
@@ -170,6 +176,9 @@
"bo": {
"name": "التبتية"
},
+ "tt": {
+ "name": "التترية"
+ },
"tk": {
"name": "التركمانية"
},
@@ -189,14 +198,11 @@
"name": "التونغية"
},
"te": {
- "name": "التيلوجو"
+ "name": "التيلوغوية"
},
"gl": {
"name": "الجاليكية"
},
- "lg": {
- "name": "الجاندا"
- },
"ka": {
"name": "الجورجية"
},
@@ -239,9 +245,6 @@
"sah": {
"name": "الساخية"
},
- "se": {
- "name": "السامي الشمالية"
- },
"sg": {
"name": "السانجو"
},
@@ -254,6 +257,9 @@
"sl": {
"name": "السلوفانية"
},
+ "sd": {
+ "name": "السندية"
+ },
"si": {
"name": "السنهالية"
},
@@ -299,12 +305,18 @@
"zh-Hans": {
"name": "الصينية المبسطة"
},
+ "tg": {
+ "name": "الطاجيكية"
+ },
"he": {
"name": "العبرية"
},
"ar": {
"name": "العربية"
},
+ "lg": {
+ "name": "الغاندا"
+ },
"gu": {
"name": "الغوجاراتية"
},
@@ -383,9 +395,6 @@
"ks": {
"name": "الكشميرية"
},
- "yue": {
- "name": "الكَنْتُونية"
- },
"kw": {
"name": "الكورنية"
},
@@ -413,21 +422,18 @@
"lo": {
"name": "اللاوية"
},
- "lu": {
- "name": "اللبا-كاتانجا"
- },
"lrc": {
"name": "اللرية الشمالية"
},
- "or": {
- "name": "اللغة الأورية"
- },
"lb": {
"name": "اللكسمبورغية"
},
"luo": {
"name": "اللو"
},
+ "lu": {
+ "name": "اللوبا كاتانغا"
+ },
"lt": {
"name": "الليتوانية"
},
@@ -447,7 +453,7 @@
"name": "الماساي"
},
"mg": {
- "name": "المالاجاشية"
+ "name": "المالاغاشية"
},
"ml": {
"name": "المالايالامية"
@@ -479,9 +485,6 @@
"nd": {
"name": "النديبيل الشمالية"
},
- "nb": {
- "name": "النرويجية بوكمال"
- },
"nn": {
"name": "النرويجية نينورسك"
},
@@ -509,6 +512,9 @@
"wae": {
"name": "الوالسر"
},
+ "wo": {
+ "name": "الولوفية"
+ },
"cy": {
"name": "الويلزية"
},
@@ -519,7 +525,7 @@
"name": "اليديشية"
},
"yo": {
- "name": "اليوروبية"
+ "name": "اليوروبا"
},
"el": {
"name": "اليونانية"
@@ -527,6 +533,9 @@
"ebu": {
"name": "إمبو"
},
+ "nb": {
+ "name": "بوكمول النرويجية"
+ },
"bez": {
"name": "بينا"
},
@@ -551,6 +560,9 @@
"saq": {
"name": "سامبورو"
},
+ "se": {
+ "name": "سامي الشمالية"
+ },
"sbp": {
"name": "سانغو"
},
@@ -587,9 +599,6 @@
"lag": {
"name": "لانجي"
},
- "eu": {
- "name": "لغة الباسك"
- },
"ksf": {
"name": "لغة البافيا"
},
diff --git a/vendor/commerceguys/intl/resources/language/ar-LY.json b/vendor/commerceguys/intl/resources/language/ar-LY.json
index e56980543..bbc562df6 100644
--- a/vendor/commerceguys/intl/resources/language/ar-LY.json
+++ b/vendor/commerceguys/intl/resources/language/ar-LY.json
@@ -6,7 +6,7 @@
"name": "الأذربيجانية"
},
"hy": {
- "name": "الأرمينية"
+ "name": "الأرمنية"
},
"as": {
"name": "الأسامية"
@@ -80,6 +80,9 @@
"om": {
"name": "الأورومية"
},
+ "or": {
+ "name": "الأورية"
+ },
"uz": {
"name": "الأوزبكية"
},
@@ -116,6 +119,9 @@
"bas": {
"name": "الباسا"
},
+ "eu": {
+ "name": "الباسكية"
+ },
"bm": {
"name": "البامبارا"
},
@@ -132,7 +138,7 @@
"name": "البريتونية"
},
"ps": {
- "name": "البشتونية"
+ "name": "البشتو"
},
"bg": {
"name": "البلغارية"
@@ -170,6 +176,9 @@
"bo": {
"name": "التبتية"
},
+ "tt": {
+ "name": "التترية"
+ },
"tk": {
"name": "التركمانية"
},
@@ -189,14 +198,11 @@
"name": "التيغرينية"
},
"te": {
- "name": "التيلوجو"
+ "name": "التيلوغوية"
},
"gl": {
"name": "الجاليكية"
},
- "lg": {
- "name": "الجاندا"
- },
"ka": {
"name": "الجورجية"
},
@@ -204,7 +210,7 @@
"name": "الخميرية"
},
"da": {
- "name": "الدانماركية"
+ "name": "الدانمركية"
},
"dua": {
"name": "الديولا"
@@ -239,9 +245,6 @@
"sah": {
"name": "الساخية"
},
- "se": {
- "name": "السامي الشمالية"
- },
"sg": {
"name": "السانجو"
},
@@ -254,6 +257,9 @@
"sl": {
"name": "السلوفانية"
},
+ "sd": {
+ "name": "السندية"
+ },
"si": {
"name": "السنهالية"
},
@@ -299,12 +305,18 @@
"zh-Hans": {
"name": "الصينية المبسطة"
},
+ "tg": {
+ "name": "الطاجيكية"
+ },
"he": {
"name": "العبرية"
},
"ar": {
"name": "العربية"
},
+ "lg": {
+ "name": "الغاندا"
+ },
"gu": {
"name": "الغوجاراتية"
},
@@ -383,9 +395,6 @@
"ks": {
"name": "الكشميرية"
},
- "yue": {
- "name": "الكَنْتُونية"
- },
"kw": {
"name": "الكورنية"
},
@@ -410,21 +419,18 @@
"lo": {
"name": "اللاوو"
},
- "lu": {
- "name": "اللبا-كاتانجا"
- },
"lrc": {
"name": "اللرية الشمالية"
},
- "or": {
- "name": "اللغة الأورية"
- },
"lb": {
"name": "اللكسمبورغية"
},
"luo": {
"name": "اللو"
},
+ "lu": {
+ "name": "اللوبا كاتانغا"
+ },
"lt": {
"name": "الليتوانية"
},
@@ -444,7 +450,7 @@
"name": "الماساي"
},
"mg": {
- "name": "المالاجاشية"
+ "name": "المالاغاشية"
},
"ml": {
"name": "المالايالامية"
@@ -476,9 +482,6 @@
"nd": {
"name": "النديبيل الشمالية"
},
- "nb": {
- "name": "النرويجية بوكمال"
- },
"nn": {
"name": "النرويجية نينورسك"
},
@@ -506,6 +509,9 @@
"wae": {
"name": "الوالسر"
},
+ "wo": {
+ "name": "الولوفية"
+ },
"cy": {
"name": "الويلزية"
},
@@ -516,7 +522,7 @@
"name": "اليديشية"
},
"yo": {
- "name": "اليوروبية"
+ "name": "اليوروبا"
},
"el": {
"name": "اليونانية"
@@ -524,6 +530,9 @@
"ebu": {
"name": "إمبو"
},
+ "nb": {
+ "name": "بوكمول النرويجية"
+ },
"bez": {
"name": "بينا"
},
@@ -548,6 +557,9 @@
"saq": {
"name": "سامبورو"
},
+ "se": {
+ "name": "سامي الشمالية"
+ },
"sbp": {
"name": "سانغو"
},
@@ -587,9 +599,6 @@
"lag": {
"name": "لانجي"
},
- "eu": {
- "name": "لغة الباسك"
- },
"ksf": {
"name": "لغة البافيا"
},
diff --git a/vendor/commerceguys/intl/resources/language/ar-SA.json b/vendor/commerceguys/intl/resources/language/ar-SA.json
index 895d1498e..87956fb12 100644
--- a/vendor/commerceguys/intl/resources/language/ar-SA.json
+++ b/vendor/commerceguys/intl/resources/language/ar-SA.json
@@ -6,7 +6,7 @@
"name": "الأذربيجانية"
},
"hy": {
- "name": "الأرمينية"
+ "name": "الأرمنية"
},
"as": {
"name": "الأسامية"
@@ -119,6 +119,9 @@
"bas": {
"name": "الباسا"
},
+ "eu": {
+ "name": "الباسكية"
+ },
"bm": {
"name": "البامبارا"
},
@@ -135,7 +138,7 @@
"name": "البريتونية"
},
"ps": {
- "name": "البشتونية"
+ "name": "البشتو"
},
"bg": {
"name": "البلغارية"
@@ -173,6 +176,9 @@
"bo": {
"name": "التبتية"
},
+ "tt": {
+ "name": "التترية"
+ },
"tk": {
"name": "التركمانية"
},
@@ -197,9 +203,6 @@
"gl": {
"name": "الجاليكية"
},
- "lg": {
- "name": "الجاندا"
- },
"ka": {
"name": "الجورجية"
},
@@ -207,7 +210,7 @@
"name": "الخميرية"
},
"da": {
- "name": "الدانماركية"
+ "name": "الدانمركية"
},
"dua": {
"name": "الديولا"
@@ -242,9 +245,6 @@
"sah": {
"name": "الساخية"
},
- "se": {
- "name": "السامي الشمالية"
- },
"sg": {
"name": "السانجو"
},
@@ -257,6 +257,9 @@
"sl": {
"name": "السلوفانية"
},
+ "sd": {
+ "name": "السندية"
+ },
"si": {
"name": "السنهالية"
},
@@ -302,12 +305,18 @@
"zh-Hans": {
"name": "الصينية المبسطة"
},
+ "tg": {
+ "name": "الطاجيكية"
+ },
"he": {
"name": "العبرية"
},
"ar": {
"name": "العربية"
},
+ "lg": {
+ "name": "الغاندا"
+ },
"gu": {
"name": "الغوجاراتية"
},
@@ -386,9 +395,6 @@
"ks": {
"name": "الكشميرية"
},
- "yue": {
- "name": "الكَنْتُونية"
- },
"kw": {
"name": "الكورنية"
},
@@ -413,9 +419,6 @@
"lo": {
"name": "اللاوو"
},
- "lu": {
- "name": "اللبا-كاتانجا"
- },
"lrc": {
"name": "اللرية الشمالية"
},
@@ -425,6 +428,9 @@
"luo": {
"name": "اللو"
},
+ "lu": {
+ "name": "اللوبا كاتانغا"
+ },
"lt": {
"name": "الليتوانية"
},
@@ -444,7 +450,7 @@
"name": "الماساي"
},
"mg": {
- "name": "المالاجاشية"
+ "name": "المالاغاشية"
},
"ml": {
"name": "المالايالامية"
@@ -476,9 +482,6 @@
"nd": {
"name": "النديبيل الشمالية"
},
- "nb": {
- "name": "النرويجية بوكمال"
- },
"nn": {
"name": "النرويجية نينورسك"
},
@@ -506,6 +509,9 @@
"wae": {
"name": "الوالسر"
},
+ "wo": {
+ "name": "الولوفية"
+ },
"cy": {
"name": "الويلزية"
},
@@ -516,7 +522,7 @@
"name": "اليديشية"
},
"yo": {
- "name": "اليوروبية"
+ "name": "اليوروبا"
},
"el": {
"name": "اليونانية"
@@ -524,6 +530,9 @@
"ebu": {
"name": "إمبو"
},
+ "nb": {
+ "name": "بوكمول النرويجية"
+ },
"bez": {
"name": "بينا"
},
@@ -548,6 +557,9 @@
"saq": {
"name": "سامبورو"
},
+ "se": {
+ "name": "سامي الشمالية"
+ },
"sbp": {
"name": "سانغو"
},
@@ -587,9 +599,6 @@
"lag": {
"name": "لانجي"
},
- "eu": {
- "name": "لغة الباسك"
- },
"ksf": {
"name": "لغة البافيا"
},
diff --git a/vendor/commerceguys/intl/resources/language/ar.json b/vendor/commerceguys/intl/resources/language/ar.json
index 0f72c8dfb..4b8512a12 100644
--- a/vendor/commerceguys/intl/resources/language/ar.json
+++ b/vendor/commerceguys/intl/resources/language/ar.json
@@ -6,7 +6,7 @@
"name": "الأذربيجانية"
},
"hy": {
- "name": "الأرمينية"
+ "name": "الأرمنية"
},
"as": {
"name": "الأسامية"
@@ -80,6 +80,9 @@
"om": {
"name": "الأورومية"
},
+ "or": {
+ "name": "الأورية"
+ },
"uz": {
"name": "الأوزبكية"
},
@@ -116,6 +119,9 @@
"bas": {
"name": "الباسا"
},
+ "eu": {
+ "name": "الباسكية"
+ },
"bm": {
"name": "البامبارا"
},
@@ -132,7 +138,7 @@
"name": "البريتونية"
},
"ps": {
- "name": "البشتونية"
+ "name": "البشتو"
},
"bg": {
"name": "البلغارية"
@@ -170,6 +176,9 @@
"bo": {
"name": "التبتية"
},
+ "tt": {
+ "name": "التترية"
+ },
"tk": {
"name": "التركمانية"
},
@@ -189,14 +198,11 @@
"name": "التونغية"
},
"te": {
- "name": "التيلوجو"
+ "name": "التيلوغوية"
},
"gl": {
"name": "الجاليكية"
},
- "lg": {
- "name": "الجاندا"
- },
"ka": {
"name": "الجورجية"
},
@@ -204,7 +210,7 @@
"name": "الخميرية"
},
"da": {
- "name": "الدانماركية"
+ "name": "الدانمركية"
},
"dua": {
"name": "الديولا"
@@ -239,9 +245,6 @@
"sah": {
"name": "الساخية"
},
- "se": {
- "name": "السامي الشمالية"
- },
"sg": {
"name": "السانجو"
},
@@ -254,6 +257,9 @@
"sl": {
"name": "السلوفانية"
},
+ "sd": {
+ "name": "السندية"
+ },
"si": {
"name": "السنهالية"
},
@@ -299,12 +305,18 @@
"zh-Hans": {
"name": "الصينية المبسطة"
},
+ "tg": {
+ "name": "الطاجيكية"
+ },
"he": {
"name": "العبرية"
},
"ar": {
"name": "العربية"
},
+ "lg": {
+ "name": "الغاندا"
+ },
"gu": {
"name": "الغوجاراتية"
},
@@ -383,9 +395,6 @@
"ks": {
"name": "الكشميرية"
},
- "yue": {
- "name": "الكَنْتُونية"
- },
"kw": {
"name": "الكورنية"
},
@@ -413,21 +422,18 @@
"lo": {
"name": "اللاوية"
},
- "lu": {
- "name": "اللبا-كاتانجا"
- },
"lrc": {
"name": "اللرية الشمالية"
},
- "or": {
- "name": "اللغة الأورية"
- },
"lb": {
"name": "اللكسمبورغية"
},
"luo": {
"name": "اللو"
},
+ "lu": {
+ "name": "اللوبا كاتانغا"
+ },
"lt": {
"name": "الليتوانية"
},
@@ -447,7 +453,7 @@
"name": "الماساي"
},
"mg": {
- "name": "المالاجاشية"
+ "name": "المالاغاشية"
},
"ml": {
"name": "المالايالامية"
@@ -479,9 +485,6 @@
"nd": {
"name": "النديبيل الشمالية"
},
- "nb": {
- "name": "النرويجية بوكمال"
- },
"nn": {
"name": "النرويجية نينورسك"
},
@@ -509,6 +512,9 @@
"wae": {
"name": "الوالسر"
},
+ "wo": {
+ "name": "الولوفية"
+ },
"cy": {
"name": "الويلزية"
},
@@ -519,7 +525,7 @@
"name": "اليديشية"
},
"yo": {
- "name": "اليوروبية"
+ "name": "اليوروبا"
},
"el": {
"name": "اليونانية"
@@ -527,6 +533,9 @@
"ebu": {
"name": "إمبو"
},
+ "nb": {
+ "name": "بوكمول النرويجية"
+ },
"bez": {
"name": "بينا"
},
@@ -551,6 +560,9 @@
"saq": {
"name": "سامبورو"
},
+ "se": {
+ "name": "سامي الشمالية"
+ },
"sbp": {
"name": "سانغو"
},
@@ -587,9 +599,6 @@
"lag": {
"name": "لانجي"
},
- "eu": {
- "name": "لغة الباسك"
- },
"ksf": {
"name": "لغة البافيا"
},
diff --git a/vendor/commerceguys/intl/resources/language/asa.json b/vendor/commerceguys/intl/resources/language/asa.json
index 6fac3305d..85d0ffe7b 100644
--- a/vendor/commerceguys/intl/resources/language/asa.json
+++ b/vendor/commerceguys/intl/resources/language/asa.json
@@ -47,9 +47,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ast.json b/vendor/commerceguys/intl/resources/language/ast.json
index e0b558888..eb22a4ba8 100644
--- a/vendor/commerceguys/intl/resources/language/ast.json
+++ b/vendor/commerceguys/intl/resources/language/ast.json
@@ -101,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -521,6 +518,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
@@ -554,9 +554,15 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaru"
+ },
"twq": {
"name": "tasawaq"
},
+ "tg": {
+ "name": "taxiquistanín"
+ },
"te": {
"name": "telugu"
},
@@ -608,6 +614,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"ja": {
"name": "xaponés"
},
diff --git a/vendor/commerceguys/intl/resources/language/az-Cyrl.json b/vendor/commerceguys/intl/resources/language/az-Cyrl.json
index f33455916..8a40b1bcd 100644
--- a/vendor/commerceguys/intl/resources/language/az-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/language/az-Cyrl.json
@@ -107,6 +107,9 @@
"vo": {
"name": "волапүк"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунјо"
},
@@ -251,9 +254,6 @@
"kn": {
"name": "каннада"
},
- "yue": {
- "name": "кантон"
- },
"ca": {
"name": "каталан"
},
@@ -482,6 +482,9 @@
"sr": {
"name": "серб"
},
+ "sd": {
+ "name": "синдһи"
+ },
"si": {
"name": "синһала"
},
@@ -521,9 +524,15 @@
"twq": {
"name": "тасаваг"
},
+ "tt": {
+ "name": "татар"
+ },
"shi": {
"name": "тачелит"
},
+ "tg": {
+ "name": "таҹик"
+ },
"te": {
"name": "телугу"
},
diff --git a/vendor/commerceguys/intl/resources/language/az.json b/vendor/commerceguys/intl/resources/language/az.json
index 0d821b91a..e53a23e57 100644
--- a/vendor/commerceguys/intl/resources/language/az.json
+++ b/vendor/commerceguys/intl/resources/language/az.json
@@ -81,7 +81,7 @@
"name": "bolqar"
},
"bs": {
- "name": "bosniak"
+ "name": "bosniya"
},
"br": {
"name": "breton"
@@ -114,7 +114,7 @@
"name": "duala"
},
"dz": {
- "name": "dzonqa"
+ "name": "dzonqxa"
},
"ebu": {
"name": "embu"
@@ -251,9 +251,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kanton"
- },
"ca": {
"name": "katalan"
},
@@ -456,7 +453,7 @@
"name": "Portuqaliya portuqalcası"
},
"prg": {
- "name": "Prussian"
+ "name": "pruss"
},
"ps": {
"name": "puştu"
@@ -503,6 +500,9 @@
"ii": {
"name": "siçuan yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "sinhala"
},
@@ -545,6 +545,9 @@
"gd": {
"name": "Şotlandiya keltcəsi"
},
+ "tg": {
+ "name": "tacik"
+ },
"shi": {
"name": "taçelit"
},
@@ -560,6 +563,9 @@
"twq": {
"name": "tasavaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"th": {
"name": "tay"
},
@@ -605,6 +611,9 @@
"vo": {
"name": "volapük"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vunyo"
},
diff --git a/vendor/commerceguys/intl/resources/language/bas.json b/vendor/commerceguys/intl/resources/language/bas.json
index 54e3118d3..b20326d5e 100644
--- a/vendor/commerceguys/intl/resources/language/bas.json
+++ b/vendor/commerceguys/intl/resources/language/bas.json
@@ -50,9 +50,6 @@
"bas": {
"name": "Ɓàsàa"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/be.json b/vendor/commerceguys/intl/resources/language/be.json
index 5ce46f185..c5400b033 100644
--- a/vendor/commerceguys/intl/resources/language/be.json
+++ b/vendor/commerceguys/intl/resources/language/be.json
@@ -17,6 +17,15 @@
"en": {
"name": "англійская"
},
+ "en-AU": {
+ "name": "англійская (Аўстралія)"
+ },
+ "en-GB": {
+ "name": "англійская (Вялікабрытанія)"
+ },
+ "en-CA": {
+ "name": "англійская (Канада)"
+ },
"ar": {
"name": "арабская"
},
@@ -38,12 +47,6 @@
"asa": {
"name": "асу"
},
- "en-AU": {
- "name": "аўстралійская англійская"
- },
- "de-AT": {
- "name": "аўстрыйская нямецкая"
- },
"af": {
"name": "афрыкаанс"
},
@@ -83,9 +86,6 @@
"brx": {
"name": "бода"
},
- "en-GB": {
- "name": "брытанская англійская"
- },
"br": {
"name": "брэтонская"
},
@@ -101,6 +101,9 @@
"cy": {
"name": "валійская"
},
+ "wo": {
+ "name": "валоф"
+ },
"wae": {
"name": "вальшская"
},
@@ -215,9 +218,6 @@
"kn": {
"name": "канада"
},
- "en-CA": {
- "name": "канадская англійская"
- },
"fr-CA": {
"name": "канадская французская"
},
@@ -227,9 +227,6 @@
"kok": {
"name": "канкані"
},
- "yue": {
- "name": "кантонскі дыялект кітайскай"
- },
"ko": {
"name": "карэйская"
},
@@ -254,6 +251,12 @@
"zh": {
"name": "кітайская"
},
+ "zh-Hans": {
+ "name": "кітайская (спрошчанае кітайскае)"
+ },
+ "zh-Hant": {
+ "name": "кітайская (традыцыйнае кітайскае)"
+ },
"khq": {
"name": "койра чыіні"
},
@@ -374,6 +377,9 @@
"nl": {
"name": "нідэрландская"
},
+ "nl-BE": {
+ "name": "нідэрландская (Бельгія)"
+ },
"nds": {
"name": "ніжненямецкая"
},
@@ -392,6 +398,12 @@
"de": {
"name": "нямецкая"
},
+ "de-AT": {
+ "name": "нямецкая (Аўстрыя)"
+ },
+ "de-CH": {
+ "name": "нямецкая (Швейцарыя)"
+ },
"or": {
"name": "орыя"
},
@@ -461,6 +473,9 @@
"si": {
"name": "сінгальская"
},
+ "sd": {
+ "name": "сіндхі"
+ },
"sk": {
"name": "славацкая"
},
@@ -470,9 +485,6 @@
"xog": {
"name": "сога"
},
- "zh-Hans": {
- "name": "спрошчаная кітайская"
- },
"zgh": {
"name": "стандартная мараканская тамазіхт"
},
@@ -482,6 +494,9 @@
"ii": {
"name": "сычуаньская йі"
},
+ "tg": {
+ "name": "таджыкская"
+ },
"dav": {
"name": "таіта"
},
@@ -497,12 +512,12 @@
"twq": {
"name": "тасаўак"
},
+ "tt": {
+ "name": "татарская"
+ },
"shi": {
"name": "ташэльхіт"
},
- "zh-Hant": {
- "name": "традыцыйная кітайская"
- },
"tk": {
"name": "туркменская"
},
@@ -545,9 +560,6 @@
"fi": {
"name": "фінская"
},
- "nl-BE": {
- "name": "фламандская"
- },
"fr": {
"name": "французская"
},
@@ -599,9 +611,6 @@
"gsw": {
"name": "швейцарская нямецкая"
},
- "de-CH": {
- "name": "швейцарская стандартная нямецкая"
- },
"fr-CH": {
"name": "швейцарская французская"
},
diff --git a/vendor/commerceguys/intl/resources/language/bem.json b/vendor/commerceguys/intl/resources/language/bem.json
index 04969a77d..b376f07a1 100644
--- a/vendor/commerceguys/intl/resources/language/bem.json
+++ b/vendor/commerceguys/intl/resources/language/bem.json
@@ -47,9 +47,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/bez.json b/vendor/commerceguys/intl/resources/language/bez.json
index d8b9c09dd..214fbb2e5 100644
--- a/vendor/commerceguys/intl/resources/language/bez.json
+++ b/vendor/commerceguys/intl/resources/language/bez.json
@@ -47,9 +47,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/bg.json b/vendor/commerceguys/intl/resources/language/bg.json
index 16c264b39..777b8bba8 100644
--- a/vendor/commerceguys/intl/resources/language/bg.json
+++ b/vendor/commerceguys/intl/resources/language/bg.json
@@ -42,7 +42,7 @@
"name": "асу"
},
"af": {
- "name": "африкаанс"
+ "name": "африканс"
},
"bm": {
"name": "бамбара"
@@ -95,6 +95,9 @@
"vo": {
"name": "волапюк"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунджо"
},
@@ -126,10 +129,13 @@
"name": "датски"
},
"dz": {
- "name": "дзонха"
+ "name": "дзонгкха"
},
"dyo": {
- "name": "диола"
+ "name": "диола-фони"
+ },
+ "dsb": {
+ "name": "долнолужишки"
},
"nds": {
"name": "долнонемски"
@@ -137,9 +143,6 @@
"nds-NL": {
"name": "долносаксонски"
},
- "dsb": {
- "name": "долносръбски"
- },
"dua": {
"name": "дуала"
},
@@ -158,6 +161,9 @@
"et": {
"name": "естонски"
},
+ "fy": {
+ "name": "западнофризийски"
+ },
"dje": {
"name": "зарма"
},
@@ -218,9 +224,6 @@
"kn": {
"name": "каннада"
},
- "yue": {
- "name": "кантонски"
- },
"ca": {
"name": "каталонски"
},
@@ -297,13 +300,13 @@
"name": "литовски"
},
"lu": {
- "name": "луба катанга"
+ "name": "луба-катанга"
},
"luo": {
"name": "луо"
},
"luy": {
- "name": "луя"
+ "name": "лухя"
},
"lb": {
"name": "люксембургски"
@@ -383,9 +386,6 @@
"ne": {
"name": "непалски"
},
- "nyn": {
- "name": "нианколе"
- },
"nl": {
"name": "нидерландски"
},
@@ -398,6 +398,9 @@
"nus": {
"name": "нуер"
},
+ "nyn": {
+ "name": "нянколе"
+ },
"or": {
"name": "ория"
},
@@ -467,6 +470,9 @@
"seh": {
"name": "сена"
},
+ "sd": {
+ "name": "синдхи"
+ },
"si": {
"name": "синхалски"
},
@@ -494,6 +500,9 @@
"ii": {
"name": "съчуански и"
},
+ "tg": {
+ "name": "таджикски"
+ },
"dav": {
"name": "таита"
},
@@ -506,6 +515,9 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татарски"
+ },
"shi": {
"name": "ташелхит"
},
@@ -522,7 +534,7 @@
"name": "тигриня"
},
"to": {
- "name": "тонга"
+ "name": "тонгански"
},
"tk": {
"name": "туркменски"
@@ -569,9 +581,6 @@
"fr-CH": {
"name": "френски (Швейцария)"
},
- "fy": {
- "name": "фризийски"
- },
"fur": {
"name": "фриулиански"
},
@@ -582,7 +591,7 @@
"name": "хавайски"
},
"ha": {
- "name": "хауза"
+ "name": "хауса"
},
"hi": {
"name": "хинди"
@@ -597,7 +606,7 @@
"name": "църковнославянски"
},
"chr": {
- "name": "чероки"
+ "name": "черокски"
},
"ce": {
"name": "чеченски"
diff --git a/vendor/commerceguys/intl/resources/language/bm.json b/vendor/commerceguys/intl/resources/language/bm.json
index 287911345..507f8ac07 100644
--- a/vendor/commerceguys/intl/resources/language/bm.json
+++ b/vendor/commerceguys/intl/resources/language/bm.json
@@ -92,9 +92,6 @@
"bg": {
"name": "buligarikan"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -491,6 +488,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -536,12 +536,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "tamulikan"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"th": {
"name": "tayikan"
},
@@ -611,6 +617,9 @@
"vi": {
"name": "wiyɛtinamukan"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/bn-IN.json b/vendor/commerceguys/intl/resources/language/bn-IN.json
index f6a6a4cd4..fc4dd3653 100644
--- a/vendor/commerceguys/intl/resources/language/bn-IN.json
+++ b/vendor/commerceguys/intl/resources/language/bn-IN.json
@@ -77,9 +77,18 @@
"id": {
"name": "ইন্দোনেশীয়"
},
+ "yav": {
+ "name": "ইয়াঙ্গবেন"
+ },
+ "yi": {
+ "name": "ইয়েদ্দিশ"
+ },
"ug": {
"name": "উইঘুর"
},
+ "wo": {
+ "name": "উওলোফ"
+ },
"hsb": {
"name": "উচ্চ সোর্বিয়ান"
},
@@ -194,9 +203,6 @@
"ksh": {
"name": "কোলোনিয়ান"
},
- "yue": {
- "name": "ক্যানটোনীজ"
- },
"kl": {
"name": "ক্যালাল্লিসুট"
},
@@ -245,9 +251,6 @@
"ka": {
"name": "জর্জিয়ান"
},
- "dyo": {
- "name": "জলা-ফনী"
- },
"ja": {
"name": "জাপানি"
},
@@ -263,6 +266,9 @@
"dz": {
"name": "জোঙ্গা"
},
+ "dyo": {
+ "name": "জোলা-ফনী"
+ },
"to": {
"name": "টোঙ্গান"
},
@@ -278,6 +284,12 @@
"shi": {
"name": "তাচেলহিত"
},
+ "tg": {
+ "name": "তাজিক"
+ },
+ "tt": {
+ "name": "তাতার"
+ },
"ta": {
"name": "তামিল"
},
@@ -345,7 +357,7 @@
"name": "পাঞ্জাবী"
},
"ps": {
- "name": "পাশ্তু"
+ "name": "পুশতু"
},
"pl": {
"name": "পোলিশ"
@@ -491,12 +503,6 @@
"mk": {
"name": "ম্যাসিডোনীয়"
},
- "yav": {
- "name": "য়াঙ্গবেন"
- },
- "yi": {
- "name": "য়িদ্দিশ"
- },
"rof": {
"name": "রম্বো"
},
@@ -578,6 +584,9 @@
"ii": {
"name": "সিচুয়ান য়ি"
},
+ "sd": {
+ "name": "সিন্ধি"
+ },
"sv": {
"name": "সুইডিশ"
},
diff --git a/vendor/commerceguys/intl/resources/language/bn.json b/vendor/commerceguys/intl/resources/language/bn.json
index 09e64c6a0..d74919930 100644
--- a/vendor/commerceguys/intl/resources/language/bn.json
+++ b/vendor/commerceguys/intl/resources/language/bn.json
@@ -77,9 +77,18 @@
"id": {
"name": "ইন্দোনেশীয়"
},
+ "yav": {
+ "name": "ইয়াঙ্গবেন"
+ },
+ "yi": {
+ "name": "ইয়েদ্দিশ"
+ },
"ug": {
"name": "উইঘুর"
},
+ "wo": {
+ "name": "উওলোফ"
+ },
"hsb": {
"name": "উচ্চ সোর্বিয়ান"
},
@@ -194,9 +203,6 @@
"ko": {
"name": "কোরিয়ান"
},
- "yue": {
- "name": "ক্যানটোনীজ"
- },
"kl": {
"name": "ক্যালাল্লিসুট"
},
@@ -245,9 +251,6 @@
"ka": {
"name": "জর্জিয়ান"
},
- "dyo": {
- "name": "জলা-ফনী"
- },
"ja": {
"name": "জাপানি"
},
@@ -263,6 +266,9 @@
"dz": {
"name": "জোঙ্গা"
},
+ "dyo": {
+ "name": "জোলা-ফনী"
+ },
"to": {
"name": "টোঙ্গান"
},
@@ -278,6 +284,12 @@
"shi": {
"name": "তাচেলহিত"
},
+ "tg": {
+ "name": "তাজিক"
+ },
+ "tt": {
+ "name": "তাতার"
+ },
"ta": {
"name": "তামিল"
},
@@ -345,7 +357,7 @@
"name": "পাঞ্জাবী"
},
"ps": {
- "name": "পাশ্তু"
+ "name": "পুশতু"
},
"pl": {
"name": "পোলিশ"
@@ -491,12 +503,6 @@
"mk": {
"name": "ম্যাসিডোনীয়"
},
- "yav": {
- "name": "য়াঙ্গবেন"
- },
- "yi": {
- "name": "য়িদ্দিশ"
- },
"rof": {
"name": "রম্বো"
},
@@ -578,6 +584,9 @@
"ii": {
"name": "সিচুয়ান য়ি"
},
+ "sd": {
+ "name": "সিন্ধি"
+ },
"sv": {
"name": "সুইডিশ"
},
diff --git a/vendor/commerceguys/intl/resources/language/br.json b/vendor/commerceguys/intl/resources/language/br.json
index fec8dbe50..bace69f2d 100644
--- a/vendor/commerceguys/intl/resources/language/br.json
+++ b/vendor/commerceguys/intl/resources/language/br.json
@@ -227,9 +227,6 @@
"kn": {
"name": "kanareg"
},
- "yue": {
- "name": "kantoneg"
- },
"ks": {
"name": "kashmiri"
},
@@ -506,6 +503,9 @@
"zh-Hant": {
"name": "sinaeg hengounel"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singhaleg"
},
@@ -545,6 +545,9 @@
"shi": {
"name": "tacheliteg"
},
+ "tg": {
+ "name": "tadjik"
+ },
"dav": {
"name": "Taita"
},
@@ -560,6 +563,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"cs": {
"name": "tchekeg"
},
@@ -611,6 +617,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"sah": {
"name": "yakouteg"
},
diff --git a/vendor/commerceguys/intl/resources/language/brx.json b/vendor/commerceguys/intl/resources/language/brx.json
index f08cb751b..5ec1f2e6c 100644
--- a/vendor/commerceguys/intl/resources/language/brx.json
+++ b/vendor/commerceguys/intl/resources/language/brx.json
@@ -14,9 +14,6 @@
"bez": {
"name": "Bena"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -350,6 +347,9 @@
"ka": {
"name": "जॉर्जियन्"
},
+ "tt": {
+ "name": "टाटर्"
+ },
"to": {
"name": "टॉंगा"
},
@@ -365,6 +365,9 @@
"ta": {
"name": "तमिळ"
},
+ "tg": {
+ "name": "ताजिक्"
+ },
"ti": {
"name": "तिग्रीन्या"
},
@@ -569,6 +572,9 @@
"vo": {
"name": "वोलापोक"
},
+ "wo": {
+ "name": "वोलोफ"
+ },
"sn": {
"name": "शोना"
},
@@ -578,6 +584,9 @@
"sg": {
"name": "सांग्रो"
},
+ "sd": {
+ "name": "सिंधी"
+ },
"ii": {
"name": "सीचुआन् यी"
},
diff --git a/vendor/commerceguys/intl/resources/language/bs-Cyrl.json b/vendor/commerceguys/intl/resources/language/bs-Cyrl.json
index 12d2388cf..aaf2392ec 100644
--- a/vendor/commerceguys/intl/resources/language/bs-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/language/bs-Cyrl.json
@@ -20,12 +20,6 @@
"ast": {
"name": "астуријски"
},
- "en-AU": {
- "name": "Аустралијски енглески"
- },
- "de-AT": {
- "name": "Аустријски немачки"
- },
"af": {
"name": "африканерски"
},
@@ -38,24 +32,21 @@
"eu": {
"name": "баскијски"
},
- "be": {
- "name": "белоруски"
- },
"bem": {
"name": "бемба"
},
"bn": {
"name": "бенгласки"
},
+ "be": {
+ "name": "бјелоруски"
+ },
"bs": {
"name": "босански"
},
"br": {
"name": "бретонски"
},
- "en-GB": {
- "name": "Британски енглески"
- },
"bg": {
"name": "бугарски"
},
@@ -74,6 +65,9 @@
"vo": {
"name": "волапук"
},
+ "wo": {
+ "name": "волоф"
+ },
"gl": {
"name": "галски"
},
@@ -104,9 +98,24 @@
"ewo": {
"name": "евондо"
},
+ "ebu": {
+ "name": "ембу"
+ },
"en": {
"name": "енглески"
},
+ "en-AU": {
+ "name": "енглески (Аустралија)"
+ },
+ "en-CA": {
+ "name": "енглески (Канада)"
+ },
+ "en-GB": {
+ "name": "енглески (Уједињено Краљевство)"
+ },
+ "hy": {
+ "name": "ерменски"
+ },
"eo": {
"name": "есперанто"
},
@@ -116,9 +125,6 @@
"zu": {
"name": "зулу"
},
- "pt-PT": {
- "name": "Иберијски португалски"
- },
"ig": {
"name": "игбо"
},
@@ -143,9 +149,6 @@
"ja": {
"name": "јапански"
},
- "hy": {
- "name": "јерменски"
- },
"yi": {
"name": "јидиш"
},
@@ -164,15 +167,6 @@
"kn": {
"name": "канада"
},
- "en-CA": {
- "name": "Канадски енглески"
- },
- "fr-CA": {
- "name": "Канадски француски"
- },
- "yue": {
- "name": "кантонски"
- },
"ca": {
"name": "каталонски"
},
@@ -219,7 +213,7 @@
"name": "лаоски"
},
"lv": {
- "name": "летонски"
+ "name": "латвијски"
},
"ln": {
"name": "лингала"
@@ -269,9 +263,6 @@
"mn": {
"name": "монголски"
},
- "de": {
- "name": "немачки"
- },
"ne": {
"name": "непалски"
},
@@ -293,6 +284,15 @@
"nyn": {
"name": "њанколе"
},
+ "de": {
+ "name": "њемачки"
+ },
+ "de-AT": {
+ "name": "њемачки (Аустрија)"
+ },
+ "gsw": {
+ "name": "њемачки (Швицарска)"
+ },
"or": {
"name": "оријски"
},
@@ -317,6 +317,9 @@
"pt": {
"name": "португалски"
},
+ "pt-PT": {
+ "name": "португалски (Португал)"
+ },
"rm": {
"name": "рето-романски"
},
@@ -336,25 +339,28 @@
"name": "свахили"
},
"sw-CD": {
- "name": "свахили (Конго - Киншаса)"
- },
- "nd": {
- "name": "северни ндебеле"
- },
- "se": {
- "name": "северни сами"
+ "name": "свахили (Демократска Република Конго)"
},
"si": {
"name": "сингалески"
},
+ "sd": {
+ "name": "синди"
+ },
"ii": {
"name": "сичуан ји"
},
+ "nd": {
+ "name": "сјеверни ндебеле"
+ },
+ "se": {
+ "name": "сјеверни сами"
+ },
"sk": {
"name": "словачки"
},
"sl": {
- "name": "словеначки"
+ "name": "словенски"
},
"so": {
"name": "сомалски"
@@ -362,11 +368,14 @@
"sr": {
"name": "српски"
},
+ "zgh": {
+ "name": "стандардни марокански тамазигт"
+ },
"cu": {
- "name": "старословенски"
+ "name": "старославенски"
},
- "fil": {
- "name": "тагалог"
+ "tg": {
+ "name": "тађик"
},
"th": {
"name": "тајландски"
@@ -374,6 +383,9 @@
"ta": {
"name": "тамилски"
},
+ "tt": {
+ "name": "татарски"
+ },
"te": {
"name": "телугу"
},
@@ -407,6 +419,9 @@
"fo": {
"name": "фарски"
},
+ "fil": {
+ "name": "филипински"
+ },
"fi": {
"name": "фински"
},
@@ -416,6 +431,12 @@
"fr": {
"name": "француски"
},
+ "fr-CA": {
+ "name": "француски (Канада)"
+ },
+ "fr-CH": {
+ "name": "француски (Швицарска)"
+ },
"fy": {
"name": "фризијски"
},
@@ -455,15 +476,12 @@
"dz": {
"name": "џонга"
},
+ "ksb": {
+ "name": "шамбала"
+ },
"de-CH": {
"name": "Швајцарски високи немачки"
},
- "gsw": {
- "name": "швајцарски немачки"
- },
- "fr-CH": {
- "name": "Швајцарски француски"
- },
"sv": {
"name": "шведски"
},
@@ -506,9 +524,6 @@
"ksh": {
"name": "Colognian"
},
- "ebu": {
- "name": "Embu"
- },
"guz": {
"name": "Gusii"
},
@@ -599,15 +614,9 @@
"seh": {
"name": "Sena"
},
- "ksb": {
- "name": "Shambala"
- },
"xog": {
"name": "Soga"
},
- "zgh": {
- "name": "Standard Moroccan Tamazight"
- },
"shi": {
"name": "Tachelhit"
},
diff --git a/vendor/commerceguys/intl/resources/language/bs.json b/vendor/commerceguys/intl/resources/language/bs.json
index bc64a7e6a..07c43bd4e 100644
--- a/vendor/commerceguys/intl/resources/language/bs.json
+++ b/vendor/commerceguys/intl/resources/language/bs.json
@@ -195,7 +195,7 @@
"name": "hebrejski"
},
"hi": {
- "name": "hindu"
+ "name": "hindi"
},
"nl": {
"name": "holandski"
@@ -254,9 +254,6 @@
"kn": {
"name": "kanada"
},
- "yue": {
- "name": "kantonski"
- },
"ks": {
"name": "kašmirski"
},
@@ -264,7 +261,7 @@
"name": "katalonski"
},
"kk": {
- "name": "kazački"
+ "name": "kazaški"
},
"qu": {
"name": "kečua"
@@ -285,7 +282,7 @@
"name": "kineski (tradicionalni)"
},
"rw": {
- "name": "kinjarvanda"
+ "name": "kinjaruanda"
},
"ky": {
"name": "kirgiški"
@@ -318,7 +315,7 @@
"name": "langi"
},
"lo": {
- "name": "laoški"
+ "name": "laoski"
},
"lv": {
"name": "latvijski"
@@ -356,15 +353,15 @@
"mgh": {
"name": "makuva-meto"
},
- "mg": {
- "name": "malagaški"
- },
"ml": {
"name": "malajalam"
},
"ms": {
"name": "malajski"
},
+ "mg": {
+ "name": "malgaški"
+ },
"mt": {
"name": "malteški"
},
@@ -462,7 +459,7 @@
"name": "pruski"
},
"rm": {
- "name": "reto-romanski"
+ "name": "retoromanski"
},
"rof": {
"name": "rombo"
@@ -494,6 +491,9 @@
"ii": {
"name": "sičuan ji"
},
+ "sd": {
+ "name": "sindi"
+ },
"si": {
"name": "sinhaleški"
},
@@ -551,6 +551,9 @@
"sv": {
"name": "švedski"
},
+ "tg": {
+ "name": "tadžički"
+ },
"shi": {
"name": "tahelhit"
},
@@ -569,6 +572,9 @@
"twq": {
"name": "tasavak"
},
+ "tt": {
+ "name": "tatarski"
+ },
"te": {
"name": "telugu"
},
@@ -617,6 +623,9 @@
"vo": {
"name": "volapuk"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vunjo"
},
diff --git a/vendor/commerceguys/intl/resources/language/ca.json b/vendor/commerceguys/intl/resources/language/ca.json
index 1e14fb5b4..ad42a90ad 100644
--- a/vendor/commerceguys/intl/resources/language/ca.json
+++ b/vendor/commerceguys/intl/resources/language/ca.json
@@ -60,7 +60,7 @@
"name": "asturià"
},
"az": {
- "name": "azerbaidjanès"
+ "name": "àzeri"
},
"ksf": {
"name": "bafia"
@@ -119,9 +119,6 @@
"ks": {
"name": "caixmiri"
},
- "yue": {
- "name": "cantonès"
- },
"ca": {
"name": "català"
},
@@ -131,9 +128,6 @@
"cgg": {
"name": "chiga"
},
- "ksh": {
- "name": "colognian"
- },
"kok": {
"name": "concani"
},
@@ -314,11 +308,14 @@
"ky": {
"name": "kirguís"
},
+ "ksh": {
+ "name": "kölsch"
+ },
"khq": {
"name": "koyra chiini"
},
"ckb": {
- "name": "kurd sorani"
+ "name": "kurd central"
},
"lkt": {
"name": "lakota"
@@ -369,7 +366,7 @@
"name": "malai"
},
"ml": {
- "name": "malaiàlam"
+ "name": "malaialam"
},
"mg": {
"name": "malgaix"
@@ -521,6 +518,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindi"
+ },
"si": {
"name": "singalès"
},
@@ -542,8 +542,11 @@
"sv": {
"name": "suec"
},
+ "tg": {
+ "name": "tadjik"
+ },
"th": {
- "name": "tailandès"
+ "name": "tai"
},
"dav": {
"name": "taita"
@@ -557,6 +560,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tàtar"
+ },
"te": {
"name": "telugu"
},
@@ -611,6 +617,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wòlof"
+ },
"zh": {
"name": "xinès"
},
diff --git a/vendor/commerceguys/intl/resources/language/ce.json b/vendor/commerceguys/intl/resources/language/ce.json
index f1ba3a76b..e8ec9c692 100644
--- a/vendor/commerceguys/intl/resources/language/ce.json
+++ b/vendor/commerceguys/intl/resources/language/ce.json
@@ -1,58 +1,4 @@
{
- "ast": {
- "name": "Asturian"
- },
- "bas": {
- "name": "Basaa"
- },
- "yue": {
- "name": "Cantonese"
- },
- "cu": {
- "name": "Church Slavic"
- },
- "ksh": {
- "name": "Colognian"
- },
- "ewo": {
- "name": "Ewondo"
- },
- "fur": {
- "name": "Friulian"
- },
- "ff": {
- "name": "Fulah"
- },
- "kkj": {
- "name": "Kako"
- },
- "nnh": {
- "name": "Ngiemboon"
- },
- "os": {
- "name": "Ossetic"
- },
- "prg": {
- "name": "Prussian"
- },
- "sah": {
- "name": "Sakha"
- },
- "gd": {
- "name": "Scottish Gaelic"
- },
- "vo": {
- "name": "Volapük"
- },
- "wae": {
- "name": "Walser"
- },
- "yav": {
- "name": "Yangben"
- },
- "yi": {
- "name": "Yiddish"
- },
"en-AU": {
"name": "Австралин ингалсан"
},
@@ -77,11 +23,14 @@
"as": {
"name": "ассамийн"
},
+ "ast": {
+ "name": "астурийн"
+ },
"asa": {
"name": "асу"
},
"zh-Hans": {
- "name": "атта китайн"
+ "name": "атта цийн"
},
"af": {
"name": "африкаанс"
@@ -89,6 +38,9 @@
"bm": {
"name": "бамбара"
},
+ "bas": {
+ "name": "баса"
+ },
"eu": {
"name": "баскийн"
},
@@ -131,9 +83,18 @@
"cy": {
"name": "валлийн"
},
+ "wae": {
+ "name": "валлисийн"
+ },
"hu": {
"name": "венгрийн"
},
+ "vo": {
+ "name": "волапюк"
+ },
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунджо"
},
@@ -167,9 +128,15 @@
"ka": {
"name": "гуьржийн"
},
+ "gd": {
+ "name": "гэлийн"
+ },
"fa": {
"name": "гӀажарийн"
},
+ "tt": {
+ "name": "гӀезалойн"
+ },
"ky": {
"name": "гӀиргӀизойн"
},
@@ -200,6 +167,9 @@
"ig": {
"name": "игбо"
},
+ "yi": {
+ "name": "идиш"
+ },
"smn": {
"name": "инари-саамийн"
},
@@ -230,8 +200,8 @@
"kea": {
"name": "кабувердьяну"
},
- "kk": {
- "name": "казахийн"
+ "kkj": {
+ "name": "како"
},
"kln": {
"name": "календжин"
@@ -263,12 +233,12 @@
"ki": {
"name": "кикуйю"
},
+ "cu": {
+ "name": "килсславянийн"
+ },
"rw": {
"name": "киньяруанда"
},
- "zh": {
- "name": "китайн"
- },
"khq": {
"name": "койра чиини"
},
@@ -284,6 +254,12 @@
"kw": {
"name": "корнуоллийн"
},
+ "ksh": {
+ "name": "коьлнийн"
+ },
+ "kk": {
+ "name": "кхазакхийн"
+ },
"km": {
"name": "кхмерийн"
},
@@ -303,7 +279,7 @@
"name": "лакхара сербийн"
},
"zh-Hant": {
- "name": "ламастан китайн"
+ "name": "ламастан цийн"
},
"lag": {
"name": "ланги"
@@ -404,6 +380,9 @@
"naq": {
"name": "нама"
},
+ "nnh": {
+ "name": "нгиембунд"
+ },
"jgo": {
"name": "нгомба"
},
@@ -446,6 +425,9 @@
"pt": {
"name": "португалихойн"
},
+ "prg": {
+ "name": "пруссийн"
+ },
"ps": {
"name": "пушту"
},
@@ -482,6 +464,9 @@
"si": {
"name": "сингалхойн"
},
+ "sd": {
+ "name": "синдхи"
+ },
"sk": {
"name": "словакийн"
},
@@ -506,6 +491,9 @@
"ii": {
"name": "сычуань"
},
+ "tg": {
+ "name": "таджикийн"
+ },
"dav": {
"name": "таита"
},
@@ -572,15 +560,27 @@
"fr": {
"name": "французийн"
},
+ "fur": {
+ "name": "фриулийн"
+ },
+ "ff": {
+ "name": "фулах"
+ },
"ha": {
"name": "хауса"
},
- "hi": {
- "name": "хинди"
- },
"hr": {
"name": "хорватийн"
},
+ "hi": {
+ "name": "хӀинди"
+ },
+ "os": {
+ "name": "хӀирийн"
+ },
+ "zh": {
+ "name": "цийн"
+ },
"chr": {
"name": "чероки"
},
@@ -597,7 +597,7 @@
"name": "шведийн"
},
"de-CH": {
- "name": "швейцарин лакхара немцойн"
+ "name": "швейцарин литературин немцойн"
},
"gsw": {
"name": "швейцарин немцойн"
@@ -611,6 +611,9 @@
"ee": {
"name": "эве"
},
+ "ewo": {
+ "name": "эвондо"
+ },
"ebu": {
"name": "эмбу"
},
@@ -626,6 +629,12 @@
"ckb": {
"name": "юккъерчу курдийн"
},
+ "sah": {
+ "name": "якутийн"
+ },
+ "yav": {
+ "name": "янгбен"
+ },
"ja": {
"name": "японийн"
},
diff --git a/vendor/commerceguys/intl/resources/language/cgg.json b/vendor/commerceguys/intl/resources/language/cgg.json
index 11445d25f..fb171fded 100644
--- a/vendor/commerceguys/intl/resources/language/cgg.json
+++ b/vendor/commerceguys/intl/resources/language/cgg.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/chr.json b/vendor/commerceguys/intl/resources/language/chr.json
index ac16b75dd..273707522 100644
--- a/vendor/commerceguys/intl/resources/language/chr.json
+++ b/vendor/commerceguys/intl/resources/language/chr.json
@@ -14,6 +14,9 @@
"zh-Hans": {
"name": "ᎠᎯᏗᎨ ᏓᎶᏂᎨ"
},
+ "hy": {
+ "name": "ᎠᎳᎻᎠᏂ"
+ },
"sq": {
"name": "ᎠᎵᏇᏂ"
},
@@ -117,7 +120,7 @@
"name": "ᎦᎵᏏᎠᏂ"
},
"hsb": {
- "name": "ᎦᎸᎳᏗᎨ ᏐᎵᏈᎠᏂ"
+ "name": "ᎦᎸᎳᏗᎨ ᏐᏈᎠᏂ"
},
"fr": {
"name": "ᎦᎸᏥ"
@@ -170,9 +173,6 @@
"en-CA": {
"name": "ᎨᎾᏓ ᎩᎵᏏ"
},
- "yue": {
- "name": "ᎨᎾᏙᏂᏏ"
- },
"ca": {
"name": "ᎨᏔᎳᏂ"
},
@@ -306,7 +306,7 @@
"name": "ᎹᏌᏱ"
},
"mk": {
- "name": "ᎹᏎᏙᏂᎠ"
+ "name": "ᎹᏎᏙᏂᎠᏂ"
},
"jmc": {
"name": "ᎹᏣᎺ"
@@ -402,7 +402,7 @@
"name": "ᏉᏙ"
},
"pt-PT": {
- "name": "ᏉᏥᎦᎳ ᏉᏧᎦᎵ"
+ "name": "ᏉᏥᎦᎳ ᏉᏧᎩᏍ"
},
"pt": {
"name": "ᏉᏧᎩᏍ"
@@ -470,12 +470,12 @@
"seh": {
"name": "ᏎᎾ"
},
- "sr": {
- "name": "ᏎᏈᎠᏂ"
- },
"si": {
"name": "ᏏᎾᎭᎳ"
},
+ "sd": {
+ "name": "ᏏᏂᏗ"
+ },
"ii": {
"name": "ᏏᏧᏩᏂ Ᏹ"
},
@@ -488,6 +488,9 @@
"zu": {
"name": "ᏑᎷ"
},
+ "sr": {
+ "name": "ᏒᏈᎠᏂ"
+ },
"zh": {
"name": "ᏓᎶᏂᎨ"
},
@@ -503,9 +506,15 @@
"twq": {
"name": "ᏔᏌᏩᎩ"
},
+ "tt": {
+ "name": "ᏔᏔ"
+ },
"shi": {
"name": "ᏔᏤᎵᎯᏘ"
},
+ "tg": {
+ "name": "ᏔᏥᎩ"
+ },
"th": {
"name": "ᏔᏱ"
},
@@ -605,6 +614,9 @@
"vo": {
"name": "ᏬᎳᏊᎩ"
},
+ "wo": {
+ "name": "ᏬᎶᏫ"
+ },
"vun": {
"name": "ᏭᎾᏦ"
},
@@ -625,8 +637,5 @@
},
"uk": {
"name": "ᏳᎧᎴᏂᎠᏂ"
- },
- "hy": {
- "name": "Armenian"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ckb.json b/vendor/commerceguys/intl/resources/language/ckb.json
index 82d3af6c6..41946274b 100644
--- a/vendor/commerceguys/intl/resources/language/ckb.json
+++ b/vendor/commerceguys/intl/resources/language/ckb.json
@@ -35,9 +35,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -323,6 +320,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"teo": {
"name": "Teso"
},
@@ -347,6 +347,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
@@ -365,9 +368,6 @@
"as": {
"name": "ئاسامی"
},
- "sq": {
- "name": "ئاڵبانی"
- },
"de": {
"name": "ئاڵمانی"
},
@@ -380,6 +380,9 @@
"hy": {
"name": "ئەرمەنی"
},
+ "sq": {
+ "name": "ئەڵبانی"
+ },
"am": {
"name": "ئەمهەرینجی"
},
@@ -450,7 +453,7 @@
"name": "بۆلگاری"
},
"be": {
- "name": "بێلاڕووسی"
+ "name": "بیلاڕووسی"
},
"ps": {
"name": "پەشتوو"
@@ -462,11 +465,14 @@
"name": "پورتوگالی"
},
"pt-PT": {
- "name": "پورتوگاڵی (پورتوگاڵ)"
+ "name": "پورتوگالی (پورتوگال)"
},
"pl": {
"name": "پۆڵۆنیایی (لەهستانی)"
},
+ "tg": {
+ "name": "تاجیکی"
+ },
"ta": {
"name": "تامیلی"
},
@@ -530,6 +536,9 @@
"so": {
"name": "سۆمالی"
},
+ "sd": {
+ "name": "سيندی"
+ },
"si": {
"name": "سینهەلی"
},
diff --git a/vendor/commerceguys/intl/resources/language/cs.json b/vendor/commerceguys/intl/resources/language/cs.json
index 065f61c2f..af3da2b6b 100644
--- a/vendor/commerceguys/intl/resources/language/cs.json
+++ b/vendor/commerceguys/intl/resources/language/cs.json
@@ -248,9 +248,6 @@
"kn": {
"name": "kannadština"
},
- "yue": {
- "name": "kantonština"
- },
"kea": {
"name": "kapverdština"
},
@@ -506,6 +503,9 @@
"seh": {
"name": "sena"
},
+ "sd": {
+ "name": "sindhština"
+ },
"si": {
"name": "sinhálština"
},
@@ -551,6 +551,9 @@
"sv": {
"name": "švédština"
},
+ "tg": {
+ "name": "tádžičtina"
+ },
"dav": {
"name": "taita"
},
@@ -569,6 +572,9 @@
"shi": {
"name": "tašelhit"
},
+ "tt": {
+ "name": "tatarština"
+ },
"te": {
"name": "telugština"
},
@@ -626,6 +632,9 @@
"vun": {
"name": "vunjo"
},
+ "wo": {
+ "name": "wolofština"
+ },
"dje": {
"name": "zarmština"
},
diff --git a/vendor/commerceguys/intl/resources/language/cy.json b/vendor/commerceguys/intl/resources/language/cy.json
index 65d813923..c2bf5048b 100644
--- a/vendor/commerceguys/intl/resources/language/cy.json
+++ b/vendor/commerceguys/intl/resources/language/cy.json
@@ -92,9 +92,6 @@
"kam": {
"name": "Camba"
},
- "yue": {
- "name": "Cantoneeg"
- },
"kk": {
"name": "Casacheg"
},
@@ -417,7 +414,7 @@
"name": "Nwosw"
},
"or": {
- "name": "Oriya"
+ "name": "Odia"
},
"om": {
"name": "Oromo"
@@ -500,6 +497,9 @@
"smn": {
"name": "Sami Inari"
},
+ "dje": {
+ "name": "Sarmaeg"
+ },
"es": {
"name": "Sbaeneg"
},
@@ -518,6 +518,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhaleg"
},
@@ -557,6 +560,9 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajiceg"
+ },
"tzm": {
"name": "Tamaseit Canolbarth Moroco"
},
@@ -569,6 +575,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatareg"
+ },
"te": {
"name": "Telugu"
},
@@ -623,13 +632,13 @@
"uk": {
"name": "Wcreineg"
},
+ "wo": {
+ "name": "Woloff"
+ },
"ur": {
"name": "Wrdw"
},
"uz": {
"name": "Wsbeceg"
- },
- "dje": {
- "name": "Zarmaeg"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/da.json b/vendor/commerceguys/intl/resources/language/da.json
index 4fdb13996..e189231cb 100644
--- a/vendor/commerceguys/intl/resources/language/da.json
+++ b/vendor/commerceguys/intl/resources/language/da.json
@@ -233,9 +233,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantonesisk"
- },
"kea": {
"name": "kapverdisk"
},
@@ -497,6 +494,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singalesisk"
},
@@ -513,7 +513,7 @@
"name": "soga"
},
"so": {
- "name": "somalisk"
+ "name": "somali"
},
"ckb": {
"name": "sorani"
@@ -530,6 +530,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadsjikisk"
+ },
"dav": {
"name": "taita"
},
@@ -537,11 +540,14 @@
"name": "tamazight"
},
"ta": {
- "name": "tamilsk"
+ "name": "tamil"
},
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatarisk"
+ },
"te": {
"name": "telugu"
},
@@ -611,6 +617,9 @@
"wae": {
"name": "walsertysk"
},
+ "wo": {
+ "name": "wolof"
+ },
"sah": {
"name": "yakut"
},
diff --git a/vendor/commerceguys/intl/resources/language/dav.json b/vendor/commerceguys/intl/resources/language/dav.json
index 46ca313e1..d0213a985 100644
--- a/vendor/commerceguys/intl/resources/language/dav.json
+++ b/vendor/commerceguys/intl/resources/language/dav.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -545,6 +542,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/de-AT.json b/vendor/commerceguys/intl/resources/language/de-AT.json
index 89c42b5eb..e78887ca0 100644
--- a/vendor/commerceguys/intl/resources/language/de-AT.json
+++ b/vendor/commerceguys/intl/resources/language/de-AT.json
@@ -230,9 +230,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantonesisch"
- },
"kk": {
"name": "Kasachisch"
},
@@ -506,6 +503,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Singhalesisch"
},
@@ -527,6 +527,9 @@
"sw": {
"name": "Suaheli"
},
+ "tg": {
+ "name": "Tadschikisch"
+ },
"dav": {
"name": "Taita"
},
@@ -542,6 +545,9 @@
"shi": {
"name": "Taschelhit"
},
+ "tt": {
+ "name": "Tatarisch"
+ },
"te": {
"name": "Telugu"
},
@@ -611,6 +617,9 @@
"fy": {
"name": "Westfriesisch"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/de-CH.json b/vendor/commerceguys/intl/resources/language/de-CH.json
index 798934829..99d12a15e 100644
--- a/vendor/commerceguys/intl/resources/language/de-CH.json
+++ b/vendor/commerceguys/intl/resources/language/de-CH.json
@@ -230,9 +230,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantonesisch"
- },
"kk": {
"name": "Kasachisch"
},
@@ -506,6 +503,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Singhalesisch"
},
@@ -527,6 +527,9 @@
"sw": {
"name": "Suaheli"
},
+ "tg": {
+ "name": "Tadschikisch"
+ },
"dav": {
"name": "Taita"
},
@@ -542,6 +545,9 @@
"shi": {
"name": "Taschelhit"
},
+ "tt": {
+ "name": "Tatarisch"
+ },
"te": {
"name": "Telugu"
},
@@ -611,6 +617,9 @@
"fy": {
"name": "Westfriesisch"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/de-LU.json b/vendor/commerceguys/intl/resources/language/de-LU.json
index 17a5575e6..f70014908 100644
--- a/vendor/commerceguys/intl/resources/language/de-LU.json
+++ b/vendor/commerceguys/intl/resources/language/de-LU.json
@@ -233,9 +233,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantonesisch"
- },
"kk": {
"name": "Kasachisch"
},
@@ -509,6 +506,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Singhalesisch"
},
@@ -530,6 +530,9 @@
"sw": {
"name": "Suaheli"
},
+ "tg": {
+ "name": "Tadschikisch"
+ },
"dav": {
"name": "Taita"
},
@@ -545,6 +548,9 @@
"shi": {
"name": "Taschelhit"
},
+ "tt": {
+ "name": "Tatarisch"
+ },
"te": {
"name": "Telugu"
},
@@ -611,6 +617,9 @@
"fy": {
"name": "Westfriesisch"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/de.json b/vendor/commerceguys/intl/resources/language/de.json
index 8c9333d2d..6bb2a1124 100644
--- a/vendor/commerceguys/intl/resources/language/de.json
+++ b/vendor/commerceguys/intl/resources/language/de.json
@@ -230,9 +230,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantonesisch"
- },
"kk": {
"name": "Kasachisch"
},
@@ -506,6 +503,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Singhalesisch"
},
@@ -527,6 +527,9 @@
"sw": {
"name": "Suaheli"
},
+ "tg": {
+ "name": "Tadschikisch"
+ },
"dav": {
"name": "Taita"
},
@@ -542,6 +545,9 @@
"shi": {
"name": "Taschelhit"
},
+ "tt": {
+ "name": "Tatarisch"
+ },
"te": {
"name": "Telugu"
},
@@ -611,6 +617,9 @@
"fy": {
"name": "Westfriesisch"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/dje.json b/vendor/commerceguys/intl/resources/language/dje.json
index e322adf49..4f63df4a5 100644
--- a/vendor/commerceguys/intl/resources/language/dje.json
+++ b/vendor/commerceguys/intl/resources/language/dje.json
@@ -77,9 +77,6 @@
"my": {
"name": "Burme senni"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -503,6 +500,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil senni"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/dsb.json b/vendor/commerceguys/intl/resources/language/dsb.json
index 36165e336..3a08549e4 100644
--- a/vendor/commerceguys/intl/resources/language/dsb.json
+++ b/vendor/commerceguys/intl/resources/language/dsb.json
@@ -77,9 +77,6 @@
"my": {
"name": "burmašćina"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "centralnoatlaski tamazight"
},
@@ -509,6 +506,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindšćina"
+ },
"si": {
"name": "singalšćina"
},
@@ -557,6 +557,9 @@
"de-CH": {
"name": "šwicarska wusokonimšćina"
},
+ "tg": {
+ "name": "tadžikišćina"
+ },
"dav": {
"name": "taita"
},
@@ -569,6 +572,9 @@
"shi": {
"name": "tašelhit"
},
+ "tt": {
+ "name": "tataršćina"
+ },
"te": {
"name": "telugšćina"
},
@@ -623,6 +629,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/dyo.json b/vendor/commerceguys/intl/resources/language/dyo.json
index f2b79a02d..cc661e153 100644
--- a/vendor/commerceguys/intl/resources/language/dyo.json
+++ b/vendor/commerceguys/intl/resources/language/dyo.json
@@ -92,9 +92,6 @@
"bg": {
"name": "bulgaari"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -503,6 +500,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"th": {
"name": "tay"
},
@@ -617,6 +623,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/dz.json b/vendor/commerceguys/intl/resources/language/dz.json
index de5dc9f71..7374a2375 100644
--- a/vendor/commerceguys/intl/resources/language/dz.json
+++ b/vendor/commerceguys/intl/resources/language/dz.json
@@ -32,9 +32,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -347,6 +344,9 @@
"ka": {
"name": "ཇཽ་ཇི་ཡཱན་ཁ"
},
+ "tt": {
+ "name": "ཊ་ཊར་ཁ"
+ },
"tr": {
"name": "ཊཱར་ཀིཤ་ཁ"
},
@@ -362,6 +362,9 @@
"da": {
"name": "ཌེ་ནིཤ་ཁ"
},
+ "tg": {
+ "name": "ཏ་ཇིཀ་ཁ"
+ },
"ta": {
"name": "ཏ་མིལ་ཁ"
},
@@ -467,6 +470,9 @@
"cy": {
"name": "ཝེལཤ་ཁ"
},
+ "wo": {
+ "name": "ཝོ་ལོཕ་ཁ"
+ },
"zu": {
"name": "ཟུ་ལུ་ཁ"
},
@@ -521,6 +527,9 @@
"si": {
"name": "སིང་ཧ་ལ་ཁ"
},
+ "sd": {
+ "name": "སིན་དཱི་ཁ"
+ },
"de-CH": {
"name": "སུ་ཡིས་གི་མཐོ་སའི་ཇཱར་མཱན་ཁ"
},
diff --git a/vendor/commerceguys/intl/resources/language/ebu.json b/vendor/commerceguys/intl/resources/language/ebu.json
index 9d8b5edc9..792be17e7 100644
--- a/vendor/commerceguys/intl/resources/language/ebu.json
+++ b/vendor/commerceguys/intl/resources/language/ebu.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ee.json b/vendor/commerceguys/intl/resources/language/ee.json
index 8f0108603..81bfeeaa2 100644
--- a/vendor/commerceguys/intl/resources/language/ee.json
+++ b/vendor/commerceguys/intl/resources/language/ee.json
@@ -74,9 +74,6 @@
"my": {
"name": "burmagbe"
},
- "yue": {
- "name": "cantongbe"
- },
"kea": {
"name": "cape verdegbe"
},
@@ -488,6 +485,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "sindhgbe"
+ },
"si": {
"name": "sinhalgbe"
},
@@ -527,6 +527,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "tadzikistangbe"
+ },
"dav": {
"name": "Taita"
},
@@ -536,6 +539,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "telegugbe"
},
@@ -602,6 +608,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "wolofgbe"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/el.json b/vendor/commerceguys/intl/resources/language/el.json
index 4d2a6164c..9caf33c3f 100644
--- a/vendor/commerceguys/intl/resources/language/el.json
+++ b/vendor/commerceguys/intl/resources/language/el.json
@@ -6,7 +6,7 @@
"name": "Αγγλικά Αυστραλίας"
},
"en-GB": {
- "name": "Αγγλικά Ηνωμένου Βασιλείου"
+ "name": "Αγγλικά Βρετανίας"
},
"en-CA": {
"name": "Αγγλικά Καναδά"
@@ -24,10 +24,10 @@
"name": "Αλβανικά"
},
"am": {
- "name": "Αμαρικά"
+ "name": "Αμχαρικά"
},
- "de-CH": {
- "name": "Άνω Γερμανικά Ελβετίας"
+ "hsb": {
+ "name": "Άνω Σορβικά"
},
"zh-Hans": {
"name": "Απλοποιημένα Κινεζικά"
@@ -39,7 +39,7 @@
"name": "Αρμενικά"
},
"as": {
- "name": "Ασαμεζικά"
+ "name": "Ασαμικά"
},
"asa": {
"name": "Άσου"
@@ -59,6 +59,9 @@
"eu": {
"name": "Βασκικά"
},
+ "bn": {
+ "name": "Βεγγαλικά"
+ },
"vi": {
"name": "Βιετναμικά"
},
@@ -66,7 +69,7 @@
"name": "Βιρμανικά"
},
"vo": {
- "name": "Βόλαπικ"
+ "name": "Βολαπιούκ"
},
"lrc": {
"name": "Βόρεια Λούρι"
@@ -113,12 +116,6 @@
"ka": {
"name": "Γεωργιανά"
},
- "ee": {
- "name": "Γι"
- },
- "sah": {
- "name": "Γιακούτ"
- },
"yav": {
"name": "Γιανγκμπέν"
},
@@ -137,20 +134,17 @@
"guz": {
"name": "Γκούσι"
},
- "hsb": {
- "name": "Γλώσσα Άνω Λουσατίας"
- },
- "dsb": {
- "name": "Γλώσσα Κάτω Λουσατίας"
- },
"kea": {
"name": "Γλώσσα του Πράσινου Ακρωτηρίου"
},
+ "wo": {
+ "name": "Γουόλοφ"
+ },
"da": {
"name": "Δανικά"
},
"fy": {
- "name": "Δυτικά Φριζιανά"
+ "name": "Δυτικά Φριζικά"
},
"he": {
"name": "Εβραϊκά"
@@ -167,6 +161,9 @@
"ebu": {
"name": "Έμπου"
},
+ "ee": {
+ "name": "Έουε"
+ },
"et": {
"name": "Εσθονικά"
},
@@ -227,17 +224,11 @@
"kab": {
"name": "Καμπίλε"
},
- "km": {
- "name": "Καμποτζιανά"
- },
"kn": {
"name": "Κανάντα"
},
- "yue": {
- "name": "Καντονέζικα"
- },
"ks": {
- "name": "Κασμίρι"
+ "name": "Κασμιρικά"
},
"ca": {
"name": "Καταλανικά"
@@ -248,11 +239,14 @@
"nds-NL": {
"name": "Κάτω Γερμανικά Ολλανδίας"
},
+ "dsb": {
+ "name": "Κάτω Σορβικά"
+ },
"nmg": {
"name": "Κβάσιο"
},
"qu": {
- "name": "Κετσούα"
+ "name": "Κέτσουα"
},
"ki": {
"name": "Κικούγιου"
@@ -261,7 +255,10 @@
"name": "Κινεζικά"
},
"rw": {
- "name": "Κινιαρβάντα"
+ "name": "Κινιαρουάντα"
+ },
+ "ky": {
+ "name": "Κιργιζικά"
},
"khq": {
"name": "Κόιρα Τσίνι"
@@ -276,13 +273,13 @@
"name": "Κονγκό Σουαχίλι"
},
"kok": {
- "name": "Κονκάνι"
+ "name": "Κονκανικά"
},
"ko": {
"name": "Κορεατικά"
},
"kw": {
- "name": "Κόρνις"
+ "name": "Κορνουαλικά"
},
"ckb": {
"name": "Κουρδικά Σοράνι"
@@ -290,9 +287,6 @@
"hr": {
"name": "Κροατικά"
},
- "ky": {
- "name": "Κυργιζικά"
- },
"lkt": {
"name": "Λακότα"
},
@@ -300,7 +294,7 @@
"name": "Λάνγκι"
},
"lo": {
- "name": "Λαοθιανά"
+ "name": "Λαοτινά"
},
"lv": {
"name": "Λετονικά"
@@ -335,14 +329,14 @@
"mgh": {
"name": "Μακούβα-Μέτο"
},
- "mg": {
- "name": "Μαλαγάσι"
- },
"ml": {
- "name": "Μαλαγιαλάμ"
+ "name": "Μαλαγιαλαμικά"
},
"ms": {
- "name": "Μαλάι"
+ "name": "Μαλαισιανά"
+ },
+ "mg": {
+ "name": "Μαλγασικά"
},
"mt": {
"name": "Μαλτεζικά"
@@ -351,19 +345,19 @@
"name": "Μανξ"
},
"mr": {
- "name": "Μαράθι"
+ "name": "Μαραθικά"
},
"mas": {
"name": "Μασάι"
},
"jmc": {
- "name": "Μάχαμε"
+ "name": "Ματσάμε"
},
"mer": {
- "name": "Μερού"
+ "name": "Μέρου"
},
"mgo": {
- "name": "Μετά"
+ "name": "Μέτα"
},
"mn": {
"name": "Μογγολικά"
@@ -372,7 +366,7 @@
"name": "Μολδαβικά"
},
"mfe": {
- "name": "Μορίσιεν"
+ "name": "Μορισιέν"
},
"mua": {
"name": "Μουντάνγκ"
@@ -392,9 +386,6 @@
"bez": {
"name": "Μπένα"
},
- "bn": {
- "name": "Μπενγκάλι"
- },
"brx": {
"name": "Μπόντο"
},
@@ -408,7 +399,7 @@
"name": "Νγκόμπα"
},
"ne": {
- "name": "Νεπάλι"
+ "name": "Νεπαλικά"
},
"nyn": {
"name": "Νιανκόλε"
@@ -420,7 +411,7 @@
"name": "Νορβηγικά Νινόρσκ"
},
"nus": {
- "name": "Νουέρ"
+ "name": "Νούερ"
},
"dz": {
"name": "Ντζόνγκχα"
@@ -432,7 +423,7 @@
"name": "Ολλανδικά"
},
"or": {
- "name": "Ορίγια"
+ "name": "Όντια"
},
"om": {
"name": "Ορόμο"
@@ -450,7 +441,7 @@
"name": "Ουζμπεκικά"
},
"ug": {
- "name": "Ουιγουρικά"
+ "name": "Ουιγκουρικά"
},
"uk": {
"name": "Ουκρανικά"
@@ -501,7 +492,7 @@
"name": "Ρωσικά"
},
"ksb": {
- "name": "Σάμπαλα"
+ "name": "Σαμπάλα"
},
"saq": {
"name": "Σαμπούρου"
@@ -512,18 +503,24 @@
"sbp": {
"name": "Σάνγκου"
},
+ "sah": {
+ "name": "Σαχά"
+ },
"seh": {
"name": "Σένα"
},
"sr": {
"name": "Σερβικά"
},
- "ii": {
- "name": "Σικουάν Γι"
+ "sd": {
+ "name": "Σίντι"
},
"si": {
"name": "Σινχαλεζικά"
},
+ "ii": {
+ "name": "Σίτσουαν Γι"
+ },
"gd": {
"name": "Σκωτικά Κελτικά"
},
@@ -540,7 +537,10 @@
"name": "Σόγκα"
},
"so": {
- "name": "Σομάλι"
+ "name": "Σομαλικά"
+ },
+ "sn": {
+ "name": "Σόνα"
},
"sw": {
"name": "Σουαχίλι"
@@ -548,9 +548,6 @@
"sv": {
"name": "Σουηδικά"
},
- "sn": {
- "name": "Σχόνα"
- },
"th": {
"name": "Ταϊλανδικά"
},
@@ -561,7 +558,7 @@
"name": "Ταμαζίτ Κεντρικού Μαρόκο"
},
"ta": {
- "name": "Ταμίλ"
+ "name": "Ταμιλικά"
},
"twq": {
"name": "Τασαβάκ"
@@ -569,6 +566,12 @@
"shi": {
"name": "Τασελχίτ"
},
+ "tt": {
+ "name": "Ταταρικά"
+ },
+ "tg": {
+ "name": "Τατζικικά"
+ },
"te": {
"name": "Τελούγκου"
},
@@ -603,13 +606,16 @@
"name": "Τσίγκα"
},
"zgh": {
- "name": "Τυπικά Ταμαζίγκτ Μαρόκου"
+ "name": "Τυπικά Ταμαζίτ Μαρόκου"
+ },
+ "de-CH": {
+ "name": "Υψηλά Γερμανικά Ελβετίας"
},
"fo": {
- "name": "Φαρόε"
+ "name": "Φεροϊκά"
},
"fil": {
- "name": "Φιλιππινεζικά"
+ "name": "Φιλιππινικά"
},
"fi": {
"name": "Φινλανδικά"
@@ -618,18 +624,21 @@
"name": "Φλαμανδικά"
},
"ff": {
- "name": "Φουλάχ"
+ "name": "Φουλά"
},
"fur": {
- "name": "Φριούλιαν"
+ "name": "Φριουλανικά"
},
"haw": {
- "name": "Χαβανεζικά"
+ "name": "Χαβαϊκά"
},
"ha": {
"name": "Χάουσα"
},
"hi": {
"name": "Χίντι"
+ },
+ "km": {
+ "name": "Χμερ"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/en-AU.json b/vendor/commerceguys/intl/resources/language/en-AU.json
index 520da38e2..a2f94fe56 100644
--- a/vendor/commerceguys/intl/resources/language/en-AU.json
+++ b/vendor/commerceguys/intl/resources/language/en-AU.json
@@ -44,9 +44,6 @@
"bm": {
"name": "Bambara"
},
- "bn": {
- "name": "Bangla"
- },
"bas": {
"name": "Basaa"
},
@@ -62,6 +59,9 @@
"bez": {
"name": "Bena"
},
+ "bn": {
+ "name": "Bengali"
+ },
"brx": {
"name": "Bodo"
},
@@ -86,9 +86,6 @@
"fr-CA": {
"name": "Canadian French"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -98,6 +95,9 @@
"ckb": {
"name": "Central Kurdish"
},
+ "ccp": {
+ "name": "Chakma"
+ },
"ce": {
"name": "Chechen"
},
@@ -509,6 +509,9 @@
"zh-Hans": {
"name": "Simplified Chinese"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +554,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +629,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/en-CA.json b/vendor/commerceguys/intl/resources/language/en-CA.json
new file mode 100644
index 000000000..9beab94ff
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/en-CA.json
@@ -0,0 +1,650 @@
+{
+ "af": {
+ "name": "Afrikaans"
+ },
+ "agq": {
+ "name": "Aghem"
+ },
+ "ak": {
+ "name": "Akan"
+ },
+ "sq": {
+ "name": "Albanian"
+ },
+ "am": {
+ "name": "Amharic"
+ },
+ "ar": {
+ "name": "Arabic"
+ },
+ "hy": {
+ "name": "Armenian"
+ },
+ "as": {
+ "name": "Assamese"
+ },
+ "ast": {
+ "name": "Asturian"
+ },
+ "asa": {
+ "name": "Asu"
+ },
+ "en-AU": {
+ "name": "Australian English"
+ },
+ "de-AT": {
+ "name": "Austrian German"
+ },
+ "az": {
+ "name": "Azerbaijani"
+ },
+ "ksf": {
+ "name": "Bafia"
+ },
+ "bm": {
+ "name": "Bambara"
+ },
+ "bas": {
+ "name": "Basaa"
+ },
+ "eu": {
+ "name": "Basque"
+ },
+ "be": {
+ "name": "Belarusian"
+ },
+ "bem": {
+ "name": "Bemba"
+ },
+ "bez": {
+ "name": "Bena"
+ },
+ "bn": {
+ "name": "Bengali"
+ },
+ "brx": {
+ "name": "Bodo"
+ },
+ "bs": {
+ "name": "Bosnian"
+ },
+ "br": {
+ "name": "Breton"
+ },
+ "en-GB": {
+ "name": "British English"
+ },
+ "bg": {
+ "name": "Bulgarian"
+ },
+ "my": {
+ "name": "Burmese"
+ },
+ "en-CA": {
+ "name": "Canadian English"
+ },
+ "fr-CA": {
+ "name": "Canadian French"
+ },
+ "ca": {
+ "name": "Catalan"
+ },
+ "tzm": {
+ "name": "Central Atlas Tamazight"
+ },
+ "ckb": {
+ "name": "Central Kurdish"
+ },
+ "ccp": {
+ "name": "Chakma"
+ },
+ "ce": {
+ "name": "Chechen"
+ },
+ "chr": {
+ "name": "Cherokee"
+ },
+ "cgg": {
+ "name": "Chiga"
+ },
+ "zh": {
+ "name": "Chinese"
+ },
+ "cu": {
+ "name": "Church Slavic"
+ },
+ "ksh": {
+ "name": "Colognian"
+ },
+ "sw-CD": {
+ "name": "Congo Swahili"
+ },
+ "kw": {
+ "name": "Cornish"
+ },
+ "hr": {
+ "name": "Croatian"
+ },
+ "cs": {
+ "name": "Czech"
+ },
+ "da": {
+ "name": "Danish"
+ },
+ "fa-AF": {
+ "name": "Dari"
+ },
+ "dua": {
+ "name": "Duala"
+ },
+ "nl": {
+ "name": "Dutch"
+ },
+ "dz": {
+ "name": "Dzongkha"
+ },
+ "ebu": {
+ "name": "Embu"
+ },
+ "en": {
+ "name": "English"
+ },
+ "eo": {
+ "name": "Esperanto"
+ },
+ "et": {
+ "name": "Estonian"
+ },
+ "pt-PT": {
+ "name": "European Portuguese"
+ },
+ "ee": {
+ "name": "Ewe"
+ },
+ "ewo": {
+ "name": "Ewondo"
+ },
+ "fo": {
+ "name": "Faroese"
+ },
+ "fil": {
+ "name": "Filipino"
+ },
+ "fi": {
+ "name": "Finnish"
+ },
+ "nl-BE": {
+ "name": "Flemish"
+ },
+ "fr": {
+ "name": "French"
+ },
+ "fur": {
+ "name": "Friulian"
+ },
+ "ff": {
+ "name": "Fulah"
+ },
+ "gl": {
+ "name": "Galician"
+ },
+ "lg": {
+ "name": "Ganda"
+ },
+ "ka": {
+ "name": "Georgian"
+ },
+ "de": {
+ "name": "German"
+ },
+ "el": {
+ "name": "Greek"
+ },
+ "gu": {
+ "name": "Gujarati"
+ },
+ "guz": {
+ "name": "Gusii"
+ },
+ "ha": {
+ "name": "Hausa"
+ },
+ "haw": {
+ "name": "Hawaiian"
+ },
+ "he": {
+ "name": "Hebrew"
+ },
+ "hi": {
+ "name": "Hindi"
+ },
+ "hu": {
+ "name": "Hungarian"
+ },
+ "is": {
+ "name": "Icelandic"
+ },
+ "ig": {
+ "name": "Igbo"
+ },
+ "smn": {
+ "name": "Inari Sami"
+ },
+ "id": {
+ "name": "Indonesian"
+ },
+ "ga": {
+ "name": "Irish"
+ },
+ "it": {
+ "name": "Italian"
+ },
+ "ja": {
+ "name": "Japanese"
+ },
+ "dyo": {
+ "name": "Jola-Fonyi"
+ },
+ "kea": {
+ "name": "Kabuverdianu"
+ },
+ "kab": {
+ "name": "Kabyle"
+ },
+ "kkj": {
+ "name": "Kako"
+ },
+ "kl": {
+ "name": "Kalaallisut"
+ },
+ "kln": {
+ "name": "Kalenjin"
+ },
+ "kam": {
+ "name": "Kamba"
+ },
+ "kn": {
+ "name": "Kannada"
+ },
+ "ks": {
+ "name": "Kashmiri"
+ },
+ "kk": {
+ "name": "Kazakh"
+ },
+ "km": {
+ "name": "Khmer"
+ },
+ "ki": {
+ "name": "Kikuyu"
+ },
+ "rw": {
+ "name": "Kinyarwanda"
+ },
+ "kok": {
+ "name": "Konkani"
+ },
+ "ko": {
+ "name": "Korean"
+ },
+ "khq": {
+ "name": "Koyra Chiini"
+ },
+ "ses": {
+ "name": "Koyraboro Senni"
+ },
+ "nmg": {
+ "name": "Kwasio"
+ },
+ "ky": {
+ "name": "Kyrgyz"
+ },
+ "lkt": {
+ "name": "Lakota"
+ },
+ "lag": {
+ "name": "Langi"
+ },
+ "lo": {
+ "name": "Lao"
+ },
+ "lv": {
+ "name": "Latvian"
+ },
+ "ln": {
+ "name": "Lingala"
+ },
+ "lt": {
+ "name": "Lithuanian"
+ },
+ "nds": {
+ "name": "Low German"
+ },
+ "nds-NL": {
+ "name": "Low Saxon"
+ },
+ "dsb": {
+ "name": "Lower Sorbian"
+ },
+ "lu": {
+ "name": "Luba-Katanga"
+ },
+ "luo": {
+ "name": "Luo"
+ },
+ "lb": {
+ "name": "Luxembourgish"
+ },
+ "luy": {
+ "name": "Luyia"
+ },
+ "mk": {
+ "name": "Macedonian"
+ },
+ "jmc": {
+ "name": "Machame"
+ },
+ "mgh": {
+ "name": "Makhuwa-Meetto"
+ },
+ "kde": {
+ "name": "Makonde"
+ },
+ "mg": {
+ "name": "Malagasy"
+ },
+ "ms": {
+ "name": "Malay"
+ },
+ "ml": {
+ "name": "Malayalam"
+ },
+ "mt": {
+ "name": "Maltese"
+ },
+ "gv": {
+ "name": "Manx"
+ },
+ "mr": {
+ "name": "Marathi"
+ },
+ "mas": {
+ "name": "Masai"
+ },
+ "mfe": {
+ "name": "Mauritian"
+ },
+ "mzn": {
+ "name": "Mazanderani"
+ },
+ "mer": {
+ "name": "Meru"
+ },
+ "mgo": {
+ "name": "Metaʼ"
+ },
+ "es-MX": {
+ "name": "Mexican Spanish"
+ },
+ "ro-MD": {
+ "name": "Moldovan"
+ },
+ "mn": {
+ "name": "Mongolian"
+ },
+ "mua": {
+ "name": "Mundang"
+ },
+ "naq": {
+ "name": "Nama"
+ },
+ "ne": {
+ "name": "Nepali"
+ },
+ "nnh": {
+ "name": "Ngiemboon"
+ },
+ "jgo": {
+ "name": "Ngomba"
+ },
+ "nd": {
+ "name": "North Ndebele"
+ },
+ "lrc": {
+ "name": "Northern Luri"
+ },
+ "se": {
+ "name": "Northern Sami"
+ },
+ "nb": {
+ "name": "Norwegian Bokmål"
+ },
+ "nn": {
+ "name": "Norwegian Nynorsk"
+ },
+ "nus": {
+ "name": "Nuer"
+ },
+ "nyn": {
+ "name": "Nyankole"
+ },
+ "or": {
+ "name": "Odia"
+ },
+ "om": {
+ "name": "Oromo"
+ },
+ "os": {
+ "name": "Ossetic"
+ },
+ "ps": {
+ "name": "Pashto"
+ },
+ "fa": {
+ "name": "Persian"
+ },
+ "pl": {
+ "name": "Polish"
+ },
+ "pt": {
+ "name": "Portuguese"
+ },
+ "prg": {
+ "name": "Prussian"
+ },
+ "pa": {
+ "name": "Punjabi"
+ },
+ "qu": {
+ "name": "Quechua"
+ },
+ "ro": {
+ "name": "Romanian"
+ },
+ "rm": {
+ "name": "Romansh"
+ },
+ "rof": {
+ "name": "Rombo"
+ },
+ "rn": {
+ "name": "Rundi"
+ },
+ "ru": {
+ "name": "Russian"
+ },
+ "rwk": {
+ "name": "Rwa"
+ },
+ "sah": {
+ "name": "Sakha"
+ },
+ "saq": {
+ "name": "Samburu"
+ },
+ "sg": {
+ "name": "Sango"
+ },
+ "sbp": {
+ "name": "Sangu"
+ },
+ "gd": {
+ "name": "Scottish Gaelic"
+ },
+ "seh": {
+ "name": "Sena"
+ },
+ "sr": {
+ "name": "Serbian"
+ },
+ "ksb": {
+ "name": "Shambala"
+ },
+ "sn": {
+ "name": "Shona"
+ },
+ "ii": {
+ "name": "Sichuan Yi"
+ },
+ "zh-Hans": {
+ "name": "Simplified Chinese"
+ },
+ "sd": {
+ "name": "Sindhi"
+ },
+ "si": {
+ "name": "Sinhala"
+ },
+ "sk": {
+ "name": "Slovak"
+ },
+ "sl": {
+ "name": "Slovenian"
+ },
+ "xog": {
+ "name": "Soga"
+ },
+ "so": {
+ "name": "Somali"
+ },
+ "es": {
+ "name": "Spanish"
+ },
+ "zgh": {
+ "name": "Standard Moroccan Tamazight"
+ },
+ "sw": {
+ "name": "Swahili"
+ },
+ "sv": {
+ "name": "Swedish"
+ },
+ "fr-CH": {
+ "name": "Swiss French"
+ },
+ "gsw": {
+ "name": "Swiss German"
+ },
+ "de-CH": {
+ "name": "Swiss High German"
+ },
+ "shi": {
+ "name": "Tachelhit"
+ },
+ "dav": {
+ "name": "Taita"
+ },
+ "tg": {
+ "name": "Tajik"
+ },
+ "ta": {
+ "name": "Tamil"
+ },
+ "twq": {
+ "name": "Tasawaq"
+ },
+ "tt": {
+ "name": "Tatar"
+ },
+ "te": {
+ "name": "Telugu"
+ },
+ "teo": {
+ "name": "Teso"
+ },
+ "th": {
+ "name": "Thai"
+ },
+ "bo": {
+ "name": "Tibetan"
+ },
+ "ti": {
+ "name": "Tigrinya"
+ },
+ "to": {
+ "name": "Tongan"
+ },
+ "zh-Hant": {
+ "name": "Traditional Chinese"
+ },
+ "tr": {
+ "name": "Turkish"
+ },
+ "tk": {
+ "name": "Turkmen"
+ },
+ "uk": {
+ "name": "Ukrainian"
+ },
+ "hsb": {
+ "name": "Upper Sorbian"
+ },
+ "ur": {
+ "name": "Urdu"
+ },
+ "ug": {
+ "name": "Uyghur"
+ },
+ "uz": {
+ "name": "Uzbek"
+ },
+ "vai": {
+ "name": "Vai"
+ },
+ "vi": {
+ "name": "Vietnamese"
+ },
+ "vo": {
+ "name": "Volapük"
+ },
+ "vun": {
+ "name": "Vunjo"
+ },
+ "wae": {
+ "name": "Walser"
+ },
+ "cy": {
+ "name": "Welsh"
+ },
+ "fy": {
+ "name": "Western Frisian"
+ },
+ "wo": {
+ "name": "Wolof"
+ },
+ "yav": {
+ "name": "Yangben"
+ },
+ "yi": {
+ "name": "Yiddish"
+ },
+ "yo": {
+ "name": "Yoruba"
+ },
+ "dje": {
+ "name": "Zarma"
+ },
+ "zu": {
+ "name": "Zulu"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/en-GB.json b/vendor/commerceguys/intl/resources/language/en-GB.json
new file mode 100644
index 000000000..136be2172
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/en-GB.json
@@ -0,0 +1,650 @@
+{
+ "af": {
+ "name": "Afrikaans"
+ },
+ "agq": {
+ "name": "Aghem"
+ },
+ "ak": {
+ "name": "Akan"
+ },
+ "sq": {
+ "name": "Albanian"
+ },
+ "am": {
+ "name": "Amharic"
+ },
+ "ar": {
+ "name": "Arabic"
+ },
+ "hy": {
+ "name": "Armenian"
+ },
+ "as": {
+ "name": "Assamese"
+ },
+ "ast": {
+ "name": "Asturian"
+ },
+ "asa": {
+ "name": "Asu"
+ },
+ "en-AU": {
+ "name": "Australian English"
+ },
+ "de-AT": {
+ "name": "Austrian German"
+ },
+ "az": {
+ "name": "Azerbaijani"
+ },
+ "ksf": {
+ "name": "Bafia"
+ },
+ "bm": {
+ "name": "Bambara"
+ },
+ "bn": {
+ "name": "Bangla"
+ },
+ "bas": {
+ "name": "Basaa"
+ },
+ "eu": {
+ "name": "Basque"
+ },
+ "be": {
+ "name": "Belarusian"
+ },
+ "bem": {
+ "name": "Bemba"
+ },
+ "bez": {
+ "name": "Bena"
+ },
+ "brx": {
+ "name": "Bodo"
+ },
+ "bs": {
+ "name": "Bosnian"
+ },
+ "br": {
+ "name": "Breton"
+ },
+ "en-GB": {
+ "name": "British English"
+ },
+ "bg": {
+ "name": "Bulgarian"
+ },
+ "my": {
+ "name": "Burmese"
+ },
+ "en-CA": {
+ "name": "Canadian English"
+ },
+ "fr-CA": {
+ "name": "Canadian French"
+ },
+ "ca": {
+ "name": "Catalan"
+ },
+ "tzm": {
+ "name": "Central Atlas Tamazight"
+ },
+ "ckb": {
+ "name": "Central Kurdish"
+ },
+ "ccp": {
+ "name": "Chakma"
+ },
+ "ce": {
+ "name": "Chechen"
+ },
+ "chr": {
+ "name": "Cherokee"
+ },
+ "cgg": {
+ "name": "Chiga"
+ },
+ "zh": {
+ "name": "Chinese"
+ },
+ "cu": {
+ "name": "Church Slavic"
+ },
+ "ksh": {
+ "name": "Colognian"
+ },
+ "sw-CD": {
+ "name": "Congo Swahili"
+ },
+ "kw": {
+ "name": "Cornish"
+ },
+ "hr": {
+ "name": "Croatian"
+ },
+ "cs": {
+ "name": "Czech"
+ },
+ "da": {
+ "name": "Danish"
+ },
+ "fa-AF": {
+ "name": "Dari"
+ },
+ "dua": {
+ "name": "Duala"
+ },
+ "nl": {
+ "name": "Dutch"
+ },
+ "dz": {
+ "name": "Dzongkha"
+ },
+ "ebu": {
+ "name": "Embu"
+ },
+ "en": {
+ "name": "English"
+ },
+ "eo": {
+ "name": "Esperanto"
+ },
+ "et": {
+ "name": "Estonian"
+ },
+ "pt-PT": {
+ "name": "European Portuguese"
+ },
+ "ee": {
+ "name": "Ewe"
+ },
+ "ewo": {
+ "name": "Ewondo"
+ },
+ "fo": {
+ "name": "Faroese"
+ },
+ "fil": {
+ "name": "Filipino"
+ },
+ "fi": {
+ "name": "Finnish"
+ },
+ "nl-BE": {
+ "name": "Flemish"
+ },
+ "fr": {
+ "name": "French"
+ },
+ "fur": {
+ "name": "Friulian"
+ },
+ "ff": {
+ "name": "Fulah"
+ },
+ "gl": {
+ "name": "Galician"
+ },
+ "lg": {
+ "name": "Ganda"
+ },
+ "ka": {
+ "name": "Georgian"
+ },
+ "de": {
+ "name": "German"
+ },
+ "el": {
+ "name": "Greek"
+ },
+ "gu": {
+ "name": "Gujarati"
+ },
+ "guz": {
+ "name": "Gusii"
+ },
+ "ha": {
+ "name": "Hausa"
+ },
+ "haw": {
+ "name": "Hawaiian"
+ },
+ "he": {
+ "name": "Hebrew"
+ },
+ "hi": {
+ "name": "Hindi"
+ },
+ "hu": {
+ "name": "Hungarian"
+ },
+ "is": {
+ "name": "Icelandic"
+ },
+ "ig": {
+ "name": "Igbo"
+ },
+ "smn": {
+ "name": "Inari Sami"
+ },
+ "id": {
+ "name": "Indonesian"
+ },
+ "ga": {
+ "name": "Irish"
+ },
+ "it": {
+ "name": "Italian"
+ },
+ "ja": {
+ "name": "Japanese"
+ },
+ "dyo": {
+ "name": "Jola-Fonyi"
+ },
+ "kea": {
+ "name": "Kabuverdianu"
+ },
+ "kab": {
+ "name": "Kabyle"
+ },
+ "kkj": {
+ "name": "Kako"
+ },
+ "kl": {
+ "name": "Kalaallisut"
+ },
+ "kln": {
+ "name": "Kalenjin"
+ },
+ "kam": {
+ "name": "Kamba"
+ },
+ "kn": {
+ "name": "Kannada"
+ },
+ "ks": {
+ "name": "Kashmiri"
+ },
+ "kk": {
+ "name": "Kazakh"
+ },
+ "km": {
+ "name": "Khmer"
+ },
+ "ki": {
+ "name": "Kikuyu"
+ },
+ "rw": {
+ "name": "Kinyarwanda"
+ },
+ "kok": {
+ "name": "Konkani"
+ },
+ "ko": {
+ "name": "Korean"
+ },
+ "khq": {
+ "name": "Koyra Chiini"
+ },
+ "ses": {
+ "name": "Koyraboro Senni"
+ },
+ "nmg": {
+ "name": "Kwasio"
+ },
+ "ky": {
+ "name": "Kyrgyz"
+ },
+ "lkt": {
+ "name": "Lakota"
+ },
+ "lag": {
+ "name": "Langi"
+ },
+ "lo": {
+ "name": "Lao"
+ },
+ "lv": {
+ "name": "Latvian"
+ },
+ "ln": {
+ "name": "Lingala"
+ },
+ "lt": {
+ "name": "Lithuanian"
+ },
+ "nds": {
+ "name": "Low German"
+ },
+ "dsb": {
+ "name": "Lower Sorbian"
+ },
+ "lu": {
+ "name": "Luba-Katanga"
+ },
+ "luo": {
+ "name": "Luo"
+ },
+ "lb": {
+ "name": "Luxembourgish"
+ },
+ "luy": {
+ "name": "Luyia"
+ },
+ "mk": {
+ "name": "Macedonian"
+ },
+ "jmc": {
+ "name": "Machame"
+ },
+ "mgh": {
+ "name": "Makhuwa-Meetto"
+ },
+ "kde": {
+ "name": "Makonde"
+ },
+ "mg": {
+ "name": "Malagasy"
+ },
+ "ms": {
+ "name": "Malay"
+ },
+ "ml": {
+ "name": "Malayalam"
+ },
+ "mt": {
+ "name": "Maltese"
+ },
+ "gv": {
+ "name": "Manx"
+ },
+ "mr": {
+ "name": "Marathi"
+ },
+ "mas": {
+ "name": "Masai"
+ },
+ "mzn": {
+ "name": "Mazanderani"
+ },
+ "mer": {
+ "name": "Meru"
+ },
+ "mgo": {
+ "name": "Metaʼ"
+ },
+ "es-MX": {
+ "name": "Mexican Spanish"
+ },
+ "ro-MD": {
+ "name": "Moldavian"
+ },
+ "mn": {
+ "name": "Mongolian"
+ },
+ "mfe": {
+ "name": "Morisyen"
+ },
+ "mua": {
+ "name": "Mundang"
+ },
+ "naq": {
+ "name": "Nama"
+ },
+ "ne": {
+ "name": "Nepali"
+ },
+ "nnh": {
+ "name": "Ngiemboon"
+ },
+ "jgo": {
+ "name": "Ngomba"
+ },
+ "nd": {
+ "name": "North Ndebele"
+ },
+ "lrc": {
+ "name": "Northern Luri"
+ },
+ "se": {
+ "name": "Northern Sami"
+ },
+ "nb": {
+ "name": "Norwegian Bokmål"
+ },
+ "nn": {
+ "name": "Norwegian Nynorsk"
+ },
+ "nus": {
+ "name": "Nuer"
+ },
+ "nyn": {
+ "name": "Nyankole"
+ },
+ "or": {
+ "name": "Odia"
+ },
+ "om": {
+ "name": "Oromo"
+ },
+ "os": {
+ "name": "Ossetic"
+ },
+ "ps": {
+ "name": "Pashto"
+ },
+ "fa": {
+ "name": "Persian"
+ },
+ "pl": {
+ "name": "Polish"
+ },
+ "pt": {
+ "name": "Portuguese"
+ },
+ "prg": {
+ "name": "Prussian"
+ },
+ "pa": {
+ "name": "Punjabi"
+ },
+ "qu": {
+ "name": "Quechua"
+ },
+ "ro": {
+ "name": "Romanian"
+ },
+ "rm": {
+ "name": "Romansh"
+ },
+ "rof": {
+ "name": "Rombo"
+ },
+ "rn": {
+ "name": "Rundi"
+ },
+ "ru": {
+ "name": "Russian"
+ },
+ "rwk": {
+ "name": "Rwa"
+ },
+ "sah": {
+ "name": "Sakha"
+ },
+ "saq": {
+ "name": "Samburu"
+ },
+ "sg": {
+ "name": "Sango"
+ },
+ "sbp": {
+ "name": "Sangu"
+ },
+ "gd": {
+ "name": "Scottish Gaelic"
+ },
+ "seh": {
+ "name": "Sena"
+ },
+ "sr": {
+ "name": "Serbian"
+ },
+ "ksb": {
+ "name": "Shambala"
+ },
+ "sn": {
+ "name": "Shona"
+ },
+ "ii": {
+ "name": "Sichuan Yi"
+ },
+ "zh-Hans": {
+ "name": "Simplified Chinese"
+ },
+ "sd": {
+ "name": "Sindhi"
+ },
+ "si": {
+ "name": "Sinhala"
+ },
+ "sk": {
+ "name": "Slovak"
+ },
+ "sl": {
+ "name": "Slovenian"
+ },
+ "xog": {
+ "name": "Soga"
+ },
+ "so": {
+ "name": "Somali"
+ },
+ "es": {
+ "name": "Spanish"
+ },
+ "zgh": {
+ "name": "Standard Moroccan Tamazight"
+ },
+ "sw": {
+ "name": "Swahili"
+ },
+ "sv": {
+ "name": "Swedish"
+ },
+ "fr-CH": {
+ "name": "Swiss French"
+ },
+ "gsw": {
+ "name": "Swiss German"
+ },
+ "de-CH": {
+ "name": "Swiss High German"
+ },
+ "shi": {
+ "name": "Tachelhit"
+ },
+ "dav": {
+ "name": "Taita"
+ },
+ "tg": {
+ "name": "Tajik"
+ },
+ "ta": {
+ "name": "Tamil"
+ },
+ "twq": {
+ "name": "Tasawaq"
+ },
+ "tt": {
+ "name": "Tatar"
+ },
+ "te": {
+ "name": "Telugu"
+ },
+ "teo": {
+ "name": "Teso"
+ },
+ "th": {
+ "name": "Thai"
+ },
+ "bo": {
+ "name": "Tibetan"
+ },
+ "ti": {
+ "name": "Tigrinya"
+ },
+ "to": {
+ "name": "Tongan"
+ },
+ "zh-Hant": {
+ "name": "Traditional Chinese"
+ },
+ "tr": {
+ "name": "Turkish"
+ },
+ "tk": {
+ "name": "Turkmen"
+ },
+ "uk": {
+ "name": "Ukrainian"
+ },
+ "hsb": {
+ "name": "Upper Sorbian"
+ },
+ "ur": {
+ "name": "Urdu"
+ },
+ "ug": {
+ "name": "Uyghur"
+ },
+ "uz": {
+ "name": "Uzbek"
+ },
+ "vai": {
+ "name": "Vai"
+ },
+ "vi": {
+ "name": "Vietnamese"
+ },
+ "vo": {
+ "name": "Volapük"
+ },
+ "vun": {
+ "name": "Vunjo"
+ },
+ "wae": {
+ "name": "Walser"
+ },
+ "cy": {
+ "name": "Welsh"
+ },
+ "nds-NL": {
+ "name": "West Low German"
+ },
+ "fy": {
+ "name": "Western Frisian"
+ },
+ "wo": {
+ "name": "Wolof"
+ },
+ "yav": {
+ "name": "Yangben"
+ },
+ "yi": {
+ "name": "Yiddish"
+ },
+ "yo": {
+ "name": "Yoruba"
+ },
+ "dje": {
+ "name": "Zarma"
+ },
+ "zu": {
+ "name": "Zulu"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/en-IN.json b/vendor/commerceguys/intl/resources/language/en-IN.json
index 166b40219..ce23c82c3 100644
--- a/vendor/commerceguys/intl/resources/language/en-IN.json
+++ b/vendor/commerceguys/intl/resources/language/en-IN.json
@@ -86,9 +86,6 @@
"fr-CA": {
"name": "Canadian French"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -98,6 +95,9 @@
"ckb": {
"name": "Central Kurdish"
},
+ "ccp": {
+ "name": "Chakma"
+ },
"ce": {
"name": "Chechen"
},
@@ -509,6 +509,9 @@
"zh-Hans": {
"name": "Simplified Chinese"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +554,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +629,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/en.json b/vendor/commerceguys/intl/resources/language/en.json
index dcbffbd7e..999971b32 100644
--- a/vendor/commerceguys/intl/resources/language/en.json
+++ b/vendor/commerceguys/intl/resources/language/en.json
@@ -86,9 +86,6 @@
"fr-CA": {
"name": "Canadian French"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -98,6 +95,9 @@
"ckb": {
"name": "Central Kurdish"
},
+ "ccp": {
+ "name": "Chakma"
+ },
"ce": {
"name": "Chechen"
},
@@ -509,6 +509,9 @@
"zh-Hans": {
"name": "Simplified Chinese"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +554,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +629,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/eo.json b/vendor/commerceguys/intl/resources/language/eo.json
index acb96e7f3..fcb3f2a02 100644
--- a/vendor/commerceguys/intl/resources/language/eo.json
+++ b/vendor/commerceguys/intl/resources/language/eo.json
@@ -83,9 +83,6 @@
"rn": {
"name": "burunda"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -521,6 +518,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "sinda"
+ },
"si": {
"name": "sinhala"
},
@@ -557,6 +557,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "taĝika"
+ },
"dav": {
"name": "Taita"
},
@@ -569,6 +572,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "tatara"
+ },
"te": {
"name": "telugua"
},
@@ -614,6 +620,9 @@
"vo": {
"name": "volapuko"
},
+ "wo": {
+ "name": "volofa"
+ },
"vun": {
"name": "Vunjo"
},
diff --git a/vendor/commerceguys/intl/resources/language/es-AR.json b/vendor/commerceguys/intl/resources/language/es-AR.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-AR.json
+++ b/vendor/commerceguys/intl/resources/language/es-AR.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-BO.json b/vendor/commerceguys/intl/resources/language/es-BO.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-BO.json
+++ b/vendor/commerceguys/intl/resources/language/es-BO.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-BR.json b/vendor/commerceguys/intl/resources/language/es-BR.json
index a1842dc81..051487935 100644
--- a/vendor/commerceguys/intl/resources/language/es-BR.json
+++ b/vendor/commerceguys/intl/resources/language/es-BR.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -524,15 +524,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sv": {
"name": "sueco"
},
@@ -557,12 +557,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wólof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-BZ.json b/vendor/commerceguys/intl/resources/language/es-BZ.json
new file mode 100644
index 000000000..051487935
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/es-BZ.json
@@ -0,0 +1,644 @@
+{
+ "af": {
+ "name": "afrikáans"
+ },
+ "agq": {
+ "name": "aghem"
+ },
+ "ak": {
+ "name": "akan"
+ },
+ "sq": {
+ "name": "albanés"
+ },
+ "de": {
+ "name": "alemán"
+ },
+ "de-AT": {
+ "name": "alemán austríaco"
+ },
+ "gsw": {
+ "name": "alemán suizo"
+ },
+ "de-CH": {
+ "name": "alto alemán suizo"
+ },
+ "hsb": {
+ "name": "alto sorbio"
+ },
+ "am": {
+ "name": "amárico"
+ },
+ "ar": {
+ "name": "árabe"
+ },
+ "hy": {
+ "name": "armenio"
+ },
+ "as": {
+ "name": "asamés"
+ },
+ "ast": {
+ "name": "asturiano"
+ },
+ "asa": {
+ "name": "asu"
+ },
+ "az": {
+ "name": "azerbaiyano"
+ },
+ "ksf": {
+ "name": "bafia"
+ },
+ "nds": {
+ "name": "bajo alemán"
+ },
+ "nds-NL": {
+ "name": "bajo sajón"
+ },
+ "dsb": {
+ "name": "bajo sorbio"
+ },
+ "bm": {
+ "name": "bambara"
+ },
+ "bas": {
+ "name": "basaa"
+ },
+ "bem": {
+ "name": "bemba"
+ },
+ "bez": {
+ "name": "bena"
+ },
+ "bn": {
+ "name": "bengalí"
+ },
+ "be": {
+ "name": "bielorruso"
+ },
+ "my": {
+ "name": "birmano"
+ },
+ "brx": {
+ "name": "bodo"
+ },
+ "bs": {
+ "name": "bosnio"
+ },
+ "br": {
+ "name": "bretón"
+ },
+ "bg": {
+ "name": "búlgaro"
+ },
+ "kab": {
+ "name": "cabila"
+ },
+ "ks": {
+ "name": "cachemiro"
+ },
+ "kn": {
+ "name": "canarés"
+ },
+ "ca": {
+ "name": "catalán"
+ },
+ "ce": {
+ "name": "checheno"
+ },
+ "cs": {
+ "name": "checo"
+ },
+ "chr": {
+ "name": "cheroqui"
+ },
+ "cgg": {
+ "name": "chiga"
+ },
+ "zh": {
+ "name": "chino"
+ },
+ "zh-Hans": {
+ "name": "chino simplificado"
+ },
+ "zh-Hant": {
+ "name": "chino tradicional"
+ },
+ "si": {
+ "name": "cingalés"
+ },
+ "ko": {
+ "name": "coreano"
+ },
+ "kw": {
+ "name": "córnico"
+ },
+ "kea": {
+ "name": "criollo caboverdiano"
+ },
+ "mfe": {
+ "name": "criollo mauriciano"
+ },
+ "hr": {
+ "name": "croata"
+ },
+ "da": {
+ "name": "danés"
+ },
+ "dua": {
+ "name": "duala"
+ },
+ "dz": {
+ "name": "dzongkha"
+ },
+ "ebu": {
+ "name": "embu"
+ },
+ "cu": {
+ "name": "eslavo eclesiástico"
+ },
+ "sk": {
+ "name": "eslovaco"
+ },
+ "sl": {
+ "name": "esloveno"
+ },
+ "es": {
+ "name": "español"
+ },
+ "es-MX": {
+ "name": "español de México"
+ },
+ "eo": {
+ "name": "esperanto"
+ },
+ "et": {
+ "name": "estonio"
+ },
+ "ee": {
+ "name": "ewé"
+ },
+ "ewo": {
+ "name": "ewondo"
+ },
+ "fo": {
+ "name": "feroés"
+ },
+ "fil": {
+ "name": "filipino"
+ },
+ "fi": {
+ "name": "finés"
+ },
+ "nl-BE": {
+ "name": "flamenco"
+ },
+ "fr": {
+ "name": "francés"
+ },
+ "fr-CA": {
+ "name": "francés canadiense"
+ },
+ "fr-CH": {
+ "name": "francés suizo"
+ },
+ "fy": {
+ "name": "frisón occidental"
+ },
+ "fur": {
+ "name": "friulano"
+ },
+ "ff": {
+ "name": "fula"
+ },
+ "gd": {
+ "name": "gaélico escocés"
+ },
+ "cy": {
+ "name": "galés"
+ },
+ "gl": {
+ "name": "gallego"
+ },
+ "lg": {
+ "name": "ganda"
+ },
+ "ka": {
+ "name": "georgiano"
+ },
+ "el": {
+ "name": "griego"
+ },
+ "kl": {
+ "name": "groenlandés"
+ },
+ "gu": {
+ "name": "gujarati"
+ },
+ "guz": {
+ "name": "gusii"
+ },
+ "ha": {
+ "name": "hausa"
+ },
+ "haw": {
+ "name": "hawaiano"
+ },
+ "he": {
+ "name": "hebreo"
+ },
+ "hi": {
+ "name": "hindi"
+ },
+ "hu": {
+ "name": "húngaro"
+ },
+ "ig": {
+ "name": "igbo"
+ },
+ "id": {
+ "name": "indonesio"
+ },
+ "en": {
+ "name": "inglés"
+ },
+ "en-AU": {
+ "name": "inglés australiano"
+ },
+ "en-GB": {
+ "name": "inglés británico"
+ },
+ "en-CA": {
+ "name": "inglés canadiense"
+ },
+ "ga": {
+ "name": "irlandés"
+ },
+ "is": {
+ "name": "islandés"
+ },
+ "it": {
+ "name": "italiano"
+ },
+ "ja": {
+ "name": "japonés"
+ },
+ "km": {
+ "name": "jemer"
+ },
+ "dyo": {
+ "name": "jola-fonyi"
+ },
+ "kkj": {
+ "name": "kako"
+ },
+ "kln": {
+ "name": "kalenjin"
+ },
+ "kam": {
+ "name": "kamba"
+ },
+ "kk": {
+ "name": "kazajo"
+ },
+ "ki": {
+ "name": "kikuyu"
+ },
+ "rw": {
+ "name": "kinyarwanda"
+ },
+ "ky": {
+ "name": "kirguís"
+ },
+ "rn": {
+ "name": "kirundi"
+ },
+ "ksh": {
+ "name": "kölsch"
+ },
+ "kok": {
+ "name": "konkaní"
+ },
+ "khq": {
+ "name": "koyra chiini"
+ },
+ "ses": {
+ "name": "koyraboro senni"
+ },
+ "ckb": {
+ "name": "kurdo sorani"
+ },
+ "nmg": {
+ "name": "kwasio"
+ },
+ "lkt": {
+ "name": "lakota"
+ },
+ "lag": {
+ "name": "langi"
+ },
+ "lo": {
+ "name": "laosiano"
+ },
+ "lv": {
+ "name": "letón"
+ },
+ "ln": {
+ "name": "lingala"
+ },
+ "lt": {
+ "name": "lituano"
+ },
+ "lrc": {
+ "name": "lorí septentrional"
+ },
+ "lu": {
+ "name": "luba-katanga"
+ },
+ "luo": {
+ "name": "Luo"
+ },
+ "lb": {
+ "name": "luxemburgués"
+ },
+ "luy": {
+ "name": "luyia"
+ },
+ "mk": {
+ "name": "macedonio"
+ },
+ "jmc": {
+ "name": "machame"
+ },
+ "mgh": {
+ "name": "makhuwa-meetto"
+ },
+ "kde": {
+ "name": "makonde"
+ },
+ "ml": {
+ "name": "malayalam"
+ },
+ "ms": {
+ "name": "malayo"
+ },
+ "mg": {
+ "name": "malgache"
+ },
+ "mt": {
+ "name": "maltés"
+ },
+ "gv": {
+ "name": "manés"
+ },
+ "mr": {
+ "name": "maratí"
+ },
+ "mas": {
+ "name": "masái"
+ },
+ "mzn": {
+ "name": "mazandaraní"
+ },
+ "mer": {
+ "name": "meru"
+ },
+ "mgo": {
+ "name": "meta’"
+ },
+ "ro-MD": {
+ "name": "moldavo"
+ },
+ "mn": {
+ "name": "mongol"
+ },
+ "mua": {
+ "name": "mundang"
+ },
+ "naq": {
+ "name": "nama"
+ },
+ "nd": {
+ "name": "ndebele septentrional"
+ },
+ "nl": {
+ "name": "neerlandés"
+ },
+ "ne": {
+ "name": "nepalí"
+ },
+ "nnh": {
+ "name": "ngiemboon"
+ },
+ "jgo": {
+ "name": "ngomba"
+ },
+ "nb": {
+ "name": "noruego bokmal"
+ },
+ "nn": {
+ "name": "noruego nynorsk"
+ },
+ "nus": {
+ "name": "nuer"
+ },
+ "nyn": {
+ "name": "nyankole"
+ },
+ "or": {
+ "name": "oriya"
+ },
+ "om": {
+ "name": "oromo"
+ },
+ "os": {
+ "name": "osético"
+ },
+ "pa": {
+ "name": "panyabí"
+ },
+ "ps": {
+ "name": "pastún"
+ },
+ "fa": {
+ "name": "persa"
+ },
+ "pl": {
+ "name": "polaco"
+ },
+ "pt": {
+ "name": "portugués"
+ },
+ "pt-PT": {
+ "name": "portugués de Portugal"
+ },
+ "prg": {
+ "name": "prusiano antiguo"
+ },
+ "qu": {
+ "name": "quechua"
+ },
+ "rm": {
+ "name": "retorrománico"
+ },
+ "rof": {
+ "name": "rombo"
+ },
+ "ro": {
+ "name": "rumano"
+ },
+ "ru": {
+ "name": "ruso"
+ },
+ "rwk": {
+ "name": "rwa"
+ },
+ "sah": {
+ "name": "sakha"
+ },
+ "saq": {
+ "name": "samburu"
+ },
+ "smn": {
+ "name": "sami inari"
+ },
+ "se": {
+ "name": "sami septentrional"
+ },
+ "sg": {
+ "name": "sango"
+ },
+ "sbp": {
+ "name": "sangu"
+ },
+ "seh": {
+ "name": "sena"
+ },
+ "sr": {
+ "name": "serbio"
+ },
+ "ksb": {
+ "name": "shambala"
+ },
+ "sn": {
+ "name": "shona"
+ },
+ "sd": {
+ "name": "sindhi"
+ },
+ "xog": {
+ "name": "soga"
+ },
+ "so": {
+ "name": "somalí"
+ },
+ "sv": {
+ "name": "sueco"
+ },
+ "sw": {
+ "name": "swahili"
+ },
+ "sw-CD": {
+ "name": "swahili (Congo)"
+ },
+ "th": {
+ "name": "tailandés"
+ },
+ "dav": {
+ "name": "taita"
+ },
+ "tzm": {
+ "name": "tamazight del Marruecos Central"
+ },
+ "zgh": {
+ "name": "tamazight estándar marroquí"
+ },
+ "ta": {
+ "name": "tamil"
+ },
+ "tt": {
+ "name": "tártaro"
+ },
+ "twq": {
+ "name": "tasawaq"
+ },
+ "shi": {
+ "name": "tashelhit"
+ },
+ "tg": {
+ "name": "tayiko"
+ },
+ "te": {
+ "name": "telugu"
+ },
+ "teo": {
+ "name": "teso"
+ },
+ "bo": {
+ "name": "tibetano"
+ },
+ "ti": {
+ "name": "tigriña"
+ },
+ "to": {
+ "name": "tongano"
+ },
+ "tr": {
+ "name": "turco"
+ },
+ "tk": {
+ "name": "turcomano"
+ },
+ "uk": {
+ "name": "ucraniano"
+ },
+ "ug": {
+ "name": "uigur"
+ },
+ "ur": {
+ "name": "urdu"
+ },
+ "uz": {
+ "name": "uzbeko"
+ },
+ "vai": {
+ "name": "Vai"
+ },
+ "eu": {
+ "name": "vasco"
+ },
+ "vi": {
+ "name": "vietnamita"
+ },
+ "vo": {
+ "name": "volapük"
+ },
+ "vun": {
+ "name": "vunjo"
+ },
+ "wae": {
+ "name": "walser"
+ },
+ "wo": {
+ "name": "wólof"
+ },
+ "yav": {
+ "name": "yangben"
+ },
+ "ii": {
+ "name": "yi de Sichuán"
+ },
+ "yi": {
+ "name": "yidis"
+ },
+ "yo": {
+ "name": "yoruba"
+ },
+ "dje": {
+ "name": "zarma"
+ },
+ "zu": {
+ "name": "zulú"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/es-CL.json b/vendor/commerceguys/intl/resources/language/es-CL.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-CL.json
+++ b/vendor/commerceguys/intl/resources/language/es-CL.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-CO.json b/vendor/commerceguys/intl/resources/language/es-CO.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-CO.json
+++ b/vendor/commerceguys/intl/resources/language/es-CO.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-CR.json b/vendor/commerceguys/intl/resources/language/es-CR.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-CR.json
+++ b/vendor/commerceguys/intl/resources/language/es-CR.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-CU.json b/vendor/commerceguys/intl/resources/language/es-CU.json
index a1842dc81..051487935 100644
--- a/vendor/commerceguys/intl/resources/language/es-CU.json
+++ b/vendor/commerceguys/intl/resources/language/es-CU.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -524,15 +524,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sv": {
"name": "sueco"
},
@@ -557,12 +557,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wólof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-DO.json b/vendor/commerceguys/intl/resources/language/es-DO.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-DO.json
+++ b/vendor/commerceguys/intl/resources/language/es-DO.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-EC.json b/vendor/commerceguys/intl/resources/language/es-EC.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-EC.json
+++ b/vendor/commerceguys/intl/resources/language/es-EC.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-GT.json b/vendor/commerceguys/intl/resources/language/es-GT.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-GT.json
+++ b/vendor/commerceguys/intl/resources/language/es-GT.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-HN.json b/vendor/commerceguys/intl/resources/language/es-HN.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-HN.json
+++ b/vendor/commerceguys/intl/resources/language/es-HN.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-MX.json b/vendor/commerceguys/intl/resources/language/es-MX.json
index 80b7bbd2c..2df5b6cd8 100644
--- a/vendor/commerceguys/intl/resources/language/es-MX.json
+++ b/vendor/commerceguys/intl/resources/language/es-MX.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-NI.json b/vendor/commerceguys/intl/resources/language/es-NI.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-NI.json
+++ b/vendor/commerceguys/intl/resources/language/es-NI.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-PA.json b/vendor/commerceguys/intl/resources/language/es-PA.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-PA.json
+++ b/vendor/commerceguys/intl/resources/language/es-PA.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-PE.json b/vendor/commerceguys/intl/resources/language/es-PE.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-PE.json
+++ b/vendor/commerceguys/intl/resources/language/es-PE.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-PR.json b/vendor/commerceguys/intl/resources/language/es-PR.json
index a1842dc81..fd3d7323f 100644
--- a/vendor/commerceguys/intl/resources/language/es-PR.json
+++ b/vendor/commerceguys/intl/resources/language/es-PR.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -524,15 +524,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sv": {
"name": "sueco"
},
@@ -557,12 +557,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-PY.json b/vendor/commerceguys/intl/resources/language/es-PY.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-PY.json
+++ b/vendor/commerceguys/intl/resources/language/es-PY.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-SV.json b/vendor/commerceguys/intl/resources/language/es-SV.json
index a1842dc81..fd3d7323f 100644
--- a/vendor/commerceguys/intl/resources/language/es-SV.json
+++ b/vendor/commerceguys/intl/resources/language/es-SV.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -524,15 +524,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sv": {
"name": "sueco"
},
@@ -557,12 +557,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-US.json b/vendor/commerceguys/intl/resources/language/es-US.json
index e44b970b1..8ce3ff529 100644
--- a/vendor/commerceguys/intl/resources/language/es-US.json
+++ b/vendor/commerceguys/intl/resources/language/es-US.json
@@ -101,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -237,7 +234,7 @@
"name": "groenlandés"
},
"gu": {
- "name": "gujarati"
+ "name": "gurayatí"
},
"guz": {
"name": "gusii"
@@ -483,7 +480,7 @@
"name": "quechua"
},
"rm": {
- "name": "retorrománico"
+ "name": "romanche"
},
"rof": {
"name": "rombo"
@@ -527,6 +524,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
@@ -557,12 +557,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-UY.json b/vendor/commerceguys/intl/resources/language/es-UY.json
index a1842dc81..051487935 100644
--- a/vendor/commerceguys/intl/resources/language/es-UY.json
+++ b/vendor/commerceguys/intl/resources/language/es-UY.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -524,15 +524,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sv": {
"name": "sueco"
},
@@ -557,12 +557,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wólof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es-VE.json b/vendor/commerceguys/intl/resources/language/es-VE.json
index 141f785c9..3bd22cc40 100644
--- a/vendor/commerceguys/intl/resources/language/es-VE.json
+++ b/vendor/commerceguys/intl/resources/language/es-VE.json
@@ -23,6 +23,9 @@
"de-CH": {
"name": "alto alemán suizo"
},
+ "hsb": {
+ "name": "alto sorbio"
+ },
"am": {
"name": "amárico"
},
@@ -98,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -135,7 +135,7 @@
"name": "córnico"
},
"kea": {
- "name": "Criollo (Cabo Verde)"
+ "name": "criollo caboverdiano"
},
"mfe": {
"name": "criollo mauriciano"
@@ -527,15 +527,15 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
"so": {
"name": "somalí"
},
- "hsb": {
- "name": "sorbio alto"
- },
"sw": {
"name": "suajili"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
@@ -621,7 +630,7 @@
"name": "yi de Sichuán"
},
"yi": {
- "name": "yídish"
+ "name": "yidis"
},
"yo": {
"name": "yoruba"
diff --git a/vendor/commerceguys/intl/resources/language/es.json b/vendor/commerceguys/intl/resources/language/es.json
index 9e15ffd92..88e49a6be 100644
--- a/vendor/commerceguys/intl/resources/language/es.json
+++ b/vendor/commerceguys/intl/resources/language/es.json
@@ -101,9 +101,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"ca": {
"name": "catalán"
},
@@ -530,6 +527,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
@@ -560,12 +560,18 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
"shi": {
"name": "tashelhit"
},
+ "tg": {
+ "name": "tayiko"
+ },
"te": {
"name": "telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wólof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/et.json b/vendor/commerceguys/intl/resources/language/et.json
index fc465e34a..3fbdcf4bd 100644
--- a/vendor/commerceguys/intl/resources/language/et.json
+++ b/vendor/commerceguys/intl/resources/language/et.json
@@ -51,7 +51,7 @@
"name": "bambara"
},
"bas": {
- "name": "basa"
+ "name": "basaa"
},
"eu": {
"name": "baski"
@@ -161,12 +161,6 @@
"zh": {
"name": "hiina"
},
- "zh-Hans": {
- "name": "hiina (lihtsustatud)"
- },
- "zh-Hant": {
- "name": "hiina (traditsiooniline)"
- },
"hi": {
"name": "hindi"
},
@@ -239,9 +233,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantoni"
- },
"kk": {
"name": "kasahhi"
},
@@ -311,6 +302,9 @@
"lb": {
"name": "letseburgi"
},
+ "zh-Hans": {
+ "name": "lihtsustatud hiina"
+ },
"ln": {
"name": "lingala"
},
@@ -488,6 +482,9 @@
"ii": {
"name": "Sichuani jii"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singali"
},
@@ -539,6 +536,9 @@
"da": {
"name": "taani"
},
+ "tg": {
+ "name": "tadžiki"
+ },
"th": {
"name": "tai"
},
@@ -554,6 +554,9 @@
"twq": {
"name": "taswaqi"
},
+ "tt": {
+ "name": "tatari"
+ },
"te": {
"name": "telugu"
},
@@ -569,6 +572,9 @@
"to": {
"name": "tonga"
},
+ "zh-Hant": {
+ "name": "traditsiooniline hiina"
+ },
"cs": {
"name": "tšehhi"
},
@@ -620,6 +626,9 @@
"vo": {
"name": "volapüki"
},
+ "wo": {
+ "name": "volofi"
+ },
"vun": {
"name": "vundžo"
},
diff --git a/vendor/commerceguys/intl/resources/language/eu.json b/vendor/commerceguys/intl/resources/language/eu.json
index 0e68284ef..a2a219266 100644
--- a/vendor/commerceguys/intl/resources/language/eu.json
+++ b/vendor/commerceguys/intl/resources/language/eu.json
@@ -20,6 +20,9 @@
"gsw": {
"name": "alemana (Suitza)"
},
+ "zgh": {
+ "name": "amazigera estandarra"
+ },
"am": {
"name": "amharera"
},
@@ -77,6 +80,9 @@
"be": {
"name": "bielorrusiera"
},
+ "my": {
+ "name": "birmaniera"
+ },
"brx": {
"name": "bodoera"
},
@@ -95,9 +101,6 @@
"bg": {
"name": "bulgariera"
},
- "my": {
- "name": "burmatarra"
- },
"kea": {
"name": "Cabo Verdeko kreola"
},
@@ -119,8 +122,11 @@
"ebu": {
"name": "embua"
},
+ "tzm": {
+ "name": "Erdialdeko Atlaseko amazigera"
+ },
"rm": {
- "name": "erromantxera"
+ "name": "erretorromaniera"
},
"ro": {
"name": "errumaniera"
@@ -129,7 +135,7 @@
"name": "errusiera"
},
"gd": {
- "name": "eskoziako gaelikoa"
+ "name": "Eskoziako gaelikoa"
},
"sk": {
"name": "eslovakiera"
@@ -158,6 +164,9 @@
"fo": {
"name": "faroera"
},
+ "fil": {
+ "name": "filipinera"
+ },
"fi": {
"name": "finlandiera"
},
@@ -183,7 +192,7 @@
"name": "gaelikoa"
},
"cy": {
- "name": "galesera"
+ "name": "galesa"
},
"gl": {
"name": "galiziera"
@@ -200,6 +209,9 @@
"el": {
"name": "greziera"
},
+ "kl": {
+ "name": "groenlandiera"
+ },
"gu": {
"name": "gujaratera"
},
@@ -254,15 +266,15 @@
"ja": {
"name": "japoniera"
},
+ "yo": {
+ "name": "jorubera"
+ },
"kab": {
"name": "kabilera"
},
"kkj": {
"name": "kakoa"
},
- "kl": {
- "name": "kalaallisutera"
- },
"kln": {
"name": "kalenjinera"
},
@@ -276,17 +288,14 @@
"name": "Kanadako ingelesa"
},
"kn": {
- "name": "kannadera"
- },
- "yue": {
- "name": "kantonera"
- },
- "ks": {
- "name": "kashmirera"
+ "name": "kannada"
},
"ca": {
"name": "katalana"
},
+ "ks": {
+ "name": "kaxmirera"
+ },
"kk": {
"name": "kazakhera"
},
@@ -302,6 +311,9 @@
"ky": {
"name": "kirgizera"
},
+ "qu": {
+ "name": "kitxua"
+ },
"ksh": {
"name": "koloniera"
},
@@ -309,7 +321,7 @@
"name": "Kongoko swahilia"
},
"kok": {
- "name": "konkaniera"
+ "name": "konkanera"
},
"ko": {
"name": "koreera"
@@ -368,15 +380,15 @@
"kde": {
"name": "makondera"
},
- "mg": {
- "name": "malagasyera"
- },
"ml": {
- "name": "malayalamera"
+ "name": "malabarera"
},
"ms": {
"name": "malaysiera"
},
+ "mg": {
+ "name": "malgaxea"
+ },
"mt": {
"name": "maltera"
},
@@ -386,9 +398,6 @@
"mr": {
"name": "marathera"
},
- "tzm": {
- "name": "Maroko erdialdeko tamazighta"
- },
"mas": {
"name": "masaiera"
},
@@ -470,9 +479,6 @@
"pa": {
"name": "punjabera"
},
- "qu": {
- "name": "quechuera"
- },
"rof": {
"name": "romboera"
},
@@ -489,7 +495,7 @@
"name": "samburuera"
},
"sg": {
- "name": "sangoera"
+ "name": "sangoa"
},
"sbp": {
"name": "sanguera"
@@ -507,7 +513,10 @@
"name": "shonera"
},
"ii": {
- "name": "sichuan yia"
+ "name": "Sichuango yiera"
+ },
+ "sd": {
+ "name": "sindhia"
},
"si": {
"name": "sinhala"
@@ -528,19 +537,16 @@
"name": "Suitzako frantsesa"
},
"sw": {
- "name": "swahili"
+ "name": "swahilia"
},
"shi": {
"name": "tachelhita"
},
- "fil": {
- "name": "tagaloga"
- },
"dav": {
"name": "taitera"
},
- "zgh": {
- "name": "tamazight estandarra"
+ "tg": {
+ "name": "tajikera"
},
"ta": {
"name": "tamilera"
@@ -548,8 +554,11 @@
"twq": {
"name": "tasawaqa"
},
+ "tt": {
+ "name": "tatarera"
+ },
"te": {
- "name": "teluguera"
+ "name": "telugua"
},
"teo": {
"name": "tesoera"
@@ -570,7 +579,7 @@
"name": "turkiera"
},
"tk": {
- "name": "turkmeniera"
+ "name": "turkmenera"
},
"cs": {
"name": "txekiera"
@@ -617,14 +626,14 @@
"wae": {
"name": "walserera"
},
+ "wo": {
+ "name": "wolofera"
+ },
"yi": {
"name": "yiddisha"
},
- "yo": {
- "name": "yorubera"
- },
"dje": {
- "name": "zarmera"
+ "name": "zarma"
},
"zu": {
"name": "zuluera"
diff --git a/vendor/commerceguys/intl/resources/language/ewo.json b/vendor/commerceguys/intl/resources/language/ewo.json
index 256c643f0..9278312db 100644
--- a/vendor/commerceguys/intl/resources/language/ewo.json
+++ b/vendor/commerceguys/intl/resources/language/ewo.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fa-AF.json b/vendor/commerceguys/intl/resources/language/fa-AF.json
index 4f5c05b9e..0501e242e 100644
--- a/vendor/commerceguys/intl/resources/language/fa-AF.json
+++ b/vendor/commerceguys/intl/resources/language/fa-AF.json
@@ -191,6 +191,12 @@
"pl": {
"name": "پولندی"
},
+ "tt": {
+ "name": "تاتاری"
+ },
+ "tg": {
+ "name": "تاجکی"
+ },
"shi": {
"name": "تاچل‌هیت"
},
@@ -314,6 +320,9 @@
"seh": {
"name": "سنا"
},
+ "sd": {
+ "name": "سندی"
+ },
"sw": {
"name": "سواحلی"
},
@@ -413,9 +422,6 @@
"kn": {
"name": "کانارا"
},
- "yue": {
- "name": "کانتونی"
- },
"qu": {
"name": "کچوایی"
},
@@ -608,6 +614,9 @@
"cy": {
"name": "ولزی"
},
+ "wo": {
+ "name": "ولوفی"
+ },
"vun": {
"name": "ونجو"
},
diff --git a/vendor/commerceguys/intl/resources/language/fa.json b/vendor/commerceguys/intl/resources/language/fa.json
index f2dc829ba..4767ea776 100644
--- a/vendor/commerceguys/intl/resources/language/fa.json
+++ b/vendor/commerceguys/intl/resources/language/fa.json
@@ -188,6 +188,12 @@
"pa": {
"name": "پنجابی"
},
+ "tt": {
+ "name": "تاتاری"
+ },
+ "tg": {
+ "name": "تاجیکی"
+ },
"shi": {
"name": "تاچل‌هیت"
},
@@ -314,6 +320,9 @@
"seh": {
"name": "سنا"
},
+ "sd": {
+ "name": "سندی"
+ },
"sw": {
"name": "سواحیلی"
},
@@ -413,9 +422,6 @@
"kn": {
"name": "کانارا"
},
- "yue": {
- "name": "کانتونی"
- },
"qu": {
"name": "کچوایی"
},
@@ -596,6 +602,9 @@
"cy": {
"name": "ولزی"
},
+ "wo": {
+ "name": "ولوفی"
+ },
"vun": {
"name": "ونجو"
},
diff --git a/vendor/commerceguys/intl/resources/language/ff.json b/vendor/commerceguys/intl/resources/language/ff.json
index fd15d73bf..1304a461c 100644
--- a/vendor/commerceguys/intl/resources/language/ff.json
+++ b/vendor/commerceguys/intl/resources/language/ff.json
@@ -71,9 +71,6 @@
"my": {
"name": "Burmeese"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -503,6 +500,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -554,12 +554,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -617,6 +623,9 @@
"vi": {
"name": "Wiyetnameere"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fi.json b/vendor/commerceguys/intl/resources/language/fi.json
index f52ecbcaa..79e310b76 100644
--- a/vendor/commerceguys/intl/resources/language/fi.json
+++ b/vendor/commerceguys/intl/resources/language/fi.json
@@ -116,9 +116,6 @@
"ewo": {
"name": "ewondo"
},
- "fa": {
- "name": "farsi"
- },
"fil": {
"name": "filipino"
},
@@ -227,9 +224,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantoninkiina"
- },
"kea": {
"name": "kapverdenkreoli"
},
@@ -434,6 +428,9 @@
"zh-Hant": {
"name": "perinteinen kiina"
},
+ "fa": {
+ "name": "persia"
+ },
"nd": {
"name": "pohjois-ndebele"
},
@@ -497,6 +494,9 @@
"ii": {
"name": "sichuanin-yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "sinhala"
},
@@ -533,6 +533,9 @@
"sw": {
"name": "swahili"
},
+ "tg": {
+ "name": "tadžikki"
+ },
"dav": {
"name": "taita"
},
@@ -548,6 +551,9 @@
"shi": {
"name": "tašelhit"
},
+ "tt": {
+ "name": "tataari"
+ },
"te": {
"name": "telugu"
},
@@ -620,6 +626,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fil.json b/vendor/commerceguys/intl/resources/language/fil.json
index 95c0ffc73..82114a740 100644
--- a/vendor/commerceguys/intl/resources/language/fil.json
+++ b/vendor/commerceguys/intl/resources/language/fil.json
@@ -74,9 +74,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -492,7 +489,7 @@
"name": "Sangu"
},
"gd": {
- "name": "Scots Gaelic"
+ "name": "Scottish Gaelic"
},
"seh": {
"name": "Sena"
@@ -509,6 +506,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -617,6 +623,9 @@
"cy": {
"name": "Welsh"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fo.json b/vendor/commerceguys/intl/resources/language/fo.json
index aafa39ada..dc41a8891 100644
--- a/vendor/commerceguys/intl/resources/language/fo.json
+++ b/vendor/commerceguys/intl/resources/language/fo.json
@@ -230,9 +230,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantonesiskt"
- },
"ks": {
"name": "kashmiri"
},
@@ -503,6 +500,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singalesiskt"
},
@@ -545,12 +545,18 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajik"
+ },
"ta": {
"name": "tamilskt"
},
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -626,6 +632,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fr-BE.json b/vendor/commerceguys/intl/resources/language/fr-BE.json
index fd00c962f..055ac5c39 100644
--- a/vendor/commerceguys/intl/resources/language/fr-BE.json
+++ b/vendor/commerceguys/intl/resources/language/fr-BE.json
@@ -20,6 +20,9 @@
"de-CH": {
"name": "allemand suisse"
},
+ "tzm": {
+ "name": "amazighe de l’Atlas central"
+ },
"zgh": {
"name": "amazighe standard marocain"
},
@@ -104,9 +107,6 @@
"bg": {
"name": "bulgare"
},
- "yue": {
- "name": "cantonais"
- },
"kea": {
"name": "capverdien"
},
@@ -524,6 +524,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"cu": {
"name": "slavon d’église"
},
@@ -554,18 +557,21 @@
"sw-CD": {
"name": "swahili du Congo"
},
+ "tg": {
+ "name": "tadjik"
+ },
"dav": {
"name": "taita"
},
- "tzm": {
- "name": "tamazight du Maroc central"
- },
"ta": {
"name": "tamoul"
},
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"cs": {
"name": "tchèque"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fr-CA.json b/vendor/commerceguys/intl/resources/language/fr-CA.json
index 9b88775cf..b4c172072 100644
--- a/vendor/commerceguys/intl/resources/language/fr-CA.json
+++ b/vendor/commerceguys/intl/resources/language/fr-CA.json
@@ -104,9 +104,6 @@
"bg": {
"name": "bulgare"
},
- "yue": {
- "name": "cantonais"
- },
"kea": {
"name": "capverdien"
},
@@ -527,6 +524,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"cu": {
"name": "slavon d’église"
},
@@ -554,6 +554,9 @@
"sw-CD": {
"name": "swahili congolais"
},
+ "tg": {
+ "name": "tadjik"
+ },
"dav": {
"name": "taita"
},
@@ -566,6 +569,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"cs": {
"name": "tchèque"
},
@@ -614,11 +620,14 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
"ii": {
- "name": "yi du Sichuan"
+ "name": "yi de Sichuan"
},
"yi": {
"name": "yiddish"
diff --git a/vendor/commerceguys/intl/resources/language/fr-CH.json b/vendor/commerceguys/intl/resources/language/fr-CH.json
index c2113374c..1a0d354e6 100644
--- a/vendor/commerceguys/intl/resources/language/fr-CH.json
+++ b/vendor/commerceguys/intl/resources/language/fr-CH.json
@@ -20,6 +20,9 @@
"de-CH": {
"name": "allemand suisse"
},
+ "tzm": {
+ "name": "amazighe de l’Atlas central"
+ },
"zgh": {
"name": "amazighe standard marocain"
},
@@ -104,9 +107,6 @@
"bg": {
"name": "bulgare"
},
- "yue": {
- "name": "cantonais"
- },
"kea": {
"name": "capverdien"
},
@@ -524,6 +524,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"cu": {
"name": "slavon d’église"
},
@@ -554,18 +557,21 @@
"sw-CD": {
"name": "swahili du Congo"
},
+ "tg": {
+ "name": "tadjik"
+ },
"dav": {
"name": "taita"
},
- "tzm": {
- "name": "tamazight du Maroc central"
- },
"ta": {
"name": "tamoul"
},
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"cs": {
"name": "tchèque"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fr.json b/vendor/commerceguys/intl/resources/language/fr.json
index 01c2a53e3..d12109d2b 100644
--- a/vendor/commerceguys/intl/resources/language/fr.json
+++ b/vendor/commerceguys/intl/resources/language/fr.json
@@ -20,6 +20,9 @@
"de-CH": {
"name": "allemand suisse"
},
+ "tzm": {
+ "name": "amazighe de l’Atlas central"
+ },
"zgh": {
"name": "amazighe standard marocain"
},
@@ -104,9 +107,6 @@
"bg": {
"name": "bulgare"
},
- "yue": {
- "name": "cantonais"
- },
"kea": {
"name": "capverdien"
},
@@ -524,6 +524,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"cu": {
"name": "slavon d’église"
},
@@ -554,18 +557,21 @@
"sw-CD": {
"name": "swahili du Congo"
},
+ "tg": {
+ "name": "tadjik"
+ },
"dav": {
"name": "taita"
},
- "tzm": {
- "name": "tamazight du Maroc central"
- },
"ta": {
"name": "tamoul"
},
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"cs": {
"name": "tchèque"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fur.json b/vendor/commerceguys/intl/resources/language/fur.json
index 18a18d6cc..d9092628f 100644
--- a/vendor/commerceguys/intl/resources/language/fur.json
+++ b/vendor/commerceguys/intl/resources/language/fur.json
@@ -80,9 +80,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "catalan"
},
@@ -509,6 +506,9 @@
"si": {
"name": "sinalês"
},
+ "sd": {
+ "name": "sindhi"
+ },
"sk": {
"name": "slovac"
},
@@ -545,6 +545,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "tagic"
+ },
"dav": {
"name": "Taita"
},
@@ -554,6 +557,9 @@
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tartar"
+ },
"twq": {
"name": "Tasawaq"
},
@@ -617,6 +623,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/fy.json b/vendor/commerceguys/intl/resources/language/fy.json
index 638843cb2..a815fd646 100644
--- a/vendor/commerceguys/intl/resources/language/fy.json
+++ b/vendor/commerceguys/intl/resources/language/fy.json
@@ -137,6 +137,9 @@
"fur": {
"name": "Friulysk"
},
+ "fy": {
+ "name": "Frysk"
+ },
"ff": {
"name": "Fulah"
},
@@ -227,9 +230,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantoneesk"
- },
"ks": {
"name": "Kasjmiri"
},
@@ -494,6 +494,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"zh": {
"name": "Sineesk"
},
@@ -533,6 +536,9 @@
"de-CH": {
"name": "Switsersk Heechdútsk"
},
+ "tg": {
+ "name": "Tadzjieks"
+ },
"dav": {
"name": "Taita"
},
@@ -548,6 +554,9 @@
"shi": {
"name": "Tashelhiyt"
},
+ "tt": {
+ "name": "Tataars"
+ },
"te": {
"name": "Telugu"
},
@@ -605,8 +614,8 @@
"cy": {
"name": "Welsk"
},
- "fy": {
- "name": "West-Frysk"
+ "wo": {
+ "name": "Wolof"
},
"be": {
"name": "Wyt-Russysk"
diff --git a/vendor/commerceguys/intl/resources/language/ga.json b/vendor/commerceguys/intl/resources/language/ga.json
index a6fe30a4e..5cd1467f8 100644
--- a/vendor/commerceguys/intl/resources/language/ga.json
+++ b/vendor/commerceguys/intl/resources/language/ga.json
@@ -95,9 +95,6 @@
"kn": {
"name": "Cannadais"
},
- "yue": {
- "name": "Cantainis"
- },
"kk": {
"name": "Casaicis"
},
@@ -107,12 +104,6 @@
"qu": {
"name": "Ceatsuais"
},
- "tzm": {
- "name": "Central Atlas Tamazight"
- },
- "ckb": {
- "name": "Central Kurdish"
- },
"cgg": {
"name": "Chiga"
},
@@ -128,6 +119,9 @@
"ky": {
"name": "Cirgisis"
},
+ "ckb": {
+ "name": "Coirdis Lárnach"
+ },
"ko": {
"name": "Cóiréis"
},
@@ -239,9 +233,6 @@
"yo": {
"name": "Iarúibis"
},
- "smn": {
- "name": "Inari Sami"
- },
"id": {
"name": "Indinéisis"
},
@@ -461,6 +452,9 @@
"nds-NL": {
"name": "Sacsainis Íochtarach"
},
+ "smn": {
+ "name": "Sáimis Inari"
+ },
"se": {
"name": "Sáimis Thuaidh"
},
@@ -506,6 +500,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindis"
+ },
"zh": {
"name": "Sínis"
},
@@ -545,9 +542,6 @@
"es-MX": {
"name": "Spáinnis Mheicsiceach"
},
- "zgh": {
- "name": "Standard Moroccan Tamazight"
- },
"sv": {
"name": "Sualainnis"
},
@@ -563,15 +557,27 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "Táidsícis"
+ },
"dav": {
"name": "Taita"
},
"ta": {
"name": "Tamailis"
},
+ "tzm": {
+ "name": "Tamazight Atlais Láir"
+ },
+ "zgh": {
+ "name": "Tamazight Caighdeánach Mharacó"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatairis"
+ },
"th": {
"name": "Téalainnis"
},
@@ -617,6 +623,9 @@
"vi": {
"name": "Vítneaimis"
},
+ "wo": {
+ "name": "Volaifis"
+ },
"vo": {
"name": "Volapük"
},
diff --git a/vendor/commerceguys/intl/resources/language/gd.json b/vendor/commerceguys/intl/resources/language/gd.json
index dbff64b32..457d565d2 100644
--- a/vendor/commerceguys/intl/resources/language/gd.json
+++ b/vendor/commerceguys/intl/resources/language/gd.json
@@ -104,9 +104,6 @@
"th": {
"name": "Cànan nan Tàidh"
},
- "yue": {
- "name": "Cantonais"
- },
"kk": {
"name": "Casachais"
},
@@ -512,6 +509,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -557,6 +557,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "Taidigis"
+ },
"ta": {
"name": "Taimilis"
},
@@ -572,6 +575,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatarais"
+ },
"te": {
"name": "Telugu"
},
@@ -617,6 +623,9 @@
"vun": {
"name": "Vunjo"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/gl.json b/vendor/commerceguys/intl/resources/language/gl.json
index b9ecd065a..73a570967 100644
--- a/vendor/commerceguys/intl/resources/language/gl.json
+++ b/vendor/commerceguys/intl/resources/language/gl.json
@@ -3,13 +3,13 @@
"name": "acerbaixano"
},
"af": {
- "name": "africáner"
+ "name": "afrikaans"
},
"agq": {
"name": "aghem"
},
"ak": {
- "name": "akán"
+ "name": "akan"
},
"sq": {
"name": "albanés"
@@ -30,7 +30,7 @@
"name": "alto sorbio"
},
"am": {
- "name": "amárico"
+ "name": "amhárico"
},
"ar": {
"name": "árabe"
@@ -39,7 +39,7 @@
"name": "armenio"
},
"as": {
- "name": "asamés"
+ "name": "assamés"
},
"ast": {
"name": "asturiano"
@@ -57,7 +57,7 @@
"name": "baixo saxón"
},
"dsb": {
- "name": "baixo sorabio"
+ "name": "baixo sorbio"
},
"bm": {
"name": "bambaro"
@@ -92,6 +92,9 @@
"bg": {
"name": "búlgaro"
},
+ "kab": {
+ "name": "cabila"
+ },
"kea": {
"name": "caboverdiano"
},
@@ -101,9 +104,6 @@
"kn": {
"name": "canarés"
},
- "yue": {
- "name": "cantonés"
- },
"kk": {
"name": "casaco"
},
@@ -117,7 +117,7 @@
"name": "checo"
},
"chr": {
- "name": "cheroqui"
+ "name": "cherokee"
},
"zh": {
"name": "chinés"
@@ -195,22 +195,22 @@
"name": "finés"
},
"nl-BE": {
- "name": "flamenco"
+ "name": "flamengo"
},
"fr": {
"name": "francés"
},
"fr-CA": {
- "name": "francés canadiano"
+ "name": "francés canadense"
},
"fr-CH": {
"name": "francés suízo"
},
"fy": {
- "name": "frisón"
+ "name": "frisón occidental"
},
"fur": {
- "name": "friuliano"
+ "name": "friulano"
},
"ff": {
"name": "fula"
@@ -231,7 +231,7 @@
"name": "grego"
},
"kl": {
- "name": "groenlandés occidental"
+ "name": "groenlandés"
},
"guz": {
"name": "gusii"
@@ -251,9 +251,6 @@
"hi": {
"name": "hindi"
},
- "nl": {
- "name": "holandés"
- },
"hu": {
"name": "húngaro"
},
@@ -273,7 +270,7 @@
"name": "inglés británico"
},
"en-CA": {
- "name": "inglés canadiano"
+ "name": "inglés canadense"
},
"ga": {
"name": "irlandés"
@@ -287,9 +284,6 @@
"dyo": {
"name": "jola-fonyi"
},
- "kab": {
- "name": "kabile"
- },
"kkj": {
"name": "kako"
},
@@ -308,6 +302,9 @@
"ki": {
"name": "kikuyu"
},
+ "ky": {
+ "name": "kirguiz"
+ },
"ksh": {
"name": "kölsch"
},
@@ -351,7 +348,7 @@
"name": "Luo"
},
"lrc": {
- "name": "luri do norte"
+ "name": "luri setentrional"
},
"lb": {
"name": "luxemburgués"
@@ -414,7 +411,10 @@
"name": "nama"
},
"nd": {
- "name": "ndebele do norte"
+ "name": "ndebele setentrional"
+ },
+ "nl": {
+ "name": "neerlandés"
},
"ne": {
"name": "nepalí"
@@ -426,7 +426,7 @@
"name": "ngomba"
},
"nb": {
- "name": "noruegués bokmal"
+ "name": "noruegués bokmål"
},
"nn": {
"name": "noruegués nynorsk"
@@ -444,13 +444,13 @@
"name": "oromo"
},
"os": {
- "name": "osetio"
+ "name": "ossetio"
},
"pa": {
"name": "panxabiano"
},
"ps": {
- "name": "pashtu"
+ "name": "paxto"
},
"fa": {
"name": "persa"
@@ -462,7 +462,7 @@
"name": "portugués"
},
"pt-PT": {
- "name": "portugués europeo"
+ "name": "portugués de Portugal"
},
"prg": {
"name": "prusiano"
@@ -470,9 +470,6 @@
"qu": {
"name": "quechua"
},
- "ky": {
- "name": "quirguiz"
- },
"rm": {
"name": "romanche"
},
@@ -498,7 +495,7 @@
"name": "saami de Inari"
},
"se": {
- "name": "saami do norte"
+ "name": "saami setentrional"
},
"sah": {
"name": "sakha"
@@ -524,6 +521,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"xog": {
"name": "soga"
},
@@ -548,20 +548,26 @@
"dav": {
"name": "taita"
},
- "zgh": {
- "name": "tamazight de Marrocos estándar"
- },
"tzm": {
- "name": "tamazight do Marrocos Central"
+ "name": "tamazight de Marrocos central"
+ },
+ "zgh": {
+ "name": "tamazight marroquí estándar"
},
"ta": {
"name": "támil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
+ "tg": {
+ "name": "taxico"
+ },
"te": {
- "name": "telugú"
+ "name": "telugu"
},
"teo": {
"name": "teso"
@@ -573,7 +579,7 @@
"name": "tigriña"
},
"to": {
- "name": "tonganés"
+ "name": "tongano"
},
"tr": {
"name": "turco"
@@ -608,6 +614,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wólof"
+ },
"ja": {
"name": "xaponés"
},
diff --git a/vendor/commerceguys/intl/resources/language/gsw.json b/vendor/commerceguys/intl/resources/language/gsw.json
index b321f0664..5993f6860 100644
--- a/vendor/commerceguys/intl/resources/language/gsw.json
+++ b/vendor/commerceguys/intl/resources/language/gsw.json
@@ -77,9 +77,6 @@
"bg": {
"name": "Bulgaarisch"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -503,6 +500,9 @@
"ksb": {
"name": "Shambala"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Singhalesisch"
},
@@ -530,6 +530,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "Tadschikisch"
+ },
"dav": {
"name": "Taita"
},
@@ -542,6 +545,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatarisch"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"be": {
"name": "Wiissrussisch"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/gu.json b/vendor/commerceguys/intl/resources/language/gu.json
index a953a9681..f5387a7be 100644
--- a/vendor/commerceguys/intl/resources/language/gu.json
+++ b/vendor/commerceguys/intl/resources/language/gu.json
@@ -12,7 +12,7 @@
"name": "અઝરબૈજાની"
},
"hsb": {
- "name": "અપ્પર સોર્બિયન"
+ "name": "અપર સોર્બિયન"
},
"ar": {
"name": "અરબી"
@@ -72,10 +72,10 @@
"name": "ઉત્તર દેબેલ"
},
"lrc": {
- "name": "ઉત્તરીય લુરી"
+ "name": "ઉત્તરી લુરી"
},
"se": {
- "name": "ઉત્તરીય સામી"
+ "name": "ઉત્તરી સામી"
},
"ur": {
"name": "ઉર્દૂ"
@@ -143,9 +143,6 @@
"ky": {
"name": "કિર્ગીઝ"
},
- "yue": {
- "name": "કેંટોનીઝ"
- },
"en-CA": {
"name": "કેનેડિયન અંગ્રેજી"
},
@@ -225,7 +222,7 @@
"name": "જોલા-ફોન્યી"
},
"ka": {
- "name": "જ્યોર્જિઅન"
+ "name": "જ્યોર્જિયન"
},
"dje": {
"name": "ઝર્મા"
@@ -234,7 +231,7 @@
"name": "ઝુલુ"
},
"tr": {
- "name": "ટર્કીશ"
+ "name": "ટર્કિશ"
},
"ti": {
"name": "ટાઇગ્રિનિયા"
@@ -251,12 +248,18 @@
"dz": {
"name": "ડ્ઝોંગ્ખા"
},
+ "tt": {
+ "name": "તતાર"
+ },
"ta": {
"name": "તમિલ"
},
"twq": {
"name": "તસાવાક"
},
+ "tg": {
+ "name": "તાજીક"
+ },
"bo": {
"name": "તિબેટીયન"
},
@@ -287,9 +290,6 @@
"naq": {
"name": "નમા"
},
- "dsb": {
- "name": "નિમ્ન સોર્બિયન"
- },
"nnh": {
"name": "નીએમબુન"
},
@@ -300,10 +300,10 @@
"name": "નેપાળી"
},
"nn": {
- "name": "નૉર્વેજીયન નાયનૉર્સ્ક"
+ "name": "નોર્વેજિયન નાયનૉર્સ્ક"
},
"nb": {
- "name": "નોર્વેજીયન બોકમાલ"
+ "name": "નોર્વેજિયન બોકમાલ"
},
"nyn": {
"name": "ન્યાનકોલ"
@@ -326,9 +326,6 @@
"pl": {
"name": "પોલીશ"
},
- "zgh": {
- "name": "પ્રમાણભૂત મોરોક્કન તામાઝિગ્ટ"
- },
"prg": {
"name": "પ્રુસ્સીયન"
},
@@ -356,9 +353,6 @@
"nl-BE": {
"name": "ફ્લેમિશ"
},
- "bn": {
- "name": "બંગાળી"
- },
"ksf": {
"name": "બફિયા"
},
@@ -371,6 +365,9 @@
"bas": {
"name": "બસા"
},
+ "bn": {
+ "name": "બાંગ્લા"
+ },
"bm": {
"name": "બામ્બારા"
},
@@ -428,6 +425,9 @@
"mgh": {
"name": "માખુવા-મીટ્ટુ"
},
+ "zgh": {
+ "name": "માનક મોરોક્કન તામાઝિટ"
+ },
"mt": {
"name": "માલ્ટિઝ"
},
@@ -495,7 +495,7 @@
"name": "લક્ઝેમબર્ગિશ"
},
"lo": {
- "name": "લાઓથિયન"
+ "name": "લાઓ"
},
"lkt": {
"name": "લાકોટા"
@@ -507,7 +507,7 @@
"name": "લિંગાલા"
},
"lt": {
- "name": "લિથુનિયન"
+ "name": "લિથુઆનિયન"
},
"luy": {
"name": "લુઈયા"
@@ -521,6 +521,9 @@
"nds-NL": {
"name": "લો સેક્સોન"
},
+ "dsb": {
+ "name": "લોઅર સોર્બિયન"
+ },
"luo": {
"name": "લ્યુઓ"
},
@@ -542,6 +545,9 @@
"vo": {
"name": "વોલાપુક"
},
+ "wo": {
+ "name": "વોલોફ"
+ },
"ksb": {
"name": "શમ્બાલા"
},
@@ -569,6 +575,9 @@
"sg": {
"name": "સાંગો"
},
+ "sd": {
+ "name": "સિંધી"
+ },
"si": {
"name": "સિંહાલી"
},
@@ -579,7 +588,7 @@
"name": "સેના"
},
"tzm": {
- "name": "સેન્ટ્રલ ઍટ્લસ તામાઝિગ્ટ"
+ "name": "સેન્ટ્રલ એટલાસ તામાઝિટ"
},
"ckb": {
"name": "સેન્ટ્રલ કુર્દિશ"
@@ -621,7 +630,7 @@
"name": "હંગેરિયન"
},
"haw": {
- "name": "હાવાઇયન"
+ "name": "હવાઇયન"
},
"hi": {
"name": "હિન્દી"
diff --git a/vendor/commerceguys/intl/resources/language/guz.json b/vendor/commerceguys/intl/resources/language/guz.json
index 9f30e3288..09cd9c247 100644
--- a/vendor/commerceguys/intl/resources/language/guz.json
+++ b/vendor/commerceguys/intl/resources/language/guz.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ha.json b/vendor/commerceguys/intl/resources/language/ha.json
index 178db72f3..94e93394e 100644
--- a/vendor/commerceguys/intl/resources/language/ha.json
+++ b/vendor/commerceguys/intl/resources/language/ha.json
@@ -68,9 +68,6 @@
"my": {
"name": "Burmanci"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -512,6 +509,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -617,6 +623,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/he.json b/vendor/commerceguys/intl/resources/language/he.json
index 4018ba9d8..6238eb4c3 100644
--- a/vendor/commerceguys/intl/resources/language/he.json
+++ b/vendor/commerceguys/intl/resources/language/he.json
@@ -1,7 +1,4 @@
{
- "agq": {
- "name": "אהיים"
- },
"ee": {
"name": "אווה"
},
@@ -27,7 +24,7 @@
"name": "אורומו"
},
"or": {
- "name": "אוריה"
+ "name": "אורייה"
},
"az": {
"name": "אזרית"
@@ -86,6 +83,9 @@
"eo": {
"name": "אספרנטו"
},
+ "agq": {
+ "name": "אע׳ם"
+ },
"af": {
"name": "אפריקאנס"
},
@@ -206,6 +206,9 @@
"vo": {
"name": "‏וולאפיק"
},
+ "wo": {
+ "name": "וולוף"
+ },
"cy": {
"name": "וולשית"
},
@@ -227,6 +230,9 @@
"dav": {
"name": "טאיטה"
},
+ "tg": {
+ "name": "טג׳יקית"
+ },
"to": {
"name": "טונגאית"
},
@@ -236,15 +242,15 @@
"tk": {
"name": "טורקמנית"
},
+ "tt": {
+ "name": "טטרית"
+ },
"bo": {
"name": "טיבטית"
},
"te": {
"name": "טלוגו"
},
- "tzm": {
- "name": "טמזייט של מרכז מרוקו"
- },
"ta": {
"name": "טמילית"
},
@@ -405,7 +411,10 @@
"name": "סורבית גבוהה"
},
"dsb": {
- "name": "סורבית נמוכה"
+ "name": "סורבית תחתית"
+ },
+ "sd": {
+ "name": "סינדהית"
},
"si": {
"name": "סינהלה"
@@ -578,9 +587,6 @@
"kn": {
"name": "קנאדה"
},
- "yue": {
- "name": "קנטונזית"
- },
"rw": {
"name": "קנירואנדית"
},
@@ -629,6 +635,9 @@
"ti": {
"name": "תיגרינית"
},
+ "tzm": {
+ "name": "תמאזיגת של מרכז מרוקו"
+ },
"zgh": {
"name": "תמזיע׳ת מרוקאית תקנית"
}
diff --git a/vendor/commerceguys/intl/resources/language/hi.json b/vendor/commerceguys/intl/resources/language/hi.json
index 404f7d700..d9a2a4551 100644
--- a/vendor/commerceguys/intl/resources/language/hi.json
+++ b/vendor/commerceguys/intl/resources/language/hi.json
@@ -146,9 +146,6 @@
"ky": {
"name": "किर्गीज़"
},
- "yue": {
- "name": "कैंटोनीज़"
- },
"kok": {
"name": "कोंकणी"
},
@@ -206,6 +203,9 @@
"ce": {
"name": "चेचन"
},
+ "chr": {
+ "name": "चेरोकी"
+ },
"de": {
"name": "जर्मन"
},
@@ -245,6 +245,12 @@
"ta": {
"name": "तमिल"
},
+ "tg": {
+ "name": "ताजिक"
+ },
+ "tt": {
+ "name": "तातार"
+ },
"ti": {
"name": "तिग्रीन्या"
},
@@ -395,6 +401,9 @@
"mn": {
"name": "मंगोलियाई"
},
+ "mk": {
+ "name": "मकदूनियाई"
+ },
"tzm": {
"name": "मध्य एटलस तमाज़ित"
},
@@ -446,9 +455,6 @@
"mgh": {
"name": "मैखुवा-मीट्टो"
},
- "mk": {
- "name": "मैसिडोनियाई"
- },
"mfe": {
"name": "मोरीस्येन"
},
@@ -545,15 +551,15 @@
"vo": {
"name": "वोलापुक"
},
+ "wo": {
+ "name": "वोलोफ़"
+ },
"ksb": {
"name": "शम्बाला"
},
"cgg": {
"name": "शिगा"
},
- "chr": {
- "name": "शेरोकी"
- },
"sn": {
"name": "शोणा"
},
@@ -566,6 +572,9 @@
"sg": {
"name": "सांगो"
},
+ "sd": {
+ "name": "सिंधी"
+ },
"si": {
"name": "सिंहली"
},
diff --git a/vendor/commerceguys/intl/resources/language/hr.json b/vendor/commerceguys/intl/resources/language/hr.json
index bd8145fd2..f8cb2cb4f 100644
--- a/vendor/commerceguys/intl/resources/language/hr.json
+++ b/vendor/commerceguys/intl/resources/language/hr.json
@@ -245,9 +245,6 @@
"fr-CA": {
"name": "kanadski francuski"
},
- "yue": {
- "name": "kantonski"
- },
"kn": {
"name": "karnatački"
},
@@ -492,7 +489,10 @@
"name": "shona"
},
"ii": {
- "name": "sichuan yi"
+ "name": "sichuan ji"
+ },
+ "sd": {
+ "name": "sindski"
},
"si": {
"name": "sinhaleški"
@@ -548,6 +548,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadžički"
+ },
"dav": {
"name": "taita"
},
@@ -566,6 +569,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatarski"
+ },
"te": {
"name": "teluški"
},
@@ -611,6 +617,9 @@
"vo": {
"name": "volapük"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vunjo"
},
diff --git a/vendor/commerceguys/intl/resources/language/hsb.json b/vendor/commerceguys/intl/resources/language/hsb.json
index 9bc0b68e3..55e2f3e69 100644
--- a/vendor/commerceguys/intl/resources/language/hsb.json
+++ b/vendor/commerceguys/intl/resources/language/hsb.json
@@ -77,9 +77,6 @@
"my": {
"name": "burmašćina"
},
- "yue": {
- "name": "Cantonese"
- },
"ksh": {
"name": "Colognian"
},
@@ -506,6 +503,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindhišćina"
+ },
"si": {
"name": "singhalšćina"
},
@@ -551,6 +551,9 @@
"de-CH": {
"name": "šwicarska wysokoněmčina"
},
+ "tg": {
+ "name": "tadźikšćina"
+ },
"dav": {
"name": "taita"
},
@@ -569,6 +572,9 @@
"shi": {
"name": "tašelhit"
},
+ "tt": {
+ "name": "tataršćina"
+ },
"te": {
"name": "telugu"
},
@@ -623,6 +629,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/hu.json b/vendor/commerceguys/intl/resources/language/hu.json
index ec892bc62..76c0dca5f 100644
--- a/vendor/commerceguys/intl/resources/language/hu.json
+++ b/vendor/commerceguys/intl/resources/language/hu.json
@@ -257,9 +257,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantoni"
- },
"ks": {
"name": "kasmíri"
},
@@ -432,10 +429,10 @@
"name": "ngumba"
},
"nb": {
- "name": "norvég (bokmál)"
+ "name": "norvég (bokmål)"
},
"nn": {
- "name": "norvég (nynrosk)"
+ "name": "norvég (nynorsk)"
},
"nus": {
"name": "nuer"
@@ -545,6 +542,9 @@
"sr": {
"name": "szerb"
},
+ "sd": {
+ "name": "szindhi"
+ },
"si": {
"name": "szingaléz"
},
@@ -566,12 +566,18 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadzsik"
+ },
"dav": {
"name": "taita"
},
"ta": {
"name": "tamil"
},
+ "tt": {
+ "name": "tatár"
+ },
"te": {
"name": "telugu"
},
@@ -617,6 +623,9 @@
"vo": {
"name": "volapük"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vunjo"
},
diff --git a/vendor/commerceguys/intl/resources/language/hy.json b/vendor/commerceguys/intl/resources/language/hy.json
index db8da46f7..aebb3454f 100644
--- a/vendor/commerceguys/intl/resources/language/hy.json
+++ b/vendor/commerceguys/intl/resources/language/hy.json
@@ -86,9 +86,6 @@
"en-GB": {
"name": "բրիտանական անգլերեն"
},
- "gd": {
- "name": "գաելերեն"
- },
"gl": {
"name": "գալիսերեն"
},
@@ -104,6 +101,9 @@
"guz": {
"name": "գուսի"
},
+ "nb": {
+ "name": "գրքային նորվեգերեն"
+ },
"da": {
"name": "դանիերեն"
},
@@ -143,6 +143,9 @@
"zgh": {
"name": "ընդհանուր մարոկյան թամազիղտ"
},
+ "tt": {
+ "name": "թաթարերեն"
+ },
"dav": {
"name": "թաիթա"
},
@@ -168,7 +171,7 @@
"name": "իդիշ"
},
"smn": {
- "name": "ինարի սաամերեն"
+ "name": "ինարի սաամի"
},
"id": {
"name": "ինդոնեզերեն"
@@ -225,7 +228,7 @@
"name": "կաբիլերեն"
},
"kea": {
- "name": "կաբուվերդյանու"
+ "name": "կաբուվերդերեն"
},
"kl": {
"name": "կալաալիսուտ"
@@ -248,9 +251,6 @@
"kn": {
"name": "կաննադա"
},
- "yue": {
- "name": "կանտոներեն"
- },
"ca": {
"name": "կատալաներեն"
},
@@ -407,11 +407,8 @@
"nyn": {
"name": "նյանկոլե"
},
- "nb": {
- "name": "նորվեգերեն բուկմոլ"
- },
"nn": {
- "name": "նորվեգերեն նյունորսկ"
+ "name": "նոր նորվեգերեն"
},
"nus": {
"name": "նուեր"
@@ -422,6 +419,9 @@
"sn": {
"name": "շոնա"
},
+ "gd": {
+ "name": "շոտլանդական գաելերեն"
+ },
"sv": {
"name": "շվեդերեն"
},
@@ -515,6 +515,9 @@
"sr": {
"name": "սերբերեն"
},
+ "sd": {
+ "name": "սինդհի"
+ },
"si": {
"name": "սինհալերեն"
},
@@ -560,6 +563,9 @@
"vo": {
"name": "վոլապյուկ"
},
+ "wo": {
+ "name": "վոլոֆ"
+ },
"vun": {
"name": "վունջո"
},
@@ -569,6 +575,9 @@
"shi": {
"name": "տաշելհիթ"
},
+ "tg": {
+ "name": "տաջիկերեն"
+ },
"twq": {
"name": "տասավաք"
},
diff --git a/vendor/commerceguys/intl/resources/language/id.json b/vendor/commerceguys/intl/resources/language/id.json
index c64af613c..bb6206c6d 100644
--- a/vendor/commerceguys/intl/resources/language/id.json
+++ b/vendor/commerceguys/intl/resources/language/id.json
@@ -242,9 +242,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kanton"
- },
"ks": {
"name": "Kashmir"
},
@@ -269,9 +266,6 @@
"ky": {
"name": "Kirgiz"
},
- "sw-CD": {
- "name": "Kongo Swahili"
- },
"kok": {
"name": "Konkani"
},
@@ -486,7 +480,7 @@
"name": "Sena"
},
"sr": {
- "name": "Serb"
+ "name": "Serbia"
},
"ksb": {
"name": "Shambala"
@@ -497,6 +491,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -510,13 +507,13 @@
"name": "Soga"
},
"so": {
- "name": "Somali"
- },
- "hsb": {
- "name": "Sorbia Atas"
+ "name": "Somalia"
},
"dsb": {
- "name": "Sorbia Rendah"
+ "name": "Sorbia Hilir"
+ },
+ "hsb": {
+ "name": "Sorbia Hulu"
},
"es": {
"name": "Spanyol"
@@ -530,6 +527,9 @@
"sw": {
"name": "Swahili"
},
+ "sw-CD": {
+ "name": "Swahili (Kongo)"
+ },
"sv": {
"name": "Swedia"
},
@@ -539,6 +539,9 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"zgh": {
"name": "Tamazight Maroko Standar"
},
@@ -551,6 +554,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"cy": {
"name": "Welsh"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ig.json b/vendor/commerceguys/intl/resources/language/ig.json
index ec487221c..849c6b396 100644
--- a/vendor/commerceguys/intl/resources/language/ig.json
+++ b/vendor/commerceguys/intl/resources/language/ig.json
@@ -86,9 +86,6 @@
"cu": {
"name": "Church Slavic"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -506,6 +503,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"th": {
"name": "Taị"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamụlụ"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/is.json b/vendor/commerceguys/intl/resources/language/is.json
index b9a041498..420494502 100644
--- a/vendor/commerceguys/intl/resources/language/is.json
+++ b/vendor/commerceguys/intl/resources/language/is.json
@@ -230,9 +230,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantoneska"
- },
"kk": {
"name": "kasakska"
},
@@ -491,6 +488,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindí"
+ },
"si": {
"name": "singalíska"
},
@@ -545,6 +545,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadsjikska"
+ },
"th": {
"name": "taílenska"
},
@@ -560,6 +563,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatarska"
+ },
"te": {
"name": "telúgú"
},
@@ -620,6 +626,9 @@
"vo": {
"name": "volapyk"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vunjó"
},
diff --git a/vendor/commerceguys/intl/resources/language/it.json b/vendor/commerceguys/intl/resources/language/it.json
index 9e4a62a42..14b35ed33 100644
--- a/vendor/commerceguys/intl/resources/language/it.json
+++ b/vendor/commerceguys/intl/resources/language/it.json
@@ -86,9 +86,6 @@
"kab": {
"name": "cabilo"
},
- "yue": {
- "name": "cantonese"
- },
"kea": {
"name": "capoverdiano"
},
@@ -497,6 +494,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singalese"
},
@@ -530,6 +530,9 @@
"sw-CD": {
"name": "swahili del Congo"
},
+ "tg": {
+ "name": "tagico"
+ },
"dav": {
"name": "taita"
},
@@ -548,6 +551,9 @@
"shi": {
"name": "tashelhit"
},
+ "tt": {
+ "name": "tataro"
+ },
"de": {
"name": "tedesco"
},
@@ -594,7 +600,7 @@
"name": "urdu"
},
"uz": {
- "name": "usbeco"
+ "name": "uzbeco"
},
"vai": {
"name": "Vai"
@@ -614,6 +620,9 @@
"bem": {
"name": "wemba"
},
+ "wo": {
+ "name": "wolof"
+ },
"sah": {
"name": "yakut"
},
diff --git a/vendor/commerceguys/intl/resources/language/ja.json b/vendor/commerceguys/intl/resources/language/ja.json
index 49f9b8e52..d14ca6e92 100644
--- a/vendor/commerceguys/intl/resources/language/ja.json
+++ b/vendor/commerceguys/intl/resources/language/ja.json
@@ -71,6 +71,9 @@
"vo": {
"name": "ヴォラピュク語"
},
+ "wo": {
+ "name": "ウォロフ語"
+ },
"uk": {
"name": "ウクライナ語"
},
@@ -173,9 +176,6 @@
"kl": {
"name": "グリーンランド語"
},
- "ckb": {
- "name": "クルド語(ソラニー)"
- },
"hr": {
"name": "クロアチア語"
},
@@ -230,6 +230,9 @@
"dyo": {
"name": "ジョラ=フォニィ語"
},
+ "sd": {
+ "name": "シンド語"
+ },
"si": {
"name": "シンハラ語"
},
@@ -284,9 +287,15 @@
"twq": {
"name": "タサワク語"
},
+ "tg": {
+ "name": "タジク語"
+ },
"shi": {
"name": "タシルハイト語"
},
+ "tt": {
+ "name": "タタール語"
+ },
"ta": {
"name": "タミル語"
},
@@ -584,9 +593,6 @@
"cu": {
"name": "教会スラブ語"
},
- "yue": {
- "name": "広東語"
- },
"hsb": {
"name": "高地ソルブ語"
},
@@ -599,6 +605,9 @@
"tzm": {
"name": "中央アトラス・タマジクト語"
},
+ "ckb": {
+ "name": "中央クルド語"
+ },
"zh": {
"name": "中国語"
},
diff --git a/vendor/commerceguys/intl/resources/language/jmc.json b/vendor/commerceguys/intl/resources/language/jmc.json
index 4ae066d81..50b3c81a2 100644
--- a/vendor/commerceguys/intl/resources/language/jmc.json
+++ b/vendor/commerceguys/intl/resources/language/jmc.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ka.json b/vendor/commerceguys/intl/resources/language/ka.json
index ff98d2269..0f2028f5e 100644
--- a/vendor/commerceguys/intl/resources/language/ka.json
+++ b/vendor/commerceguys/intl/resources/language/ka.json
@@ -149,6 +149,9 @@
"vo": {
"name": "ვოლაპუკი"
},
+ "wo": {
+ "name": "ვოლოფური"
+ },
"vun": {
"name": "ვუნჯო"
},
@@ -161,6 +164,9 @@
"zu": {
"name": "ზულუ"
},
+ "tt": {
+ "name": "თათრული"
+ },
"tk": {
"name": "თურქმენული"
},
@@ -227,9 +233,6 @@
"fr-CA": {
"name": "კანადური ფრანგული"
},
- "yue": {
- "name": "კანტონური"
- },
"ca": {
"name": "კატალანური"
},
@@ -440,6 +443,9 @@
"sr": {
"name": "სერბული"
},
+ "sd": {
+ "name": "სინდჰური"
+ },
"si": {
"name": "სინჰალური"
},
@@ -461,9 +467,6 @@
"hy": {
"name": "სომხური"
},
- "ckb": {
- "name": "სორანი ქურთული"
- },
"fa": {
"name": "სპარსული"
},
@@ -485,6 +488,9 @@
"twq": {
"name": "ტასავაქი"
},
+ "tg": {
+ "name": "ტაჯიკური"
+ },
"te": {
"name": "ტელუგუ"
},
@@ -617,6 +623,9 @@
"tzm": {
"name": "ცენტრალური მოროკოს ტამაზიგხტი"
},
+ "ckb": {
+ "name": "ცენტრალური ქურთული"
+ },
"dz": {
"name": "ძონგკხა"
},
diff --git a/vendor/commerceguys/intl/resources/language/kab.json b/vendor/commerceguys/intl/resources/language/kab.json
index 1d7719043..5b819513f 100644
--- a/vendor/commerceguys/intl/resources/language/kab.json
+++ b/vendor/commerceguys/intl/resources/language/kab.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -371,6 +368,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -476,6 +476,9 @@
"ja": {
"name": "Tajapunit"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ak": {
"name": "Takanit"
},
@@ -554,6 +557,9 @@
"ta": {
"name": "Taṭamulit"
},
+ "tt": {
+ "name": "Tatar"
+ },
"th": {
"name": "Taṭaylundit"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/kam.json b/vendor/commerceguys/intl/resources/language/kam.json
index 5414663b4..d42e49b1d 100644
--- a/vendor/commerceguys/intl/resources/language/kam.json
+++ b/vendor/commerceguys/intl/resources/language/kam.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/kde.json b/vendor/commerceguys/intl/resources/language/kde.json
index a10622019..a2200cbd6 100644
--- a/vendor/commerceguys/intl/resources/language/kde.json
+++ b/vendor/commerceguys/intl/resources/language/kde.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/kea.json b/vendor/commerceguys/intl/resources/language/kea.json
index aaf91c814..dc3d75b73 100644
--- a/vendor/commerceguys/intl/resources/language/kea.json
+++ b/vendor/commerceguys/intl/resources/language/kea.json
@@ -89,9 +89,6 @@
"bg": {
"name": "búlgaru"
},
- "yue": {
- "name": "Cantonese"
- },
"cu": {
"name": "Church Slavic"
},
@@ -482,6 +479,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "sindi"
+ },
"si": {
"name": "singales"
},
@@ -530,6 +530,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "tadjiki"
+ },
"th": {
"name": "tailandes"
},
@@ -545,6 +548,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -581,6 +587,9 @@
"hu": {
"name": "úngaru"
},
+ "wo": {
+ "name": "uolof"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/khq.json b/vendor/commerceguys/intl/resources/language/khq.json
index 7748dd7df..e0a9b45c3 100644
--- a/vendor/commerceguys/intl/resources/language/khq.json
+++ b/vendor/commerceguys/intl/resources/language/khq.json
@@ -77,9 +77,6 @@
"my": {
"name": "Burme senni"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -506,6 +503,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -554,12 +554,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil senni"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -617,6 +623,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ki.json b/vendor/commerceguys/intl/resources/language/ki.json
index bb9785690..b606ac398 100644
--- a/vendor/commerceguys/intl/resources/language/ki.json
+++ b/vendor/commerceguys/intl/resources/language/ki.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/kk.json b/vendor/commerceguys/intl/resources/language/kk.json
index ee851b2eb..a73d76276 100644
--- a/vendor/commerceguys/intl/resources/language/kk.json
+++ b/vendor/commerceguys/intl/resources/language/kk.json
@@ -1,19 +1,16 @@
{
+ "en-AU": {
+ "name": "австралиялық ағылшын тілі"
+ },
+ "de-AT": {
+ "name": "австриялық неміс тілі"
+ },
"agq": {
"name": "агхем тілі"
},
"en": {
"name": "ағылшын тілі"
},
- "en-AU": {
- "name": "ағылшын тілі (Австралия)"
- },
- "en-CA": {
- "name": "ағылшын тілі (Канада)"
- },
- "en-GB": {
- "name": "ағылшын тілі (Ұлыбритания)"
- },
"ak": {
"name": "акан тілі"
},
@@ -86,6 +83,9 @@
"br": {
"name": "бретон тілі"
},
+ "en-GB": {
+ "name": "британиялық ағылшын тілі"
+ },
"vai": {
"name": "вай тілі"
},
@@ -101,6 +101,9 @@
"vo": {
"name": "волапюк тілі"
},
+ "wo": {
+ "name": "волоф тілі"
+ },
"vun": {
"name": "вунджо тілі"
},
@@ -128,9 +131,6 @@
"guz": {
"name": "гусии тілі"
},
- "gd": {
- "name": "гэль тілі"
- },
"da": {
"name": "дат тілі"
},
@@ -146,6 +146,9 @@
"dua": {
"name": "дуала тілі"
},
+ "pt-PT": {
+ "name": "еуропалық португал тілі"
+ },
"ja": {
"name": "жапон тілі"
},
@@ -185,9 +188,6 @@
"es": {
"name": "испан тілі"
},
- "es-MX": {
- "name": "испан тілі (Мексика)"
- },
"it": {
"name": "итальян тілі"
},
@@ -212,12 +212,15 @@
"kam": {
"name": "камба тілі"
},
+ "en-CA": {
+ "name": "канадалық ағылшын тілі"
+ },
+ "fr-CA": {
+ "name": "канадалық француз тілі"
+ },
"kn": {
"name": "каннада тілі"
},
- "yue": {
- "name": "кантон тілі"
- },
"ca": {
"name": "каталан тілі"
},
@@ -338,6 +341,9 @@
"jmc": {
"name": "мачаме тілі"
},
+ "es-MX": {
+ "name": "мексикалық испан тілі"
+ },
"mer": {
"name": "меру тілі"
},
@@ -371,12 +377,6 @@
"de": {
"name": "неміс тілі"
},
- "de-AT": {
- "name": "неміс тілі (Австрия)"
- },
- "de-CH": {
- "name": "неміс тілі (Швейцария)"
- },
"ne": {
"name": "непал тілі"
},
@@ -425,9 +425,6 @@
"pt": {
"name": "португал тілі"
},
- "pt-PT": {
- "name": "португал тілі (Португалия)"
- },
"prg": {
"name": "пруссия тілі"
},
@@ -467,6 +464,9 @@
"si": {
"name": "сингал тілі"
},
+ "sd": {
+ "name": "синдхи тілі"
+ },
"sk": {
"name": "словак тілі"
},
@@ -509,9 +509,15 @@
"twq": {
"name": "тасавак тілі"
},
+ "tt": {
+ "name": "татар тілі"
+ },
"shi": {
"name": "ташелхит тілі"
},
+ "tg": {
+ "name": "тәжік тілі"
+ },
"te": {
"name": "телугу тілі"
},
@@ -566,12 +572,6 @@
"fr": {
"name": "француз тілі"
},
- "fr-CA": {
- "name": "француз тілі (Канада)"
- },
- "fr-CH": {
- "name": "француз тілі (Швейцария)"
- },
"fur": {
"name": "фриуль тілі"
},
@@ -599,15 +599,24 @@
"sv": {
"name": "швед тілі"
},
+ "de-CH": {
+ "name": "швейцариялық әдеби неміс тілі"
+ },
"gsw": {
"name": "швейцариялық неміс тілі"
},
+ "fr-CH": {
+ "name": "швейцариялық француз тілі"
+ },
"ce": {
"name": "шешен тілі"
},
"sn": {
"name": "шона тілі"
},
+ "gd": {
+ "name": "шотландиялық гэль тілі"
+ },
"cu": {
"name": "шіркеулік славян тілі"
},
diff --git a/vendor/commerceguys/intl/resources/language/kln.json b/vendor/commerceguys/intl/resources/language/kln.json
index 29a2670b6..d764e4e79 100644
--- a/vendor/commerceguys/intl/resources/language/kln.json
+++ b/vendor/commerceguys/intl/resources/language/kln.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/km.json b/vendor/commerceguys/intl/resources/language/km.json
index 0ba26ea49..4c0bcaa50 100644
--- a/vendor/commerceguys/intl/resources/language/km.json
+++ b/vendor/commerceguys/intl/resources/language/km.json
@@ -1,7 +1,4 @@
{
- "yue": {
- "name": "កន្តាំង"
- },
"kkj": {
"name": "កាកូ"
},
@@ -75,7 +72,7 @@
"name": "គុយរ៉ាបូរ៉ុស៊ីនី"
},
"ckb": {
- "name": "ឃឺដកណ្ដាល"
+ "name": "ឃើដភាគកណ្តាល"
},
"nnh": {
"name": "ងៀមប៊ូន"
@@ -95,12 +92,12 @@
"dyo": {
"name": "ចូឡាហ៊្វុនយី"
},
- "cs": {
- "name": "ឆេក"
- },
"chr": {
"name": "ឆេរូគី"
},
+ "cs": {
+ "name": "ឆែក"
+ },
"ja": {
"name": "ជប៉ុន"
},
@@ -131,6 +128,9 @@
"shi": {
"name": "តាឈីលហ៊ីត"
},
+ "tt": {
+ "name": "តាតា"
+ },
"tzm": {
"name": "តាម៉ាសាយអាត្លាសកណ្តាល"
},
@@ -143,6 +143,9 @@
"twq": {
"name": "តាសាវ៉ាក់"
},
+ "tg": {
+ "name": "តាហ្ស៊ីគ"
+ },
"to": {
"name": "តុងហ្គា"
},
@@ -234,7 +237,7 @@
"name": "បេមបា"
},
"be": {
- "name": "បេឡារុស្ស"
+ "name": "បេឡារុស"
},
"br": {
"name": "ប្រីស្តុន"
@@ -318,7 +321,10 @@
"name": "យ៉ាងបេន"
},
"yi": {
- "name": "យីឌីហ្ស"
+ "name": "យ៉ីឌីស"
+ },
+ "rn": {
+ "name": "រុណ្ឌី"
},
"rof": {
"name": "រុមបូ"
@@ -326,9 +332,6 @@
"ru": {
"name": "រុស្ស៊ី"
},
- "rn": {
- "name": "រូន្ឌី"
- },
"rm": {
"name": "រ៉ូម៉ង់"
},
@@ -345,7 +348,7 @@
"name": "លីនកាឡា"
},
"lb": {
- "name": "លុចហ្សំបួរ"
+ "name": "លុចសំបួ"
},
"lu": {
"name": "លូបាកាតានហ្គា"
@@ -365,6 +368,9 @@
"vo": {
"name": "វូឡាពូក"
},
+ "wo": {
+ "name": "វូឡុហ្វ"
+ },
"vi": {
"name": "វៀតណាម"
},
@@ -401,6 +407,9 @@
"seh": {
"name": "ស៊ីណា"
},
+ "sd": {
+ "name": "ស៊ីនឌី"
+ },
"sv": {
"name": "ស៊ុយអែត"
},
@@ -416,9 +425,6 @@
"so": {
"name": "សូម៉ាលី"
},
- "zu": {
- "name": "សូលូ"
- },
"xog": {
"name": "សូហ្គា"
},
@@ -455,6 +461,9 @@
"nl": {
"name": "ហូឡង់"
},
+ "he": {
+ "name": "ហេប្រឺ"
+ },
"gu": {
"name": "ហ្កុយ៉ារាទី"
},
@@ -497,6 +506,9 @@
"dje": {
"name": "ហ្សាម៉ា"
},
+ "zu": {
+ "name": "ហ្សូលូ"
+ },
"lkt": {
"name": "ឡាកូតា"
},
@@ -584,9 +596,6 @@
"ewo": {
"name": "អ៊ីវ៉ុនដូ"
},
- "he": {
- "name": "អ៊ីស្រាអែល"
- },
"is": {
"name": "អ៊ីស្លង់"
},
@@ -630,6 +639,6 @@
"name": "អេស្ពេរ៉ាន់តូ"
},
"am": {
- "name": "អំហារិក"
+ "name": "អាំហារិក"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/kn.json b/vendor/commerceguys/intl/resources/language/kn.json
index af42d6c22..de173578d 100644
--- a/vendor/commerceguys/intl/resources/language/kn.json
+++ b/vendor/commerceguys/intl/resources/language/kn.json
@@ -39,10 +39,10 @@
"name": "ಆಸ್ಟ್ರಿಯನ್ ಜರ್ಮನ್"
},
"en-AU": {
- "name": "ಆಸ್ಟ್ರೇಲಿಯನ್ ಇಂಗ್ಲೀಷ್"
+ "name": "ಆಸ್ಟ್ರೇಲಿಯನ್ ಇಂಗ್ಲಿಷ್"
},
"en": {
- "name": "ಇಂಗ್ಲೀಷ್"
+ "name": "ಇಂಗ್ಲಿಷ್"
},
"id": {
"name": "ಇಂಡೋನೇಶಿಯನ್"
@@ -54,7 +54,7 @@
"name": "ಇಟಾಲಿಯನ್"
},
"smn": {
- "name": "ಇನರಿ ಸಾಮಿ"
+ "name": "ಇನಾರಿ ಸಮೀ"
},
"ewo": {
"name": "ಇವಾಂಡೋ"
@@ -63,7 +63,7 @@
"name": "ಈವ್"
},
"uk": {
- "name": "ಉಕ್ರೈನಿಯನ್"
+ "name": "ಉಕ್ರೇನಿಯನ್"
},
"uz": {
"name": "ಉಜ್ಬೇಕ್"
@@ -96,17 +96,17 @@
"name": "ಐರಿಷ್"
},
"is": {
- "name": "ಐಸ್ಲಾಂಡಿಕ್"
+ "name": "ಐಸ್‌ಲ್ಯಾಂಡಿಕ್"
},
"or": {
- "name": "ಒರಿಯಾ"
+ "name": "ಒಡಿಯ"
+ },
+ "om": {
+ "name": "ಒರೊಮೊ"
},
"os": {
"name": "ಒಸ್ಸೆಟಿಕ್"
},
- "om": {
- "name": "ಓರೊಮೋ"
- },
"kam": {
"name": "ಕಂಬಾ"
},
@@ -146,17 +146,17 @@
"ki": {
"name": "ಕಿಕುಯು"
},
+ "rw": {
+ "name": "ಕಿನ್ಯಾರ್‌ವಾಂಡಾ"
+ },
"ky": {
"name": "ಕಿರ್ಗಿಜ್"
},
- "rw": {
- "name": "ಕೀನ್ಯಾರುವಾಂಡಾ"
- },
"ca": {
"name": "ಕೆಟಲಾನ್"
},
"en-CA": {
- "name": "ಕೆನೆಡಿಯನ್ ಇಂಗ್ಲೀಷ್"
+ "name": "ಕೆನೆಡಿಯನ್ ಇಂಗ್ಲಿಷ್"
},
"fr-CA": {
"name": "ಕೆನೆಡಿಯನ್ ಫ್ರೆಂಚ್"
@@ -173,9 +173,6 @@
"ko": {
"name": "ಕೊರಿಯನ್"
},
- "yue": {
- "name": "ಕ್ಯಾಂಟನೀಸ್"
- },
"hr": {
"name": "ಕ್ರೊಯೇಶಿಯನ್"
},
@@ -213,7 +210,7 @@
"name": "ಚೆಚನ್"
},
"chr": {
- "name": "ಚೆರೋಕೀ"
+ "name": "ಚೆರೋಕಿ"
},
"zh": {
"name": "ಚೈನೀಸ್"
@@ -254,6 +251,9 @@
"twq": {
"name": "ಟಸವಕ್"
},
+ "tt": {
+ "name": "ಟಾಟರ್"
+ },
"ti": {
"name": "ಟಿಗ್ರಿನ್ಯಾ"
},
@@ -281,6 +281,9 @@
"ta": {
"name": "ತಮಿಳು"
},
+ "tg": {
+ "name": "ತಾಜಿಕ್"
+ },
"te": {
"name": "ತೆಲುಗು"
},
@@ -320,12 +323,12 @@
"fy": {
"name": "ಪಶ್ಚಿಮ ಫ್ರಿಸಿಯನ್"
},
- "pl": {
- "name": "ಪಾಲಿಷ್"
- },
"ps": {
"name": "ಪಾಷ್ಟೋ"
},
+ "pl": {
+ "name": "ಪೊಲಿಶ್"
+ },
"pt": {
"name": "ಪೋರ್ಚುಗೀಸ್"
},
@@ -342,7 +345,7 @@
"name": "ಫಿಲಿಪಿನೊ"
},
"ff": {
- "name": "ಫುಲಾಹ್"
+ "name": "ಫುಲಾ"
},
"fur": {
"name": "ಫ್ರಿಯುಲಿಯನ್"
@@ -390,7 +393,7 @@
"name": "ಬೋಸ್ನಿಯನ್"
},
"en-GB": {
- "name": "ಬ್ರಿಟಿಷ್ ಇಂಗ್ಲೀಷ್"
+ "name": "ಬ್ರಿಟಿಷ್ ಇಂಗ್ಲಿಷ್"
},
"br": {
"name": "ಬ್ರೆಟನ್"
@@ -404,6 +407,9 @@
"tzm": {
"name": "ಮಧ್ಯ ಅಟ್ಲಾಸ್ ಟಮಜೈಟ್"
},
+ "ckb": {
+ "name": "ಮಧ್ಯ ಕುರ್ದಿಶ್"
+ },
"mr": {
"name": "ಮರಾಠಿ"
},
@@ -480,7 +486,7 @@
"name": "ರೊಂಬೊ"
},
"rm": {
- "name": "ರೊಮಾನ್ಷ್"
+ "name": "ರೊಮಾನ್ಶ್"
},
"ro": {
"name": "ರೊಮೇನಿಯನ್"
@@ -491,12 +497,12 @@
"lb": {
"name": "ಲಕ್ಸಂಬರ್ಗಿಷ್"
},
- "lv": {
- "name": "ಲಟ್ವಿಯನ್"
- },
"lag": {
"name": "ಲಾಂಗಿ"
},
+ "lv": {
+ "name": "ಲಾಟ್ವಿಯನ್"
+ },
"lo": {
"name": "ಲಾವೋ"
},
@@ -531,7 +537,7 @@
"name": "ವಾಲ್ಸರ್"
},
"vi": {
- "name": "ವಿಯೇಟ್ನಾಮೀಸ್"
+ "name": "ವಿಯೆಟ್ನಾಮೀಸ್"
},
"vun": {
"name": "ವುಂಜೊ"
@@ -542,6 +548,9 @@
"vo": {
"name": "ವೋಲಾಪುಕ್"
},
+ "wo": {
+ "name": "ವೋಲೋಫ್"
+ },
"ksb": {
"name": "ಶಂಬಲ"
},
@@ -560,15 +569,15 @@
"zh-Hans": {
"name": "ಸರಳೀಕೃತ ಚೈನೀಸ್"
},
- "sr": {
- "name": "ಸರ್ಬಿಯನ್"
- },
"sg": {
"name": "ಸಾಂಗೋ"
},
"zh-Hant": {
"name": "ಸಾಂಪ್ರದಾಯಿಕ ಚೈನೀಸ್"
},
+ "sd": {
+ "name": "ಸಿಂಧಿ"
+ },
"si": {
"name": "ಸಿಂಹಳ"
},
@@ -578,17 +587,17 @@
"seh": {
"name": "ಸೆನ"
},
+ "sr": {
+ "name": "ಸೆರ್ಬಿಯನ್"
+ },
"xog": {
"name": "ಸೊಗ"
},
"so": {
"name": "ಸೊಮಾಲಿ"
},
- "ckb": {
- "name": "ಸೊರಾನಿ ಕುರ್ದಿಷ್"
- },
"gd": {
- "name": "ಸ್ಕಾಟಿಶ್ ಗ್ಯಾಲಿಕ್"
+ "name": "ಸ್ಕಾಟಿಶ್ ಗೆಲಿಕ್"
},
"zgh": {
"name": "ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಮೊರೊಕ್ಕನ್ ಟಮಜೈಟ್"
@@ -627,7 +636,7 @@
"name": "ಹಿಂದಿ"
},
"he": {
- "name": "ಹೀಬ್ರ್ಯೂ"
+ "name": "ಹೀಬ್ರೂ"
},
"ha": {
"name": "ಹೌಸಾ"
diff --git a/vendor/commerceguys/intl/resources/language/ko.json b/vendor/commerceguys/intl/resources/language/ko.json
index 6ed29a08d..aaf2ff332 100644
--- a/vendor/commerceguys/intl/resources/language/ko.json
+++ b/vendor/commerceguys/intl/resources/language/ko.json
@@ -11,9 +11,6 @@
"hsb": {
"name": "고지 소르비아어"
},
- "yue": {
- "name": "광둥어"
- },
"cu": {
"name": "교회 슬라브어"
},
@@ -290,6 +287,9 @@
"sl": {
"name": "슬로베니아어"
},
+ "sd": {
+ "name": "신디어"
+ },
"ii": {
"name": "쓰촨 이어"
},
@@ -383,6 +383,9 @@
"uk": {
"name": "우크라이나어"
},
+ "wo": {
+ "name": "월로프어"
+ },
"wae": {
"name": "월저어"
},
@@ -539,6 +542,12 @@
"dav": {
"name": "타이타어"
},
+ "tg": {
+ "name": "타지크어"
+ },
+ "tt": {
+ "name": "타타르어"
+ },
"th": {
"name": "태국어"
},
diff --git a/vendor/commerceguys/intl/resources/language/kok.json b/vendor/commerceguys/intl/resources/language/kok.json
index 7435b44ed..b50ab920c 100644
--- a/vendor/commerceguys/intl/resources/language/kok.json
+++ b/vendor/commerceguys/intl/resources/language/kok.json
@@ -1,7 +1,16 @@
{
+ "ak": {
+ "name": "अकान"
+ },
+ "agq": {
+ "name": "अघेम"
+ },
"az": {
"name": "अज़रबैजानी"
},
+ "hsb": {
+ "name": "अपर सोर्बियन"
+ },
"af": {
"name": "अफ्रिकान्स"
},
@@ -9,68 +18,104 @@
"name": "अमहारिक्"
},
"ar": {
- "name": "अरेबिक्"
- },
- "as": {
- "name": "असामी"
- },
- "en": {
- "name": "आंग्ल"
+ "name": "अरेबिक"
},
- "en-AU": {
- "name": "आंग्ल (AU)"
- },
- "en-CA": {
- "name": "आंग्ल (CA)"
+ "asa": {
+ "name": "असु"
},
- "en-GB": {
- "name": "आंग्ल (GB)"
+ "ast": {
+ "name": "अस्टुरियान"
},
"is": {
"name": "आईस्लान्डिक"
},
"hy": {
- "name": "आर्मीनियन्"
+ "name": "आर्मेनियन"
},
"sq": {
"name": "आल्बेनियन्"
},
+ "as": {
+ "name": "आसामी"
+ },
+ "en": {
+ "name": "इंग्लीश"
+ },
+ "id": {
+ "name": "इंडोनेशियन"
+ },
+ "ig": {
+ "name": "इग्बो"
+ },
"it": {
"name": "इटालियन"
},
"yi": {
"name": "इद्दिष्"
},
- "id": {
- "name": "इन्डोनेषियन"
- },
"et": {
"name": "इस्टोनियन्"
},
"eo": {
"name": "इस्परान्टो"
},
+ "smn": {
+ "name": "ईनारी सामी"
+ },
"uz": {
"name": "उज़बेक"
},
+ "nd": {
+ "name": "उत्तर न्डेबेले"
+ },
+ "lrc": {
+ "name": "उत्तरीय लुरी"
+ },
+ "se": {
+ "name": "उत्तरीय सामी"
+ },
"ug": {
- "name": "उधूर"
+ "name": "उयघूर"
},
"ur": {
"name": "उर्दू"
},
+ "wo": {
+ "name": "उलोफ़"
+ },
+ "ebu": {
+ "name": "एम्बु"
+ },
+ "ee": {
+ "name": "एव"
+ },
+ "ewo": {
+ "name": "एवोंडो"
+ },
"ga": {
"name": "ऐरिष"
},
+ "de-AT": {
+ "name": "ऑस्ट्रियन जर्मन"
+ },
+ "en-AU": {
+ "name": "ऑस्ट्रेलियन इंग्लीश"
+ },
"or": {
"name": "ओरिया"
},
"om": {
- "name": "ओरोमो (अफान)"
+ "name": "ओरोमो"
},
"vo": {
"name": "ओलापुक"
},
+ "os": {
+ "name": "ओसेटिक"
+ },
+ "kam": {
+ "name": "कंबा"
+ },
"km": {
"name": "कंबोडियन"
},
@@ -86,59 +131,107 @@
"ks": {
"name": "कश्मीरी"
},
+ "sw-CD": {
+ "name": "काँगो स्वाहिली"
+ },
+ "kkj": {
+ "name": "काको"
+ },
+ "kab": {
+ "name": "काबायले"
+ },
+ "kea": {
+ "name": "काबुवर्डियनु"
+ },
+ "kl": {
+ "name": "कालाल्लिसुट"
+ },
+ "kln": {
+ "name": "कालेंजीन"
+ },
+ "ki": {
+ "name": "किकुयु"
+ },
"rw": {
"name": "किन्यार्वान्डा"
},
- "rn": {
- "name": "किरुन्दी"
- },
"ky": {
"name": "किर्गिज़"
},
+ "en-CA": {
+ "name": "कॅनाडीयन इंग्लीश"
+ },
+ "fr-CA": {
+ "name": "कॅनाडीयन फ्रेन्च"
+ },
+ "tzm": {
+ "name": "केंद्रीय अटलास तामाझायट"
+ },
"kok": {
"name": "कोंकणी"
},
+ "khq": {
+ "name": "कोयरा छिनी"
+ },
+ "ses": {
+ "name": "कोयराबोरो सेन्नी"
+ },
"ko": {
"name": "कोरियन्"
},
+ "kw": {
+ "name": "कोर्निश"
+ },
+ "ksh": {
+ "name": "कोलोनियन"
+ },
"hr": {
"name": "क्रोयेषियन्"
},
"qu": {
"name": "क्वेच्वा"
},
+ "nmg": {
+ "name": "ख्वासी"
+ },
+ "lg": {
+ "name": "गांडा"
+ },
"gu": {
"name": "गुजराती"
},
+ "guz": {
+ "name": "गुसी"
+ },
"gl": {
"name": "गेलीशियन"
},
"el": {
"name": "ग्रीक्"
},
- "kl": {
- "name": "ग्रीनलान्डिक"
- },
- "zh": {
- "name": "चीनीस्"
+ "cu": {
+ "name": "चर्च स्लेव्हीक"
},
- "zh-Hans": {
- "name": "चीनीस् (Hans)"
+ "cgg": {
+ "name": "चिगा"
},
- "zh-Hant": {
- "name": "चीनीस् (Hant)"
+ "ce": {
+ "name": "चिचेन"
},
- "de": {
- "name": "जर्मन"
+ "zh": {
+ "name": "चिनी"
},
- "de-AT": {
- "name": "जर्मन (AT)"
+ "chr": {
+ "name": "चिरोकी"
},
- "de-CH": {
- "name": "जर्मन (CH)"
+ "cs": {
+ "name": "चेक"
},
"ja": {
- "name": "जापनीस्"
+ "name": "जपानी"
+ },
+ "de": {
+ "name": "जर्मन"
},
"ka": {
"name": "जार्जियन्"
@@ -146,21 +239,42 @@
"zu": {
"name": "जुलू"
},
- "cs": {
- "name": "ज़ेक्"
+ "dyo": {
+ "name": "जोला-फोनी"
+ },
+ "dje": {
+ "name": "झर्मा"
+ },
+ "dz": {
+ "name": "झोंग्खा"
},
"nl": {
"name": "डच्"
},
- "nl-BE": {
- "name": "डच् (BE)"
- },
"da": {
- "name": "डानिष"
+ "name": "डॅनिश"
+ },
+ "dua": {
+ "name": "डौल"
+ },
+ "tg": {
+ "name": "तजिक"
+ },
+ "tt": {
+ "name": "तटार"
},
"ta": {
"name": "तमिळ"
},
+ "shi": {
+ "name": "ताछेहीट"
+ },
+ "dav": {
+ "name": "तायता"
+ },
+ "twq": {
+ "name": "तासावाक"
+ },
"ti": {
"name": "तिग्रिन्या"
},
@@ -176,53 +290,89 @@
"te": {
"name": "तेलुगू"
},
+ "teo": {
+ "name": "तेसो"
+ },
"to": {
"name": "तोंगा"
},
"th": {
"name": "थाई"
},
+ "nyn": {
+ "name": "नानकोले"
+ },
+ "naq": {
+ "name": "नामा"
+ },
"ne": {
"name": "नेपाळी"
},
+ "nb": {
+ "name": "नोर्वेजियन बोकमाल"
+ },
+ "nn": {
+ "name": "नोर्वोजियन नायनोर्स्क"
+ },
+ "nnh": {
+ "name": "न्गेबून"
+ },
+ "jgo": {
+ "name": "न्गोंबा"
+ },
+ "nus": {
+ "name": "न्युयर"
+ },
"pa": {
"name": "पंजाबी"
},
"fa": {
"name": "पर्षियन्"
},
+ "fy": {
+ "name": "पश्चिमी फ्रिशियन"
+ },
+ "zh-Hant": {
+ "name": "पारंपारीक चिनी"
+ },
"ps": {
"name": "पाष्टो (पुष्टो)"
},
"pt": {
- "name": "पोर्चुगीज़्"
- },
- "pt-PT": {
- "name": "पोर्चुगीज़् (PT)"
+ "name": "पोर्तुगिज"
},
"pl": {
"name": "पोलिष"
},
+ "zgh": {
+ "name": "प्रमाणित मोरोक्कन तामाझायट"
+ },
+ "prg": {
+ "name": "प्रुसियन"
+ },
"fi": {
"name": "फिन्निष्"
},
+ "fil": {
+ "name": "फिलिपिनो"
+ },
+ "ff": {
+ "name": "फुला"
+ },
"fo": {
"name": "फेरोस्"
},
- "fy": {
- "name": "फ्रिशियन्"
+ "fur": {
+ "name": "फ्रिलियन"
},
"fr": {
"name": "फ्रेन्च"
},
- "fr-CA": {
- "name": "फ्रेन्च (CA)"
- },
- "fr-CH": {
- "name": "फ्रेन्च (CH)"
+ "nl-BE": {
+ "name": "फ्लेमिश"
},
- "bn": {
- "name": "बंगाली"
+ "bm": {
+ "name": "बंबारा"
},
"my": {
"name": "बर्मीज़्"
@@ -230,21 +380,51 @@
"bg": {
"name": "बल्गेरियन"
},
+ "bas": {
+ "name": "बस्सा"
+ },
+ "bn": {
+ "name": "बांग्ला"
+ },
+ "ksf": {
+ "name": "बाफिया"
+ },
"eu": {
"name": "बास्क"
},
+ "bez": {
+ "name": "बेना"
+ },
+ "bem": {
+ "name": "बेम्बा"
+ },
"be": {
"name": "बैलोरुसियन्"
},
+ "brx": {
+ "name": "बोडो"
+ },
+ "bs": {
+ "name": "बोस्नियन"
+ },
+ "en-GB": {
+ "name": "ब्रिटीश इंग्लीश"
+ },
"br": {
"name": "ब्रेटन"
},
- "dz": {
- "name": "भूटानी"
- },
"mn": {
"name": "मंगोलियन्"
},
+ "jmc": {
+ "name": "मचामे"
+ },
+ "mzn": {
+ "name": "मझांडेराणी"
+ },
+ "ckb": {
+ "name": "मध्य खुर्दीश"
+ },
"mr": {
"name": "मराठी"
},
@@ -254,35 +434,86 @@
"mg": {
"name": "मलागसी"
},
+ "mas": {
+ "name": "मसाई"
+ },
"mk": {
"name": "मसीडोनियन्"
},
"ml": {
"name": "मळियाळम"
},
+ "kde": {
+ "name": "माकोंडे"
+ },
+ "mgh": {
+ "name": "माखुवा-मिट्टो"
+ },
"mt": {
"name": "मालतीस्"
},
+ "mua": {
+ "name": "मुडांग"
+ },
+ "gv": {
+ "name": "मॅन्स"
+ },
+ "es-MX": {
+ "name": "मेक्सिकन स्पॅनिश"
+ },
+ "mgo": {
+ "name": "मेटा"
+ },
+ "mer": {
+ "name": "मेरू"
+ },
+ "mfe": {
+ "name": "मोरिसेन"
+ },
"ro-MD": {
"name": "मोल्डावियन्"
},
+ "yav": {
+ "name": "यांगबेन"
+ },
"uk": {
"name": "युक्रेनियन्"
},
+ "pt-PT": {
+ "name": "युरोपियन पोर्तुगिज"
+ },
"yo": {
"name": "यूरुबा"
},
+ "rwk": {
+ "name": "रवा"
+ },
"ru": {
- "name": "रष्यन्"
+ "name": "रशियन"
},
"rm": {
"name": "रहटो-रोमान्स्"
},
+ "rn": {
+ "name": "रुंदी"
+ },
"ro": {
"name": "रोमानियन्"
},
+ "rof": {
+ "name": "रोम्बो"
+ },
+ "lb": {
+ "name": "लक्सेमबर्गीश"
+ },
+ "lag": {
+ "name": "लांगी"
+ },
"lo": {
- "name": "लाओतियन्"
+ "name": "लाअो"
+ },
+ "lkt": {
+ "name": "लाकोटा"
},
"lv": {
"name": "लाट्वियन् (लेट्टिष्)"
@@ -293,35 +524,80 @@
"lt": {
"name": "लिथुआनियन्"
},
+ "luo": {
+ "name": "लुओ"
+ },
+ "lu": {
+ "name": "लुबा-काटांगा"
+ },
+ "luy": {
+ "name": "लुय"
+ },
+ "dsb": {
+ "name": "लोवर सोर्बियन"
+ },
+ "vai": {
+ "name": "वाई"
+ },
+ "wae": {
+ "name": "वाल्सर"
+ },
"vi": {
"name": "वियत्नामीज़"
},
+ "vun": {
+ "name": "वुंजो"
+ },
"cy": {
"name": "वेळ्ष्"
},
+ "ksb": {
+ "name": "शंबाला"
+ },
"sn": {
"name": "शोना"
},
+ "sah": {
+ "name": "सखा"
+ },
+ "sr": {
+ "name": "सर्बियन"
+ },
+ "sbp": {
+ "name": "सांगू"
+ },
"sg": {
"name": "सांग्रो"
},
+ "saq": {
+ "name": "सांबारु"
+ },
+ "sd": {
+ "name": "सिंधी"
+ },
+ "ii": {
+ "name": "सिच्युआन यी"
+ },
"si": {
"name": "सिन्हलीस्"
},
- "sr": {
- "name": "सेर्बियन्"
+ "seh": {
+ "name": "सेना"
+ },
+ "zh-Hans": {
+ "name": "सोंपी चिनी"
+ },
+ "xog": {
+ "name": "सोगा"
},
"so": {
- "name": "सोमाळी"
+ "name": "सोमाली"
},
"gd": {
"name": "स्काटस् गेलिक्"
},
"es": {
- "name": "स्पानिष"
- },
- "es-MX": {
- "name": "स्पानिष (MX)"
+ "name": "स्पॅनिश"
},
"sk": {
"name": "स्लोवाक"
@@ -332,8 +608,14 @@
"sw": {
"name": "स्वाहिली"
},
- "sw-CD": {
- "name": "स्वाहिली (CD)"
+ "gsw": {
+ "name": "स्विज जर्मन"
+ },
+ "fr-CH": {
+ "name": "स्वीझ फ्रेन्च"
+ },
+ "de-CH": {
+ "name": "स्वीझ म्हान जर्मन"
},
"sv": {
"name": "स्वीदीष"
@@ -341,292 +623,19 @@
"hu": {
"name": "हंगेरियन्"
},
+ "haw": {
+ "name": "हवायियान"
+ },
"hi": {
"name": "हिन्दी"
},
"he": {
- "name": "हेब्रु"
+ "name": "हिब्रू"
},
"ha": {
"name": "हौसा"
},
- "agq": {
- "name": "Aghem"
- },
- "ak": {
- "name": "Akan"
- },
- "ast": {
- "name": "Asturian"
- },
- "asa": {
- "name": "Asu"
- },
- "ksf": {
- "name": "Bafia"
- },
- "bm": {
- "name": "Bambara"
- },
- "bas": {
- "name": "Basaa"
- },
- "bem": {
- "name": "Bemba"
- },
- "bez": {
- "name": "Bena"
- },
- "brx": {
- "name": "Bodo"
- },
- "bs": {
- "name": "Bosnian"
- },
- "yue": {
- "name": "Cantonese"
- },
- "tzm": {
- "name": "Central Atlas Tamazight"
- },
- "ckb": {
- "name": "Central Kurdish"
- },
- "ce": {
- "name": "Chechen"
- },
- "chr": {
- "name": "Cherokee"
- },
- "cgg": {
- "name": "Chiga"
- },
- "cu": {
- "name": "Church Slavic"
- },
- "ksh": {
- "name": "Colognian"
- },
- "kw": {
- "name": "Cornish"
- },
- "dua": {
- "name": "Duala"
- },
- "ebu": {
- "name": "Embu"
- },
- "ee": {
- "name": "Ewe"
- },
- "ewo": {
- "name": "Ewondo"
- },
- "fil": {
- "name": "Filipino"
- },
- "fur": {
- "name": "Friulian"
- },
- "ff": {
- "name": "Fulah"
- },
- "lg": {
- "name": "Ganda"
- },
- "guz": {
- "name": "Gusii"
- },
- "haw": {
- "name": "Hawaiian"
- },
- "ig": {
- "name": "Igbo"
- },
- "smn": {
- "name": "Inari Sami"
- },
- "dyo": {
- "name": "Jola-Fonyi"
- },
- "kea": {
- "name": "Kabuverdianu"
- },
- "kab": {
- "name": "Kabyle"
- },
- "kkj": {
- "name": "Kako"
- },
- "kln": {
- "name": "Kalenjin"
- },
- "kam": {
- "name": "Kamba"
- },
- "ki": {
- "name": "Kikuyu"
- },
- "khq": {
- "name": "Koyra Chiini"
- },
- "ses": {
- "name": "Koyraboro Senni"
- },
- "nmg": {
- "name": "Kwasio"
- },
- "lkt": {
- "name": "Lakota"
- },
- "lag": {
- "name": "Langi"
- },
- "dsb": {
- "name": "Lower Sorbian"
- },
- "lu": {
- "name": "Luba-Katanga"
- },
- "luo": {
- "name": "Luo"
- },
- "lb": {
- "name": "Luxembourgish"
- },
- "luy": {
- "name": "Luyia"
- },
- "jmc": {
- "name": "Machame"
- },
- "mgh": {
- "name": "Makhuwa-Meetto"
- },
- "kde": {
- "name": "Makonde"
- },
- "gv": {
- "name": "Manx"
- },
- "mas": {
- "name": "Masai"
- },
- "mzn": {
- "name": "Mazanderani"
- },
- "mer": {
- "name": "Meru"
- },
- "mgo": {
- "name": "Metaʼ"
- },
- "mfe": {
- "name": "Morisyen"
- },
- "mua": {
- "name": "Mundang"
- },
- "naq": {
- "name": "Nama"
- },
"nds-NL": {
- "name": "nds (NL)"
- },
- "nnh": {
- "name": "Ngiemboon"
- },
- "jgo": {
- "name": "Ngomba"
- },
- "nd": {
- "name": "North Ndebele"
- },
- "lrc": {
- "name": "Northern Luri"
- },
- "se": {
- "name": "Northern Sami"
- },
- "nb": {
- "name": "Norwegian Bokmål"
- },
- "nn": {
- "name": "Norwegian Nynorsk"
- },
- "nus": {
- "name": "Nuer"
- },
- "nyn": {
- "name": "Nyankole"
- },
- "os": {
- "name": "Ossetic"
- },
- "prg": {
- "name": "Prussian"
- },
- "rof": {
- "name": "Rombo"
- },
- "rwk": {
- "name": "Rwa"
- },
- "sah": {
- "name": "Sakha"
- },
- "saq": {
- "name": "Samburu"
- },
- "sbp": {
- "name": "Sangu"
- },
- "seh": {
- "name": "Sena"
- },
- "ksb": {
- "name": "Shambala"
- },
- "ii": {
- "name": "Sichuan Yi"
- },
- "xog": {
- "name": "Soga"
- },
- "zgh": {
- "name": "Standard Moroccan Tamazight"
- },
- "gsw": {
- "name": "Swiss German"
- },
- "shi": {
- "name": "Tachelhit"
- },
- "dav": {
- "name": "Taita"
- },
- "twq": {
- "name": "Tasawaq"
- },
- "teo": {
- "name": "Teso"
- },
- "hsb": {
- "name": "Upper Sorbian"
- },
- "vai": {
- "name": "Vai"
- },
- "vun": {
- "name": "Vunjo"
- },
- "wae": {
- "name": "Walser"
- },
- "yav": {
- "name": "Yangben"
- },
- "dje": {
- "name": "Zarma"
+ "name": "nds (नॅदरलँड)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ks.json b/vendor/commerceguys/intl/resources/language/ks.json
index 38f7a7f3e..935036dc5 100644
--- a/vendor/commerceguys/intl/resources/language/ks.json
+++ b/vendor/commerceguys/intl/resources/language/ks.json
@@ -14,9 +14,6 @@
"brx": {
"name": "Bodo"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -290,9 +287,15 @@
"pa": {
"name": "پَنجٲبۍ"
},
+ "tg": {
+ "name": "تاجِک"
+ },
"bo": {
"name": "تِبتی"
},
+ "tt": {
+ "name": "تَتار"
+ },
"tr": {
"name": "تُرکِش"
},
@@ -392,6 +395,9 @@
"sl": {
"name": "سلووینیَن"
},
+ "sd": {
+ "name": "سِندی"
+ },
"sg": {
"name": "سَنگو"
},
@@ -611,6 +617,9 @@
"vo": {
"name": "وولَپُک"
},
+ "wo": {
+ "name": "وولوف"
+ },
"vi": {
"name": "وِیَتنَمیٖز"
},
diff --git a/vendor/commerceguys/intl/resources/language/ksb.json b/vendor/commerceguys/intl/resources/language/ksb.json
index feae21505..1ff551665 100644
--- a/vendor/commerceguys/intl/resources/language/ksb.json
+++ b/vendor/commerceguys/intl/resources/language/ksb.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ksf.json b/vendor/commerceguys/intl/resources/language/ksf.json
index f06cf8a6b..df13cd34a 100644
--- a/vendor/commerceguys/intl/resources/language/ksf.json
+++ b/vendor/commerceguys/intl/resources/language/ksf.json
@@ -47,9 +47,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ksh.json b/vendor/commerceguys/intl/resources/language/ksh.json
index fd6faef72..85911e78d 100644
--- a/vendor/commerceguys/intl/resources/language/ksh.json
+++ b/vendor/commerceguys/intl/resources/language/ksh.json
@@ -233,9 +233,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kanton-Schinehsesch"
- },
"kea": {
"name": "Kapvärdesch"
},
@@ -515,6 +512,9 @@
"si": {
"name": "Singjaleesesch"
},
+ "sd": {
+ "name": "Sinndi"
+ },
"xog": {
"name": "Soga"
},
@@ -539,6 +539,9 @@
"zu": {
"name": "Suhlu"
},
+ "tg": {
+ "name": "Tadschihkesch"
+ },
"th": {
"name": "Tailändesch"
},
@@ -554,6 +557,9 @@
"shi": {
"name": "Taschelhittesch"
},
+ "tt": {
+ "name": "Tattahresch"
+ },
"te": {
"name": "Telluhju"
},
@@ -623,6 +629,9 @@
"be": {
"name": "Wiißrußesch"
},
+ "wo": {
+ "name": "Woloff"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ky.json b/vendor/commerceguys/intl/resources/language/ky.json
index 18cbfc6b3..747fdb194 100644
--- a/vendor/commerceguys/intl/resources/language/ky.json
+++ b/vendor/commerceguys/intl/resources/language/ky.json
@@ -81,7 +81,7 @@
"name": "болгарча"
},
"tzm": {
- "name": "Борбордук Атлас тамазитче"
+ "name": "борбордук Атлас тамазигтче"
},
"ckb": {
"name": "борбордук курдча"
@@ -156,13 +156,13 @@
"name": "жонгуча"
},
"dje": {
- "name": "замрача"
+ "name": "зармача"
},
"zu": {
"name": "зулуча"
},
"he": {
- "name": "ивритте"
+ "name": "ивритче"
},
"ig": {
"name": "игбочо"
@@ -174,7 +174,7 @@
"name": "инари саамиче"
},
"id": {
- "name": "индонезче"
+ "name": "индонезияча"
},
"ga": {
"name": "ирландча"
@@ -218,11 +218,8 @@
"kn": {
"name": "каннадача"
},
- "yue": {
- "name": "кантончо"
- },
"ca": {
- "name": "каталанча"
+ "name": "каталонча"
},
"ks": {
"name": "кашмирче"
@@ -230,9 +227,6 @@
"nmg": {
"name": "квасиочо"
},
- "gd": {
- "name": "кельтче"
- },
"qu": {
"name": "кечуача"
},
@@ -329,9 +323,6 @@
"mt": {
"name": "малтизче"
},
- "gv": {
- "name": "манксыча"
- },
"mr": {
"name": "маратиче"
},
@@ -362,6 +353,9 @@
"mua": {
"name": "мундангча"
},
+ "gv": {
+ "name": "мэнксыча"
+ },
"naq": {
"name": "намача"
},
@@ -387,7 +381,7 @@
"name": "норвежче (Букмал)"
},
"nn": {
- "name": "норвежче (Нинорск)"
+ "name": "норвежче (нинорск)"
},
"nus": {
"name": "нуерче"
@@ -467,6 +461,9 @@
"si": {
"name": "сингалача"
},
+ "sd": {
+ "name": "синдхиче"
+ },
"sk": {
"name": "словакча"
},
@@ -485,6 +482,9 @@
"ii": {
"name": "сычуань йиче"
},
+ "tg": {
+ "name": "тажикче"
+ },
"dav": {
"name": "таитача"
},
@@ -497,6 +497,9 @@
"twq": {
"name": "тасабакча"
},
+ "tt": {
+ "name": "татарча"
+ },
"shi": {
"name": "ташелитче"
},
@@ -531,7 +534,7 @@
"name": "түндүк ндыбелче"
},
"se": {
- "name": "түндүк самиче"
+ "name": "түндүк саамиче"
},
"tk": {
"name": "түркмөнчө"
@@ -548,11 +551,14 @@
"uk": {
"name": "украинче"
},
+ "wo": {
+ "name": "уолофчо"
+ },
"ur": {
"name": "урдуча"
},
"fo": {
- "name": "фароэче"
+ "name": "фарерче"
},
"fa": {
"name": "фарсча"
@@ -614,6 +620,9 @@
"sn": {
"name": "шонача"
},
+ "gd": {
+ "name": "шотладиялык гелча"
+ },
"ee": {
"name": "эбече"
},
diff --git a/vendor/commerceguys/intl/resources/language/lag.json b/vendor/commerceguys/intl/resources/language/lag.json
index 66cb64700..e8e3984c8 100644
--- a/vendor/commerceguys/intl/resources/language/lag.json
+++ b/vendor/commerceguys/intl/resources/language/lag.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/lb.json b/vendor/commerceguys/intl/resources/language/lb.json
index 16d575299..ebe211d91 100644
--- a/vendor/commerceguys/intl/resources/language/lb.json
+++ b/vendor/commerceguys/intl/resources/language/lb.json
@@ -233,9 +233,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantonesesch"
- },
"kk": {
"name": "Kasachesch"
},
@@ -512,6 +509,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Singhalesesch"
},
@@ -536,6 +536,9 @@
"sw": {
"name": "Suaheli"
},
+ "tg": {
+ "name": "Tadschikesch"
+ },
"dav": {
"name": "Taita"
},
@@ -548,6 +551,9 @@
"shi": {
"name": "Taschelhit"
},
+ "tt": {
+ "name": "Tataresch"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Westfriesesch"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/lg.json b/vendor/commerceguys/intl/resources/language/lg.json
index 9ac4ec19c..28d797ba2 100644
--- a/vendor/commerceguys/intl/resources/language/lg.json
+++ b/vendor/commerceguys/intl/resources/language/lg.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/lkt.json b/vendor/commerceguys/intl/resources/language/lkt.json
index 474dd0405..8dc6a1a91 100644
--- a/vendor/commerceguys/intl/resources/language/lkt.json
+++ b/vendor/commerceguys/intl/resources/language/lkt.json
@@ -71,9 +71,6 @@
"my": {
"name": "Burmese Iyápi"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan Iyápi"
},
@@ -485,6 +482,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi Iyápi"
+ },
"si": {
"name": "Sinhala Iyápi"
},
@@ -530,12 +530,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik Iyápi"
+ },
"ta": {
"name": "Tamil Iyápi"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar Iyápi"
+ },
"te": {
"name": "Telugu Iyápi"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof Iyápi"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ln.json b/vendor/commerceguys/intl/resources/language/ln.json
index 519cd5661..a92ecfff2 100644
--- a/vendor/commerceguys/intl/resources/language/ln.json
+++ b/vendor/commerceguys/intl/resources/language/ln.json
@@ -53,9 +53,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -566,9 +566,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/lo.json b/vendor/commerceguys/intl/resources/language/lo.json
index fab755218..da6bd223e 100644
--- a/vendor/commerceguys/intl/resources/language/lo.json
+++ b/vendor/commerceguys/intl/resources/language/lo.json
@@ -5,9 +5,6 @@
"kl": {
"name": "ກຣີນແລນລິດ"
},
- "yue": {
- "name": "ກວາງຕຸ້ງ"
- },
"nmg": {
"name": "ກວາຊີໂອ"
},
@@ -131,6 +128,9 @@
"sv": {
"name": "ສະວີດິຊ"
},
+ "sd": {
+ "name": "ສິນທິ"
+ },
"si": {
"name": "ສິນຫາລາ"
},
@@ -239,9 +239,15 @@
"to": {
"name": "ທອງການ"
},
+ "tg": {
+ "name": "ທາຈິກ"
+ },
"shi": {
"name": "ທາເຊວຫິດ"
},
+ "tt": {
+ "name": "ທາທາ"
+ },
"ta": {
"name": "ທາມິລ"
},
@@ -491,6 +497,9 @@
"lag": {
"name": "ແລນກິ"
},
+ "wo": {
+ "name": "ວໍລອບ"
+ },
"vun": {
"name": "ວັນໂຈ"
},
@@ -515,15 +524,15 @@
"en": {
"name": "ອັງກິດ"
},
- "en-CA": {
- "name": "ອັງກິດ (ແຄນາດາ)"
- },
"en-GB": {
"name": "ອັງກິດ (ບຣິດທິຊ)"
},
"en-AU": {
"name": "ອັງກິດ (ໂອດສະຕາລີ)"
},
+ "en-CA": {
+ "name": "ອັງກິດແຄນາດາ"
+ },
"as": {
"name": "ອັສຊາມີສ"
},
diff --git a/vendor/commerceguys/intl/resources/language/lrc.json b/vendor/commerceguys/intl/resources/language/lrc.json
index d241d3e4a..a737ba500 100644
--- a/vendor/commerceguys/intl/resources/language/lrc.json
+++ b/vendor/commerceguys/intl/resources/language/lrc.json
@@ -5,9 +5,6 @@
"bas": {
"name": "Basaa"
},
- "yue": {
- "name": "Cantonese"
- },
"cu": {
"name": "Church Slavic"
},
@@ -233,6 +230,12 @@
"te": {
"name": "تئلئگو"
},
+ "tt": {
+ "name": "تاتار"
+ },
+ "tg": {
+ "name": "تاجیکی"
+ },
"shi": {
"name": "تاچئلھیت"
},
@@ -341,6 +344,9 @@
"seh": {
"name": "سئنا"
},
+ "sd": {
+ "name": "سئندی"
+ },
"saq": {
"name": "سامبوٙروٙ"
},
@@ -416,6 +422,9 @@
"vai": {
"name": "ڤای"
},
+ "wo": {
+ "name": "ڤولوف"
+ },
"vun": {
"name": "ڤوٙنجوٙ"
},
diff --git a/vendor/commerceguys/intl/resources/language/lt.json b/vendor/commerceguys/intl/resources/language/lt.json
index 983029b38..5606f6d5f 100644
--- a/vendor/commerceguys/intl/resources/language/lt.json
+++ b/vendor/commerceguys/intl/resources/language/lt.json
@@ -263,9 +263,6 @@
"zh": {
"name": "kinų"
},
- "yue": {
- "name": "kinų kalbos Kantono tarmė"
- },
"ky": {
"name": "kirgizų"
},
@@ -476,6 +473,9 @@
"ii": {
"name": "sičuan ji"
},
+ "sd": {
+ "name": "sindų"
+ },
"si": {
"name": "sinhalų"
},
@@ -539,6 +539,9 @@
"shi": {
"name": "tachelhitų"
},
+ "tg": {
+ "name": "tadžikų"
+ },
"dav": {
"name": "taitų"
},
@@ -566,6 +569,9 @@
"to": {
"name": "tonganų"
},
+ "tt": {
+ "name": "totorių"
+ },
"zh-Hant": {
"name": "tradicinė kinų"
},
@@ -611,6 +617,9 @@
"vo": {
"name": "volapiuko"
},
+ "wo": {
+ "name": "volofų"
+ },
"vun": {
"name": "vunjo"
},
diff --git a/vendor/commerceguys/intl/resources/language/lu.json b/vendor/commerceguys/intl/resources/language/lu.json
index ec971de31..0f6cf5d1e 100644
--- a/vendor/commerceguys/intl/resources/language/lu.json
+++ b/vendor/commerceguys/intl/resources/language/lu.json
@@ -65,9 +65,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -533,6 +530,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -563,9 +563,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/luo.json b/vendor/commerceguys/intl/resources/language/luo.json
index dde94c510..f309f8a5f 100644
--- a/vendor/commerceguys/intl/resources/language/luo.json
+++ b/vendor/commerceguys/intl/resources/language/luo.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/luy.json b/vendor/commerceguys/intl/resources/language/luy.json
index 65a1d4aa9..f98a8ac26 100644
--- a/vendor/commerceguys/intl/resources/language/luy.json
+++ b/vendor/commerceguys/intl/resources/language/luy.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/lv.json b/vendor/commerceguys/intl/resources/language/lv.json
index 2a303a1bc..7663bd066 100644
--- a/vendor/commerceguys/intl/resources/language/lv.json
+++ b/vendor/commerceguys/intl/resources/language/lv.json
@@ -17,6 +17,15 @@
"en": {
"name": "angļu"
},
+ "en-AU": {
+ "name": "angļu (Austrālija)"
+ },
+ "en-CA": {
+ "name": "angļu (Kanāda)"
+ },
+ "en-GB": {
+ "name": "angļu (Lielbritānija)"
+ },
"ar": {
"name": "arābu"
},
@@ -35,12 +44,6 @@
"hsb": {
"name": "augšsorbu"
},
- "en-AU": {
- "name": "Austrālijas angļu"
- },
- "de-AT": {
- "name": "Austrijas vācu"
- },
"az": {
"name": "azerbaidžāņu"
},
@@ -113,9 +116,6 @@
"dz": {
"name": "dzongke"
},
- "pt-PT": {
- "name": "Eiropas portugāļu"
- },
"eo": {
"name": "esperanto"
},
@@ -137,6 +137,12 @@
"fr": {
"name": "franču"
},
+ "fr-CA": {
+ "name": "franču (Kanāda)"
+ },
+ "fr-CH": {
+ "name": "franču (Šveice)"
+ },
"fur": {
"name": "friūlu"
},
@@ -198,7 +204,7 @@
"name": "īru"
},
"is": {
- "name": "īslandiešu"
+ "name": "islandiešu"
},
"it": {
"name": "itāļu"
@@ -239,18 +245,9 @@
"kam": {
"name": "kambu"
},
- "en-CA": {
- "name": "Kanādas angļu"
- },
- "fr-CA": {
- "name": "Kanādas franču"
- },
"kn": {
"name": "kannadu"
},
- "yue": {
- "name": "kantoniešu"
- },
"ks": {
"name": "kašmiriešu"
},
@@ -338,9 +335,6 @@
"nds": {
"name": "lejasvācu"
},
- "en-GB": {
- "name": "Lielbritānijas angļu"
- },
"lt": {
"name": "lietuviešu"
},
@@ -366,7 +360,7 @@
"name": "makonde"
},
"mgh": {
- "name": "makua-meetto"
+ "name": "makua"
},
"mk": {
"name": "maķedoniešu"
@@ -384,7 +378,7 @@
"name": "maltiešu"
},
"mr": {
- "name": "maratu"
+ "name": "marathu"
},
"mas": {
"name": "masaju"
@@ -395,9 +389,6 @@
"mzn": {
"name": "mazanderāņu"
},
- "es-MX": {
- "name": "Meksikas spāņu"
- },
"gv": {
"name": "meniešu"
},
@@ -458,6 +449,9 @@
"pt": {
"name": "portugāļu"
},
+ "pt-PT": {
+ "name": "portugāļu (Portugāle)"
+ },
"prg": {
"name": "prūšu"
},
@@ -500,6 +494,9 @@
"ii": {
"name": "Sičuaņas ji"
},
+ "sd": {
+ "name": "sindhu"
+ },
"si": {
"name": "singāļu"
},
@@ -521,6 +518,9 @@
"es": {
"name": "spāņu"
},
+ "es-MX": {
+ "name": "spāņu (Meksika)"
+ },
"zgh": {
"name": "standarta marokāņu berberu"
},
@@ -539,12 +539,12 @@
"de-CH": {
"name": "Šveices augšvācu"
},
- "fr-CH": {
- "name": "Šveices franču"
- },
"gsw": {
"name": "Šveices vācu"
},
+ "tg": {
+ "name": "tadžiku"
+ },
"dav": {
"name": "taitu"
},
@@ -557,6 +557,9 @@
"twq": {
"name": "tasavaku"
},
+ "tt": {
+ "name": "tatāru"
+ },
"te": {
"name": "telugu"
},
@@ -596,6 +599,9 @@
"de": {
"name": "vācu"
},
+ "de-AT": {
+ "name": "vācu (Austrija)"
+ },
"vai": {
"name": "vaju"
},
@@ -611,6 +617,9 @@
"vo": {
"name": "volapiks"
},
+ "wo": {
+ "name": "volofu"
+ },
"vun": {
"name": "vundžo"
},
diff --git a/vendor/commerceguys/intl/resources/language/mas.json b/vendor/commerceguys/intl/resources/language/mas.json
index d68e7cbe9..dc487f16c 100644
--- a/vendor/commerceguys/intl/resources/language/mas.json
+++ b/vendor/commerceguys/intl/resources/language/mas.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/mer.json b/vendor/commerceguys/intl/resources/language/mer.json
index 3ef1cce47..277b86f70 100644
--- a/vendor/commerceguys/intl/resources/language/mer.json
+++ b/vendor/commerceguys/intl/resources/language/mer.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/mfe.json b/vendor/commerceguys/intl/resources/language/mfe.json
index d2494d4be..7ea811df1 100644
--- a/vendor/commerceguys/intl/resources/language/mfe.json
+++ b/vendor/commerceguys/intl/resources/language/mfe.json
@@ -92,9 +92,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -503,6 +500,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -548,12 +548,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "tamoul"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"cs": {
"name": "tchek"
},
@@ -611,6 +617,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/mg.json b/vendor/commerceguys/intl/resources/language/mg.json
index 4252eb0db..9240af7ea 100644
--- a/vendor/commerceguys/intl/resources/language/mg.json
+++ b/vendor/commerceguys/intl/resources/language/mg.json
@@ -92,9 +92,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -506,6 +503,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -554,12 +554,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamoila"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/mgh.json b/vendor/commerceguys/intl/resources/language/mgh.json
index f574771fc..c7e9db179 100644
--- a/vendor/commerceguys/intl/resources/language/mgh.json
+++ b/vendor/commerceguys/intl/resources/language/mgh.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/mk.json b/vendor/commerceguys/intl/resources/language/mk.json
index ffd0472e7..e9e250ee2 100644
--- a/vendor/commerceguys/intl/resources/language/mk.json
+++ b/vendor/commerceguys/intl/resources/language/mk.json
@@ -2,6 +2,9 @@
"en-AU": {
"name": "австралиски англиски"
},
+ "de-AT": {
+ "name": "австриски германски"
+ },
"agq": {
"name": "агемски"
},
@@ -92,6 +95,9 @@
"vo": {
"name": "волапик"
},
+ "wo": {
+ "name": "волофски"
+ },
"vun": {
"name": "вунџо"
},
@@ -104,12 +110,6 @@
"de": {
"name": "германски"
},
- "de-AT": {
- "name": "германски (Австрија)"
- },
- "de-CH": {
- "name": "германски (Швајцарија)"
- },
"hsb": {
"name": "горнолужички"
},
@@ -131,12 +131,12 @@
"nds": {
"name": "долногермански"
},
- "nds-NL": {
- "name": "долногермански (Холандија)"
- },
"dsb": {
"name": "долнолужички"
},
+ "nds-NL": {
+ "name": "долносаксонски"
+ },
"dua": {
"name": "дуала"
},
@@ -236,9 +236,6 @@
"kn": {
"name": "каннада"
},
- "yue": {
- "name": "кантонски"
- },
"ca": {
"name": "каталонски"
},
@@ -350,6 +347,9 @@
"jmc": {
"name": "мачаме"
},
+ "es-MX": {
+ "name": "мексикански шпански"
+ },
"mer": {
"name": "меру"
},
@@ -470,6 +470,9 @@
"seh": {
"name": "сена"
},
+ "sd": {
+ "name": "синди"
+ },
"si": {
"name": "синхалски"
},
@@ -506,9 +509,15 @@
"ta": {
"name": "тамилски"
},
+ "tt": {
+ "name": "татарски"
+ },
"shi": {
"name": "тачелхит"
},
+ "tg": {
+ "name": "таџикистански"
+ },
"te": {
"name": "телугу"
},
@@ -611,6 +620,9 @@
"ksb": {
"name": "шамбала"
},
+ "de-CH": {
+ "name": "швајцарски високо-германски"
+ },
"gsw": {
"name": "швајцарски германски"
},
@@ -628,8 +640,5 @@
},
"es": {
"name": "шпански"
- },
- "es-MX": {
- "name": "шпански (Мексико)"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ml.json b/vendor/commerceguys/intl/resources/language/ml.json
index 0c81989bb..8b2a435f1 100644
--- a/vendor/commerceguys/intl/resources/language/ml.json
+++ b/vendor/commerceguys/intl/resources/language/ml.json
@@ -36,10 +36,10 @@
"name": "ഇഗ്ബോ"
},
"smn": {
- "name": "ഇനാരി സാമി"
+ "name": "ഇനാരി സമി"
},
"id": {
- "name": "ഇൻഡോനേഷ്യൻ"
+ "name": "ഇന്തോനേഷ്യൻ"
},
"en": {
"name": "ഇംഗ്ലീഷ്"
@@ -128,9 +128,6 @@
"kkj": {
"name": "കാകോ"
},
- "yue": {
- "name": "കാന്റണീസ്"
- },
"ks": {
"name": "കാശ്‌മീരി"
},
@@ -227,6 +224,9 @@
"twq": {
"name": "ടസവാക്ക്"
},
+ "tt": {
+ "name": "ടാട്ടർ"
+ },
"bo": {
"name": "ടിബറ്റൻ"
},
@@ -251,6 +251,9 @@
"shi": {
"name": "താച്ചലിറ്റ്"
},
+ "tg": {
+ "name": "താജിക്"
+ },
"th": {
"name": "തായ്"
},
@@ -515,6 +518,9 @@
"vai": {
"name": "വൈ"
},
+ "wo": {
+ "name": "വൊളോഫ്"
+ },
"vo": {
"name": "വോളാപുക്"
},
@@ -545,21 +551,24 @@
"dje": {
"name": "സാർമ്മ"
},
+ "sd": {
+ "name": "സിന്ധി"
+ },
"si": {
"name": "സിംഹള"
},
"zu": {
"name": "സുലു"
},
+ "ckb": {
+ "name": "സെൻട്രൽ കുർദിഷ്"
+ },
"sr": {
"name": "സെർബിയൻ"
},
"seh": {
"name": "സേന"
},
- "ckb": {
- "name": "സൊറാനി കുർദിഷ്"
- },
"xog": {
"name": "സോഗോ"
},
diff --git a/vendor/commerceguys/intl/resources/language/mn.json b/vendor/commerceguys/intl/resources/language/mn.json
index 56ca4caac..77e1e9ab5 100644
--- a/vendor/commerceguys/intl/resources/language/mn.json
+++ b/vendor/commerceguys/intl/resources/language/mn.json
@@ -1,9 +1,9 @@
{
"en-AU": {
- "name": "австрали англи"
+ "name": "австрали-англи"
},
"de-AT": {
- "name": "австри герман"
+ "name": "австри-герман"
},
"agq": {
"name": "агем"
@@ -33,7 +33,7 @@
"name": "ассам"
},
"ast": {
- "name": "астури хэл"
+ "name": "астури"
},
"asa": {
"name": "асу"
@@ -51,10 +51,10 @@
"name": "бамбара"
},
"fy": {
- "name": "баруун фризын"
+ "name": "баруун фриз"
},
"bas": {
- "name": "басаа хэл"
+ "name": "басаа"
},
"eu": {
"name": "баск"
@@ -90,7 +90,7 @@
"name": "бретон"
},
"en-GB": {
- "name": "британийн англи"
+ "name": "британи-англи"
},
"vai": {
"name": "вай"
@@ -98,6 +98,9 @@
"vo": {
"name": "волапюк"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунжо"
},
@@ -105,7 +108,7 @@
"name": "вьетнам"
},
"gl": {
- "name": "галик"
+ "name": "галего"
},
"lg": {
"name": "ганда"
@@ -113,9 +116,6 @@
"de": {
"name": "герман"
},
- "nl": {
- "name": "голланд"
- },
"el": {
"name": "грек"
},
@@ -131,6 +131,9 @@
"da": {
"name": "дани"
},
+ "dsb": {
+ "name": "доод сорби"
+ },
"dua": {
"name": "дуала"
},
@@ -140,21 +143,18 @@
"he": {
"name": "еврей"
},
- "pt-PT": {
- "name": "европын португаль"
- },
"yo": {
"name": "ёруба"
},
"dyo": {
"name": "жола-фони"
},
- "dz": {
- "name": "жонха"
- },
"dje": {
"name": "зарма"
},
+ "dz": {
+ "name": "зонха"
+ },
"zu": {
"name": "зулу"
},
@@ -179,6 +179,9 @@
"es": {
"name": "испани"
},
+ "es-MX": {
+ "name": "испани (Мексик)"
+ },
"it": {
"name": "итали"
},
@@ -189,7 +192,7 @@
"name": "кабүвердиану"
},
"kkj": {
- "name": "како хэл"
+ "name": "како"
},
"kl": {
"name": "калалисут"
@@ -200,21 +203,15 @@
"kam": {
"name": "камба"
},
- "km": {
- "name": "камбож"
- },
"en-CA": {
- "name": "канад англи"
+ "name": "канад-англи"
},
"fr-CA": {
- "name": "канад франц"
+ "name": "канад-франц"
},
"kn": {
"name": "каннада"
},
- "yue": {
- "name": "кантон хэл"
- },
"ca": {
"name": "каталан"
},
@@ -225,7 +222,7 @@
"name": "квазио"
},
"ksh": {
- "name": "кёльш хэл"
+ "name": "кёльш"
},
"ses": {
"name": "кёраборо сени"
@@ -237,22 +234,25 @@
"name": "кикуюү"
},
"rw": {
- "name": "кинярванда"
+ "name": "киньяруанда"
+ },
+ "ky": {
+ "name": "киргиз"
},
"khq": {
"name": "койра чини"
},
"sw-CD": {
- "name": "конго свахили"
+ "name": "конгогийн свахили"
},
"kok": {
"name": "конкани"
},
"kw": {
- "name": "корны"
+ "name": "корн"
},
- "ky": {
- "name": "кыргыз"
+ "km": {
+ "name": "кхмер"
},
"lkt": {
"name": "лакота"
@@ -272,9 +272,6 @@
"lt": {
"name": "литва"
},
- "dsb": {
- "name": "ловер-сорби"
- },
"lu": {
"name": "луба-катанга"
},
@@ -306,10 +303,10 @@
"name": "малай"
},
"ml": {
- "name": "малайлам"
+ "name": "малаялам"
},
"mt": {
- "name": "малти"
+ "name": "малта"
},
"gv": {
"name": "манкс"
@@ -323,9 +320,6 @@
"jmc": {
"name": "мачамэ"
},
- "es-MX": {
- "name": "мексикийн испани"
- },
"mer": {
"name": "меру"
},
@@ -353,6 +347,9 @@
"jgo": {
"name": "нгомба"
},
+ "nl": {
+ "name": "нидерланд"
+ },
"nb": {
"name": "норвегийн букмол"
},
@@ -375,10 +372,10 @@
"name": "орос"
},
"os": {
- "name": "оссетийн"
+ "name": "оссетин"
},
"pa": {
- "name": "панжаб"
+ "name": "панжаби"
},
"ps": {
"name": "пашто"
@@ -390,10 +387,13 @@
"name": "польш"
},
"pt": {
- "name": "португаль"
+ "name": "португал"
+ },
+ "pt-PT": {
+ "name": "португал (Португал)"
},
"prg": {
- "name": "пруссийн"
+ "name": "прусс"
},
"rwk": {
"name": "рва"
@@ -431,6 +431,9 @@
"sr": {
"name": "серб"
},
+ "sd": {
+ "name": "синдхи"
+ },
"si": {
"name": "синхала"
},
@@ -449,15 +452,15 @@
"so": {
"name": "сомали"
},
- "ckb": {
- "name": "сорани күрд"
- },
"cu": {
- "name": "сүмийн славян хэл"
+ "name": "сүмийн славян"
},
"ii": {
"name": "сычуань и"
},
+ "tg": {
+ "name": "тажик"
+ },
"th": {
"name": "тай"
},
@@ -473,11 +476,14 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татар"
+ },
"shi": {
"name": "тачелхит"
},
"ti": {
- "name": "тигрина"
+ "name": "тигринья"
},
"to": {
"name": "тонга"
@@ -485,6 +491,9 @@
"tzm": {
"name": "төв атласын тамазайт"
},
+ "ckb": {
+ "name": "төв курд"
+ },
"bo": {
"name": "төвд"
},
@@ -504,7 +513,7 @@
"name": "узбек"
},
"ug": {
- "name": "уйгар"
+ "name": "уйгур"
},
"uk": {
"name": "украин"
@@ -540,7 +549,7 @@
"name": "франц"
},
"fur": {
- "name": "фриулийн"
+ "name": "фриулан"
},
"ff": {
"name": "фула"
@@ -593,20 +602,20 @@
"sv": {
"name": "швед"
},
- "gsw": {
- "name": "швейцари герман"
- },
"de-CH": {
"name": "швейцари дээр герман"
},
+ "gsw": {
+ "name": "швейцари-герман"
+ },
"fr-CH": {
- "name": "швейцари франц"
+ "name": "швейцари-франц"
},
"sn": {
"name": "шона"
},
"gd": {
- "name": "шотланд келт"
+ "name": "шотландын гел"
},
"ewo": {
"name": "эвондо"
diff --git a/vendor/commerceguys/intl/resources/language/mr.json b/vendor/commerceguys/intl/resources/language/mr.json
index 50dd75a0d..a0c5d13f7 100644
--- a/vendor/commerceguys/intl/resources/language/mr.json
+++ b/vendor/commerceguys/intl/resources/language/mr.json
@@ -107,9 +107,6 @@
"os": {
"name": "ओस्सेटिक"
},
- "yue": {
- "name": "कँटोनीज"
- },
"kk": {
"name": "कझाक"
},
@@ -257,6 +254,12 @@
"da": {
"name": "डॅनिश"
},
+ "tg": {
+ "name": "ताजिक"
+ },
+ "tt": {
+ "name": "तातर"
+ },
"ta": {
"name": "तामिळ"
},
@@ -465,7 +468,7 @@
"name": "मोल्डाव्हियन"
},
"yav": {
- "name": "यानगबेन"
+ "name": "यांगबेन"
},
"yi": {
"name": "यिद्दिश"
@@ -548,6 +551,9 @@
"cy": {
"name": "वेल्श"
},
+ "wo": {
+ "name": "वोलोफ"
+ },
"vi": {
"name": "व्हिएतनामी"
},
@@ -575,6 +581,9 @@
"sah": {
"name": "साखा"
},
+ "sd": {
+ "name": "सिंधी"
+ },
"si": {
"name": "सिंहला"
},
diff --git a/vendor/commerceguys/intl/resources/language/ms.json b/vendor/commerceguys/intl/resources/language/ms.json
index bc1c12ef1..67227fc8f 100644
--- a/vendor/commerceguys/intl/resources/language/ms.json
+++ b/vendor/commerceguys/intl/resources/language/ms.json
@@ -35,9 +35,6 @@
"ksf": {
"name": "Bafia"
},
- "ms": {
- "name": "Bahasa Melayu"
- },
"bm": {
"name": "Bambara"
},
@@ -266,9 +263,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantonis"
- },
"ks": {
"name": "Kashmir"
},
@@ -371,6 +365,9 @@
"mzn": {
"name": "Mazanderani"
},
+ "ms": {
+ "name": "Melayu"
+ },
"mer": {
"name": "Meru"
},
@@ -414,7 +411,7 @@
"name": "Nynorsk Norway"
},
"or": {
- "name": "Oriya"
+ "name": "Odia"
},
"om": {
"name": "Oromo"
@@ -447,7 +444,7 @@
"name": "Portugis Eropah"
},
"prg": {
- "name": "Prussian"
+ "name": "Prusia"
},
"pa": {
"name": "Punjabi"
@@ -515,6 +512,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,6 +551,9 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"tzm": {
"name": "Tamazight Atlas Tengah"
},
@@ -563,6 +566,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -617,6 +623,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/mt.json b/vendor/commerceguys/intl/resources/language/mt.json
index c476b26d1..9c93e25df 100644
--- a/vendor/commerceguys/intl/resources/language/mt.json
+++ b/vendor/commerceguys/intl/resources/language/mt.json
@@ -251,9 +251,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantoniż"
- },
"ks": {
"name": "Kashmiri"
},
@@ -500,6 +497,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -542,6 +542,9 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"th": {
"name": "Tajlandiż"
},
@@ -560,6 +563,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"cy": {
"name": "Welsh"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
@@ -624,7 +633,7 @@
"name": "Yoruba"
},
"sv": {
- "name": "Żvezja"
+ "name": "Żvediż"
},
"dje": {
"name": "Zarma"
diff --git a/vendor/commerceguys/intl/resources/language/mua.json b/vendor/commerceguys/intl/resources/language/mua.json
index 53221612c..47b694fb8 100644
--- a/vendor/commerceguys/intl/resources/language/mua.json
+++ b/vendor/commerceguys/intl/resources/language/mua.json
@@ -71,9 +71,6 @@
"bg": {
"name": "bulgaria"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -461,6 +458,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -500,12 +500,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamul"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -566,6 +572,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/my.json b/vendor/commerceguys/intl/resources/language/my.json
index 1dc78faec..cf5e47087 100644
--- a/vendor/commerceguys/intl/resources/language/my.json
+++ b/vendor/commerceguys/intl/resources/language/my.json
@@ -65,9 +65,6 @@
"sw-CD": {
"name": "ကွန်ဂို ဆွာဟီလီ"
},
- "yue": {
- "name": "ကွမ်တုံ"
- },
"km": {
"name": "ခမာ"
},
@@ -140,24 +137,27 @@
"es-MX": {
"name": "စပိန် (မက္ကဆီကို)"
},
- "sl": {
- "name": "စလိုဗေးနီးယား"
- },
- "sk": {
- "name": "စလိုဗက်"
- },
"ii": {
"name": "စီချွမ် ရီ"
},
"seh": {
"name": "စီနာ"
},
+ "sd": {
+ "name": "စင်ဒီ"
+ },
"si": {
"name": "စင်ဟာလာ"
},
"sah": {
"name": "ဆခါ"
},
+ "sl": {
+ "name": "ဆလိုဗေးနီးယား"
+ },
+ "sk": {
+ "name": "ဆလိုဗက်"
+ },
"sr": {
"name": "ဆားဘီးယား"
},
@@ -215,9 +215,15 @@
"shi": {
"name": "တာချယ်လ်ဟစ်"
},
+ "tg": {
+ "name": "တာဂျစ်"
+ },
"twq": {
"name": "တာဆာဝါခ်"
},
+ "tt": {
+ "name": "တာတာ"
+ },
"tk": {
"name": "တာ့ခ်မင်နစ္စတန်"
},
@@ -231,14 +237,11 @@
"name": "တီလီဂူ"
},
"ti": {
- "name": "တီဂ်ရင်ရာ"
+ "name": "တီဂ်ရင်ယာ"
},
"tr": {
"name": "တူရကီ"
},
- "nd": {
- "name": "တောင် အွန်န်ဒီဘီလီ"
- },
"af": {
"name": "တောင်အာဖရိက"
},
@@ -258,7 +261,7 @@
"name": "ဒူအလာ"
},
"nl": {
- "name": "ဒတ်ချ်"
+ "name": "ဒတ်ခ်ျ"
},
"da": {
"name": "ဒိန်းမတ်"
@@ -276,10 +279,10 @@
"name": "နူအာ"
},
"nn": {
- "name": "နော်ဝေး နီးနောစ်"
+ "name": "နော်ဝေ နီးနောစ်"
},
"nb": {
- "name": "နော်ဝေး ဘွတ်ခ်မော်လ်"
+ "name": "နော်ဝေ ဘွတ်ခ်မော်လ်"
},
"prg": {
"name": "ပရူရှန်"
@@ -351,7 +354,7 @@
"name": "ဘီနာ"
},
"be": {
- "name": "ဘီလာရုဇ်"
+ "name": "ဘီလာရုစ်"
},
"bg": {
"name": "ဘူလ်ဂေးရီးယား"
@@ -374,12 +377,12 @@
"jmc": {
"name": "မချာမီ"
},
+ "ml": {
+ "name": "မလေယာလမ်"
+ },
"ms": {
"name": "မလေး"
},
- "ml": {
- "name": "မလေးရာလမ်"
- },
"mgh": {
"name": "မာခူဝါ-မီအီတို"
},
@@ -417,7 +420,7 @@
"name": "မိုရိုကို တမဇိုက်"
},
"mk": {
- "name": "မက်စီဒိုးနီးယား"
+ "name": "မက်ဆီဒိုးနီးယား"
},
"gv": {
"name": "မန်းဇ်"
@@ -425,6 +428,9 @@
"se": {
"name": "မြောက် ဆာမိ"
},
+ "nd": {
+ "name": "မြောက် အွန်န်ဒီဘီလီ"
+ },
"lrc": {
"name": "မြောက်လူရီ"
},
@@ -503,6 +509,9 @@
"ug": {
"name": "ဝီဂါ"
},
+ "wo": {
+ "name": "ဝူလိုဖ်"
+ },
"cy": {
"name": "ဝေလ"
},
@@ -569,15 +578,15 @@
"ewo": {
"name": "အီဝန်ဒို"
},
+ "uz": {
+ "name": "ဥဇဘတ်"
+ },
"pt-PT": {
"name": "ဥရောပ ပေါ်တူဂီ"
},
"ur": {
"name": "အူရ်ဒူ"
},
- "uz": {
- "name": "ဦးဇ်ဘက်"
- },
"de-AT": {
"name": "ဩစတြီးယား ဂျာမန်"
},
diff --git a/vendor/commerceguys/intl/resources/language/mzn.json b/vendor/commerceguys/intl/resources/language/mzn.json
index 7968146d5..7c338b268 100644
--- a/vendor/commerceguys/intl/resources/language/mzn.json
+++ b/vendor/commerceguys/intl/resources/language/mzn.json
@@ -5,9 +5,6 @@
"bas": {
"name": "Basaa"
},
- "yue": {
- "name": "Cantonese"
- },
"cu": {
"name": "Church Slavic"
},
@@ -212,6 +209,12 @@
"pa": {
"name": "پنجابی"
},
+ "tt": {
+ "name": "تاتاری"
+ },
+ "tg": {
+ "name": "تاجیکی"
+ },
"shi": {
"name": "تاچلهیت"
},
@@ -323,6 +326,9 @@
"zh-Hant": {
"name": "سنتی چینی"
},
+ "sd": {
+ "name": "سندی"
+ },
"sv": {
"name": "سوئدی"
},
@@ -620,6 +626,9 @@
"cy": {
"name": "ولزی"
},
+ "wo": {
+ "name": "وولفی"
+ },
"vun": {
"name": "وونجویی"
},
diff --git a/vendor/commerceguys/intl/resources/language/naq.json b/vendor/commerceguys/intl/resources/language/naq.json
index ddd5d4b84..26972fe00 100644
--- a/vendor/commerceguys/intl/resources/language/naq.json
+++ b/vendor/commerceguys/intl/resources/language/naq.json
@@ -71,9 +71,6 @@
"my": {
"name": "Burmesǁî gowab"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -503,6 +500,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -545,12 +545,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamilǁî gowab"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -611,6 +617,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"el": {
"name": "Xriks"
},
diff --git a/vendor/commerceguys/intl/resources/language/nb.json b/vendor/commerceguys/intl/resources/language/nb.json
index 463d40955..7e4440fad 100644
--- a/vendor/commerceguys/intl/resources/language/nb.json
+++ b/vendor/commerceguys/intl/resources/language/nb.json
@@ -194,9 +194,6 @@
"it": {
"name": "italiensk"
},
- "sah": {
- "name": "jakutisk"
- },
"ja": {
"name": "japansk"
},
@@ -224,9 +221,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantonesisk"
- },
"kea": {
"name": "kappverdisk"
},
@@ -420,7 +414,7 @@
"name": "nyankole"
},
"or": {
- "name": "oriya"
+ "name": "odia"
},
"om": {
"name": "oromo"
@@ -428,6 +422,9 @@
"os": {
"name": "ossetisk"
},
+ "pa": {
+ "name": "panjabi"
+ },
"ps": {
"name": "pashto"
},
@@ -446,9 +443,6 @@
"prg": {
"name": "prøyssisk"
},
- "pa": {
- "name": "punjabi"
- },
"qu": {
"name": "quechua"
},
@@ -470,6 +464,9 @@
"rwk": {
"name": "rwa"
},
+ "sah": {
+ "name": "sakha"
+ },
"saq": {
"name": "samburu"
},
@@ -497,6 +494,9 @@
"ii": {
"name": "sichuan-yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singalesisk"
},
@@ -536,6 +536,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadsjikisk"
+ },
"dav": {
"name": "taita"
},
@@ -545,6 +548,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatarisk"
+ },
"te": {
"name": "telugu"
},
@@ -623,6 +629,9 @@
"wae": {
"name": "walsertysk"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/nd.json b/vendor/commerceguys/intl/resources/language/nd.json
index 47bc6aaa5..0b725e214 100644
--- a/vendor/commerceguys/intl/resources/language/nd.json
+++ b/vendor/commerceguys/intl/resources/language/nd.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ne.json b/vendor/commerceguys/intl/resources/language/ne.json
index 619cb66ee..3b14988c3 100644
--- a/vendor/commerceguys/intl/resources/language/ne.json
+++ b/vendor/commerceguys/intl/resources/language/ne.json
@@ -20,15 +20,15 @@
"ast": {
"name": "अस्टुरियाली"
},
- "de-AT": {
- "name": "अस्ट्रियाली जर्मन"
- },
"en-AU": {
"name": "अस्ट्रेलियाली अङ्ग्रेजी"
},
"os": {
"name": "अोस्सेटिक"
},
+ "ga": {
+ "name": "आइरिस"
+ },
"is": {
"name": "आइसल्यान्डियाली"
},
@@ -38,9 +38,6 @@
"agq": {
"name": "आघेम"
},
- "ga": {
- "name": "आयरिस"
- },
"hy": {
"name": "आर्मेनियाली"
},
@@ -69,7 +66,7 @@
"name": "इवोन्डो"
},
"et": {
- "name": "इस्टोनियाली"
+ "name": "इस्टोनियन"
},
"ug": {
"name": "उइघुर"
@@ -113,9 +110,6 @@
"kk": {
"name": "काजाख"
},
- "yue": {
- "name": "कान्टोनियाली"
- },
"kab": {
"name": "काबिल"
},
@@ -227,6 +221,9 @@
"de": {
"name": "जर्मन"
},
+ "de-AT": {
+ "name": "जर्मन (अष्ट्रिया)"
+ },
"dje": {
"name": "जर्मा"
},
@@ -278,6 +275,12 @@
"dav": {
"name": "ताइता"
},
+ "tg": {
+ "name": "ताजिक"
+ },
+ "tt": {
+ "name": "तातार"
+ },
"ta": {
"name": "तामिल"
},
@@ -326,6 +329,9 @@
"zh-Hant": {
"name": "परम्परागत चिनियाँ"
},
+ "fy": {
+ "name": "पश्चिमी फ्रिसियन"
+ },
"ps": {
"name": "पास्तो"
},
@@ -362,9 +368,6 @@
"fur": {
"name": "फ्रिउलियाली"
},
- "fy": {
- "name": "फ्रिजियन"
- },
"nl-BE": {
"name": "फ्लेमिस"
},
@@ -479,8 +482,11 @@
"mfe": {
"name": "मोरिसेन"
},
+ "ro-MD": {
+ "name": "मोल्डाभियाली"
+ },
"mk": {
- "name": "म्यासेडोनियाली"
+ "name": "म्यासेडोनियन"
},
"yav": {
"name": "याङ्बेन"
@@ -506,9 +512,6 @@
"ro": {
"name": "रोमानियाली"
},
- "ro-MD": {
- "name": "रोमानियाली (माल्डोभा)"
- },
"rm": {
"name": "रोमानिस"
},
@@ -551,6 +554,9 @@
"wae": {
"name": "वाल्सर"
},
+ "wo": {
+ "name": "वुलुफ"
+ },
"cy": {
"name": "वेल्श"
},
@@ -581,6 +587,9 @@
"ii": {
"name": "सिचुआन यि"
},
+ "sd": {
+ "name": "सिन्धी"
+ },
"si": {
"name": "सिन्हाली"
},
diff --git a/vendor/commerceguys/intl/resources/language/nl.json b/vendor/commerceguys/intl/resources/language/nl.json
index 0aa020170..94f79f687 100644
--- a/vendor/commerceguys/intl/resources/language/nl.json
+++ b/vendor/commerceguys/intl/resources/language/nl.json
@@ -248,9 +248,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "Kantonees"
- },
"ks": {
"name": "Kasjmiri"
},
@@ -377,6 +374,9 @@
"naq": {
"name": "Nama"
},
+ "nds-NL": {
+ "name": "Nederduits"
+ },
"nl": {
"name": "Nederlands"
},
@@ -386,9 +386,6 @@
"nds": {
"name": "Nedersaksisch"
},
- "nds-NL": {
- "name": "Nedersaksisch (Nederland)"
- },
"dsb": {
"name": "Nedersorbisch"
},
@@ -509,6 +506,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Singalees"
},
@@ -542,6 +542,9 @@
"sw-CD": {
"name": "Swahili (Congo-Kinshasa)"
},
+ "tg": {
+ "name": "Tadzjieks"
+ },
"dav": {
"name": "Taita"
},
@@ -557,6 +560,9 @@
"shi": {
"name": "Tashelhiyt"
},
+ "tt": {
+ "name": "Tataars"
+ },
"te": {
"name": "Telugu"
},
@@ -611,6 +617,9 @@
"be": {
"name": "Wit-Russisch"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/nmg.json b/vendor/commerceguys/intl/resources/language/nmg.json
index db6014d61..50cc93f80 100644
--- a/vendor/commerceguys/intl/resources/language/nmg.json
+++ b/vendor/commerceguys/intl/resources/language/nmg.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -566,9 +566,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/nn.json b/vendor/commerceguys/intl/resources/language/nn.json
index 7432daf82..eda250ea4 100644
--- a/vendor/commerceguys/intl/resources/language/nn.json
+++ b/vendor/commerceguys/intl/resources/language/nn.json
@@ -224,9 +224,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantonesisk"
- },
"kk": {
"name": "kasakhisk"
},
@@ -491,6 +488,9 @@
"ii": {
"name": "sichuan-yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singalesisk"
},
@@ -536,6 +536,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadsjikisk"
+ },
"dav": {
"name": "taita"
},
@@ -545,6 +548,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatarisk"
+ },
"te": {
"name": "telugu"
},
@@ -623,6 +629,9 @@
"wae": {
"name": "walsertysk"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/nus.json b/vendor/commerceguys/intl/resources/language/nus.json
index 124d7fd68..bbda29e5e 100644
--- a/vendor/commerceguys/intl/resources/language/nus.json
+++ b/vendor/commerceguys/intl/resources/language/nus.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -371,6 +368,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -401,9 +401,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/nyn.json b/vendor/commerceguys/intl/resources/language/nyn.json
index a64808c5b..e450a3d95 100644
--- a/vendor/commerceguys/intl/resources/language/nyn.json
+++ b/vendor/commerceguys/intl/resources/language/nyn.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/om.json b/vendor/commerceguys/intl/resources/language/om.json
index db22ad42c..2e1a77e37 100644
--- a/vendor/commerceguys/intl/resources/language/om.json
+++ b/vendor/commerceguys/intl/resources/language/om.json
@@ -263,9 +263,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -524,6 +521,9 @@
"seh": {
"name": "Sena"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"ii": {
"name": "Sichuan Yi"
},
@@ -548,9 +548,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"shi": {
"name": "Tachelhit"
},
@@ -584,6 +590,9 @@
"cy": {
"name": "Welishiffaa"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/or.json b/vendor/commerceguys/intl/resources/language/or.json
index cf5b91a28..b6fe378a5 100644
--- a/vendor/commerceguys/intl/resources/language/or.json
+++ b/vendor/commerceguys/intl/resources/language/or.json
@@ -6,20 +6,26 @@
"name": "ଅଷ୍ଟ୍ରିଆନ୍ ଜର୍ମାନ"
},
"en-AU": {
- "name": "ଅଷ୍ଟ୍ରେଲିଆନ୍ ଇଁରାଜୀ"
+ "name": "ଅଷ୍ଟ୍ରେଲିୟ ଇଂରାଜୀ"
},
"is": {
"name": "ଆଇସଲାଣ୍ଡିକ୍"
},
+ "agq": {
+ "name": "ଆଘେମ"
+ },
"az": {
"name": "ଆଜେରବାଇଜାନି"
},
"af": {
- "name": "ଆଫ୍ରିକାନସ୍"
+ "name": "ଆଫ୍ରିକୀୟ"
},
"am": {
"name": "ଆମହାରକି"
},
+ "rwk": {
+ "name": "ଆରଡବ୍ୟୁଏ"
+ },
"ar": {
"name": "ଆରବିକ୍"
},
@@ -33,19 +39,22 @@
"name": "ଆଷ୍ଟୁରିଆନ୍"
},
"as": {
- "name": "ଆସାମୀ"
+ "name": "ଆସାମୀୟ"
+ },
+ "asa": {
+ "name": "ଆସୁ"
},
"en": {
"name": "ଇଂରାଜୀ"
},
"ig": {
- "name": "ଇଗ୍ବୋ"
+ "name": "ଇଗବୋ"
},
"it": {
- "name": "ଇଟାଲିଆନ୍"
+ "name": "ଇଟାଲୀୟ"
},
"id": {
- "name": "ଇଣ୍ଡୋନେସିଆନ୍"
+ "name": "ଇଣ୍ଡୋନେସୀୟ"
},
"smn": {
"name": "ଇନାରୀ ସାମି"
@@ -65,6 +74,9 @@
"nd": {
"name": "ଉତ୍ତର ନେଡବେଲେ"
},
+ "lrc": {
+ "name": "ଉତ୍ତର ଲୁରି"
+ },
"se": {
"name": "ଉତ୍ତର ସାମି"
},
@@ -74,6 +86,9 @@
"ur": {
"name": "ଉର୍ଦ୍ଦୁ"
},
+ "ebu": {
+ "name": "ଏମ୍ଵୁ"
+ },
"et": {
"name": "ଏସ୍ତୋନିଆନ୍"
},
@@ -89,6 +104,9 @@
"os": {
"name": "ଓସେଟିକ୍"
},
+ "sw-CD": {
+ "name": "କଙ୍ଗୋ ସ୍ୱାହିଲି"
+ },
"kn": {
"name": "କନ୍ନଡ"
},
@@ -98,6 +116,12 @@
"kam": {
"name": "କମ୍ବା"
},
+ "nmg": {
+ "name": "କୱାସିଓ"
+ },
+ "kkj": {
+ "name": "କାକୋ"
+ },
"kk": {
"name": "କାଜାକ୍"
},
@@ -108,10 +132,19 @@
"name": "କାଟାଲାନ୍"
},
"en-CA": {
- "name": "କାନାଡିଆନ୍ ଇଁରାଜୀ"
+ "name": "କାନାଡିୟ ଇଂରାଜୀ"
},
"fr-CA": {
- "name": "କାନାଡିଆନ୍ ଫ୍ରେଞ୍ଚ"
+ "name": "କାନାଡିୟ ଫ୍ରେଞ୍ଚ"
+ },
+ "kea": {
+ "name": "କାବୁଭେରଡିଆନୁ"
+ },
+ "kl": {
+ "name": "କାଲାଲିସୁଟ୍"
+ },
+ "kln": {
+ "name": "କାଲେନଜିନ୍"
},
"ks": {
"name": "କାଶ୍ମିରୀ"
@@ -119,14 +152,26 @@
"rw": {
"name": "କିନ୍ୟାରୱାଣ୍ଡା"
},
- "ky": {
- "name": "କିରଗିଜ୍"
- },
"ki": {
"name": "କୀକୁୟୁ"
},
+ "ky": {
+ "name": "କୀରଗୀଜ୍"
+ },
+ "tzm": {
+ "name": "କେନ୍ଦ୍ରୀୟ ଆଟଲାସ୍ ଟାମାଜିଘାଟ୍"
+ },
+ "ckb": {
+ "name": "କେନ୍ଦ୍ରୀୟ କୁରଡିସ୍"
+ },
"kok": {
- "name": "କୋନକାନୀ"
+ "name": "କୋଙ୍କଣି"
+ },
+ "khq": {
+ "name": "କୋୟରା ଚିନି"
+ },
+ "ses": {
+ "name": "କୋୟରା ସେନ୍ନି"
},
"ko": {
"name": "କୋରିଆନ୍"
@@ -134,6 +179,9 @@
"kw": {
"name": "କୋର୍ନିସ୍"
},
+ "ksh": {
+ "name": "କୋଲୋବନିୟ"
+ },
"hr": {
"name": "କ୍ରୋଆଟିଆନ୍"
},
@@ -141,7 +189,7 @@
"name": "କ୍ୱେଚୁଆ"
},
"km": {
- "name": "ଖ୍ମେର୍"
+ "name": "ଖାମେର୍"
},
"lg": {
"name": "ଗନ୍ଦା"
@@ -152,17 +200,20 @@
"gu": {
"name": "ଗୁଜୁରାଟୀ"
},
+ "guz": {
+ "name": "ଗୁସି"
+ },
"el": {
"name": "ଗ୍ରୀକ୍"
},
- "kl": {
- "name": "ଗ୍ରୀନଲାଣ୍ଡିକ୍"
- },
"cu": {
"name": "ଚର୍ଚ୍ଚ ସ୍ଲାଭିକ୍"
},
"zh": {
- "name": "ଚାଇନୀଜ୍"
+ "name": "ଚାଇନିଜ୍‌"
+ },
+ "cgg": {
+ "name": "ଚିଗା"
},
"cs": {
"name": "ଚେକ୍"
@@ -174,17 +225,23 @@
"name": "ଚେରୋକୀ"
},
"ka": {
- "name": "ଜର୍ଜିଆନ୍"
+ "name": "ଜର୍ଜିୟ"
+ },
+ "dje": {
+ "name": "ଜର୍ମା"
},
"de": {
- "name": "ଜର୍ମାନ୍"
+ "name": "ଜର୍ମାନ"
},
"ja": {
- "name": "ଜାପାନୀଜ୍"
+ "name": "ଜାପାନୀ"
},
"zu": {
"name": "ଜୁଲୁ"
},
+ "dyo": {
+ "name": "ଜୋଲା-ଫୋନୟି"
+ },
"to": {
"name": "ଟୋଙ୍ଗା"
},
@@ -200,11 +257,26 @@
"dua": {
"name": "ଡୁଆନା"
},
+ "dav": {
+ "name": "ତାଇତି"
+ },
+ "shi": {
+ "name": "ତାଚେଲହିଟ୍"
+ },
+ "tg": {
+ "name": "ତାଜିକ୍"
+ },
+ "tt": {
+ "name": "ତାତାର୍"
+ },
"ta": {
"name": "ତାମିଲ୍"
},
+ "twq": {
+ "name": "ତାସାୱାକ୍"
+ },
"bo": {
- "name": "ତିବେତାନ୍"
+ "name": "ତିବ୍ବତୀୟ"
},
"tk": {
"name": "ତୁର୍କମେନ୍"
@@ -215,17 +287,35 @@
"te": {
"name": "ତେଲୁଗୁ"
},
+ "teo": {
+ "name": "ତେସା"
+ },
"th": {
"name": "ଥାଇ"
},
+ "dz": {
+ "name": "ଦଡଜୋଙ୍ଗଖା"
+ },
"nn": {
"name": "ନରୱେଜିଆନ୍ ନିୟୋର୍ସ୍କ"
},
"nb": {
"name": "ନରୱେଜିଆନ୍ ବୋକମଲ୍"
},
+ "nnh": {
+ "name": "ନାଗିମବୋନ୍"
+ },
+ "jgo": {
+ "name": "ନାଗୋମ୍ଵା"
+ },
+ "naq": {
+ "name": "ନାମା"
+ },
"dsb": {
- "name": "ନିଚଳା ସର୍ବିଆନ୍"
+ "name": "ନିମ୍ନ ସର୍ବିଆନ୍‌"
+ },
+ "nus": {
+ "name": "ନୁଏର"
},
"ne": {
"name": "ନେପାଳୀ"
@@ -237,16 +327,16 @@
"name": "ପଞ୍ଜାବୀ"
},
"pt": {
- "name": "ପର୍ତ୍ତୁଗ୍ରୀଜ୍"
+ "name": "ପର୍ତ୍ତୁଗୀଜ୍‌"
},
"fa": {
"name": "ପର୍ସିଆନ୍"
},
- "fy": {
- "name": "ପଶ୍ଚିମ ଫ୍ରିସିୟନ୍"
- },
"zh-Hant": {
- "name": "ପାରମ୍ପରିକ ଚାଇନୀଜ୍"
+ "name": "ପାରମ୍ପରିକ ଚାଇନିଜ୍‌"
+ },
+ "fy": {
+ "name": "ପାଶ୍ଚାତ୍ୟ ଫ୍ରିସିଆନ୍"
},
"ps": {
"name": "ପାସ୍ତୋ"
@@ -254,6 +344,12 @@
"pl": {
"name": "ପୋଲିଶ୍"
},
+ "prg": {
+ "name": "ପ୍ରୁସିୟ"
+ },
+ "fr": {
+ "name": "ଫରାସୀ"
+ },
"fo": {
"name": "ଫାରୋଏସେ"
},
@@ -269,9 +365,6 @@
"fur": {
"name": "ଫ୍ରିୟୁଲୀୟାନ୍"
},
- "fr": {
- "name": "ଫ୍ରେଞ୍ଚ"
- },
"nl-BE": {
"name": "ଫ୍ଲେମିଶ୍"
},
@@ -281,6 +374,9 @@
"my": {
"name": "ବର୍ମୀଜ୍"
},
+ "ksf": {
+ "name": "ବାଫଲା"
+ },
"bm": {
"name": "ବାମ୍ବାରା"
},
@@ -293,17 +389,23 @@
"bg": {
"name": "ବୁଲଗେରିଆନ୍"
},
+ "bez": {
+ "name": "ବେନା"
+ },
"bem": {
"name": "ବେମ୍ବା"
},
"be": {
"name": "ବେଲାରୁଷିଆନ୍"
},
+ "brx": {
+ "name": "ବୋଡୋ"
+ },
"vo": {
"name": "ବୋଲାପୁକ"
},
"en-GB": {
- "name": "ବ୍ରିଟିଶ୍ ଇଁରାଜୀ"
+ "name": "ବ୍ରିଟିଶ୍‌ ଇଂରାଜୀ"
},
"br": {
"name": "ବ୍ରେଟନ୍"
@@ -314,11 +416,14 @@
"vi": {
"name": "ଭିଏତନାମିଜ୍"
},
- "dz": {
- "name": "ଭୂଟାନୀ"
+ "vun": {
+ "name": "ଭୁନଜୋ"
+ },
+ "mgh": {
+ "name": "ମଖୁୱା-ମେଟ୍ଟା"
},
"mn": {
- "name": "ମଙ୍ଗୋଲିଆନ୍"
+ "name": "ମଙ୍ଗୋଳିୟ"
},
"mr": {
"name": "ମରାଠୀ"
@@ -326,8 +431,17 @@
"gv": {
"name": "ମାଁକ୍ସ"
},
- "mk": {
- "name": "ମାକଡୋନିଆନ୍"
+ "kde": {
+ "name": "ମାକୋଣ୍ଡେ"
+ },
+ "jmc": {
+ "name": "ମାଚେମେ"
+ },
+ "mzn": {
+ "name": "ମାଜାନଡେରାନି"
+ },
+ "zgh": {
+ "name": "ମାନାଙ୍କ ମରୋକିୟ ତାମାଜିଘାଟ୍"
},
"mt": {
"name": "ମାଲଟୀଜ୍"
@@ -344,11 +458,29 @@
"mas": {
"name": "ମାସାଇ"
},
+ "mk": {
+ "name": "ମାସେଡୋନିଆନ୍"
+ },
+ "mua": {
+ "name": "ମୁନଡାଂ"
+ },
+ "es-MX": {
+ "name": "ମେକ୍ସିକାନ ସ୍ପାନିସ୍‌"
+ },
+ "mgo": {
+ "name": "ମେଟା"
+ },
+ "mer": {
+ "name": "ମେରୁ"
+ },
+ "mfe": {
+ "name": "ମୋରିସୟେନ୍"
+ },
"ro-MD": {
"name": "ମୋଲଡୋଭିଆନ୍"
},
- "sah": {
- "name": "ୟାକୁଟ୍"
+ "yav": {
+ "name": "ୟାଂବେନ୍"
},
"yi": {
"name": "ୟିଡିସ୍"
@@ -359,30 +491,42 @@
"ug": {
"name": "ୟୁଘୁର୍"
},
+ "pt-PT": {
+ "name": "ୟୁରୋପୀୟ ପର୍ତ୍ତୁଗୀଜ୍‌"
+ },
"yo": {
"name": "ୟୋରୁବା"
},
- "ru": {
- "name": "ରଷିଆନ୍"
- },
"rn": {
"name": "ରୁଣ୍ଡି"
},
+ "ru": {
+ "name": "ରୁଷିୟ"
+ },
"rm": {
- "name": "ରେହେଟୋ-ରୋମାନ୍ସ"
+ "name": "ରୋମାନଶ୍‌"
},
"ro": {
"name": "ରୋମାନିଆନ୍"
},
+ "rof": {
+ "name": "ରୋମ୍ବୋ"
+ },
"lb": {
"name": "ଲକ୍ସେମବର୍ଗିସ୍"
},
"lo": {
"name": "ଲାଓ"
},
+ "lkt": {
+ "name": "ଲାକୋଟା"
+ },
"lv": {
"name": "ଲାଟଭିଆନ୍"
},
+ "lag": {
+ "name": "ଲାନଗି"
+ },
"ln": {
"name": "ଲିଙ୍ଗାଲା"
},
@@ -392,8 +536,8 @@
"luo": {
"name": "ଲୁଓ"
},
- "pt-PT": {
- "name": "ଲେବେରିଆନ୍ ପର୍ତ୍ତୁଗୀଜ୍"
+ "luy": {
+ "name": "ଲୁୟିଆ"
},
"nds": {
"name": "ଲୋ ଜର୍ମାନ୍"
@@ -404,27 +548,57 @@
"lu": {
"name": "ଲ୍ୟୁବା-କାଟାଙ୍ଗା"
},
+ "wae": {
+ "name": "ୱାଲସେର୍"
+ },
"cy": {
"name": "ୱେଲ୍ସ"
},
+ "wo": {
+ "name": "ୱୋଲଫ୍"
+ },
+ "ksb": {
+ "name": "ଶାମବାଲା"
+ },
"sn": {
"name": "ଶୋନା"
},
+ "saq": {
+ "name": "ସମବୁରୁ"
+ },
"zh-Hans": {
- "name": "ସରଳିକରଣ ଚାଇନୀଜ୍"
+ "name": "ସରଳୀକୃତ ଚାଇନିଜ୍‌"
},
"sr": {
- "name": "ସର୍ବିଆନ୍"
+ "name": "ସର୍ବିୟ"
+ },
+ "sah": {
+ "name": "ସାଖା"
},
"sg": {
"name": "ସାଙ୍ଗୋ"
},
+ "sbp": {
+ "name": "ସାନଗୁ"
+ },
"si": {
"name": "ସିଂହଳ"
},
"ii": {
"name": "ସିଚୁଆନ୍ ୟୀ"
},
+ "sd": {
+ "name": "ସିନ୍ଧୀ"
+ },
+ "gsw": {
+ "name": "ସୁଇସ୍ ଜର୍ମାନ୍"
+ },
+ "seh": {
+ "name": "ସେନା"
+ },
+ "xog": {
+ "name": "ସୋଗା"
+ },
"so": {
"name": "ସୋମାଲିଆ"
},
@@ -432,19 +606,7 @@
"name": "ସ୍କଟିସ୍ ଗାଏଲିକ୍"
},
"es": {
- "name": "ସ୍ପାନିସ୍"
- },
- "es-MX": {
- "name": "ସ୍ପାନିସ୍ (ମେକ୍ସିକୋ)"
- },
- "gsw": {
- "name": "ସ୍ବିସ୍ ଜର୍ମାନ୍"
- },
- "fr-CH": {
- "name": "ସ୍ବିସ୍ ଫ୍ରେଞ୍ଚ୍"
- },
- "de-CH": {
- "name": "ସ୍ବିସ୍ ହାଇ ଜର୍ମାନ୍"
+ "name": "ସ୍ପେନିୟ"
},
"sk": {
"name": "ସ୍ଲୋଭାକ୍"
@@ -455,14 +617,17 @@
"sw": {
"name": "ସ୍ୱାହିଲ୍"
},
- "sw-CD": {
- "name": "ସ୍ୱାହିଲ୍ (କଙ୍ଗୋ-କିନସାସା)"
+ "fr-CH": {
+ "name": "ସ୍ୱିସ୍ ଫ୍ରେଞ୍ଚ"
+ },
+ "de-CH": {
+ "name": "ସ୍ୱିସ୍‌ ହାଇ ଜର୍ମାନ"
},
"sv": {
"name": "ସ୍ୱେଡିସ୍"
},
"hu": {
- "name": "ହଙ୍ଗେରିଆନ୍"
+ "name": "ହଙ୍ଗେରୀୟ"
},
"haw": {
"name": "ହାୱାଇନ୍"
@@ -475,161 +640,5 @@
},
"ha": {
"name": "ହୌସା"
- },
- "agq": {
- "name": "Aghem"
- },
- "asa": {
- "name": "Asu"
- },
- "ksf": {
- "name": "Bafia"
- },
- "bez": {
- "name": "Bena"
- },
- "brx": {
- "name": "Bodo"
- },
- "yue": {
- "name": "Cantonese"
- },
- "tzm": {
- "name": "Central Atlas Tamazight"
- },
- "ckb": {
- "name": "Central Kurdish"
- },
- "cgg": {
- "name": "Chiga"
- },
- "ksh": {
- "name": "Colognian"
- },
- "ebu": {
- "name": "Embu"
- },
- "guz": {
- "name": "Gusii"
- },
- "dyo": {
- "name": "Jola-Fonyi"
- },
- "kea": {
- "name": "Kabuverdianu"
- },
- "kkj": {
- "name": "Kako"
- },
- "kln": {
- "name": "Kalenjin"
- },
- "khq": {
- "name": "Koyra Chiini"
- },
- "ses": {
- "name": "Koyraboro Senni"
- },
- "nmg": {
- "name": "Kwasio"
- },
- "lkt": {
- "name": "Lakota"
- },
- "lag": {
- "name": "Langi"
- },
- "luy": {
- "name": "Luyia"
- },
- "jmc": {
- "name": "Machame"
- },
- "mgh": {
- "name": "Makhuwa-Meetto"
- },
- "kde": {
- "name": "Makonde"
- },
- "mzn": {
- "name": "Mazanderani"
- },
- "mer": {
- "name": "Meru"
- },
- "mgo": {
- "name": "Metaʼ"
- },
- "mfe": {
- "name": "Morisyen"
- },
- "mua": {
- "name": "Mundang"
- },
- "naq": {
- "name": "Nama"
- },
- "nnh": {
- "name": "Ngiemboon"
- },
- "jgo": {
- "name": "Ngomba"
- },
- "lrc": {
- "name": "Northern Luri"
- },
- "nus": {
- "name": "Nuer"
- },
- "prg": {
- "name": "Prussian"
- },
- "rof": {
- "name": "Rombo"
- },
- "rwk": {
- "name": "Rwa"
- },
- "saq": {
- "name": "Samburu"
- },
- "sbp": {
- "name": "Sangu"
- },
- "seh": {
- "name": "Sena"
- },
- "ksb": {
- "name": "Shambala"
- },
- "xog": {
- "name": "Soga"
- },
- "zgh": {
- "name": "Standard Moroccan Tamazight"
- },
- "shi": {
- "name": "Tachelhit"
- },
- "dav": {
- "name": "Taita"
- },
- "twq": {
- "name": "Tasawaq"
- },
- "teo": {
- "name": "Teso"
- },
- "vun": {
- "name": "Vunjo"
- },
- "wae": {
- "name": "Walser"
- },
- "yav": {
- "name": "Yangben"
- },
- "dje": {
- "name": "Zarma"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/os.json b/vendor/commerceguys/intl/resources/language/os.json
index 3973e0b8d..dca8bbdc5 100644
--- a/vendor/commerceguys/intl/resources/language/os.json
+++ b/vendor/commerceguys/intl/resources/language/os.json
@@ -50,9 +50,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -377,6 +374,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -413,12 +413,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -479,6 +485,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/pa.json b/vendor/commerceguys/intl/resources/language/pa.json
index fe68c363a..79189a2b8 100644
--- a/vendor/commerceguys/intl/resources/language/pa.json
+++ b/vendor/commerceguys/intl/resources/language/pa.json
@@ -134,9 +134,6 @@
"sw": {
"name": "ਸਵਾਹਿਲੀ"
},
- "sw-CD": {
- "name": "ਸਵਾਹਿਲੀ (ਕਾਂਗੋ - ਕਿੰਸ਼ਾਸਾ)"
- },
"sv": {
"name": "ਸਵੀਡਿਸ਼"
},
@@ -152,6 +149,9 @@
"ii": {
"name": "ਸਿਚੁਆਨ ਯੀ"
},
+ "sd": {
+ "name": "ਸਿੰਧੀ"
+ },
"sbp": {
"name": "ਸੇਂਗੋ"
},
@@ -218,6 +218,9 @@
"kkj": {
"name": "ਕਾਕੋ"
},
+ "sw-CD": {
+ "name": "ਕਾਂਗੋ ਸਵਾਇਲੀ"
+ },
"kea": {
"name": "ਕਾਬੁਵੇਰਦਿਆਨੂ"
},
@@ -236,9 +239,6 @@
"ca": {
"name": "ਕੈਟਾਲਾਨ"
},
- "yue": {
- "name": "ਕੈਂਟੋਨੀਜ਼"
- },
"ses": {
"name": "ਕੋਇਰਾਬੋਰੋ ਸੇਂਨੀ"
},
@@ -344,12 +344,18 @@
"da": {
"name": "ਡੈਨਿਸ਼"
},
+ "tt": {
+ "name": "ਤਤਾਰ"
+ },
"ta": {
"name": "ਤਮਿਲ"
},
"twq": {
"name": "ਤਾਸਾਵਿਕ"
},
+ "tg": {
+ "name": "ਤਾਜਿਕ"
+ },
"ti": {
"name": "ਤਿਗ੍ਰੀਨਿਆ"
},
@@ -631,5 +637,8 @@
},
"vo": {
"name": "ਵੋਲਾਪੂਕ"
+ },
+ "wo": {
+ "name": "ਵੋਲੋਫ"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/pl.json b/vendor/commerceguys/intl/resources/language/pl.json
index 25452b44e..0e45aca94 100644
--- a/vendor/commerceguys/intl/resources/language/pl.json
+++ b/vendor/commerceguys/intl/resources/language/pl.json
@@ -263,9 +263,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantoński"
- },
"ks": {
"name": "kaszmirski"
},
@@ -509,6 +506,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"sk": {
"name": "słowacki"
},
@@ -545,9 +545,15 @@
"gsw": {
"name": "szwajcarski niemiecki"
},
+ "de-CH": {
+ "name": "szwajcarski wysokoniemiecki"
+ },
"sv": {
"name": "szwedzki"
},
+ "tg": {
+ "name": "tadżycki"
+ },
"dav": {
"name": "taita"
},
@@ -566,6 +572,9 @@
"shi": {
"name": "tashelhiyt"
},
+ "tt": {
+ "name": "tatarski"
+ },
"te": {
"name": "telugu"
},
@@ -620,8 +629,8 @@
"vo": {
"name": "wolapik"
},
- "de-CH": {
- "name": "wysokoniemiecki (Szwajcaria)"
+ "wo": {
+ "name": "wolof"
},
"yav": {
"name": "yangben"
diff --git a/vendor/commerceguys/intl/resources/language/ps.json b/vendor/commerceguys/intl/resources/language/ps.json
index 3a79f9815..616184b0a 100644
--- a/vendor/commerceguys/intl/resources/language/ps.json
+++ b/vendor/commerceguys/intl/resources/language/ps.json
@@ -1,12 +1,39 @@
{
- "as": {
- "name": "آسامي"
+ "de-AT": {
+ "name": "آسترالیا آلمان"
+ },
+ "az": {
+ "name": "اذربایجاني"
},
"hy": {
"name": "ارمني"
},
- "uz": {
- "name": "ازبکي"
+ "pt-PT": {
+ "name": "اروپايي پرتګالي"
+ },
+ "as": {
+ "name": "اسامي"
+ },
+ "eo": {
+ "name": "اسپرانتو"
+ },
+ "ast": {
+ "name": "استورياني"
+ },
+ "asa": {
+ "name": "اسويي"
+ },
+ "agq": {
+ "name": "اغیمي"
+ },
+ "af": {
+ "name": "افریکانسي"
+ },
+ "ak": {
+ "name": "اکاني"
+ },
+ "ig": {
+ "name": "اګبو"
},
"sq": {
"name": "الباني"
@@ -14,15 +41,15 @@
"de": {
"name": "الماني"
},
- "de-AT": {
- "name": "الماني (اتریش)"
- },
- "de-CH": {
- "name": "الماني (سویس)"
- },
"am": {
"name": "امهاري"
},
+ "smn": {
+ "name": "اناري سميع"
+ },
+ "id": {
+ "name": "انډونېزي"
+ },
"en": {
"name": "انګریزي"
},
@@ -35,598 +62,580 @@
"en-AU": {
"name": "انګریزي (AU)"
},
- "it": {
- "name": "ایټالوي"
- },
- "eu": {
- "name": "باسکي"
- },
- "bg": {
- "name": "بلغاري"
- },
- "bs": {
- "name": "بوسني"
- },
- "be": {
- "name": "بېلاروسي"
+ "or": {
+ "name": "اوڊيا"
},
- "ps": {
- "name": "پښتو"
+ "om": {
+ "name": "اورومو"
},
- "pt": {
- "name": "پورتګالي"
+ "uz": {
+ "name": "اوزبکي"
},
- "pt-PT": {
- "name": "پورتګالي (پورتګال)"
+ "os": {
+ "name": "اوسیٹک"
},
- "pl": {
- "name": "پولنډي"
+ "uk": {
+ "name": "اوکرانايي"
},
- "tk": {
- "name": "ترکمني"
+ "ewo": {
+ "name": "اوونڊو"
},
- "ja": {
- "name": "جاپانی"
+ "ug": {
+ "name": "اويغوري"
},
- "zh": {
- "name": "چیني"
+ "it": {
+ "name": "ایټالوي"
},
- "zh-Hans": {
- "name": "چیني (Hans)"
+ "is": {
+ "name": "ايسلنډي"
},
- "zh-Hant": {
- "name": "چیني (Hant)"
+ "ebu": {
+ "name": "ایمو"
},
- "et": {
- "name": "حبشي"
+ "ee": {
+ "name": "ايو"
},
- "ru": {
- "name": "روسي"
+ "ga": {
+ "name": "ائيرلېنډي"
},
- "sv": {
- "name": "سویډنی"
+ "bas": {
+ "name": "باسا"
},
- "he": {
- "name": "عبري"
+ "eu": {
+ "name": "باسکي"
},
- "ar": {
- "name": "عربي"
+ "bm": {
+ "name": "بامره"
},
- "fa": {
- "name": "فارسي"
+ "my": {
+ "name": "برمایی"
},
- "fr": {
- "name": "فرانسوي"
+ "br": {
+ "name": "برېتون"
},
- "fr-CH": {
- "name": "فرانسوي (سویس)"
+ "ksf": {
+ "name": "بفیا"
},
- "fr-CA": {
- "name": "فرانسوي (کاناډا)"
+ "bg": {
+ "name": "بلغاري"
},
- "fi": {
- "name": "فینلنډي"
+ "bn": {
+ "name": "بنگالي"
},
- "mn": {
- "name": "مغولي"
+ "brx": {
+ "name": "بودو"
},
- "mk": {
- "name": "مقدوني"
+ "bs": {
+ "name": "بوسني"
},
- "ms": {
- "name": "ملایا"
+ "bem": {
+ "name": "بیبا"
},
- "mg": {
- "name": "ملغاسي"
+ "be": {
+ "name": "بېلاروسي"
},
- "ne": {
- "name": "نېپالي"
+ "bez": {
+ "name": "بينا"
},
- "nl": {
- "name": "هالېنډي"
+ "prg": {
+ "name": "پروشين"
},
- "nl-BE": {
- "name": "هالېنډي (BE)"
+ "ps": {
+ "name": "پښتو"
},
- "hi": {
- "name": "هندي"
+ "pa": {
+ "name": "پنجابي"
},
- "el": {
- "name": "یوناني"
+ "pt": {
+ "name": "پورتګالي"
},
- "af": {
- "name": "Afrikaans"
+ "hsb": {
+ "name": "پورته صربي"
},
- "agq": {
- "name": "Aghem"
+ "pl": {
+ "name": "پولنډي"
},
- "ak": {
- "name": "Akan"
+ "tt": {
+ "name": "تاتار"
},
- "ast": {
- "name": "Asturian"
+ "tg": {
+ "name": "تاجکي"
},
- "asa": {
- "name": "Asu"
+ "shi": {
+ "name": "تاکلهیټ"
},
- "az": {
- "name": "Azerbaijani"
+ "ta": {
+ "name": "تامیل"
},
- "ksf": {
- "name": "Bafia"
+ "th": {
+ "name": "تايلېنډي"
},
- "bm": {
- "name": "Bambara"
+ "bo": {
+ "name": "تبتي"
},
- "bn": {
- "name": "Bangla"
+ "tk": {
+ "name": "ترکمني"
},
- "bas": {
- "name": "Basaa"
+ "tr": {
+ "name": "ترکي"
},
- "bem": {
- "name": "Bemba"
+ "twq": {
+ "name": "تساواق"
},
- "bez": {
- "name": "Bena"
+ "to": {
+ "name": "تونګان"
},
- "brx": {
- "name": "Bodo"
+ "teo": {
+ "name": "تیسو"
},
- "br": {
- "name": "Breton"
+ "ti": {
+ "name": "تيګريني"
},
- "my": {
- "name": "Burmese"
+ "te": {
+ "name": "تېليګو"
},
- "yue": {
- "name": "Cantonese"
+ "dav": {
+ "name": "ټایټا"
},
- "ca": {
- "name": "Catalan"
+ "ja": {
+ "name": "جاپاني"
},
- "tzm": {
- "name": "Central Atlas Tamazight"
+ "ka": {
+ "name": "جورجيائي"
},
- "ckb": {
- "name": "Central Kurdish"
+ "dyo": {
+ "name": "جولا فوني"
},
"ce": {
- "name": "Chechen"
+ "name": "چيچيني"
},
"chr": {
- "name": "Cherokee"
+ "name": "چېروکي"
},
- "cgg": {
- "name": "Chiga"
+ "cs": {
+ "name": "چېکي"
},
- "cu": {
- "name": "Church Slavic"
+ "cgg": {
+ "name": "چيگايي"
},
- "ksh": {
- "name": "Colognian"
+ "zh": {
+ "name": "چیني"
},
- "kw": {
- "name": "Cornish"
+ "et": {
+ "name": "حبشي"
},
- "hr": {
- "name": "Croatian"
+ "km": {
+ "name": "خمر"
},
- "cs": {
- "name": "Czech"
+ "cu": {
+ "name": "د کليسا سلاوي"
},
"da": {
- "name": "Danish"
+ "name": "دانمارکي"
},
"dua": {
- "name": "Duala"
- },
- "dz": {
- "name": "Dzongkha"
+ "name": "دوالا"
},
- "ebu": {
- "name": "Embu"
- },
- "es-MX": {
- "name": "es (MX)"
- },
- "eo": {
- "name": "Esperanto"
+ "zh-Hant": {
+ "name": "دوديزه چيني"
},
- "ee": {
- "name": "Ewe"
+ "ru": {
+ "name": "روسي"
},
- "ewo": {
- "name": "Ewondo"
+ "rm": {
+ "name": "رومانش"
},
- "fo": {
- "name": "Faroese"
+ "ro": {
+ "name": "روماني"
},
- "fil": {
- "name": "Filipino"
+ "ro-MD": {
+ "name": "روماني (مولدوا)"
},
- "fur": {
- "name": "Friulian"
+ "rof": {
+ "name": "رومبو"
},
- "ff": {
- "name": "Fulah"
+ "rn": {
+ "name": "رونډی"
},
- "gl": {
- "name": "Galician"
+ "dje": {
+ "name": "زرما"
},
- "lg": {
- "name": "Ganda"
+ "zu": {
+ "name": "زولو"
},
- "ka": {
- "name": "Georgian"
+ "dz": {
+ "name": "ژونگکه"
},
- "gu": {
- "name": "Gujarati"
+ "zh-Hans": {
+ "name": "ساده چيني"
},
- "guz": {
- "name": "Gusii"
+ "sg": {
+ "name": "سانګو"
},
- "ha": {
- "name": "Hausa"
+ "sbp": {
+ "name": "سانګوو"
},
- "haw": {
- "name": "Hawaiian"
+ "sah": {
+ "name": "سخا"
},
- "hu": {
- "name": "Hungarian"
+ "sr": {
+ "name": "سربيائي"
},
- "is": {
- "name": "Icelandic"
+ "gd": {
+ "name": "سکاټلېنډي ګېلک"
},
- "ig": {
- "name": "Igbo"
+ "sk": {
+ "name": "سلوواکي"
},
- "smn": {
- "name": "Inari Sami"
+ "sl": {
+ "name": "سلوواني"
},
- "id": {
- "name": "Indonesian"
+ "saq": {
+ "name": "سمبورو"
},
- "ga": {
- "name": "Irish"
+ "sd": {
+ "name": "سندهي"
},
- "dyo": {
- "name": "Jola-Fonyi"
+ "sw": {
+ "name": "سواهېلي"
},
- "kea": {
- "name": "Kabuverdianu"
+ "sw-CD": {
+ "name": "سواهېلي (کانګو - کینشاسا)"
},
- "kab": {
- "name": "Kabyle"
+ "xog": {
+ "name": "سوګا"
},
- "kkj": {
- "name": "Kako"
+ "so": {
+ "name": "سومالي"
},
- "kl": {
- "name": "Kalaallisut"
+ "sv": {
+ "name": "سویډنی"
},
- "kln": {
- "name": "Kalenjin"
+ "gsw": {
+ "name": "سویس جرمن"
},
- "kam": {
- "name": "Kamba"
+ "fr-CH": {
+ "name": "سویس فرانسي"
},
- "kn": {
- "name": "Kannada"
+ "de-CH": {
+ "name": "سوئس لوی جرمن"
},
- "ks": {
- "name": "Kashmiri"
+ "ii": {
+ "name": "سیچیان یی"
},
- "kk": {
- "name": "Kazakh"
+ "seh": {
+ "name": "سینا"
},
- "km": {
- "name": "Khmer"
+ "si": {
+ "name": "سينهالي"
},
- "ki": {
- "name": "Kikuyu"
+ "se": {
+ "name": "شمالي سامي"
},
- "rw": {
- "name": "Kinyarwanda"
+ "lrc": {
+ "name": "شمالي لوری"
},
- "kok": {
- "name": "Konkani"
+ "nd": {
+ "name": "شمالي نديبل"
},
- "ko": {
- "name": "Korean"
+ "ksb": {
+ "name": "شمبلا"
},
- "khq": {
- "name": "Koyra Chiini"
+ "sn": {
+ "name": "شونا"
},
- "ses": {
- "name": "Koyraboro Senni"
+ "he": {
+ "name": "عبري"
},
- "nmg": {
- "name": "Kwasio"
+ "ar": {
+ "name": "عربي"
},
- "ky": {
- "name": "Kyrgyz"
+ "fa": {
+ "name": "فارسي"
},
- "lkt": {
- "name": "Lakota"
+ "fo": {
+ "name": "فاروئې"
},
- "lag": {
- "name": "Langi"
+ "fr": {
+ "name": "فرانسوي"
},
- "lo": {
- "name": "Lao"
+ "fur": {
+ "name": "فرائیلیین"
},
- "lv": {
- "name": "Latvian"
+ "fy": {
+ "name": "فريزي"
},
- "ln": {
- "name": "Lingala"
+ "ff": {
+ "name": "فلاحہ"
},
- "lt": {
- "name": "Lithuanian"
+ "fil": {
+ "name": "فلیپیني"
},
- "dsb": {
- "name": "Lower Sorbian"
+ "nl-BE": {
+ "name": "فلېمېشي"
},
- "lu": {
- "name": "Luba-Katanga"
+ "fi": {
+ "name": "فینلنډي"
},
- "luo": {
- "name": "Luo"
+ "kk": {
+ "name": "قازق"
},
- "lb": {
- "name": "Luxembourgish"
+ "kea": {
+ "name": "کابوورډیانو"
},
- "luy": {
- "name": "Luyia"
+ "kkj": {
+ "name": "کاکو"
},
- "jmc": {
- "name": "Machame"
+ "kam": {
+ "name": "کامبا"
},
- "mgh": {
- "name": "Makhuwa-Meetto"
+ "fr-CA": {
+ "name": "کاناډا فرانسي"
},
- "kde": {
- "name": "Makonde"
+ "ca": {
+ "name": "کټلاني"
},
- "ml": {
- "name": "Malayalam"
+ "ky": {
+ "name": "کرګيز"
},
- "mt": {
- "name": "Maltese"
+ "kw": {
+ "name": "کرونيشي"
},
- "gv": {
- "name": "Manx"
+ "hr": {
+ "name": "کروواسي"
},
- "mr": {
- "name": "Marathi"
+ "ks": {
+ "name": "کشمیري"
},
- "mas": {
- "name": "Masai"
+ "ki": {
+ "name": "ککوؤو"
},
- "mzn": {
- "name": "Mazanderani"
+ "kl": {
+ "name": "کلالیسٹ"
},
- "mer": {
- "name": "Meru"
+ "kln": {
+ "name": "کلینجن"
},
- "mgo": {
- "name": "Metaʼ"
+ "kn": {
+ "name": "کنأډه"
},
- "mfe": {
- "name": "Morisyen"
+ "kok": {
+ "name": "کنکني"
},
- "mua": {
- "name": "Mundang"
+ "nmg": {
+ "name": "کواسیو"
},
- "naq": {
- "name": "Nama"
+ "ko": {
+ "name": "کوریایی"
},
- "nds-NL": {
- "name": "nds (هالېنډ)"
+ "ksh": {
+ "name": "کولوگنيسي"
},
- "nnh": {
- "name": "Ngiemboon"
+ "khq": {
+ "name": "کویرا چینی"
},
- "jgo": {
- "name": "Ngomba"
+ "ses": {
+ "name": "کوییرابورو سینی"
},
- "nd": {
- "name": "North Ndebele"
+ "kab": {
+ "name": "کیبیل"
},
- "lrc": {
- "name": "Northern Luri"
+ "qu": {
+ "name": "کېچوا"
},
- "se": {
- "name": "Northern Sami"
+ "rw": {
+ "name": "کینیارونډا"
},
- "nb": {
- "name": "Norwegian Bokmål"
+ "lg": {
+ "name": "ګانده"
},
- "nn": {
- "name": "Norwegian Nynorsk"
+ "gu": {
+ "name": "ګجراتي"
},
- "nus": {
- "name": "Nuer"
+ "gl": {
+ "name": "ګلېشيايي"
},
- "nyn": {
- "name": "Nyankole"
+ "guz": {
+ "name": "ګوسي"
},
- "or": {
- "name": "Odia"
+ "lo": {
+ "name": "لاو"
},
- "om": {
- "name": "Oromo"
+ "lkt": {
+ "name": "لکټو"
},
- "os": {
- "name": "Ossetic"
+ "ln": {
+ "name": "لنگلا"
},
- "prg": {
- "name": "Prussian"
+ "lag": {
+ "name": "لنګی"
},
- "pa": {
- "name": "Punjabi"
+ "luo": {
+ "name": "لو"
},
- "qu": {
- "name": "Quechua"
+ "lu": {
+ "name": "لوبا-کټنګا"
},
- "ro-MD": {
- "name": "ro (MD)"
+ "dsb": {
+ "name": "لوړې سربي"
},
- "ro": {
- "name": "Romanian"
+ "lb": {
+ "name": "لوګزامبورګي"
},
- "rm": {
- "name": "Romansh"
+ "luy": {
+ "name": "لویا"
},
- "rof": {
- "name": "Rombo"
+ "lt": {
+ "name": "ليتواني"
},
- "rn": {
- "name": "Rundi"
+ "lv": {
+ "name": "لېټواني"
},
- "rwk": {
- "name": "Rwa"
+ "jmc": {
+ "name": "ماچمی"
},
- "sah": {
- "name": "Sakha"
+ "mfe": {
+ "name": "ماریسیسن"
},
- "saq": {
- "name": "Samburu"
+ "mas": {
+ "name": "ماسائي"
},
- "sg": {
- "name": "Sango"
+ "kde": {
+ "name": "ماکډون"
},
- "sbp": {
- "name": "Sangu"
+ "ml": {
+ "name": "مالايالم"
},
- "gd": {
- "name": "Scottish Gaelic"
+ "mt": {
+ "name": "مالټايي"
},
- "seh": {
- "name": "Sena"
+ "mr": {
+ "name": "مراټهي"
},
- "sr": {
- "name": "Serbian"
+ "tzm": {
+ "name": "مرکزی اطلس تمازائيٹ"
},
- "ksb": {
- "name": "Shambala"
+ "mzn": {
+ "name": "مزاندراني"
},
- "sn": {
- "name": "Shona"
+ "zgh": {
+ "name": "معياري مراکش تمازټیټ"
},
- "ii": {
- "name": "Sichuan Yi"
+ "mk": {
+ "name": "مقدوني"
},
- "si": {
- "name": "Sinhala"
+ "es-MX": {
+ "name": "مکسیکو اسپانوی"
},
- "sk": {
- "name": "Slovak"
+ "mgh": {
+ "name": "مکھوامیتو"
},
- "sl": {
- "name": "Slovenian"
+ "ms": {
+ "name": "ملایا"
},
- "xog": {
- "name": "Soga"
+ "mg": {
+ "name": "ملغاسي"
},
- "so": {
- "name": "Somali"
+ "ckb": {
+ "name": "منځنۍ کوردي"
},
- "es": {
- "name": "Spanish"
+ "mua": {
+ "name": "مندانګ"
},
- "zgh": {
- "name": "Standard Moroccan Tamazight"
+ "mn": {
+ "name": "منګولیایی"
},
- "sw-CD": {
- "name": "sw (CD)"
+ "mgo": {
+ "name": "ميټا"
},
- "sw": {
- "name": "Swahili"
+ "mer": {
+ "name": "ميرو"
},
- "gsw": {
- "name": "Swiss German"
+ "gv": {
+ "name": "مینکس"
},
- "shi": {
- "name": "Tachelhit"
+ "nb": {
+ "name": "ناروې بوکمال"
},
- "dav": {
- "name": "Taita"
+ "nn": {
+ "name": "ناروېئي (نائنورسک)"
},
- "ta": {
- "name": "Tamil"
+ "naq": {
+ "name": "ناما"
},
- "twq": {
- "name": "Tasawaq"
+ "nnh": {
+ "name": "نایجیمون"
},
- "te": {
- "name": "Telugu"
+ "jgo": {
+ "name": "نګبا"
},
- "teo": {
- "name": "Teso"
+ "nus": {
+ "name": "نویر"
},
- "th": {
- "name": "Thai"
+ "ne": {
+ "name": "نېپالي"
},
- "bo": {
- "name": "Tibetan"
+ "nyn": {
+ "name": "نینکول"
},
- "ti": {
- "name": "Tigrinya"
+ "nl": {
+ "name": "هالېنډي"
},
- "to": {
- "name": "Tongan"
+ "es": {
+ "name": "هسپانوي"
},
- "tr": {
- "name": "Turkish"
+ "hi": {
+ "name": "هندي"
},
- "uk": {
- "name": "Ukrainian"
+ "hu": {
+ "name": "هنگري"
},
- "hsb": {
- "name": "Upper Sorbian"
+ "haw": {
+ "name": "هوایی"
},
- "ur": {
- "name": "Urdu"
+ "ha": {
+ "name": "هوسا"
},
- "ug": {
- "name": "Uyghur"
+ "vo": {
+ "name": "والاپوک"
},
"vai": {
- "name": "Vai"
+ "name": "وای"
},
- "vi": {
- "name": "Vietnamese"
+ "wae": {
+ "name": "ولسیر"
},
- "vo": {
- "name": "Volapük"
+ "wo": {
+ "name": "ولوف"
},
"vun": {
- "name": "Vunjo"
+ "name": "وونجو"
},
- "wae": {
- "name": "Walser"
+ "vi": {
+ "name": "وېتنامي"
},
"cy": {
- "name": "Welsh"
+ "name": "ويلشي"
},
- "fy": {
- "name": "Western Frisian"
+ "yi": {
+ "name": "يديش"
},
"yav": {
- "name": "Yangben"
- },
- "yi": {
- "name": "Yiddish"
+ "name": "ینګبین"
},
"yo": {
- "name": "Yoruba"
+ "name": "یوروبا"
},
- "dje": {
- "name": "Zarma"
+ "el": {
+ "name": "یوناني"
},
- "zu": {
- "name": "Zulu"
+ "nds-NL": {
+ "name": "nds (هالېنډ)"
+ },
+ "rwk": {
+ "name": "Rwa"
+ },
+ "ur": {
+ "name": "Urdu"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/pt-AO.json b/vendor/commerceguys/intl/resources/language/pt-AO.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-AO.json
+++ b/vendor/commerceguys/intl/resources/language/pt-AO.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-CH.json b/vendor/commerceguys/intl/resources/language/pt-CH.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-CH.json
+++ b/vendor/commerceguys/intl/resources/language/pt-CH.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-CV.json b/vendor/commerceguys/intl/resources/language/pt-CV.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-CV.json
+++ b/vendor/commerceguys/intl/resources/language/pt-CV.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-GQ.json b/vendor/commerceguys/intl/resources/language/pt-GQ.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-GQ.json
+++ b/vendor/commerceguys/intl/resources/language/pt-GQ.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-GW.json b/vendor/commerceguys/intl/resources/language/pt-GW.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-GW.json
+++ b/vendor/commerceguys/intl/resources/language/pt-GW.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-LU.json b/vendor/commerceguys/intl/resources/language/pt-LU.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-LU.json
+++ b/vendor/commerceguys/intl/resources/language/pt-LU.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-MO.json b/vendor/commerceguys/intl/resources/language/pt-MO.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-MO.json
+++ b/vendor/commerceguys/intl/resources/language/pt-MO.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-MZ.json b/vendor/commerceguys/intl/resources/language/pt-MZ.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-MZ.json
+++ b/vendor/commerceguys/intl/resources/language/pt-MZ.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-PT.json b/vendor/commerceguys/intl/resources/language/pt-PT.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-PT.json
+++ b/vendor/commerceguys/intl/resources/language/pt-PT.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-ST.json b/vendor/commerceguys/intl/resources/language/pt-ST.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-ST.json
+++ b/vendor/commerceguys/intl/resources/language/pt-ST.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt-TL.json b/vendor/commerceguys/intl/resources/language/pt-TL.json
index 55b7c2234..2c57c321c 100644
--- a/vendor/commerceguys/intl/resources/language/pt-TL.json
+++ b/vendor/commerceguys/intl/resources/language/pt-TL.json
@@ -98,9 +98,6 @@
"kn": {
"name": "canarim"
},
- "yue": {
- "name": "cantonês"
- },
"ca": {
"name": "catalão"
},
@@ -320,9 +317,6 @@
"km": {
"name": "khmer"
},
- "rw": {
- "name": "kinyarwanda"
- },
"ksh": {
"name": "kölsch"
},
@@ -485,6 +479,9 @@
"ki": {
"name": "quicuio"
},
+ "rw": {
+ "name": "quiniaruanda"
+ },
"ky": {
"name": "quirguiz"
},
@@ -536,6 +533,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"xog": {
"name": "soga"
},
@@ -563,6 +563,9 @@
"dav": {
"name": "taita"
},
+ "tg": {
+ "name": "tajique"
+ },
"tzm": {
"name": "tamazight do Atlas Central"
},
@@ -575,6 +578,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -602,6 +608,9 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uólofe"
+ },
"ur": {
"name": "urdu"
},
diff --git a/vendor/commerceguys/intl/resources/language/pt.json b/vendor/commerceguys/intl/resources/language/pt.json
index c28da7812..a6d85790e 100644
--- a/vendor/commerceguys/intl/resources/language/pt.json
+++ b/vendor/commerceguys/intl/resources/language/pt.json
@@ -99,10 +99,7 @@
"name": "búlgaro"
},
"kn": {
- "name": "canarês"
- },
- "yue": {
- "name": "cantonês"
+ "name": "canarim"
},
"ca": {
"name": "catalão"
@@ -146,6 +143,9 @@
"hr": {
"name": "croata"
},
+ "ckb": {
+ "name": "curdo central"
+ },
"da": {
"name": "dinamarquês"
},
@@ -257,11 +257,8 @@
"hu": {
"name": "húngaro"
},
- "sah": {
- "name": "iacuto"
- },
"ig": {
- "name": "ibo"
+ "name": "igbo"
},
"yi": {
"name": "iídiche"
@@ -396,7 +393,7 @@
"name": "manx"
},
"mr": {
- "name": "marata"
+ "name": "marati"
},
"mas": {
"name": "massai"
@@ -429,7 +426,7 @@
"name": "ndebele do norte"
},
"ne": {
- "name": "nepali"
+ "name": "nepalês"
},
"nnh": {
"name": "ngiemboon"
@@ -447,7 +444,7 @@
"name": "nynorsk norueguês"
},
"or": {
- "name": "oriya"
+ "name": "oriá"
},
"om": {
"name": "oromo"
@@ -506,6 +503,9 @@
"rwk": {
"name": "rwa"
},
+ "sah": {
+ "name": "sakha"
+ },
"saq": {
"name": "samburu"
},
@@ -530,18 +530,15 @@
"ksb": {
"name": "shambala"
},
- "sn": {
- "name": "shona"
- },
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindi"
+ },
"so": {
"name": "somali"
},
- "ckb": {
- "name": "sorâni curdo"
- },
"sw": {
"name": "suaíli"
},
@@ -554,6 +551,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadjique"
+ },
"th": {
"name": "tailandês"
},
@@ -561,14 +561,17 @@
"name": "taita"
},
"tzm": {
- "name": "tamazight do Atlas Central"
+ "name": "tamazirte do Atlas Central"
},
"zgh": {
- "name": "tamazight marroquino padrão"
+ "name": "tamazirte marroqino padrão"
},
"ta": {
"name": "tâmil"
},
+ "tt": {
+ "name": "tártaro"
+ },
"twq": {
"name": "tasawaq"
},
@@ -576,7 +579,7 @@
"name": "tcheco"
},
"te": {
- "name": "telugu"
+ "name": "télugo"
},
"teo": {
"name": "teso"
@@ -585,7 +588,7 @@
"name": "tibetano"
},
"ti": {
- "name": "tigrínio"
+ "name": "tigrínia"
},
"to": {
"name": "tonganês"
@@ -602,11 +605,14 @@
"ug": {
"name": "uigur"
},
+ "wo": {
+ "name": "uolofe"
+ },
"ur": {
"name": "urdu"
},
"uz": {
- "name": "usbeque"
+ "name": "uzbeque"
},
"vai": {
"name": "Vai"
@@ -623,6 +629,9 @@
"wae": {
"name": "walser"
},
+ "sn": {
+ "name": "xona"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/qu.json b/vendor/commerceguys/intl/resources/language/qu.json
index 0e4cfe19f..e03cfc186 100644
--- a/vendor/commerceguys/intl/resources/language/qu.json
+++ b/vendor/commerceguys/intl/resources/language/qu.json
@@ -86,9 +86,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan Simi"
},
@@ -533,6 +530,9 @@
"sn": {
"name": "Shona"
},
+ "sd": {
+ "name": "Sindhi Simi"
+ },
"xog": {
"name": "Soga"
},
@@ -563,9 +563,15 @@
"ta": {
"name": "Tamil Simi"
},
+ "tt": {
+ "name": "Tartaro Simi"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tg": {
+ "name": "Tayiko Simi"
+ },
"te": {
"name": "Telugu Simi"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof Simi"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/rm.json b/vendor/commerceguys/intl/resources/language/rm.json
index d1366d1f2..fd5d8bda6 100644
--- a/vendor/commerceguys/intl/resources/language/rm.json
+++ b/vendor/commerceguys/intl/resources/language/rm.json
@@ -86,9 +86,6 @@
"km": {
"name": "cambodschan"
},
- "yue": {
- "name": "Cantonese"
- },
"kk": {
"name": "casac"
},
@@ -497,6 +494,9 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singalais"
},
@@ -536,6 +536,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "tadjik"
+ },
"th": {
"name": "tailandais"
},
@@ -551,6 +554,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "tatar"
+ },
"te": {
"name": "telugu"
},
@@ -620,6 +626,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/rn.json b/vendor/commerceguys/intl/resources/language/rn.json
index 534927a56..5ade2c49d 100644
--- a/vendor/commerceguys/intl/resources/language/rn.json
+++ b/vendor/commerceguys/intl/resources/language/rn.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ro-MD.json b/vendor/commerceguys/intl/resources/language/ro-MD.json
index afb18b5ac..ab7595ede 100644
--- a/vendor/commerceguys/intl/resources/language/ro-MD.json
+++ b/vendor/commerceguys/intl/resources/language/ro-MD.json
@@ -71,9 +71,6 @@
"bg": {
"name": "bulgară"
},
- "yue": {
- "name": "cantoneză"
- },
"ks": {
"name": "cașmiră"
},
@@ -389,9 +386,6 @@
"mgo": {
"name": "meta’"
},
- "ro-MD": {
- "name": "moldovenească"
- },
"mn": {
"name": "mongolă"
},
@@ -432,7 +426,7 @@
"name": "nyankole"
},
"or": {
- "name": "oriya"
+ "name": "odia"
},
"om": {
"name": "oromo"
@@ -470,6 +464,9 @@
"ro": {
"name": "română"
},
+ "ro-MD": {
+ "name": "română (Republica Moldova)"
+ },
"rof": {
"name": "rombo"
},
@@ -512,8 +509,11 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
- "name": "singaleză"
+ "name": "singhaleză"
},
"cu": {
"name": "slavonă"
@@ -554,6 +554,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadjică"
+ },
"dav": {
"name": "taita"
},
@@ -569,6 +572,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tătară"
+ },
"te": {
"name": "telugu"
},
@@ -620,6 +626,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ro.json b/vendor/commerceguys/intl/resources/language/ro.json
index 725e07267..55ec7b7bc 100644
--- a/vendor/commerceguys/intl/resources/language/ro.json
+++ b/vendor/commerceguys/intl/resources/language/ro.json
@@ -71,9 +71,6 @@
"bg": {
"name": "bulgară"
},
- "yue": {
- "name": "cantoneză"
- },
"ks": {
"name": "cașmiră"
},
@@ -389,9 +386,6 @@
"mgo": {
"name": "meta’"
},
- "ro-MD": {
- "name": "moldovenească"
- },
"mn": {
"name": "mongolă"
},
@@ -432,7 +426,7 @@
"name": "nyankole"
},
"or": {
- "name": "oriya"
+ "name": "odia"
},
"om": {
"name": "oromo"
@@ -470,6 +464,9 @@
"ro": {
"name": "română"
},
+ "ro-MD": {
+ "name": "română (Republica Moldova)"
+ },
"rof": {
"name": "rombo"
},
@@ -512,8 +509,11 @@
"ii": {
"name": "sichuan yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
- "name": "singaleză"
+ "name": "singhaleză"
},
"cu": {
"name": "slavonă"
@@ -554,6 +554,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadjică"
+ },
"dav": {
"name": "taita"
},
@@ -569,6 +572,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tătară"
+ },
"te": {
"name": "telugu"
},
@@ -620,6 +626,9 @@
"wae": {
"name": "walser"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/rof.json b/vendor/commerceguys/intl/resources/language/rof.json
index 8133c82f9..46db05198 100644
--- a/vendor/commerceguys/intl/resources/language/rof.json
+++ b/vendor/commerceguys/intl/resources/language/rof.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ru.json b/vendor/commerceguys/intl/resources/language/ru.json
index 28e8daafa..c751ee674 100644
--- a/vendor/commerceguys/intl/resources/language/ru.json
+++ b/vendor/commerceguys/intl/resources/language/ru.json
@@ -6,7 +6,7 @@
"name": "австрийский немецкий"
},
"agq": {
- "name": "агхем"
+ "name": "агем"
},
"az": {
"name": "азербайджанский"
@@ -101,6 +101,9 @@
"vo": {
"name": "волапюк"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунджо"
},
@@ -153,7 +156,7 @@
"name": "европейский португальский"
},
"fy": {
- "name": "западный фризский"
+ "name": "западнофризский"
},
"zu": {
"name": "зулу"
@@ -215,9 +218,6 @@
"kn": {
"name": "каннада"
},
- "yue": {
- "name": "кантонский"
- },
"ca": {
"name": "каталанский"
},
@@ -461,6 +461,9 @@
"sbp": {
"name": "сангу"
},
+ "sah": {
+ "name": "саха"
+ },
"lrc": {
"name": "севернолурский"
},
@@ -479,6 +482,9 @@
"si": {
"name": "сингальский"
},
+ "sd": {
+ "name": "синдхи"
+ },
"sk": {
"name": "словацкий"
},
@@ -500,6 +506,9 @@
"sw": {
"name": "суахили"
},
+ "tg": {
+ "name": "таджикский"
+ },
"dav": {
"name": "таита"
},
@@ -515,6 +524,9 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татарский"
+ },
"shi": {
"name": "ташельхит"
},
@@ -623,9 +635,6 @@
"et": {
"name": "эстонский"
},
- "sah": {
- "name": "якутский"
- },
"yav": {
"name": "янгбен"
},
diff --git a/vendor/commerceguys/intl/resources/language/rw.json b/vendor/commerceguys/intl/resources/language/rw.json
index b274aa833..fa2e54caf 100644
--- a/vendor/commerceguys/intl/resources/language/rw.json
+++ b/vendor/commerceguys/intl/resources/language/rw.json
@@ -32,9 +32,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -191,6 +188,9 @@
"sk": {
"name": "Igisilovaki"
},
+ "sd": {
+ "name": "Igisindi"
+ },
"so": {
"name": "Igisomali"
},
@@ -270,7 +270,7 @@
"name": "Ikimarati"
},
"mk": {
- "name": "Ikimasedoniyani"
+ "name": "Ikimasedoniya"
},
"mn": {
"name": "Ikimongoli"
@@ -584,9 +584,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"teo": {
"name": "Teso"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/rwk.json b/vendor/commerceguys/intl/resources/language/rwk.json
index a5fbdae04..62ed95abc 100644
--- a/vendor/commerceguys/intl/resources/language/rwk.json
+++ b/vendor/commerceguys/intl/resources/language/rwk.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/sah.json b/vendor/commerceguys/intl/resources/language/sah.json
index 1fffda7da..7bba01ade 100644
--- a/vendor/commerceguys/intl/resources/language/sah.json
+++ b/vendor/commerceguys/intl/resources/language/sah.json
@@ -38,9 +38,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -353,6 +350,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -434,6 +434,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
@@ -587,9 +590,15 @@
"sk": {
"name": "Словаактыы"
},
+ "tg": {
+ "name": "Тадьыыктыы"
+ },
"ta": {
"name": "Тамыллыы"
},
+ "tt": {
+ "name": "Татаардыы"
+ },
"bo": {
"name": "Тибиэттии"
},
diff --git a/vendor/commerceguys/intl/resources/language/saq.json b/vendor/commerceguys/intl/resources/language/saq.json
index 9f11a3836..8d25d35f2 100644
--- a/vendor/commerceguys/intl/resources/language/saq.json
+++ b/vendor/commerceguys/intl/resources/language/saq.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/sbp.json b/vendor/commerceguys/intl/resources/language/sbp.json
index b180e9e97..265ee4c2c 100644
--- a/vendor/commerceguys/intl/resources/language/sbp.json
+++ b/vendor/commerceguys/intl/resources/language/sbp.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/sd.json b/vendor/commerceguys/intl/resources/language/sd.json
new file mode 100644
index 000000000..961d66058
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/sd.json
@@ -0,0 +1,641 @@
+{
+ "en-AU": {
+ "name": "en (آسٽريليا)"
+ },
+ "nds-NL": {
+ "name": "nds (نيدرلينڊ)"
+ },
+ "ga": {
+ "name": "آئرش"
+ },
+ "is": {
+ "name": "آئيس لينڊڪ"
+ },
+ "az": {
+ "name": "آزربائيجاني"
+ },
+ "as": {
+ "name": "آسامي"
+ },
+ "de-AT": {
+ "name": "آسٽريائي جرمن"
+ },
+ "af": {
+ "name": "آفريڪي"
+ },
+ "hsb": {
+ "name": "اپر سربيائي"
+ },
+ "nd": {
+ "name": "اتر دبيلي"
+ },
+ "se": {
+ "name": "اتر سامي"
+ },
+ "lrc": {
+ "name": "اتر لوري"
+ },
+ "ur": {
+ "name": "اردو"
+ },
+ "hy": {
+ "name": "ارماني"
+ },
+ "uz": {
+ "name": "ازبڪ"
+ },
+ "es": {
+ "name": "اسپيني"
+ },
+ "es-MX": {
+ "name": "اسپيني (ميڪسيڪو)"
+ },
+ "ast": {
+ "name": "اسٽورين"
+ },
+ "gd": {
+ "name": "اسڪاٽش گيلڪ"
+ },
+ "asa": {
+ "name": "اسو"
+ },
+ "it": {
+ "name": "اطالوي"
+ },
+ "ak": {
+ "name": "اڪان"
+ },
+ "ki": {
+ "name": "اڪويو"
+ },
+ "ig": {
+ "name": "اگبو"
+ },
+ "agq": {
+ "name": "اگهيم"
+ },
+ "sq": {
+ "name": "الباني"
+ },
+ "am": {
+ "name": "امهاري"
+ },
+ "smn": {
+ "name": "اناري سامي"
+ },
+ "id": {
+ "name": "انڊونيشي"
+ },
+ "en": {
+ "name": "انگريزي"
+ },
+ "en-GB": {
+ "name": "انگريزي (برطانيه)"
+ },
+ "en-CA": {
+ "name": "انگريزي (ڪئناڊا)"
+ },
+ "ewo": {
+ "name": "اوانڊو"
+ },
+ "or": {
+ "name": "اوڊيا"
+ },
+ "om": {
+ "name": "اورومو"
+ },
+ "os": {
+ "name": "اوسيٽڪ"
+ },
+ "eo": {
+ "name": "ايسپرانٽو"
+ },
+ "et": {
+ "name": "ايستونائي"
+ },
+ "ebu": {
+ "name": "ايمبيو"
+ },
+ "ee": {
+ "name": "ايو"
+ },
+ "bas": {
+ "name": "باسا"
+ },
+ "eu": {
+ "name": "باسڪي"
+ },
+ "ksf": {
+ "name": "بافيا"
+ },
+ "my": {
+ "name": "برمي"
+ },
+ "br": {
+ "name": "بريٽن"
+ },
+ "bg": {
+ "name": "بلغاريائي"
+ },
+ "bm": {
+ "name": "بمبارا"
+ },
+ "bn": {
+ "name": "بنگلا"
+ },
+ "brx": {
+ "name": "بودو"
+ },
+ "bs": {
+ "name": "بوسنيائي"
+ },
+ "be": {
+ "name": "بيلاروسي"
+ },
+ "bem": {
+ "name": "بيمبا"
+ },
+ "bez": {
+ "name": "بينا"
+ },
+ "pt": {
+ "name": "پرتگالي"
+ },
+ "prg": {
+ "name": "پرشن"
+ },
+ "ps": {
+ "name": "پشتو"
+ },
+ "pa": {
+ "name": "پنجابي"
+ },
+ "pl": {
+ "name": "پولش"
+ },
+ "dav": {
+ "name": "تائيتا"
+ },
+ "tt": {
+ "name": "تاتري"
+ },
+ "tg": {
+ "name": "تاجڪي"
+ },
+ "ta": {
+ "name": "تامل"
+ },
+ "bo": {
+ "name": "تبيتائي"
+ },
+ "tr": {
+ "name": "ترڪ"
+ },
+ "tk": {
+ "name": "ترڪماني"
+ },
+ "twq": {
+ "name": "تساوڪي"
+ },
+ "ti": {
+ "name": "تگرينيائي"
+ },
+ "te": {
+ "name": "تلگو"
+ },
+ "to": {
+ "name": "تونگن"
+ },
+ "shi": {
+ "name": "تيچل هاتي"
+ },
+ "teo": {
+ "name": "تيسو"
+ },
+ "th": {
+ "name": "ٿائي"
+ },
+ "ja": {
+ "name": "جاپاني"
+ },
+ "ka": {
+ "name": "جارجين"
+ },
+ "de": {
+ "name": "جرمن"
+ },
+ "de-CH": {
+ "name": "جرمن (سئيٽرزلينڊ)"
+ },
+ "dyo": {
+ "name": "جولا فوني"
+ },
+ "cu": {
+ "name": "چرچ سلاوی"
+ },
+ "chr": {
+ "name": "چروڪي"
+ },
+ "cgg": {
+ "name": "چگا"
+ },
+ "cs": {
+ "name": "چيڪ"
+ },
+ "zh": {
+ "name": "چيني"
+ },
+ "zh-Hans": {
+ "name": "چيني (آسان ڪيل)"
+ },
+ "zh-Hant": {
+ "name": "چيني (روايتي)"
+ },
+ "ce": {
+ "name": "چیچن"
+ },
+ "km": {
+ "name": "خمر"
+ },
+ "nl": {
+ "name": "ڊچ"
+ },
+ "da": {
+ "name": "ڊينش"
+ },
+ "dua": {
+ "name": "ڊيولا"
+ },
+ "rwk": {
+ "name": "روا"
+ },
+ "ru": {
+ "name": "روسي"
+ },
+ "rm": {
+ "name": "رومانش"
+ },
+ "ro": {
+ "name": "روماني"
+ },
+ "rof": {
+ "name": "رومبو"
+ },
+ "rn": {
+ "name": "رونڊي"
+ },
+ "dje": {
+ "name": "زارما"
+ },
+ "zu": {
+ "name": "زولو"
+ },
+ "dz": {
+ "name": "زونخا"
+ },
+ "sah": {
+ "name": "ساخا"
+ },
+ "sg": {
+ "name": "سانگو"
+ },
+ "sbp": {
+ "name": "سانگوو"
+ },
+ "ii": {
+ "name": "سچوان يي"
+ },
+ "sr": {
+ "name": "سربيائي"
+ },
+ "sk": {
+ "name": "سلواڪي"
+ },
+ "sl": {
+ "name": "سلوويني"
+ },
+ "sd": {
+ "name": "سنڌي"
+ },
+ "si": {
+ "name": "سنهالا"
+ },
+ "gsw": {
+ "name": "سوئس جرمن"
+ },
+ "sw": {
+ "name": "سواحيلي"
+ },
+ "xog": {
+ "name": "سوگا"
+ },
+ "so": {
+ "name": "سومالي"
+ },
+ "sv": {
+ "name": "سويڊني"
+ },
+ "saq": {
+ "name": "سيمبورو"
+ },
+ "seh": {
+ "name": "سينا"
+ },
+ "ksb": {
+ "name": "شمبالا"
+ },
+ "sn": {
+ "name": "شونا"
+ },
+ "he": {
+ "name": "عبراني"
+ },
+ "ar": {
+ "name": "عربي"
+ },
+ "fa": {
+ "name": "فارسي"
+ },
+ "fur": {
+ "name": "فرائي لئين"
+ },
+ "fr": {
+ "name": "فرانسي"
+ },
+ "fr-CH": {
+ "name": "فرانسي (سئيٽرزلينڊ)"
+ },
+ "fr-CA": {
+ "name": "فرانسي (ڪئناڊا)"
+ },
+ "ff": {
+ "name": "فلاهه"
+ },
+ "fil": {
+ "name": "فلپائني"
+ },
+ "nl-BE": {
+ "name": "فلیمش"
+ },
+ "fi": {
+ "name": "فنش"
+ },
+ "fo": {
+ "name": "فيروايس"
+ },
+ "kk": {
+ "name": "قازق"
+ },
+ "kam": {
+ "name": "ڪئمبا"
+ },
+ "kl": {
+ "name": "ڪالا ليسٽ"
+ },
+ "kab": {
+ "name": "ڪبائل"
+ },
+ "ky": {
+ "name": "ڪرغيز"
+ },
+ "hr": {
+ "name": "ڪروشيائي"
+ },
+ "ks": {
+ "name": "ڪشميري"
+ },
+ "kkj": {
+ "name": "ڪڪو"
+ },
+ "ksh": {
+ "name": "ڪلونئين"
+ },
+ "kn": {
+ "name": "ڪناڊا"
+ },
+ "rw": {
+ "name": "ڪنيار وانڊا"
+ },
+ "kw": {
+ "name": "ڪورنش"
+ },
+ "ko": {
+ "name": "ڪوريائي"
+ },
+ "kok": {
+ "name": "ڪونڪي"
+ },
+ "sw-CD": {
+ "name": "ڪونگو سواحيلي"
+ },
+ "nmg": {
+ "name": "ڪويسيو"
+ },
+ "kea": {
+ "name": "ڪيبيو ويرڊيانو"
+ },
+ "ca": {
+ "name": "ڪيٽالان"
+ },
+ "qu": {
+ "name": "ڪيچوا"
+ },
+ "kln": {
+ "name": "ڪيلين جن"
+ },
+ "khq": {
+ "name": "ڪيورا چني"
+ },
+ "ses": {
+ "name": "ڪيورابورو سيني"
+ },
+ "lg": {
+ "name": "گاندا"
+ },
+ "gu": {
+ "name": "گجراتي"
+ },
+ "guz": {
+ "name": "گشي"
+ },
+ "gl": {
+ "name": "گليشئين"
+ },
+ "lo": {
+ "name": "لائو"
+ },
+ "lv": {
+ "name": "لاتوين"
+ },
+ "lag": {
+ "name": "لانگي"
+ },
+ "lkt": {
+ "name": "لڪوٽا"
+ },
+ "lb": {
+ "name": "لگزمبرگ"
+ },
+ "ln": {
+ "name": "لنگالا"
+ },
+ "luo": {
+ "name": "لو"
+ },
+ "dsb": {
+ "name": "لوئر سوربين"
+ },
+ "lu": {
+ "name": "لوبا-ڪتانگا"
+ },
+ "luy": {
+ "name": "لوهيا"
+ },
+ "lt": {
+ "name": "ليٿونيائي"
+ },
+ "mt": {
+ "name": "مالٽي"
+ },
+ "ro-MD": {
+ "name": "مالديوي"
+ },
+ "mgh": {
+ "name": "مخووا ميتو"
+ },
+ "mr": {
+ "name": "مراٺي"
+ },
+ "ckb": {
+ "name": "مرڪزي ڪردش"
+ },
+ "mzn": {
+ "name": "مزيندراني"
+ },
+ "mas": {
+ "name": "مسائي"
+ },
+ "zgh": {
+ "name": "معياري مراڪشي تامازائيٽ"
+ },
+ "fy": {
+ "name": "مغربي فريشن"
+ },
+ "kde": {
+ "name": "مڪوندي"
+ },
+ "mg": {
+ "name": "ملاگاسي"
+ },
+ "ms": {
+ "name": "ملي"
+ },
+ "ml": {
+ "name": "مليالم"
+ },
+ "mua": {
+ "name": "من دانگ"
+ },
+ "mn": {
+ "name": "منگولي"
+ },
+ "mfe": {
+ "name": "موریسیین"
+ },
+ "mgo": {
+ "name": "ميتا"
+ },
+ "mer": {
+ "name": "ميرو"
+ },
+ "mk": {
+ "name": "ميسي ڊونيائي"
+ },
+ "jmc": {
+ "name": "ميڪم"
+ },
+ "gv": {
+ "name": "مينڪس"
+ },
+ "nb": {
+ "name": "نارويائي بوڪمال"
+ },
+ "nn": {
+ "name": "نارويائي نيوناسڪ"
+ },
+ "naq": {
+ "name": "ناما"
+ },
+ "nyn": {
+ "name": "نايانڪول"
+ },
+ "jgo": {
+ "name": "نغومبا"
+ },
+ "nnh": {
+ "name": "نغيمبون"
+ },
+ "ne": {
+ "name": "نيپالي"
+ },
+ "nus": {
+ "name": "نيور"
+ },
+ "hi": {
+ "name": "هندي"
+ },
+ "hu": {
+ "name": "هنگري"
+ },
+ "haw": {
+ "name": "هوائي"
+ },
+ "ha": {
+ "name": "هوسا"
+ },
+ "vo": {
+ "name": "والپڪ"
+ },
+ "wae": {
+ "name": "والسر"
+ },
+ "tzm": {
+ "name": "وچ اٽلس تمازائيٽ"
+ },
+ "vun": {
+ "name": "ونجو"
+ },
+ "wo": {
+ "name": "وولف"
+ },
+ "vi": {
+ "name": "ويتنامي"
+ },
+ "cy": {
+ "name": "ويلش"
+ },
+ "vai": {
+ "name": "يا"
+ },
+ "yav": {
+ "name": "يانگ بين"
+ },
+ "yi": {
+ "name": "يدش"
+ },
+ "pt-PT": {
+ "name": "يورپي پرتگالي"
+ },
+ "yo": {
+ "name": "يوروبا"
+ },
+ "ug": {
+ "name": "يوغور"
+ },
+ "uk": {
+ "name": "يوڪراني"
+ },
+ "el": {
+ "name": "يوناني"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/se-FI.json b/vendor/commerceguys/intl/resources/language/se-FI.json
index d3d3b3695..c520bb347 100644
--- a/vendor/commerceguys/intl/resources/language/se-FI.json
+++ b/vendor/commerceguys/intl/resources/language/se-FI.json
@@ -248,9 +248,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "kantongiella"
- },
"ks": {
"name": "Kashmiri"
},
@@ -506,6 +503,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/se.json b/vendor/commerceguys/intl/resources/language/se.json
index e4a03526e..e53909662 100644
--- a/vendor/commerceguys/intl/resources/language/se.json
+++ b/vendor/commerceguys/intl/resources/language/se.json
@@ -257,9 +257,6 @@
"kn": {
"name": "Kannada"
},
- "yue": {
- "name": "kantongiella"
- },
"ks": {
"name": "Kashmiri"
},
@@ -509,6 +506,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/seh.json b/vendor/commerceguys/intl/resources/language/seh.json
index e4504b2fe..fbfcd6f1e 100644
--- a/vendor/commerceguys/intl/resources/language/seh.json
+++ b/vendor/commerceguys/intl/resources/language/seh.json
@@ -80,9 +80,6 @@
"bg": {
"name": "búlgaro"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -512,6 +509,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "tâmil"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"cs": {
"name": "tcheco"
},
@@ -617,6 +623,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ses.json b/vendor/commerceguys/intl/resources/language/ses.json
index 1ae72fb47..c6ab901fb 100644
--- a/vendor/commerceguys/intl/resources/language/ses.json
+++ b/vendor/commerceguys/intl/resources/language/ses.json
@@ -77,9 +77,6 @@
"my": {
"name": "Burme senni"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -503,6 +500,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil senni"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/sg.json b/vendor/commerceguys/intl/resources/language/sg.json
index 6359b8c4c..0c4568845 100644
--- a/vendor/commerceguys/intl/resources/language/sg.json
+++ b/vendor/commerceguys/intl/resources/language/sg.json
@@ -80,9 +80,6 @@
"bg": {
"name": "Bulugäri"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -497,6 +494,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -533,12 +533,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tämûli"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -602,6 +608,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/shi-Latn.json b/vendor/commerceguys/intl/resources/language/shi-Latn.json
index 69daaab09..b66a620fc 100644
--- a/vendor/commerceguys/intl/resources/language/shi-Latn.json
+++ b/vendor/commerceguys/intl/resources/language/shi-Latn.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -374,6 +371,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -473,6 +473,9 @@
"ja": {
"name": "Tajabbunit"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ak": {
"name": "Takant"
},
@@ -548,6 +551,9 @@
"ta": {
"name": "Tatamilt"
},
+ "tt": {
+ "name": "Tatar"
+ },
"th": {
"name": "Tataylandit"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/shi.json b/vendor/commerceguys/intl/resources/language/shi.json
index 02f466464..6e0f7438e 100644
--- a/vendor/commerceguys/intl/resources/language/shi.json
+++ b/vendor/commerceguys/intl/resources/language/shi.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -374,6 +371,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -401,9 +401,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -449,6 +455,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/si.json b/vendor/commerceguys/intl/resources/language/si.json
index 688c40329..627b5d545 100644
--- a/vendor/commerceguys/intl/resources/language/si.json
+++ b/vendor/commerceguys/intl/resources/language/si.json
@@ -2,9 +2,6 @@
"ak": {
"name": "අකාන්"
},
- "af": {
- "name": "අප්‍රිකානු"
- },
"ga": {
"name": "අයර්ලන්ත"
},
@@ -20,6 +17,9 @@
"asa": {
"name": "අසු"
},
+ "af": {
+ "name": "අෆ්රිකාන්ස්"
+ },
"hy": {
"name": "ආර්මේනියානු"
},
@@ -33,7 +33,7 @@
"name": "ඇල්බේනියානු"
},
"as": {
- "name": "ඇසමියානු"
+ "name": "ඇසෑම්"
},
"ast": {
"name": "ඇස්ටියුරියන්"
@@ -111,7 +111,7 @@
"name": "කණ්ණඩ"
},
"kea": {
- "name": "කබුවෙර්ඩියානෝ"
+ "name": "කබුවෙර්ඩියානු"
},
"km": {
"name": "කමර්"
@@ -125,6 +125,9 @@
"kk": {
"name": "කසාඛ්"
},
+ "kab": {
+ "name": "කාබිල්"
+ },
"ks": {
"name": "කාෂ්මීර්"
},
@@ -137,12 +140,6 @@
"fr-CA": {
"name": "කැනේඩියානු ප්‍රංශ"
},
- "yue": {
- "name": "කැන්ටොනීස්"
- },
- "kab": {
- "name": "කැබලා"
- },
"kam": {
"name": "කැම්බා"
},
@@ -158,6 +155,9 @@
"nmg": {
"name": "කුවාසිඔ"
},
+ "sw-CD": {
+ "name": "කොංගෝ ස්වාහිලි"
+ },
"kok": {
"name": "කොන්කනි"
},
@@ -170,15 +170,15 @@
"ksh": {
"name": "කොලොග්නියන්"
},
+ "hr": {
+ "name": "කෝඒෂියානු"
+ },
"kw": {
"name": "කෝනීසියානු"
},
"ses": {
"name": "කෝයිරාබොරො සෙන්නි"
},
- "hr": {
- "name": "ක්‍රෝයේශියානු"
- },
"qu": {
"name": "ක්වීචුවා"
},
@@ -206,12 +206,12 @@
"zh": {
"name": "චීන"
},
+ "cs": {
+ "name": "චෙක්"
+ },
"ce": {
"name": "චෙච්නියානු"
},
- "cs": {
- "name": "චෙත්"
- },
"chr": {
"name": "චෙරොකී"
},
@@ -230,6 +230,9 @@
"shi": {
"name": "ටචේල්හිට්"
},
+ "tg": {
+ "name": "ටජික්"
+ },
"dav": {
"name": "ටයිටා"
},
@@ -239,6 +242,9 @@
"twq": {
"name": "ටසවාක්"
},
+ "tt": {
+ "name": "ටාටර්"
+ },
"ti": {
"name": "ටිග්‍රින්යා"
},
@@ -273,7 +279,7 @@
"name": "දෙමළ"
},
"nyn": {
- "name": "නයන්කොළේ"
+ "name": "නයන්කෝලෙ"
},
"naq": {
"name": "නාමා"
@@ -288,10 +294,10 @@
"name": "නොයර්"
},
"nn": {
- "name": "නොවේර්ජියානු නයිනෝර්ස්ක්"
+ "name": "නෝර්වීජියානු නයිනෝර්ස්ක්"
},
"nb": {
- "name": "නෝවේජියානු බොක්මාල්"
+ "name": "නෝර්වීජියානු බොක්මල්"
},
"nnh": {
"name": "න්ගියාම්බූන්"
@@ -341,6 +347,9 @@
"bas": {
"name": "බසා"
},
+ "eu": {
+ "name": "බාස්ක්"
+ },
"ksf": {
"name": "බාෆියා"
},
@@ -362,9 +371,6 @@
"brx": {
"name": "බොඩො"
},
- "eu": {
- "name": "බොස්කෝ"
- },
"bs": {
"name": "බොස්නියානු"
},
@@ -491,12 +497,12 @@
"ln": {
"name": "ලින්ගලා"
},
- "lu": {
- "name": "ලු"
- },
"luo": {
"name": "ලුඔ"
},
+ "lu": {
+ "name": "ලුබා-කටන්ගා"
+ },
"luy": {
"name": "ලුයියා"
},
@@ -510,11 +516,14 @@
"name": "වුන්ජෝ"
},
"cy": {
- "name": "වේල්ස්"
+ "name": "වෙල්ෂ්"
},
"vo": {
"name": "වොලපූක්"
},
+ "wo": {
+ "name": "වොලොෆ්"
+ },
"wae": {
"name": "වොල්සර්"
},
@@ -539,6 +548,9 @@
"zgh": {
"name": "සම්මත මොරොක්කෝ ටමසිග්ත්"
},
+ "zh-Hans": {
+ "name": "සරල චීන"
+ },
"sr": {
"name": "සර්බියානු"
},
@@ -554,12 +566,12 @@
"ii": {
"name": "සිචුආන් යී"
},
+ "sd": {
+ "name": "සින්ධි"
+ },
"zu": {
"name": "සුලු"
},
- "zh-Hans": {
- "name": "සුළුකළ චීන"
- },
"seh": {
"name": "සෙනා"
},
@@ -587,9 +599,6 @@
"sw": {
"name": "ස්වාහිලි"
},
- "sw-CD": {
- "name": "ස්වාහිලි (කොංගො - කින්ශාසා)"
- },
"de-CH": {
"name": "ස්විස් උසස් ජර්මන්"
},
diff --git a/vendor/commerceguys/intl/resources/language/sk.json b/vendor/commerceguys/intl/resources/language/sk.json
index 72991208a..f0a679a60 100644
--- a/vendor/commerceguys/intl/resources/language/sk.json
+++ b/vendor/commerceguys/intl/resources/language/sk.json
@@ -209,6 +209,9 @@
"ig": {
"name": "igboština"
},
+ "smn": {
+ "name": "inarijská saamčina"
+ },
"id": {
"name": "indonézština"
},
@@ -251,9 +254,6 @@
"kn": {
"name": "kannadčina"
},
- "yue": {
- "name": "kantončina"
- },
"kea": {
"name": "kapverdčina"
},
@@ -311,9 +311,6 @@
"lo": {
"name": "laoština"
},
- "smn": {
- "name": "lapončina (inarijská)"
- },
"ln": {
"name": "lingalčina"
},
@@ -491,15 +488,18 @@
"seh": {
"name": "sena"
},
- "se": {
- "name": "severná lapončina"
- },
"nd": {
"name": "severná ndebelčina"
},
+ "se": {
+ "name": "severná saamčina"
+ },
"lrc": {
"name": "severné luri"
},
+ "sd": {
+ "name": "sindhčina"
+ },
"si": {
"name": "sinhalčina"
},
@@ -545,6 +545,9 @@
"sv": {
"name": "švédčina"
},
+ "tg": {
+ "name": "tadžičtina"
+ },
"shi": {
"name": "tachelhit"
},
@@ -560,6 +563,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatárčina"
+ },
"te": {
"name": "telugčina"
},
@@ -620,6 +626,9 @@
"wae": {
"name": "walserčina"
},
+ "wo": {
+ "name": "wolofčina"
+ },
"fy": {
"name": "západná frízština"
},
diff --git a/vendor/commerceguys/intl/resources/language/sl.json b/vendor/commerceguys/intl/resources/language/sl.json
index e9ec0ed63..9f276d5aa 100644
--- a/vendor/commerceguys/intl/resources/language/sl.json
+++ b/vendor/commerceguys/intl/resources/language/sl.json
@@ -122,6 +122,9 @@
"ewo": {
"name": "evondovščina"
},
+ "pt-PT": {
+ "name": "evropska portugalščina"
+ },
"fo": {
"name": "ferščina"
},
@@ -182,9 +185,6 @@
"hr": {
"name": "hrvaščina"
},
- "pt-PT": {
- "name": "iberska portugalščina"
- },
"ig": {
"name": "igboščina"
},
@@ -233,17 +233,14 @@
"kam": {
"name": "kambaščina"
},
- "kn": {
- "name": "kanada"
- },
"en-CA": {
"name": "kanadska angleščina"
},
"fr-CA": {
"name": "kanadska francoščina"
},
- "yue": {
- "name": "kantonščina"
+ "kn": {
+ "name": "kanareščina"
},
"ks": {
"name": "kašmirščina"
@@ -278,9 +275,6 @@
"ksh": {
"name": "kölnsko narečje"
},
- "sw-CD": {
- "name": "kongoška svahilščina"
- },
"kok": {
"name": "konkanščina"
},
@@ -374,9 +368,6 @@
"mgo": {
"name": "meta"
},
- "ro-MD": {
- "name": "moldavščina"
- },
"mn": {
"name": "mongolščina"
},
@@ -455,6 +446,9 @@
"ro": {
"name": "romunščina"
},
+ "ro-MD": {
+ "name": "romunščina (Moldavija)"
+ },
"rw": {
"name": "ruandščina"
},
@@ -482,14 +476,17 @@
"seh": {
"name": "sena"
},
+ "lrc": {
+ "name": "severna lurijščina"
+ },
"nd": {
"name": "severna ndebelščina"
},
"se": {
"name": "severna samijščina"
},
- "lrc": {
- "name": "severnolurijščina"
+ "sd": {
+ "name": "sindščina"
},
"si": {
"name": "sinhalščina"
@@ -524,6 +521,9 @@
"sw": {
"name": "svahili"
},
+ "sw-CD": {
+ "name": "svahili (Demokratična republika Kongo)"
+ },
"ksb": {
"name": "šambala"
},
@@ -545,6 +545,9 @@
"fr-CH": {
"name": "švicarska francoščina"
},
+ "tg": {
+ "name": "tadžiščina"
+ },
"shi": {
"name": "tahelitska berberščina"
},
@@ -563,6 +566,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatarščina"
+ },
"te": {
"name": "telugijščina"
},
@@ -614,6 +620,9 @@
"vo": {
"name": "volapuk"
},
+ "wo": {
+ "name": "volofščina"
+ },
"vun": {
"name": "vunjo"
},
diff --git a/vendor/commerceguys/intl/resources/language/smn.json b/vendor/commerceguys/intl/resources/language/smn.json
index 99d628d00..ee0bd42c1 100644
--- a/vendor/commerceguys/intl/resources/language/smn.json
+++ b/vendor/commerceguys/intl/resources/language/smn.json
@@ -203,9 +203,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantonkielâ"
- },
"kea": {
"name": "Kap Verde kreoli"
},
@@ -473,6 +470,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "sinhala"
},
@@ -512,6 +512,9 @@
"sw": {
"name": "swahilikielâ"
},
+ "tg": {
+ "name": "tadžikkielâ"
+ },
"dav": {
"name": "taitakielâ"
},
@@ -527,6 +530,9 @@
"shi": {
"name": "tašelhit"
},
+ "tt": {
+ "name": "tatarkielâ"
+ },
"nd": {
"name": "tave-nbedele"
},
@@ -614,6 +620,9 @@
"wae": {
"name": "walliskielâ"
},
+ "wo": {
+ "name": "wolofkielâ"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/sn.json b/vendor/commerceguys/intl/resources/language/sn.json
index 5bab8596d..945b435fd 100644
--- a/vendor/commerceguys/intl/resources/language/sn.json
+++ b/vendor/commerceguys/intl/resources/language/sn.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -542,6 +539,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/so.json b/vendor/commerceguys/intl/resources/language/so.json
index ea1680f4f..59521e350 100644
--- a/vendor/commerceguys/intl/resources/language/so.json
+++ b/vendor/commerceguys/intl/resources/language/so.json
@@ -80,9 +80,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"ar": {
"name": "Carabi"
},
@@ -515,6 +512,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -554,6 +554,9 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"it": {
"name": "Talyaani"
},
@@ -563,6 +566,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -611,6 +617,9 @@
"cy": {
"name": "Welsh"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/sq.json b/vendor/commerceguys/intl/resources/language/sq.json
index 5c67c80bc..77bca4ffc 100644
--- a/vendor/commerceguys/intl/resources/language/sq.json
+++ b/vendor/commerceguys/intl/resources/language/sq.json
@@ -245,9 +245,6 @@
"kn": {
"name": "kanadisht"
},
- "yue": {
- "name": "kantonezisht"
- },
"ks": {
"name": "kashmirisht"
},
@@ -344,15 +341,15 @@
"jmc": {
"name": "maçamisht"
},
+ "mg": {
+ "name": "madagaskarisht"
+ },
"kde": {
"name": "makondisht"
},
"mgh": {
"name": "makua-mitoisht"
},
- "mg": {
- "name": "malagezisht"
- },
"ml": {
"name": "malajalamisht"
},
@@ -431,9 +428,6 @@
"os": {
"name": "osetisht"
},
- "pa": {
- "name": "panxhabisht"
- },
"ps": {
"name": "pashtoisht"
},
@@ -452,6 +446,9 @@
"prg": {
"name": "prusisht"
},
+ "pa": {
+ "name": "punxhabisht"
+ },
"rm": {
"name": "retoromanisht"
},
@@ -497,6 +494,9 @@
"sr": {
"name": "serbisht"
},
+ "sd": {
+ "name": "sindisht"
+ },
"si": {
"name": "sinhalisht"
},
@@ -504,7 +504,7 @@
"name": "sishuanisht"
},
"cu": {
- "name": "sllavishte kishe"
+ "name": "sllavishte kishtare"
},
"sk": {
"name": "sllovakisht"
@@ -534,7 +534,7 @@
"name": "suahilisht"
},
"sw-CD": {
- "name": "suahilishte kongoje"
+ "name": "suahilishte kongoleze"
},
"sv": {
"name": "suedisht"
@@ -558,7 +558,7 @@
"name": "tajtaisht"
},
"tzm": {
- "name": "tamaziatishte atlase qendrore"
+ "name": "tamazajtisht e Atlasit Qendror"
},
"zgh": {
"name": "tamaziatishte standarde marokene"
@@ -569,6 +569,12 @@
"twq": {
"name": "tasavakisht"
},
+ "tt": {
+ "name": "tatarisht"
+ },
+ "tg": {
+ "name": "taxhikisht"
+ },
"te": {
"name": "teluguisht"
},
@@ -602,6 +608,9 @@
"uk": {
"name": "ukrainisht"
},
+ "wo": {
+ "name": "uolofisht"
+ },
"ur": {
"name": "urduisht"
},
diff --git a/vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json b/vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json
index e3d091a92..aad539dac 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Cyrl-BA.json
@@ -83,6 +83,9 @@
"vo": {
"name": "волапик"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунџо"
},
@@ -176,9 +179,6 @@
"it": {
"name": "италијански"
},
- "sah": {
- "name": "јакутски"
- },
"yav": {
"name": "јангбен"
},
@@ -215,9 +215,6 @@
"kn": {
"name": "канада"
},
- "yue": {
- "name": "кантонски"
- },
"ca": {
"name": "каталонски"
},
@@ -449,6 +446,9 @@
"sbp": {
"name": "сангу"
},
+ "sah": {
+ "name": "саха"
+ },
"sw": {
"name": "свахили"
},
@@ -467,6 +467,9 @@
"ii": {
"name": "сечуански ји"
},
+ "sd": {
+ "name": "синди"
+ },
"si": {
"name": "синхалски"
},
@@ -500,6 +503,12 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татарски"
+ },
+ "tg": {
+ "name": "таџички"
+ },
"te": {
"name": "телугу"
},
diff --git a/vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json b/vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json
index 7f29360e8..92f9c0da7 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Cyrl-ME.json
@@ -83,6 +83,9 @@
"vo": {
"name": "волапик"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунџо"
},
@@ -176,9 +179,6 @@
"it": {
"name": "италијански"
},
- "sah": {
- "name": "јакутски"
- },
"yav": {
"name": "јангбен"
},
@@ -215,9 +215,6 @@
"kn": {
"name": "канада"
},
- "yue": {
- "name": "кантонски"
- },
"ca": {
"name": "каталонски"
},
@@ -371,6 +368,9 @@
"de-AT": {
"name": "немачки (Аустрија)"
},
+ "gsw": {
+ "name": "немачки (Швајцарска)"
+ },
"ne": {
"name": "непалски"
},
@@ -449,6 +449,9 @@
"sbp": {
"name": "сангу"
},
+ "sah": {
+ "name": "саха"
+ },
"sw": {
"name": "свахили"
},
@@ -467,6 +470,9 @@
"ii": {
"name": "сечуански ји"
},
+ "sd": {
+ "name": "синди"
+ },
"si": {
"name": "синхалешки"
},
@@ -500,6 +506,12 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татарски"
+ },
+ "tg": {
+ "name": "таџички"
+ },
"te": {
"name": "телугу"
},
@@ -614,9 +626,6 @@
"de-CH": {
"name": "швајцарски високи немачки"
},
- "gsw": {
- "name": "Швајцарски немачки"
- },
"sv": {
"name": "шведски"
},
diff --git a/vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json b/vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json
index 61022352b..9b7aef71e 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Cyrl-XK.json
@@ -83,6 +83,9 @@
"vo": {
"name": "волапик"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунџо"
},
@@ -176,9 +179,6 @@
"it": {
"name": "италијански"
},
- "sah": {
- "name": "јакутски"
- },
"yav": {
"name": "јангбен"
},
@@ -215,9 +215,6 @@
"kn": {
"name": "канада"
},
- "yue": {
- "name": "кантонски"
- },
"ca": {
"name": "каталонски"
},
@@ -449,6 +446,9 @@
"sbp": {
"name": "сангу"
},
+ "sah": {
+ "name": "саха"
+ },
"sw": {
"name": "свахили"
},
@@ -467,6 +467,9 @@
"ii": {
"name": "сечуански ји"
},
+ "sd": {
+ "name": "синди"
+ },
"si": {
"name": "синхалски"
},
@@ -500,6 +503,12 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татарски"
+ },
+ "tg": {
+ "name": "таџички"
+ },
"te": {
"name": "телугу"
},
diff --git a/vendor/commerceguys/intl/resources/language/sr-Latn-BA.json b/vendor/commerceguys/intl/resources/language/sr-Latn-BA.json
index 9e723dd7a..265bd9af7 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Latn-BA.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Latn-BA.json
@@ -221,9 +221,6 @@
"it": {
"name": "italijanski"
},
- "sah": {
- "name": "jakutski"
- },
"yav": {
"name": "jangben"
},
@@ -257,9 +254,6 @@
"kn": {
"name": "kanada"
},
- "yue": {
- "name": "kantonski"
- },
"ks": {
"name": "kašmirski"
},
@@ -485,6 +479,9 @@
"ru": {
"name": "ruski"
},
+ "sah": {
+ "name": "saha"
+ },
"saq": {
"name": "samburu"
},
@@ -509,6 +506,9 @@
"se": {
"name": "severni sami"
},
+ "sd": {
+ "name": "sindi"
+ },
"si": {
"name": "sinhalski"
},
@@ -557,6 +557,9 @@
"sv": {
"name": "švedski"
},
+ "tg": {
+ "name": "tadžički"
+ },
"dav": {
"name": "taita"
},
@@ -569,6 +572,9 @@
"twq": {
"name": "tasavak"
},
+ "tt": {
+ "name": "tatarski"
+ },
"te": {
"name": "telugu"
},
@@ -620,6 +626,9 @@
"vo": {
"name": "volapik"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vundžo"
},
diff --git a/vendor/commerceguys/intl/resources/language/sr-Latn-ME.json b/vendor/commerceguys/intl/resources/language/sr-Latn-ME.json
index 7bbdb3abf..a7313a213 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Latn-ME.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Latn-ME.json
@@ -221,9 +221,6 @@
"it": {
"name": "italijanski"
},
- "sah": {
- "name": "jakutski"
- },
"yav": {
"name": "jangben"
},
@@ -257,9 +254,6 @@
"kn": {
"name": "kanada"
},
- "yue": {
- "name": "kantonski"
- },
"ks": {
"name": "kašmirski"
},
@@ -410,6 +404,9 @@
"de-AT": {
"name": "nemački (Austrija)"
},
+ "gsw": {
+ "name": "nemački (Švajcarska)"
+ },
"ne": {
"name": "nepalski"
},
@@ -485,6 +482,9 @@
"ru": {
"name": "ruski"
},
+ "sah": {
+ "name": "saha"
+ },
"saq": {
"name": "samburu"
},
@@ -509,6 +509,9 @@
"se": {
"name": "severni sami"
},
+ "sd": {
+ "name": "sindi"
+ },
"si": {
"name": "sinhaleški"
},
@@ -548,15 +551,15 @@
"es-MX": {
"name": "španski (Meksiko)"
},
- "gsw": {
- "name": "Švajcarski nemački"
- },
"de-CH": {
"name": "švajcarski visoki nemački"
},
"sv": {
"name": "švedski"
},
+ "tg": {
+ "name": "tadžički"
+ },
"dav": {
"name": "taita"
},
@@ -569,6 +572,9 @@
"twq": {
"name": "tasavak"
},
+ "tt": {
+ "name": "tatarski"
+ },
"te": {
"name": "telugu"
},
@@ -620,6 +626,9 @@
"vo": {
"name": "volapik"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vundžo"
},
diff --git a/vendor/commerceguys/intl/resources/language/sr-Latn-XK.json b/vendor/commerceguys/intl/resources/language/sr-Latn-XK.json
index d50a8f543..b666ecb07 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Latn-XK.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Latn-XK.json
@@ -221,9 +221,6 @@
"it": {
"name": "italijanski"
},
- "sah": {
- "name": "jakutski"
- },
"yav": {
"name": "jangben"
},
@@ -257,9 +254,6 @@
"kn": {
"name": "kanada"
},
- "yue": {
- "name": "kantonski"
- },
"ks": {
"name": "kašmirski"
},
@@ -485,6 +479,9 @@
"ru": {
"name": "ruski"
},
+ "sah": {
+ "name": "saha"
+ },
"saq": {
"name": "samburu"
},
@@ -509,6 +506,9 @@
"se": {
"name": "severni sami"
},
+ "sd": {
+ "name": "sindi"
+ },
"si": {
"name": "sinhalski"
},
@@ -557,6 +557,9 @@
"sv": {
"name": "švedski"
},
+ "tg": {
+ "name": "tadžički"
+ },
"dav": {
"name": "taita"
},
@@ -569,6 +572,9 @@
"twq": {
"name": "tasavak"
},
+ "tt": {
+ "name": "tatarski"
+ },
"te": {
"name": "telugu"
},
@@ -620,6 +626,9 @@
"vo": {
"name": "volapik"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vundžo"
},
diff --git a/vendor/commerceguys/intl/resources/language/sr-Latn.json b/vendor/commerceguys/intl/resources/language/sr-Latn.json
index ef98e25a8..4cd898e4a 100644
--- a/vendor/commerceguys/intl/resources/language/sr-Latn.json
+++ b/vendor/commerceguys/intl/resources/language/sr-Latn.json
@@ -218,9 +218,6 @@
"it": {
"name": "italijanski"
},
- "sah": {
- "name": "jakutski"
- },
"yav": {
"name": "jangben"
},
@@ -251,9 +248,6 @@
"kn": {
"name": "kanada"
},
- "yue": {
- "name": "kantonski"
- },
"ks": {
"name": "kašmirski"
},
@@ -404,6 +398,9 @@
"de-AT": {
"name": "nemački (Austrija)"
},
+ "gsw": {
+ "name": "nemački (Švajcarska)"
+ },
"ne": {
"name": "nepalski"
},
@@ -479,6 +476,9 @@
"ru": {
"name": "ruski"
},
+ "sah": {
+ "name": "saha"
+ },
"saq": {
"name": "samburu"
},
@@ -503,6 +503,9 @@
"se": {
"name": "severni sami"
},
+ "sd": {
+ "name": "sindi"
+ },
"si": {
"name": "sinhaleški"
},
@@ -542,15 +545,15 @@
"es-MX": {
"name": "španski (Meksiko)"
},
- "gsw": {
- "name": "Švajcarski nemački"
- },
"de-CH": {
"name": "švajcarski visoki nemački"
},
"sv": {
"name": "švedski"
},
+ "tg": {
+ "name": "tadžički"
+ },
"dav": {
"name": "taita"
},
@@ -566,6 +569,9 @@
"shi": {
"name": "tašelhit"
},
+ "tt": {
+ "name": "tatarski"
+ },
"te": {
"name": "telugu"
},
@@ -617,6 +623,9 @@
"vo": {
"name": "volapik"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vundžo"
},
diff --git a/vendor/commerceguys/intl/resources/language/sr.json b/vendor/commerceguys/intl/resources/language/sr.json
index 6a3c25b95..be93e04b1 100644
--- a/vendor/commerceguys/intl/resources/language/sr.json
+++ b/vendor/commerceguys/intl/resources/language/sr.json
@@ -83,6 +83,9 @@
"vo": {
"name": "волапик"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вунџо"
},
@@ -176,9 +179,6 @@
"it": {
"name": "италијански"
},
- "sah": {
- "name": "јакутски"
- },
"yav": {
"name": "јангбен"
},
@@ -212,9 +212,6 @@
"kn": {
"name": "канада"
},
- "yue": {
- "name": "кантонски"
- },
"ca": {
"name": "каталонски"
},
@@ -368,6 +365,9 @@
"de-AT": {
"name": "немачки (Аустрија)"
},
+ "gsw": {
+ "name": "немачки (Швајцарска)"
+ },
"ne": {
"name": "непалски"
},
@@ -446,6 +446,9 @@
"sbp": {
"name": "сангу"
},
+ "sah": {
+ "name": "саха"
+ },
"sw": {
"name": "свахили"
},
@@ -464,6 +467,9 @@
"ii": {
"name": "сечуански ји"
},
+ "sd": {
+ "name": "синди"
+ },
"si": {
"name": "синхалешки"
},
@@ -497,6 +503,12 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татарски"
+ },
+ "tg": {
+ "name": "таџички"
+ },
"shi": {
"name": "ташелхит"
},
@@ -614,9 +626,6 @@
"de-CH": {
"name": "швајцарски високи немачки"
},
- "gsw": {
- "name": "Швајцарски немачки"
- },
"sv": {
"name": "шведски"
},
diff --git a/vendor/commerceguys/intl/resources/language/sv-FI.json b/vendor/commerceguys/intl/resources/language/sv-FI.json
index c86045357..0d1fa06ff 100644
--- a/vendor/commerceguys/intl/resources/language/sv-FI.json
+++ b/vendor/commerceguys/intl/resources/language/sv-FI.json
@@ -65,9 +65,6 @@
"brx": {
"name": "bodo"
},
- "nb": {
- "name": "bokmål"
- },
"bs": {
"name": "bosniska"
},
@@ -236,9 +233,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantonesiska"
- },
"kea": {
"name": "kapverdiska"
},
@@ -419,6 +413,9 @@
"se": {
"name": "nordsamiska"
},
+ "nb": {
+ "name": "norskt bokmål"
+ },
"nus": {
"name": "nuer"
},
@@ -497,6 +494,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singalesiska"
},
@@ -530,6 +530,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadzjikiska"
+ },
"dav": {
"name": "taita"
},
@@ -539,6 +542,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatariska"
+ },
"te": {
"name": "telugu"
},
@@ -617,6 +623,9 @@
"wae": {
"name": "walsertyska"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/sv.json b/vendor/commerceguys/intl/resources/language/sv.json
index 20aec7499..ff4935ad5 100644
--- a/vendor/commerceguys/intl/resources/language/sv.json
+++ b/vendor/commerceguys/intl/resources/language/sv.json
@@ -65,9 +65,6 @@
"brx": {
"name": "bodo"
},
- "nb": {
- "name": "bokmål"
- },
"bs": {
"name": "bosniska"
},
@@ -236,9 +233,6 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kantonesiska"
- },
"kea": {
"name": "kapverdiska"
},
@@ -419,6 +413,9 @@
"se": {
"name": "nordsamiska"
},
+ "nb": {
+ "name": "norskt bokmål"
+ },
"nus": {
"name": "nuer"
},
@@ -497,6 +494,9 @@
"sn": {
"name": "shona"
},
+ "sd": {
+ "name": "sindhi"
+ },
"si": {
"name": "singalesiska"
},
@@ -530,6 +530,9 @@
"shi": {
"name": "tachelhit"
},
+ "tg": {
+ "name": "tadzjikiska"
+ },
"dav": {
"name": "taita"
},
@@ -539,6 +542,9 @@
"twq": {
"name": "tasawaq"
},
+ "tt": {
+ "name": "tatariska"
+ },
"te": {
"name": "telugu"
},
@@ -617,6 +623,9 @@
"wae": {
"name": "walsertyska"
},
+ "wo": {
+ "name": "wolof"
+ },
"yav": {
"name": "yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/sw-CD.json b/vendor/commerceguys/intl/resources/language/sw-CD.json
index 202b31d0f..b4bcc8e51 100644
--- a/vendor/commerceguys/intl/resources/language/sw-CD.json
+++ b/vendor/commerceguys/intl/resources/language/sw-CD.json
@@ -68,6 +68,9 @@
"bn": {
"name": "Kibengali"
},
+ "zgh": {
+ "name": "Kiberber Sanifu cha Moroko"
+ },
"brx": {
"name": "Kibodo"
},
@@ -213,7 +216,7 @@
"name": "Kiingereza (Australia)"
},
"en-CA": {
- "name": "Kiingereza (Kanada)"
+ "name": "Kiingereza (Canada)"
},
"en-GB": {
"name": "Kiingereza (Uingereza)"
@@ -269,9 +272,6 @@
"kn": {
"name": "Kikannada"
},
- "yue": {
- "name": "Kikantoni"
- },
"ks": {
"name": "Kikashmiri"
},
@@ -408,7 +408,7 @@
"name": "Kingwana"
},
"nb": {
- "name": "Kinorwe cha Bokmål"
+ "name": "Kinorwe cha Bokmal"
},
"nn": {
"name": "Kinorwe cha Nynorsk"
@@ -473,9 +473,6 @@
"ru": {
"name": "Kirusi"
},
- "rwk": {
- "name": "Kirwa"
- },
"sah": {
"name": "Kisakha"
},
@@ -512,6 +509,9 @@
"sn": {
"name": "Kishona"
},
+ "sd": {
+ "name": "Kisindhi"
+ },
"si": {
"name": "Kisinhala"
},
@@ -548,12 +548,18 @@
"dav": {
"name": "Kitaita"
},
+ "tg": {
+ "name": "Kitajiki"
+ },
"ta": {
"name": "Kitamil"
},
"twq": {
"name": "Kitasawaq"
},
+ "tt": {
+ "name": "Kitatari"
+ },
"te": {
"name": "Kitelugu"
},
@@ -594,7 +600,7 @@
"name": "Kivietinamu"
},
"vo": {
- "name": "Kivolapük"
+ "name": "Kivolapuk"
},
"vun": {
"name": "Kivunjo"
@@ -626,10 +632,13 @@
"ses": {
"name": "Koyraboro Senni"
},
+ "rwk": {
+ "name": "Lugha ya Rwa"
+ },
+ "wo": {
+ "name": "Lugha ya Wolof"
+ },
"ii": {
"name": "Sichuan Yi"
- },
- "zgh": {
- "name": "Tamaziti Sanifu ya Kimoroko"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/sw-KE.json b/vendor/commerceguys/intl/resources/language/sw-KE.json
index 5236d3124..23f74bd92 100644
--- a/vendor/commerceguys/intl/resources/language/sw-KE.json
+++ b/vendor/commerceguys/intl/resources/language/sw-KE.json
@@ -207,7 +207,7 @@
"name": "Kiingereza (Australia)"
},
"en-CA": {
- "name": "Kiingereza (Kanada)"
+ "name": "Kiingereza (Canada)"
},
"en-GB": {
"name": "Kiingereza (Uingereza)"
@@ -266,9 +266,6 @@
"kn": {
"name": "Kikannada"
},
- "yue": {
- "name": "Kikantoni"
- },
"ks": {
"name": "Kikashmiri"
},
@@ -405,7 +402,7 @@
"name": "Kingwana"
},
"nb": {
- "name": "Kinorwe cha Bokmål"
+ "name": "Kinorwe cha Bokmal"
},
"nn": {
"name": "Kinorwe cha Nynorsk"
@@ -470,9 +467,6 @@
"ru": {
"name": "Kirusi"
},
- "rwk": {
- "name": "Kirwa"
- },
"sah": {
"name": "Kisakha"
},
@@ -509,6 +503,9 @@
"sn": {
"name": "Kishona"
},
+ "sd": {
+ "name": "Kisindhi"
+ },
"si": {
"name": "Kisinhala"
},
@@ -548,12 +545,18 @@
"dav": {
"name": "Kitaita"
},
+ "tg": {
+ "name": "Kitajiki"
+ },
"ta": {
"name": "Kitamil"
},
"twq": {
"name": "Kitasawaq"
},
+ "tt": {
+ "name": "Kitatari"
+ },
"te": {
"name": "Kitelugu"
},
@@ -594,7 +597,7 @@
"name": "Kivietinamu"
},
"vo": {
- "name": "Kivolapük"
+ "name": "Kivolapuk"
},
"vun": {
"name": "Kivunjo"
@@ -626,6 +629,12 @@
"tzm": {
"name": "Lugha ya Central Atlas Tamazight"
},
+ "rwk": {
+ "name": "Lugha ya Rwa"
+ },
+ "wo": {
+ "name": "Lugha ya Wolof"
+ },
"ii": {
"name": "Sichuan Yi"
},
diff --git a/vendor/commerceguys/intl/resources/language/sw.json b/vendor/commerceguys/intl/resources/language/sw.json
index 09e92a9b1..3b1b01152 100644
--- a/vendor/commerceguys/intl/resources/language/sw.json
+++ b/vendor/commerceguys/intl/resources/language/sw.json
@@ -68,6 +68,9 @@
"bn": {
"name": "Kibengali"
},
+ "zgh": {
+ "name": "Kiberber Sanifu cha Moroko"
+ },
"brx": {
"name": "Kibodo"
},
@@ -213,7 +216,7 @@
"name": "Kiingereza (Australia)"
},
"en-CA": {
- "name": "Kiingereza (Kanada)"
+ "name": "Kiingereza (Canada)"
},
"en-GB": {
"name": "Kiingereza (Uingereza)"
@@ -266,9 +269,6 @@
"kn": {
"name": "Kikannada"
},
- "yue": {
- "name": "Kikantoni"
- },
"ks": {
"name": "Kikashmiri"
},
@@ -399,7 +399,7 @@
"name": "Kingwana"
},
"nb": {
- "name": "Kinorwe cha Bokmål"
+ "name": "Kinorwe cha Bokmal"
},
"nn": {
"name": "Kinorwe cha Nynorsk"
@@ -464,9 +464,6 @@
"ru": {
"name": "Kirusi"
},
- "rwk": {
- "name": "Kirwa"
- },
"sah": {
"name": "Kisakha"
},
@@ -503,6 +500,9 @@
"sn": {
"name": "Kishona"
},
+ "sd": {
+ "name": "Kisindhi"
+ },
"si": {
"name": "Kisinhala"
},
@@ -539,12 +539,18 @@
"dav": {
"name": "Kitaita"
},
+ "tg": {
+ "name": "Kitajiki"
+ },
"ta": {
"name": "Kitamil"
},
"twq": {
"name": "Kitasawaq"
},
+ "tt": {
+ "name": "Kitatari"
+ },
"te": {
"name": "Kitelugu"
},
@@ -585,7 +591,7 @@
"name": "Kivietinamu"
},
"vo": {
- "name": "Kivolapük"
+ "name": "Kivolapuk"
},
"vun": {
"name": "Kivunjo"
@@ -623,12 +629,15 @@
"nnh": {
"name": "Lugha ya Ngiemboon"
},
+ "rwk": {
+ "name": "Lugha ya Rwa"
+ },
+ "wo": {
+ "name": "Lugha ya Wolof"
+ },
"ii": {
"name": "Sichuan Yi"
},
- "zgh": {
- "name": "Tamaziti Sanifu ya Kimoroko"
- },
"wae": {
"name": "Walser"
}
diff --git a/vendor/commerceguys/intl/resources/language/ta.json b/vendor/commerceguys/intl/resources/language/ta.json
index 7c2245adb..b4e3898e1 100644
--- a/vendor/commerceguys/intl/resources/language/ta.json
+++ b/vendor/commerceguys/intl/resources/language/ta.json
@@ -110,6 +110,9 @@
"vo": {
"name": "ஒலாபூக்"
},
+ "wo": {
+ "name": "ஓலோஃப்"
+ },
"fur": {
"name": "ஃப்ரியூலியன்"
},
@@ -167,9 +170,6 @@
"sw-CD": {
"name": "காங்கோ ஸ்வாஹிலி"
},
- "yue": {
- "name": "காண்டோனீஸ்"
- },
"kw": {
"name": "கார்னிஷ்"
},
@@ -248,6 +248,9 @@
"ii": {
"name": "சிசுவான் ஈ"
},
+ "sd": {
+ "name": "சிந்தி"
+ },
"zh": {
"name": "சீனம்"
},
@@ -278,6 +281,9 @@
"twq": {
"name": "டசவாக்"
},
+ "tt": {
+ "name": "டாடர்"
+ },
"ti": {
"name": "டிக்ரின்யா"
},
@@ -302,6 +308,9 @@
"ta": {
"name": "தமிழ்"
},
+ "tg": {
+ "name": "தஜிக்"
+ },
"th": {
"name": "தாய்"
},
diff --git a/vendor/commerceguys/intl/resources/language/te.json b/vendor/commerceguys/intl/resources/language/te.json
index 5f8101298..4b6c3b6f0 100644
--- a/vendor/commerceguys/intl/resources/language/te.json
+++ b/vendor/commerceguys/intl/resources/language/te.json
@@ -23,9 +23,6 @@
"asa": {
"name": "అసు"
},
- "ast": {
- "name": "అస్టురియాన్"
- },
"as": {
"name": "అస్సామీస్"
},
@@ -38,11 +35,14 @@
"hy": {
"name": "ఆర్మేనియన్"
},
- "en-AU": {
- "name": "ఆస్ట్రేలియన్ ఇంగ్లీష్"
+ "ast": {
+ "name": "ఆస్టూరియన్"
},
"de-AT": {
- "name": "ఆస్ట్రేలియన్ జర్మన్"
+ "name": "ఆస్ట్రియన్ జర్మన్"
+ },
+ "en-AU": {
+ "name": "ఆస్ట్రేలియన్ ఇంగ్లీష్"
},
"id": {
"name": "ఇండోనేషియన్"
@@ -62,12 +62,6 @@
"smn": {
"name": "ఇనారి సామి"
},
- "ee": {
- "name": "ఈవీ"
- },
- "et": {
- "name": "ఈస్టోనియన్"
- },
"uk": {
"name": "ఉక్రేనియన్"
},
@@ -92,6 +86,9 @@
"ewo": {
"name": "ఎవోండొ"
},
+ "et": {
+ "name": "ఎస్టోనియన్"
+ },
"eo": {
"name": "ఎస్పెరాంటో"
},
@@ -128,12 +125,12 @@
"sw-CD": {
"name": "కాంగో స్వాహిలి"
},
- "yue": {
- "name": "కాంటనీస్"
- },
"kkj": {
"name": "కాకో"
},
+ "ca": {
+ "name": "కాటలాన్"
+ },
"kab": {
"name": "కాబిల్"
},
@@ -152,8 +149,8 @@
"ky": {
"name": "కిర్గిజ్"
},
- "ca": {
- "name": "కెటలాన్"
+ "qu": {
+ "name": "కెచువా"
},
"en-CA": {
"name": "కెనడియన్ ఇంగ్లీష్"
@@ -161,9 +158,6 @@
"fr-CA": {
"name": "కెనడియెన్ ఫ్రెంచ్"
},
- "qu": {
- "name": "కెషుయా"
- },
"kok": {
"name": "కొంకణి"
},
@@ -174,7 +168,7 @@
"name": "కొరియన్"
},
"ksh": {
- "name": "కొలొజీయన్"
+ "name": "కొలోనియన్"
},
"ses": {
"name": "కోయోరాబోరో సెన్నీ"
@@ -198,7 +192,7 @@
"name": "గాలిషియన్"
},
"nnh": {
- "name": "గింబోన్"
+ "name": "గింబూన్"
},
"gu": {
"name": "గుజరాతి"
@@ -213,7 +207,7 @@
"name": "గ్రీక్"
},
"cu": {
- "name": "చర్చ స్లావిక్"
+ "name": "చర్చ్ స్లావిక్"
},
"cs": {
"name": "చెక్"
@@ -263,6 +257,9 @@
"shi": {
"name": "టాచెల్‌హిట్"
},
+ "tt": {
+ "name": "టాటర్"
+ },
"bo": {
"name": "టిబెటన్"
},
@@ -278,6 +275,12 @@
"da": {
"name": "డానిష్"
},
+ "dua": {
+ "name": "డ్యూలా"
+ },
+ "tg": {
+ "name": "తజిక్"
+ },
"ta": {
"name": "తమిళము"
},
@@ -285,7 +288,7 @@
"name": "తిగ్రిన్యా"
},
"tk": {
- "name": "తుర్కమెన్"
+ "name": "తుర్క్‌మెన్"
},
"te": {
"name": "తెలుగు"
@@ -293,9 +296,6 @@
"th": {
"name": "థాయ్"
},
- "dua": {
- "name": "దుఆలా"
- },
"naq": {
"name": "నమ"
},
@@ -336,7 +336,7 @@
"name": "ప్రష్యన్"
},
"zgh": {
- "name": "ప్రామాణిక మొరొకన్ తమజియట్"
+ "name": "ప్రామాణిక మొరొకన్ టామజైట్"
},
"fo": {
"name": "ఫారోయీజ్"
@@ -380,12 +380,12 @@
"eu": {
"name": "బాస్క్యూ"
},
- "bez": {
- "name": "బీనా"
- },
"bem": {
"name": "బెంబా"
},
+ "bez": {
+ "name": "బెనా"
+ },
"be": {
"name": "బెలరుషియన్"
},
@@ -401,12 +401,12 @@
"br": {
"name": "బ్రెటన్"
},
- "gv": {
- "name": "మంకస్"
- },
"mn": {
"name": "మంగోలియన్"
},
+ "mua": {
+ "name": "మండాంగ్"
+ },
"kde": {
"name": "మకొండే"
},
@@ -423,11 +423,14 @@
"name": "మలయాళం"
},
"ms": {
- "name": "మలేయ్"
+ "name": "మలాయ్"
},
"mk": {
"name": "మసడోనియన్"
},
+ "gv": {
+ "name": "మాంక్స్"
+ },
"mg": {
"name": "మాలాగసి"
},
@@ -438,10 +441,7 @@
"name": "మాసన్‌దెరాని"
},
"mas": {
- "name": "మాసాయి"
- },
- "mua": {
- "name": "ముదాంగ్"
+ "name": "మాసై"
},
"es-MX": {
"name": "మెక్సికన్ స్పానిష్"
@@ -461,18 +461,21 @@
"yav": {
"name": "యాంగ్‌బెన్"
},
+ "ee": {
+ "name": "యూ"
+ },
"pt-PT": {
"name": "యూరోపియన్ పోర్చుగీస్"
},
"yo": {
"name": "యోరుబా"
},
- "rn": {
- "name": "రండి"
- },
"ru": {
"name": "రష్యన్"
},
+ "rn": {
+ "name": "రుండి"
+ },
"rof": {
"name": "రోంబో"
},
@@ -488,6 +491,9 @@
"lkt": {
"name": "లకొటా"
},
+ "lb": {
+ "name": "లక్సెంబర్గిష్"
+ },
"lag": {
"name": "లాంగీ"
},
@@ -501,10 +507,7 @@
"name": "లింగాల"
},
"lt": {
- "name": "లిథుయేనియన్"
- },
- "lb": {
- "name": "లుక్సంబర్గిష్"
+ "name": "లిథువేనియన్"
},
"luy": {
"name": "లుయియ"
@@ -522,7 +525,7 @@
"name": "లో సాక్సన్"
},
"dsb": {
- "name": "లోవర్ సోర్బియన్"
+ "name": "లోయర్ సోర్బియన్"
},
"vai": {
"name": "వాయి"
@@ -539,6 +542,9 @@
"cy": {
"name": "వెల్ష్"
},
+ "wo": {
+ "name": "వొలాఫ్"
+ },
"vo": {
"name": "వోలాపుక్"
},
@@ -569,6 +575,9 @@
"zh-Hant": {
"name": "సాంప్రదాయక చైనీస్"
},
+ "sd": {
+ "name": "సింధీ"
+ },
"si": {
"name": "సింహళం"
},
@@ -576,7 +585,7 @@
"name": "సెంట్రల్ అట్లాస్ టామాజైట్"
},
"ckb": {
- "name": "సెంట్రల్ కుర్దిష్"
+ "name": "సెంట్రల్ కర్డిష్"
},
"seh": {
"name": "సెనా"
@@ -600,7 +609,7 @@
"name": "స్లోవాక్"
},
"sl": {
- "name": "స్లోవేనియాన్"
+ "name": "స్లోవేనియన్"
},
"sw": {
"name": "స్వాహిలి"
diff --git a/vendor/commerceguys/intl/resources/language/teo.json b/vendor/commerceguys/intl/resources/language/teo.json
index c723a8015..8abe51a6e 100644
--- a/vendor/commerceguys/intl/resources/language/teo.json
+++ b/vendor/commerceguys/intl/resources/language/teo.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -545,6 +542,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -575,9 +575,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/tg.json b/vendor/commerceguys/intl/resources/language/tg.json
new file mode 100644
index 000000000..51bf01ddc
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/tg.json
@@ -0,0 +1,641 @@
+{
+ "agq": {
+ "name": "Aghem"
+ },
+ "ak": {
+ "name": "Akan"
+ },
+ "ast": {
+ "name": "Asturian"
+ },
+ "asa": {
+ "name": "Asu"
+ },
+ "ksf": {
+ "name": "Bafia"
+ },
+ "bm": {
+ "name": "Bambara"
+ },
+ "bas": {
+ "name": "Basaa"
+ },
+ "bez": {
+ "name": "Bena"
+ },
+ "brx": {
+ "name": "Bodo"
+ },
+ "ce": {
+ "name": "Chechen"
+ },
+ "cgg": {
+ "name": "Chiga"
+ },
+ "cu": {
+ "name": "Church Slavic"
+ },
+ "ksh": {
+ "name": "Colognian"
+ },
+ "kw": {
+ "name": "Cornish"
+ },
+ "dua": {
+ "name": "Duala"
+ },
+ "ebu": {
+ "name": "Embu"
+ },
+ "ee": {
+ "name": "Ewe"
+ },
+ "ewo": {
+ "name": "Ewondo"
+ },
+ "fur": {
+ "name": "Friulian"
+ },
+ "lg": {
+ "name": "Ganda"
+ },
+ "guz": {
+ "name": "Gusii"
+ },
+ "dyo": {
+ "name": "Jola-Fonyi"
+ },
+ "kea": {
+ "name": "Kabuverdianu"
+ },
+ "kab": {
+ "name": "Kabyle"
+ },
+ "kkj": {
+ "name": "Kako"
+ },
+ "kl": {
+ "name": "Kalaallisut"
+ },
+ "kln": {
+ "name": "Kalenjin"
+ },
+ "kam": {
+ "name": "Kamba"
+ },
+ "ki": {
+ "name": "Kikuyu"
+ },
+ "khq": {
+ "name": "Koyra Chiini"
+ },
+ "ses": {
+ "name": "Koyraboro Senni"
+ },
+ "nmg": {
+ "name": "Kwasio"
+ },
+ "lkt": {
+ "name": "Lakota"
+ },
+ "lag": {
+ "name": "Langi"
+ },
+ "ln": {
+ "name": "Lingala"
+ },
+ "lu": {
+ "name": "Luba-Katanga"
+ },
+ "luo": {
+ "name": "Luo"
+ },
+ "luy": {
+ "name": "Luyia"
+ },
+ "jmc": {
+ "name": "Machame"
+ },
+ "mgh": {
+ "name": "Makhuwa-Meetto"
+ },
+ "kde": {
+ "name": "Makonde"
+ },
+ "gv": {
+ "name": "Manx"
+ },
+ "mas": {
+ "name": "Masai"
+ },
+ "mzn": {
+ "name": "Mazanderani"
+ },
+ "mer": {
+ "name": "Meru"
+ },
+ "mgo": {
+ "name": "Metaʼ"
+ },
+ "mfe": {
+ "name": "Morisyen"
+ },
+ "mua": {
+ "name": "Mundang"
+ },
+ "naq": {
+ "name": "Nama"
+ },
+ "nds-NL": {
+ "name": "nds (Нидерландия)"
+ },
+ "nnh": {
+ "name": "Ngiemboon"
+ },
+ "jgo": {
+ "name": "Ngomba"
+ },
+ "nd": {
+ "name": "North Ndebele"
+ },
+ "lrc": {
+ "name": "Northern Luri"
+ },
+ "nb": {
+ "name": "Norwegian Bokmål"
+ },
+ "nn": {
+ "name": "Norwegian Nynorsk"
+ },
+ "nus": {
+ "name": "Nuer"
+ },
+ "nyn": {
+ "name": "Nyankole"
+ },
+ "os": {
+ "name": "Ossetic"
+ },
+ "prg": {
+ "name": "Prussian"
+ },
+ "rof": {
+ "name": "Rombo"
+ },
+ "rn": {
+ "name": "Rundi"
+ },
+ "rwk": {
+ "name": "Rwa"
+ },
+ "saq": {
+ "name": "Samburu"
+ },
+ "sg": {
+ "name": "Sango"
+ },
+ "sbp": {
+ "name": "Sangu"
+ },
+ "seh": {
+ "name": "Sena"
+ },
+ "ksb": {
+ "name": "Shambala"
+ },
+ "sn": {
+ "name": "Shona"
+ },
+ "ii": {
+ "name": "Sichuan Yi"
+ },
+ "xog": {
+ "name": "Soga"
+ },
+ "zgh": {
+ "name": "Standard Moroccan Tamazight"
+ },
+ "sw-CD": {
+ "name": "sw (CD)"
+ },
+ "sw": {
+ "name": "Swahili"
+ },
+ "gsw": {
+ "name": "Swiss German"
+ },
+ "shi": {
+ "name": "Tachelhit"
+ },
+ "dav": {
+ "name": "Taita"
+ },
+ "twq": {
+ "name": "Tasawaq"
+ },
+ "teo": {
+ "name": "Teso"
+ },
+ "vai": {
+ "name": "Vai"
+ },
+ "vo": {
+ "name": "Volapük"
+ },
+ "vun": {
+ "name": "Vunjo"
+ },
+ "wae": {
+ "name": "Walser"
+ },
+ "yav": {
+ "name": "Yangben"
+ },
+ "dje": {
+ "name": "Zarma"
+ },
+ "zu": {
+ "name": "Zulu"
+ },
+ "sq": {
+ "name": "албанӣ"
+ },
+ "am": {
+ "name": "амҳарӣ"
+ },
+ "en": {
+ "name": "англисӣ"
+ },
+ "en-AU": {
+ "name": "англисӣ (Австралия)"
+ },
+ "en-CA": {
+ "name": "англисӣ (Канада)"
+ },
+ "en-GB": {
+ "name": "англисӣ (Шоҳигарии Муттаҳида)"
+ },
+ "ar": {
+ "name": "арабӣ"
+ },
+ "hy": {
+ "name": "арманӣ"
+ },
+ "as": {
+ "name": "ассомӣ"
+ },
+ "af": {
+ "name": "африкаанс"
+ },
+ "eu": {
+ "name": "баскӣ"
+ },
+ "be": {
+ "name": "белорусӣ"
+ },
+ "bem": {
+ "name": "бемба"
+ },
+ "bn": {
+ "name": "бинғолӣ"
+ },
+ "my": {
+ "name": "бирманӣ"
+ },
+ "bs": {
+ "name": "босниягӣ"
+ },
+ "br": {
+ "name": "бретонӣ"
+ },
+ "bg": {
+ "name": "булғорӣ"
+ },
+ "cy": {
+ "name": "валлӣ"
+ },
+ "vi": {
+ "name": "ветнамӣ"
+ },
+ "wo": {
+ "name": "волоф"
+ },
+ "gl": {
+ "name": "галисиягӣ"
+ },
+ "nl": {
+ "name": "голландӣ"
+ },
+ "nl-BE": {
+ "name": "голландӣ (Белгия)"
+ },
+ "ka": {
+ "name": "гурҷӣ"
+ },
+ "gu": {
+ "name": "гуҷаротӣ"
+ },
+ "da": {
+ "name": "даниягӣ"
+ },
+ "dz": {
+ "name": "дзонгха"
+ },
+ "he": {
+ "name": "ибронӣ"
+ },
+ "ig": {
+ "name": "игбо"
+ },
+ "yi": {
+ "name": "идиш"
+ },
+ "smn": {
+ "name": "инари самӣ"
+ },
+ "id": {
+ "name": "индонезӣ"
+ },
+ "ga": {
+ "name": "ирландӣ"
+ },
+ "is": {
+ "name": "исландӣ"
+ },
+ "es": {
+ "name": "испанӣ"
+ },
+ "es-MX": {
+ "name": "испанӣ (Мексика)"
+ },
+ "it": {
+ "name": "италиявӣ"
+ },
+ "yo": {
+ "name": "йоруба"
+ },
+ "kn": {
+ "name": "каннада"
+ },
+ "ca": {
+ "name": "каталонӣ"
+ },
+ "ks": {
+ "name": "кашмирӣ"
+ },
+ "qu": {
+ "name": "кечуа"
+ },
+ "rw": {
+ "name": "киняруанда"
+ },
+ "kok": {
+ "name": "конканӣ"
+ },
+ "ko": {
+ "name": "кореягӣ"
+ },
+ "ckb": {
+ "name": "курдии марказӣ"
+ },
+ "km": {
+ "name": "кхмерӣ"
+ },
+ "kk": {
+ "name": "қазоқӣ"
+ },
+ "ky": {
+ "name": "қирғизӣ"
+ },
+ "lo": {
+ "name": "лаосӣ"
+ },
+ "lv": {
+ "name": "латишӣ"
+ },
+ "pl": {
+ "name": "лаҳистонӣ"
+ },
+ "lt": {
+ "name": "литвонӣ"
+ },
+ "lb": {
+ "name": "люксембургӣ"
+ },
+ "mk": {
+ "name": "мақдунӣ"
+ },
+ "mg": {
+ "name": "малагасӣ"
+ },
+ "ms": {
+ "name": "малайӣ"
+ },
+ "ml": {
+ "name": "малаяламӣ"
+ },
+ "mt": {
+ "name": "малтӣ"
+ },
+ "mr": {
+ "name": "маратҳӣ"
+ },
+ "hu": {
+ "name": "маҷорӣ"
+ },
+ "mn": {
+ "name": "муғулӣ"
+ },
+ "de": {
+ "name": "немисӣ"
+ },
+ "de-AT": {
+ "name": "немисӣ (Австрия)"
+ },
+ "de-CH": {
+ "name": "немисӣ (Швейтсария)"
+ },
+ "ne": {
+ "name": "непалӣ"
+ },
+ "or": {
+ "name": "одия"
+ },
+ "az": {
+ "name": "озарбойҷонӣ"
+ },
+ "om": {
+ "name": "оромо"
+ },
+ "pa": {
+ "name": "панҷобӣ"
+ },
+ "pt": {
+ "name": "португалӣ"
+ },
+ "pt-PT": {
+ "name": "португалӣ (Португалия)"
+ },
+ "ps": {
+ "name": "пушту"
+ },
+ "rm": {
+ "name": "ретороманӣ"
+ },
+ "ro": {
+ "name": "руминӣ"
+ },
+ "ro-MD": {
+ "name": "руминӣ (Молдова)"
+ },
+ "ru": {
+ "name": "русӣ"
+ },
+ "se": {
+ "name": "самии шимолӣ"
+ },
+ "sah": {
+ "name": "саха"
+ },
+ "sr": {
+ "name": "сербӣ"
+ },
+ "hsb": {
+ "name": "сербии болоӣ"
+ },
+ "dsb": {
+ "name": "сербии поёнӣ"
+ },
+ "si": {
+ "name": "сингалӣ"
+ },
+ "sd": {
+ "name": "синдӣ"
+ },
+ "sk": {
+ "name": "словакӣ"
+ },
+ "sl": {
+ "name": "словенӣ"
+ },
+ "so": {
+ "name": "сомалӣ"
+ },
+ "th": {
+ "name": "тайӣ"
+ },
+ "tzm": {
+ "name": "тамазайти атласи марказӣ"
+ },
+ "ta": {
+ "name": "тамилӣ"
+ },
+ "te": {
+ "name": "телугу"
+ },
+ "bo": {
+ "name": "тибетӣ"
+ },
+ "ti": {
+ "name": "тигриня"
+ },
+ "to": {
+ "name": "тонганӣ"
+ },
+ "tt": {
+ "name": "тоторӣ"
+ },
+ "tg": {
+ "name": "тоҷикӣ"
+ },
+ "tr": {
+ "name": "туркӣ"
+ },
+ "tk": {
+ "name": "туркманӣ"
+ },
+ "uz": {
+ "name": "ӯзбекӣ"
+ },
+ "ug": {
+ "name": "ӯйғурӣ"
+ },
+ "uk": {
+ "name": "украинӣ"
+ },
+ "ur": {
+ "name": "урду"
+ },
+ "fo": {
+ "name": "фарерӣ"
+ },
+ "fil": {
+ "name": "филиппинӣ"
+ },
+ "fi": {
+ "name": "финӣ"
+ },
+ "fa": {
+ "name": "форсӣ"
+ },
+ "fr": {
+ "name": "франсузӣ"
+ },
+ "fr-CA": {
+ "name": "франсузӣ (Канада)"
+ },
+ "fr-CH": {
+ "name": "франсузӣ (Швейтсария)"
+ },
+ "fy": {
+ "name": "фризии ғарбӣ"
+ },
+ "ff": {
+ "name": "фулаҳ"
+ },
+ "zh": {
+ "name": "хитоӣ"
+ },
+ "zh-Hant": {
+ "name": "хитоии анъанавӣ"
+ },
+ "zh-Hans": {
+ "name": "хитоии осонфаҳм"
+ },
+ "hr": {
+ "name": "хорватӣ"
+ },
+ "haw": {
+ "name": "ҳавайӣ"
+ },
+ "ha": {
+ "name": "ҳауса"
+ },
+ "hi": {
+ "name": "ҳиндӣ"
+ },
+ "chr": {
+ "name": "черокӣ"
+ },
+ "cs": {
+ "name": "чехӣ"
+ },
+ "sv": {
+ "name": "шведӣ"
+ },
+ "gd": {
+ "name": "шотландии гэлӣ"
+ },
+ "eo": {
+ "name": "эсперанто"
+ },
+ "et": {
+ "name": "эстонӣ"
+ },
+ "el": {
+ "name": "юнонӣ"
+ },
+ "ja": {
+ "name": "японӣ"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/th.json b/vendor/commerceguys/intl/resources/language/th.json
index 4bd246efd..1a76cda62 100644
--- a/vendor/commerceguys/intl/resources/language/th.json
+++ b/vendor/commerceguys/intl/resources/language/th.json
@@ -5,9 +5,6 @@
"kl": {
"name": "กรีนแลนด์"
},
- "yue": {
- "name": "กวางตุ้ง"
- },
"nmg": {
"name": "กวาซิโอ"
},
@@ -35,15 +32,15 @@
"guz": {
"name": "กุซซี"
},
+ "gd": {
+ "name": "เกลิกสกอต"
+ },
"ko": {
"name": "เกาหลี"
},
"km": {
"name": "เขมร"
},
- "qu": {
- "name": "ควิชัว"
- },
"kw": {
"name": "คอร์นิช"
},
@@ -71,6 +68,9 @@
"gu": {
"name": "คุชราต"
},
+ "qu": {
+ "name": "เคชวา"
+ },
"ckb": {
"name": "เคิร์ดโซรานี"
},
@@ -125,12 +125,18 @@
"dz": {
"name": "ซองคา"
},
- "hsb": {
- "name": "ซอร์บส์ตอนบน"
- },
"dsb": {
"name": "ซอร์บส์ตอนล่าง"
},
+ "hsb": {
+ "name": "ซอร์เบียตอนบน"
+ },
+ "sg": {
+ "name": "ซันโก"
+ },
+ "sah": {
+ "name": "ซาคา"
+ },
"se": {
"name": "ซามิเหนือ"
},
@@ -140,9 +146,6 @@
"dje": {
"name": "ซาร์มา"
},
- "sah": {
- "name": "ซาฮา"
- },
"zu": {
"name": "ซูลู"
},
@@ -158,9 +161,6 @@
"sbp": {
"name": "แซงกู"
},
- "sg": {
- "name": "แซงโก"
- },
"saq": {
"name": "แซมบูรู"
},
@@ -188,6 +188,9 @@
"twq": {
"name": "ตัสซาวัค"
},
+ "tt": {
+ "name": "ตาตาร์"
+ },
"ti": {
"name": "ติกริญญา"
},
@@ -201,11 +204,14 @@
"name": "เตลูกู"
},
"tk": {
- "name": "เติร์กเมนิสถาน"
+ "name": "เติร์กเมน"
},
"ta": {
"name": "ทมิฬ"
},
+ "tg": {
+ "name": "ทาจิก"
+ },
"shi": {
"name": "ทาเชลีห์ท"
},
@@ -251,12 +257,12 @@
"bg": {
"name": "บัลแกเรีย"
},
- "eu": {
- "name": "บัสเก"
- },
"ksf": {
"name": "บาเฟีย"
},
+ "eu": {
+ "name": "บาสก์"
+ },
"bas": {
"name": "บาสา"
},
@@ -309,7 +315,7 @@
"name": "พม่า"
},
"ps": {
- "name": "พาชตู"
+ "name": "พัชโต"
},
"brx": {
"name": "โพโฑ"
@@ -327,7 +333,7 @@
"name": "ฟิลิปปินส์"
},
"ff": {
- "name": "ฟูลาฮ์"
+ "name": "ฟูลาห์"
},
"nl-BE": {
"name": "เฟลมิช"
@@ -390,7 +396,7 @@
"name": "เมรู"
},
"yi": {
- "name": "ยิว"
+ "name": "ยิดดิช"
},
"lg": {
"name": "ยูกันดา"
@@ -482,15 +488,15 @@
"vi": {
"name": "เวียดนาม"
},
+ "wo": {
+ "name": "โวลอฟ"
+ },
"vo": {
"name": "โวลาพึค"
},
"vai": {
"name": "ไว"
},
- "gd": {
- "name": "สกอตส์กาลิก"
- },
"es": {
"name": "สเปน"
},
@@ -507,7 +513,7 @@
"name": "สวาฮีลี"
},
"sw-CD": {
- "name": "สวาฮีลี-คองโก"
+ "name": "สวาฮีลี - คองโก"
},
"sv": {
"name": "สวีเดน"
@@ -515,6 +521,9 @@
"si": {
"name": "สิงหล"
},
+ "sd": {
+ "name": "สินธิ"
+ },
"ii": {
"name": "เสฉวนยิ"
},
@@ -546,7 +555,7 @@
"name": "อัสสัม"
},
"ak": {
- "name": "อาคัน"
+ "name": "อาคาน"
},
"asa": {
"name": "อาซู"
@@ -567,7 +576,7 @@
"name": "อิตาลี"
},
"id": {
- "name": "อินโดนีเชีย"
+ "name": "อินโดนีเซีย"
},
"ewo": {
"name": "อีวันโด"
@@ -579,7 +588,7 @@
"name": "อุซเบก"
},
"ug": {
- "name": "อุยกัว"
+ "name": "อุยกูร์"
},
"ur": {
"name": "อูรดู"
@@ -597,7 +606,7 @@
"name": "เอสโตเนีย"
},
"eo": {
- "name": "เอสเปอรันโต"
+ "name": "เอสเปรันโต"
},
"af": {
"name": "แอฟริกานส์"
@@ -630,6 +639,6 @@
"name": "ฮิบรู"
},
"ha": {
- "name": "เฮาชา"
+ "name": "เฮาซา"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/ti.json b/vendor/commerceguys/intl/resources/language/ti.json
index 0445d6a73..e894a5dd9 100644
--- a/vendor/commerceguys/intl/resources/language/ti.json
+++ b/vendor/commerceguys/intl/resources/language/ti.json
@@ -38,9 +38,6 @@
"my": {
"name": "Burmese"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -222,7 +219,7 @@
"name": "Nama"
},
"nds-NL": {
- "name": "nds (NL)"
+ "name": "nds (ኔዘርላንድስ)"
},
"nnh": {
"name": "Ngiemboon"
@@ -296,6 +293,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"xog": {
"name": "Soga"
},
@@ -314,9 +314,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"teo": {
"name": "Teso"
},
@@ -344,6 +350,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
@@ -393,7 +402,7 @@
"name": "ሮማኒያን"
},
"ro-MD": {
- "name": "ሮማኒያን (MD)"
+ "name": "ሮማኒያን (ሞልዶቫ)"
},
"sr": {
"name": "ሰርቢኛ"
@@ -402,7 +411,7 @@
"name": "ሰዋሂሊኛ"
},
"sw-CD": {
- "name": "ሰዋሂሊኛ (CD)"
+ "name": "ሰዋሂሊኛ (ኮንጎ)"
},
"sk": {
"name": "ስሎቨክኛ"
@@ -420,7 +429,7 @@
"name": "ስፓኒሽ"
},
"es-MX": {
- "name": "ስፓኒሽ (MX)"
+ "name": "ስፓኒሽ (ሜክሲኮ)"
},
"bn": {
"name": "በንጋሊኛ"
@@ -513,13 +522,13 @@
"name": "እንግሊዝኛ"
},
"en-AU": {
- "name": "እንግሊዝኛ (AU)"
- },
- "en-CA": {
- "name": "እንግሊዝኛ (CA)"
+ "name": "እንግሊዝኛ (አውስትሬሊያ)"
},
"en-GB": {
- "name": "እንግሊዝኛ (GB)"
+ "name": "እንግሊዝኛ (እንግሊዝ)"
+ },
+ "en-CA": {
+ "name": "እንግሊዝኛ (ካናዳ)"
},
"or": {
"name": "ኦሪያ"
@@ -561,7 +570,7 @@
"name": "ደች"
},
"nl-BE": {
- "name": "ደች (BE)"
+ "name": "ደች (ቤልጄም)"
},
"da": {
"name": "ዴኒሽ"
@@ -569,11 +578,11 @@
"de": {
"name": "ጀርመን"
},
- "de-AT": {
- "name": "ጀርመን (AT)"
- },
"de-CH": {
- "name": "ጀርመን (CH)"
+ "name": "ጀርመን (ስዊዘርላንድ)"
+ },
+ "de-AT": {
+ "name": "ጀርመን (ኦስትሪያ)"
},
"ja": {
"name": "ጃፓንኛ"
@@ -596,11 +605,11 @@
"fr": {
"name": "ፈረንሳይኛ"
},
- "fr-CA": {
- "name": "ፈረንሳይኛ (CA)"
- },
"fr-CH": {
- "name": "ፈረንሳይኛ (CH)"
+ "name": "ፈረንሳይኛ (ስዊዘርላንድ)"
+ },
+ "fr-CA": {
+ "name": "ፈረንሳይኛ (ካናዳ)"
},
"fi": {
"name": "ፊኒሽ"
diff --git a/vendor/commerceguys/intl/resources/language/tk.json b/vendor/commerceguys/intl/resources/language/tk.json
new file mode 100644
index 000000000..9f1e70530
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/tk.json
@@ -0,0 +1,641 @@
+{
+ "zh-Hant": {
+ "name": "Adaty hytaý dili"
+ },
+ "af": {
+ "name": "Afrikaans dili"
+ },
+ "agq": {
+ "name": "Ahem dili"
+ },
+ "ak": {
+ "name": "Akan dili"
+ },
+ "sq": {
+ "name": "Alban dili"
+ },
+ "am": {
+ "name": "Amhar dili"
+ },
+ "ar": {
+ "name": "Arap dili"
+ },
+ "dsb": {
+ "name": "Aşaky lužits dili"
+ },
+ "as": {
+ "name": "Assam dili"
+ },
+ "ast": {
+ "name": "Asturiý dili"
+ },
+ "asa": {
+ "name": "Asu dili"
+ },
+ "az": {
+ "name": "Azerbaýjan dili"
+ },
+ "ksf": {
+ "name": "Bafia dili"
+ },
+ "bm": {
+ "name": "Bamana"
+ },
+ "bas": {
+ "name": "Basaa dili"
+ },
+ "eu": {
+ "name": "Bask dili"
+ },
+ "be": {
+ "name": "Belarus dili"
+ },
+ "bem": {
+ "name": "Bemba dili"
+ },
+ "bez": {
+ "name": "Bena dili"
+ },
+ "bn": {
+ "name": "Bengal dili"
+ },
+ "my": {
+ "name": "Birma dili"
+ },
+ "brx": {
+ "name": "Bodo dili"
+ },
+ "bg": {
+ "name": "Bolgar dili"
+ },
+ "bs": {
+ "name": "Boşnak dili"
+ },
+ "br": {
+ "name": "Breton dili"
+ },
+ "cu": {
+ "name": "Buthana slaw dili"
+ },
+ "ce": {
+ "name": "Çeçen dili"
+ },
+ "cs": {
+ "name": "Çeh dili"
+ },
+ "chr": {
+ "name": "Çeroki"
+ },
+ "da": {
+ "name": "Daniýa dili"
+ },
+ "lrc": {
+ "name": "Demirgazyk luri dili"
+ },
+ "nd": {
+ "name": "Demirgazyk ndebele dili"
+ },
+ "se": {
+ "name": "Demirgazyk saam dili"
+ },
+ "dua": {
+ "name": "Duala dili"
+ },
+ "dz": {
+ "name": "Dzong-ke dili"
+ },
+ "ebu": {
+ "name": "Embu dili"
+ },
+ "hy": {
+ "name": "Ermeni dili"
+ },
+ "eo": {
+ "name": "Esperanto dili"
+ },
+ "et": {
+ "name": "Eston dili"
+ },
+ "ee": {
+ "name": "Ewe dili"
+ },
+ "ewo": {
+ "name": "Ewondo dili"
+ },
+ "fo": {
+ "name": "Farer dili"
+ },
+ "fil": {
+ "name": "Filippin dili"
+ },
+ "fi": {
+ "name": "Fin dili"
+ },
+ "nl-BE": {
+ "name": "Flamand dili"
+ },
+ "fr": {
+ "name": "Fransuz dili"
+ },
+ "fr-CA": {
+ "name": "Fransuz dili (Kanada)"
+ },
+ "fr-CH": {
+ "name": "Fransuz dili (Şweýsariýa)"
+ },
+ "fur": {
+ "name": "Friul dili"
+ },
+ "ff": {
+ "name": "Fula dili"
+ },
+ "gl": {
+ "name": "Galisiý dili"
+ },
+ "lg": {
+ "name": "Ganda dili"
+ },
+ "haw": {
+ "name": "Gawaý dili"
+ },
+ "kk": {
+ "name": "Gazak dili"
+ },
+ "el": {
+ "name": "Grek dili"
+ },
+ "kl": {
+ "name": "Grenland dili"
+ },
+ "ka": {
+ "name": "Gruzin dili"
+ },
+ "gu": {
+ "name": "Gujarati dili"
+ },
+ "fy": {
+ "name": "Günbatar friz dili"
+ },
+ "guz": {
+ "name": "Gusii dili"
+ },
+ "ky": {
+ "name": "Gyrgyz dili"
+ },
+ "ha": {
+ "name": "Hausa dili"
+ },
+ "hi": {
+ "name": "Hindi dili"
+ },
+ "hr": {
+ "name": "Horwat dili"
+ },
+ "zh": {
+ "name": "Hytaý dili"
+ },
+ "yi": {
+ "name": "Idiş dili"
+ },
+ "ig": {
+ "name": "Igbo dili"
+ },
+ "smn": {
+ "name": "Inari-saam dili"
+ },
+ "id": {
+ "name": "Indonez dili"
+ },
+ "en": {
+ "name": "Iňlis dili"
+ },
+ "en-AU": {
+ "name": "Iňlis dili (Awstraliýa)"
+ },
+ "en-GB": {
+ "name": "Iňlis dili (Beýik Britaniýa)"
+ },
+ "en-CA": {
+ "name": "Iňlis dili (Kanada)"
+ },
+ "ga": {
+ "name": "Irland dili"
+ },
+ "is": {
+ "name": "Island dili"
+ },
+ "es": {
+ "name": "Ispan dili"
+ },
+ "es-MX": {
+ "name": "Ispan dili (Meksika)"
+ },
+ "it": {
+ "name": "Italýan dili"
+ },
+ "kab": {
+ "name": "Kabil dili"
+ },
+ "kea": {
+ "name": "Kabuwerdianu dili"
+ },
+ "kkj": {
+ "name": "Kako dili"
+ },
+ "kln": {
+ "name": "Kalenjin dili"
+ },
+ "kam": {
+ "name": "Kamba dili"
+ },
+ "kn": {
+ "name": "Kannada dili"
+ },
+ "ks": {
+ "name": "Kaşmiri dili"
+ },
+ "ca": {
+ "name": "Katalan dili"
+ },
+ "qu": {
+ "name": "Keçua dili"
+ },
+ "ksh": {
+ "name": "Keln dili"
+ },
+ "km": {
+ "name": "Khmer dili"
+ },
+ "cgg": {
+ "name": "Kiga"
+ },
+ "ki": {
+ "name": "Kikuýu dili"
+ },
+ "rw": {
+ "name": "Kinýaruanda dili"
+ },
+ "sw-CD": {
+ "name": "Kongo suahili dili"
+ },
+ "kok": {
+ "name": "Konkani dili"
+ },
+ "ko": {
+ "name": "Koreý dili"
+ },
+ "kw": {
+ "name": "Korn dili"
+ },
+ "khq": {
+ "name": "Koýra-Çini dili"
+ },
+ "ses": {
+ "name": "Koýraboro-Senni dili"
+ },
+ "nmg": {
+ "name": "Kwasio dili"
+ },
+ "lkt": {
+ "name": "Lakota dili"
+ },
+ "lag": {
+ "name": "Langi dili"
+ },
+ "lo": {
+ "name": "Laos dili"
+ },
+ "lv": {
+ "name": "Latyş dili"
+ },
+ "ln": {
+ "name": "Lingala dili"
+ },
+ "lt": {
+ "name": "Litwa dili"
+ },
+ "lu": {
+ "name": "Luba-Katanga dili"
+ },
+ "luo": {
+ "name": "Luo dili"
+ },
+ "luy": {
+ "name": "Luýýa dili"
+ },
+ "lb": {
+ "name": "Lýuksemburg dili"
+ },
+ "jmc": {
+ "name": "Maçame dili"
+ },
+ "mk": {
+ "name": "Makedon dili"
+ },
+ "kde": {
+ "name": "Makonde dili"
+ },
+ "mgh": {
+ "name": "Makua-Mitto dili"
+ },
+ "mg": {
+ "name": "Malagasiý dili"
+ },
+ "ms": {
+ "name": "Malaý dili"
+ },
+ "ml": {
+ "name": "Malaýalam dili"
+ },
+ "mt": {
+ "name": "Malta dili"
+ },
+ "mr": {
+ "name": "Marathi dili"
+ },
+ "mas": {
+ "name": "Masai dili"
+ },
+ "mzn": {
+ "name": "Mazanderan dili"
+ },
+ "gv": {
+ "name": "Men dili"
+ },
+ "ckb": {
+ "name": "Merkezi kürt dili"
+ },
+ "mer": {
+ "name": "Meru dili"
+ },
+ "mgo": {
+ "name": "Meta dili"
+ },
+ "ro-MD": {
+ "name": "Moldaw dili"
+ },
+ "mn": {
+ "name": "Mongol dili"
+ },
+ "mfe": {
+ "name": "Morisýen dili"
+ },
+ "mua": {
+ "name": "Mundang dili"
+ },
+ "naq": {
+ "name": "Nama dili"
+ },
+ "nds-NL": {
+ "name": "nds (Niderlandiýa)"
+ },
+ "de": {
+ "name": "Nemes dili"
+ },
+ "de-AT": {
+ "name": "Nemes dili (Awstriýa)"
+ },
+ "de-CH": {
+ "name": "Nemes dili (Daglyk Şweýsariýa)"
+ },
+ "gsw": {
+ "name": "Nemes dili (Şweýsariýa)"
+ },
+ "ne": {
+ "name": "Nepal dili"
+ },
+ "nnh": {
+ "name": "Ngembun dili"
+ },
+ "jgo": {
+ "name": "Ngomba dili"
+ },
+ "nl": {
+ "name": "Niderland dili"
+ },
+ "nb": {
+ "name": "Norwegiýa bukmol dili"
+ },
+ "nn": {
+ "name": "Norwegiýa nýunorsk dili"
+ },
+ "nus": {
+ "name": "Nuer dili"
+ },
+ "nyn": {
+ "name": "Nýankole dili"
+ },
+ "or": {
+ "name": "Oriýa dili"
+ },
+ "om": {
+ "name": "Oromo dili"
+ },
+ "tzm": {
+ "name": "Orta-Atlas tamazight dili"
+ },
+ "os": {
+ "name": "Osetin dili"
+ },
+ "uz": {
+ "name": "Özbek dili"
+ },
+ "fa": {
+ "name": "Pars dili"
+ },
+ "pa": {
+ "name": "Penjab dili"
+ },
+ "ps": {
+ "name": "Peştun dili"
+ },
+ "pl": {
+ "name": "Polýak dili"
+ },
+ "pt": {
+ "name": "Portugal dili"
+ },
+ "pt-PT": {
+ "name": "Portugal dili (Ýewropa)"
+ },
+ "prg": {
+ "name": "Prussiýa dili"
+ },
+ "rm": {
+ "name": "Retoroman dili"
+ },
+ "rof": {
+ "name": "Rombo dili"
+ },
+ "ro": {
+ "name": "Rumyn dili"
+ },
+ "rn": {
+ "name": "Rundi dili"
+ },
+ "ru": {
+ "name": "Rus dili"
+ },
+ "rwk": {
+ "name": "Rwa dili"
+ },
+ "ksb": {
+ "name": "Şambala dili"
+ },
+ "saq": {
+ "name": "Samburu dili"
+ },
+ "sg": {
+ "name": "Sango dili"
+ },
+ "sbp": {
+ "name": "Sangu dili"
+ },
+ "seh": {
+ "name": "Sena dili"
+ },
+ "sr": {
+ "name": "Serb dili"
+ },
+ "sd": {
+ "name": "Sindhi dili"
+ },
+ "si": {
+ "name": "Singal dili"
+ },
+ "sk": {
+ "name": "Slowak dili"
+ },
+ "sl": {
+ "name": "Slowen dili"
+ },
+ "xog": {
+ "name": "Soga dili"
+ },
+ "so": {
+ "name": "Somali dili"
+ },
+ "sn": {
+ "name": "Şona dili"
+ },
+ "gd": {
+ "name": "Şotland kelt dili"
+ },
+ "zgh": {
+ "name": "Standart Marokko tamazight dili"
+ },
+ "sw": {
+ "name": "Suahili dili"
+ },
+ "sv": {
+ "name": "Şwed dili"
+ },
+ "ii": {
+ "name": "Syçuan-i dili"
+ },
+ "shi": {
+ "name": "Tahelhit dili"
+ },
+ "dav": {
+ "name": "Taita dili"
+ },
+ "tg": {
+ "name": "Täjik dili"
+ },
+ "ta": {
+ "name": "Tamil dili"
+ },
+ "twq": {
+ "name": "Tasawak dili"
+ },
+ "tt": {
+ "name": "Tatar dili"
+ },
+ "th": {
+ "name": "Taý dili"
+ },
+ "te": {
+ "name": "Telugu dili"
+ },
+ "teo": {
+ "name": "Teso dili"
+ },
+ "bo": {
+ "name": "Tibet dili"
+ },
+ "ti": {
+ "name": "Tigrinýa dili"
+ },
+ "to": {
+ "name": "Tongan dili"
+ },
+ "tr": {
+ "name": "Türk dili"
+ },
+ "tk": {
+ "name": "Türkmen dili"
+ },
+ "uk": {
+ "name": "Ukrain dili"
+ },
+ "ur": {
+ "name": "Urdu"
+ },
+ "ug": {
+ "name": "Uýgur dili"
+ },
+ "vai": {
+ "name": "Wai dili"
+ },
+ "cy": {
+ "name": "Walliý dili"
+ },
+ "wae": {
+ "name": "Walzer dili"
+ },
+ "hu": {
+ "name": "Wenger dili"
+ },
+ "vo": {
+ "name": "Wolapýuk dili"
+ },
+ "wo": {
+ "name": "Wolof dili"
+ },
+ "vun": {
+ "name": "Wunýo dili"
+ },
+ "vi": {
+ "name": "Wýetnam dili"
+ },
+ "sah": {
+ "name": "Ýakut dili"
+ },
+ "yav": {
+ "name": "Ýangben dili"
+ },
+ "ja": {
+ "name": "Ýapon dili"
+ },
+ "he": {
+ "name": "Ýewreý dili"
+ },
+ "hsb": {
+ "name": "Ýokarky lužits dili"
+ },
+ "dyo": {
+ "name": "Ýola-Fonyi dili"
+ },
+ "zh-Hans": {
+ "name": "Ýönekeýleşdirilen hytaý dili"
+ },
+ "yo": {
+ "name": "Ýoruba dili"
+ },
+ "dje": {
+ "name": "Zarma dili"
+ },
+ "zu": {
+ "name": "Zulu dili"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/to.json b/vendor/commerceguys/intl/resources/language/to.json
index 5684e093e..1e2bf40bf 100644
--- a/vendor/commerceguys/intl/resources/language/to.json
+++ b/vendor/commerceguys/intl/resources/language/to.json
@@ -131,9 +131,6 @@
"kw": {
"name": "lea fakakoniuali"
},
- "yue": {
- "name": "lea fakakuangitongi"
- },
"nmg": {
"name": "lea fakakuasio"
},
@@ -293,6 +290,9 @@
"bm": {
"name": "lea fakapamipala"
},
+ "bn": {
+ "name": "lea fakapāngilā"
+ },
"bas": {
"name": "lea fakapasaʻa"
},
@@ -317,9 +317,6 @@
"bez": {
"name": "lea fakapena"
},
- "bn": {
- "name": "lea fakapengikali"
- },
"fa": {
"name": "lea fakapēsia"
},
@@ -422,6 +419,9 @@
"cu": {
"name": "lea fakasilavia-fakasiasi"
},
+ "sd": {
+ "name": "lea fakasīniti"
+ },
"si": {
"name": "lea fakasingihala"
},
@@ -488,6 +488,12 @@
"shi": {
"name": "lea fakataselihiti"
},
+ "tg": {
+ "name": "lea fakatāsiki"
+ },
+ "tt": {
+ "name": "lea fakatatale"
+ },
"tk": {
"name": "lea fakatēkimeni"
},
@@ -623,6 +629,9 @@
"uk": {
"name": "lea fakaʻūkalaʻine"
},
+ "wo": {
+ "name": "lea fakaʻuolofo"
+ },
"uz": {
"name": "lea fakaʻusipeki"
},
diff --git a/vendor/commerceguys/intl/resources/language/tr.json b/vendor/commerceguys/intl/resources/language/tr.json
index 64c4077f4..b4cc934e7 100644
--- a/vendor/commerceguys/intl/resources/language/tr.json
+++ b/vendor/commerceguys/intl/resources/language/tr.json
@@ -80,6 +80,9 @@
"bn": {
"name": "Bengalce"
},
+ "my": {
+ "name": "Birman dili"
+ },
"brx": {
"name": "Bodo"
},
@@ -92,9 +95,6 @@
"bg": {
"name": "Bulgarca"
},
- "my": {
- "name": "Burmaca"
- },
"ce": {
"name": "Çeçence"
},
@@ -272,9 +272,6 @@
"kn": {
"name": "Kannada dili"
},
- "yue": {
- "name": "Kantonca"
- },
"ca": {
"name": "Katalanca"
},
@@ -290,6 +287,9 @@
"ks": {
"name": "Keşmir dili"
},
+ "km": {
+ "name": "Khmer dili"
+ },
"ky": {
"name": "Kırgızca"
},
@@ -308,9 +308,6 @@
"rn": {
"name": "Kirundi"
},
- "km": {
- "name": "Kmerce"
- },
"sw-CD": {
"name": "Kongo Svahili"
},
@@ -402,10 +399,10 @@
"name": "Maltaca"
},
"gv": {
- "name": "Manks"
+ "name": "Man dili"
},
"mr": {
- "name": "Marathi"
+ "name": "Marathi dili"
},
"mas": {
"name": "Masai"
@@ -515,9 +512,6 @@
"seh": {
"name": "Sena"
},
- "si": {
- "name": "Seylanca"
- },
"ksb": {
"name": "Shambala"
},
@@ -530,6 +524,12 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi dili"
+ },
+ "si": {
+ "name": "Sinhali dili"
+ },
"sk": {
"name": "Slovakça"
},
@@ -546,7 +546,10 @@
"name": "Standart Fas Tamazigti"
},
"sw": {
- "name": "Svahili"
+ "name": "Svahili dili"
+ },
+ "tg": {
+ "name": "Tacikçe"
},
"dav": {
"name": "Taita"
@@ -560,6 +563,9 @@
"shi": {
"name": "Taşelhit"
},
+ "tt": {
+ "name": "Tatarca"
+ },
"th": {
"name": "Tayca"
},
@@ -573,7 +579,7 @@
"name": "Tibetçe"
},
"ti": {
- "name": "Tigrinya"
+ "name": "Tigrinya dili"
},
"to": {
"name": "Tonga dili"
@@ -602,6 +608,9 @@
"vo": {
"name": "Volapük"
},
+ "wo": {
+ "name": "Volofça"
+ },
"vun": {
"name": "Vunjo"
},
diff --git a/vendor/commerceguys/intl/resources/language/tt.json b/vendor/commerceguys/intl/resources/language/tt.json
new file mode 100644
index 000000000..511dc6def
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/tt.json
@@ -0,0 +1,641 @@
+{
+ "agq": {
+ "name": "Aghem"
+ },
+ "ak": {
+ "name": "Akan"
+ },
+ "ast": {
+ "name": "Asturian"
+ },
+ "asa": {
+ "name": "Asu"
+ },
+ "ksf": {
+ "name": "Bafia"
+ },
+ "bm": {
+ "name": "Bambara"
+ },
+ "bas": {
+ "name": "Basaa"
+ },
+ "bez": {
+ "name": "Bena"
+ },
+ "brx": {
+ "name": "Bodo"
+ },
+ "ce": {
+ "name": "Chechen"
+ },
+ "cgg": {
+ "name": "Chiga"
+ },
+ "cu": {
+ "name": "Church Slavic"
+ },
+ "ksh": {
+ "name": "Colognian"
+ },
+ "kw": {
+ "name": "Cornish"
+ },
+ "dua": {
+ "name": "Duala"
+ },
+ "ebu": {
+ "name": "Embu"
+ },
+ "ee": {
+ "name": "Ewe"
+ },
+ "ewo": {
+ "name": "Ewondo"
+ },
+ "fur": {
+ "name": "Friulian"
+ },
+ "lg": {
+ "name": "Ganda"
+ },
+ "guz": {
+ "name": "Gusii"
+ },
+ "dyo": {
+ "name": "Jola-Fonyi"
+ },
+ "kea": {
+ "name": "Kabuverdianu"
+ },
+ "kab": {
+ "name": "Kabyle"
+ },
+ "kkj": {
+ "name": "Kako"
+ },
+ "kl": {
+ "name": "Kalaallisut"
+ },
+ "kln": {
+ "name": "Kalenjin"
+ },
+ "kam": {
+ "name": "Kamba"
+ },
+ "ki": {
+ "name": "Kikuyu"
+ },
+ "khq": {
+ "name": "Koyra Chiini"
+ },
+ "ses": {
+ "name": "Koyraboro Senni"
+ },
+ "nmg": {
+ "name": "Kwasio"
+ },
+ "lkt": {
+ "name": "Lakota"
+ },
+ "lag": {
+ "name": "Langi"
+ },
+ "ln": {
+ "name": "Lingala"
+ },
+ "lu": {
+ "name": "Luba-Katanga"
+ },
+ "luo": {
+ "name": "Luo"
+ },
+ "luy": {
+ "name": "Luyia"
+ },
+ "jmc": {
+ "name": "Machame"
+ },
+ "mgh": {
+ "name": "Makhuwa-Meetto"
+ },
+ "kde": {
+ "name": "Makonde"
+ },
+ "gv": {
+ "name": "Manx"
+ },
+ "mas": {
+ "name": "Masai"
+ },
+ "mzn": {
+ "name": "Mazanderani"
+ },
+ "mer": {
+ "name": "Meru"
+ },
+ "mgo": {
+ "name": "Metaʼ"
+ },
+ "mfe": {
+ "name": "Morisyen"
+ },
+ "mua": {
+ "name": "Mundang"
+ },
+ "naq": {
+ "name": "Nama"
+ },
+ "nds-NL": {
+ "name": "nds (Нидерланд)"
+ },
+ "nnh": {
+ "name": "Ngiemboon"
+ },
+ "jgo": {
+ "name": "Ngomba"
+ },
+ "nd": {
+ "name": "North Ndebele"
+ },
+ "lrc": {
+ "name": "Northern Luri"
+ },
+ "nb": {
+ "name": "Norwegian Bokmål"
+ },
+ "nn": {
+ "name": "Norwegian Nynorsk"
+ },
+ "nus": {
+ "name": "Nuer"
+ },
+ "nyn": {
+ "name": "Nyankole"
+ },
+ "os": {
+ "name": "Ossetic"
+ },
+ "prg": {
+ "name": "Prussian"
+ },
+ "rof": {
+ "name": "Rombo"
+ },
+ "rn": {
+ "name": "Rundi"
+ },
+ "rwk": {
+ "name": "Rwa"
+ },
+ "saq": {
+ "name": "Samburu"
+ },
+ "sg": {
+ "name": "Sango"
+ },
+ "sbp": {
+ "name": "Sangu"
+ },
+ "seh": {
+ "name": "Sena"
+ },
+ "ksb": {
+ "name": "Shambala"
+ },
+ "sn": {
+ "name": "Shona"
+ },
+ "ii": {
+ "name": "Sichuan Yi"
+ },
+ "xog": {
+ "name": "Soga"
+ },
+ "zgh": {
+ "name": "Standard Moroccan Tamazight"
+ },
+ "sw-CD": {
+ "name": "sw (CD)"
+ },
+ "sw": {
+ "name": "Swahili"
+ },
+ "gsw": {
+ "name": "Swiss German"
+ },
+ "shi": {
+ "name": "Tachelhit"
+ },
+ "dav": {
+ "name": "Taita"
+ },
+ "twq": {
+ "name": "Tasawaq"
+ },
+ "teo": {
+ "name": "Teso"
+ },
+ "vai": {
+ "name": "Vai"
+ },
+ "vo": {
+ "name": "Volapük"
+ },
+ "vun": {
+ "name": "Vunjo"
+ },
+ "wae": {
+ "name": "Walser"
+ },
+ "fy": {
+ "name": "Western Frisian"
+ },
+ "yav": {
+ "name": "Yangben"
+ },
+ "dje": {
+ "name": "Zarma"
+ },
+ "zu": {
+ "name": "Zulu"
+ },
+ "sq": {
+ "name": "албан"
+ },
+ "de": {
+ "name": "алман"
+ },
+ "de-AT": {
+ "name": "алман (Австрия)"
+ },
+ "de-CH": {
+ "name": "алман (Швейцария)"
+ },
+ "am": {
+ "name": "амхар"
+ },
+ "as": {
+ "name": "ассам"
+ },
+ "af": {
+ "name": "африкаанс"
+ },
+ "az": {
+ "name": "әзәрбайҗан"
+ },
+ "hy": {
+ "name": "әрмән"
+ },
+ "eu": {
+ "name": "баск"
+ },
+ "be": {
+ "name": "белорус"
+ },
+ "bem": {
+ "name": "бемба"
+ },
+ "bn": {
+ "name": "бенгали"
+ },
+ "my": {
+ "name": "бирма"
+ },
+ "bg": {
+ "name": "болгар"
+ },
+ "bs": {
+ "name": "босния"
+ },
+ "br": {
+ "name": "бретон"
+ },
+ "hu": {
+ "name": "венгр"
+ },
+ "wo": {
+ "name": "волоф"
+ },
+ "vi": {
+ "name": "вьетнам"
+ },
+ "haw": {
+ "name": "гавайи"
+ },
+ "zh-Hans": {
+ "name": "гадиләштерелгән кытай"
+ },
+ "gl": {
+ "name": "галисия"
+ },
+ "ar": {
+ "name": "гарәп"
+ },
+ "nl": {
+ "name": "голланд"
+ },
+ "nl-BE": {
+ "name": "голланд (Бельгия)"
+ },
+ "el": {
+ "name": "грек"
+ },
+ "ka": {
+ "name": "грузин"
+ },
+ "gu": {
+ "name": "гуҗарати"
+ },
+ "da": {
+ "name": "дания"
+ },
+ "dz": {
+ "name": "дзонг-кха"
+ },
+ "ig": {
+ "name": "игбо"
+ },
+ "yi": {
+ "name": "идиш"
+ },
+ "smn": {
+ "name": "инари-саам"
+ },
+ "en": {
+ "name": "инглиз"
+ },
+ "en-AU": {
+ "name": "инглиз (Австралия)"
+ },
+ "en-GB": {
+ "name": "инглиз (Бөекбритания)"
+ },
+ "en-CA": {
+ "name": "инглиз (Канада)"
+ },
+ "id": {
+ "name": "индонезия"
+ },
+ "ga": {
+ "name": "ирланд"
+ },
+ "is": {
+ "name": "исланд"
+ },
+ "es": {
+ "name": "испан"
+ },
+ "es-MX": {
+ "name": "испан (Мексика)"
+ },
+ "it": {
+ "name": "итальян"
+ },
+ "yo": {
+ "name": "йоруба"
+ },
+ "kk": {
+ "name": "казакъ"
+ },
+ "kn": {
+ "name": "каннада"
+ },
+ "ca": {
+ "name": "каталан"
+ },
+ "ks": {
+ "name": "кашмири"
+ },
+ "qu": {
+ "name": "кечуа"
+ },
+ "kok": {
+ "name": "конкани"
+ },
+ "ko": {
+ "name": "корея"
+ },
+ "km": {
+ "name": "кхмер"
+ },
+ "ky": {
+ "name": "кыргыз"
+ },
+ "zh": {
+ "name": "кытай (тәрҗемә киңәше: аерым алганда, мандарин кытайчасы)"
+ },
+ "lo": {
+ "name": "лаос"
+ },
+ "lv": {
+ "name": "латыш"
+ },
+ "lt": {
+ "name": "литва"
+ },
+ "lb": {
+ "name": "люксембург"
+ },
+ "mk": {
+ "name": "македон"
+ },
+ "mg": {
+ "name": "малагаси"
+ },
+ "ms": {
+ "name": "малай"
+ },
+ "ml": {
+ "name": "малаялам"
+ },
+ "mt": {
+ "name": "мальта"
+ },
+ "mr": {
+ "name": "маратхи"
+ },
+ "mn": {
+ "name": "монгол"
+ },
+ "ne": {
+ "name": "непали"
+ },
+ "or": {
+ "name": "ория"
+ },
+ "om": {
+ "name": "оромо"
+ },
+ "pa": {
+ "name": "пәнҗаби"
+ },
+ "pl": {
+ "name": "поляк"
+ },
+ "pt": {
+ "name": "португал"
+ },
+ "pt-PT": {
+ "name": "португал (Португалия)"
+ },
+ "ps": {
+ "name": "пушту"
+ },
+ "rm": {
+ "name": "ретороман"
+ },
+ "rw": {
+ "name": "руанда"
+ },
+ "ro": {
+ "name": "румын"
+ },
+ "ro-MD": {
+ "name": "румын (Молдова)"
+ },
+ "ru": {
+ "name": "рус"
+ },
+ "sah": {
+ "name": "саха"
+ },
+ "sr": {
+ "name": "серб"
+ },
+ "si": {
+ "name": "сингал"
+ },
+ "sd": {
+ "name": "синдһи"
+ },
+ "sk": {
+ "name": "словак"
+ },
+ "sl": {
+ "name": "словен"
+ },
+ "so": {
+ "name": "сомали"
+ },
+ "tg": {
+ "name": "таҗик"
+ },
+ "th": {
+ "name": "тай"
+ },
+ "ta": {
+ "name": "тамил"
+ },
+ "tt": {
+ "name": "татар"
+ },
+ "te": {
+ "name": "телугу"
+ },
+ "bo": {
+ "name": "тибет"
+ },
+ "ti": {
+ "name": "тигринья"
+ },
+ "to": {
+ "name": "тонга"
+ },
+ "se": {
+ "name": "төньяк саам"
+ },
+ "tr": {
+ "name": "төрек"
+ },
+ "tk": {
+ "name": "төрекмән"
+ },
+ "zh-Hant": {
+ "name": "традицион кытай"
+ },
+ "dsb": {
+ "name": "түбән сорб"
+ },
+ "ug": {
+ "name": "уйгыр"
+ },
+ "uk": {
+ "name": "украин"
+ },
+ "ur": {
+ "name": "урду"
+ },
+ "cy": {
+ "name": "уэльс"
+ },
+ "tzm": {
+ "name": "үзәк атлас тамазигт"
+ },
+ "ckb": {
+ "name": "үзәк көрд"
+ },
+ "uz": {
+ "name": "үзбәк"
+ },
+ "fo": {
+ "name": "фарер"
+ },
+ "fa": {
+ "name": "фарсы"
+ },
+ "fil": {
+ "name": "филиппин"
+ },
+ "fi": {
+ "name": "фин"
+ },
+ "fr": {
+ "name": "француз"
+ },
+ "fr-CA": {
+ "name": "француз (Канада)"
+ },
+ "fr-CH": {
+ "name": "француз (Швейцария)"
+ },
+ "ff": {
+ "name": "фула"
+ },
+ "ha": {
+ "name": "хауса"
+ },
+ "hr": {
+ "name": "хорват"
+ },
+ "hi": {
+ "name": "һинд"
+ },
+ "chr": {
+ "name": "чероки"
+ },
+ "cs": {
+ "name": "чех"
+ },
+ "sv": {
+ "name": "швед"
+ },
+ "gd": {
+ "name": "шотланд гэль"
+ },
+ "eo": {
+ "name": "эсперанто"
+ },
+ "et": {
+ "name": "эстон"
+ },
+ "hsb": {
+ "name": "югары сорб"
+ },
+ "ja": {
+ "name": "япон"
+ },
+ "he": {
+ "name": "яһүд"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/twq.json b/vendor/commerceguys/intl/resources/language/twq.json
index 9c1731ec5..2c2703dfc 100644
--- a/vendor/commerceguys/intl/resources/language/twq.json
+++ b/vendor/commerceguys/intl/resources/language/twq.json
@@ -77,9 +77,6 @@
"my": {
"name": "Burme senni"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -503,6 +500,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -551,12 +551,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamil senni"
},
"twq": {
"name": "Tasawaq senni"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/tzm.json b/vendor/commerceguys/intl/resources/language/tzm.json
index 58074987e..dab57f607 100644
--- a/vendor/commerceguys/intl/resources/language/tzm.json
+++ b/vendor/commerceguys/intl/resources/language/tzm.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -371,6 +368,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -464,6 +464,9 @@
"ja": {
"name": "Tajappunit"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ak": {
"name": "Takanit"
},
@@ -539,6 +542,9 @@
"ta": {
"name": "Tatamilt"
},
+ "tt": {
+ "name": "Tatar"
+ },
"th": {
"name": "Taṭayt"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/ug.json b/vendor/commerceguys/intl/resources/language/ug.json
index 376d48c68..8e795b9e3 100644
--- a/vendor/commerceguys/intl/resources/language/ug.json
+++ b/vendor/commerceguys/intl/resources/language/ug.json
@@ -164,6 +164,12 @@
"ps": {
"name": "پۇشتۇچە"
},
+ "tt": {
+ "name": "تاتارچە"
+ },
+ "tg": {
+ "name": "تاجىكچە"
+ },
"ta": {
"name": "تامىلچە"
},
@@ -290,6 +296,9 @@
"sl": {
"name": "سىلوۋېنچە"
},
+ "sd": {
+ "name": "سىندىچە"
+ },
"si": {
"name": "سىنگالچە"
},
@@ -437,9 +446,6 @@
"nl-BE": {
"name": "گوللاندچە (بېلگىيە)"
},
- "yue": {
- "name": "گۇاڭدوڭچە"
- },
"gu": {
"name": "گۇجاراتچە"
},
@@ -587,6 +593,9 @@
"vo": {
"name": "ۋولاپۇكچە"
},
+ "wo": {
+ "name": "ۋولوفچە"
+ },
"vun": {
"name": "ۋۇنجوچە"
},
diff --git a/vendor/commerceguys/intl/resources/language/uk.json b/vendor/commerceguys/intl/resources/language/uk.json
index 2bbcebf93..bba866c3d 100644
--- a/vendor/commerceguys/intl/resources/language/uk.json
+++ b/vendor/commerceguys/intl/resources/language/uk.json
@@ -20,6 +20,9 @@
"en-AU": {
"name": "англійська (Австралія)"
},
+ "en-GB": {
+ "name": "англійська (Велика Британія)"
+ },
"en-CA": {
"name": "англійська (Канада)"
},
@@ -41,6 +44,9 @@
"bm": {
"name": "бамбара"
},
+ "bn": {
+ "name": "банґла"
+ },
"bas": {
"name": "баса"
},
@@ -56,9 +62,6 @@
"bez": {
"name": "бена"
},
- "bn": {
- "name": "бенгальська"
- },
"be": {
"name": "білоруська"
},
@@ -77,12 +80,6 @@
"br": {
"name": "бретонська"
},
- "en-GB": {
- "name": "британська англійська"
- },
- "nb": {
- "name": "букмол (Норвегія)"
- },
"vai": {
"name": "ваї"
},
@@ -104,6 +101,9 @@
"vo": {
"name": "волапʼюк"
},
+ "wo": {
+ "name": "волоф"
+ },
"vun": {
"name": "вуньо"
},
@@ -125,9 +125,6 @@
"hi": {
"name": "гінді"
},
- "nl": {
- "name": "голландська"
- },
"el": {
"name": "грецька"
},
@@ -170,6 +167,9 @@
"et": {
"name": "естонська"
},
+ "pt-PT": {
+ "name": "європейська портуґальська"
+ },
"fy": {
"name": "західнофризька"
},
@@ -182,9 +182,6 @@
"ig": {
"name": "ігбо"
},
- "yi": {
- "name": "ідиш"
- },
"id": {
"name": "індонезійська"
},
@@ -203,6 +200,9 @@
"it": {
"name": "італійська"
},
+ "yi": {
+ "name": "їдиш"
+ },
"yo": {
"name": "йоруба"
},
@@ -230,9 +230,6 @@
"kn": {
"name": "каннада"
},
- "yue": {
- "name": "кантонська"
- },
"ca": {
"name": "каталонська"
},
@@ -252,10 +249,10 @@
"name": "китайська"
},
"zh-Hans": {
- "name": "китайська спрощена"
+ "name": "китайська (спрощене письмо)"
},
"zh-Hant": {
- "name": "китайська традиційна"
+ "name": "китайська (традиційне письмо)"
},
"cgg": {
"name": "кіга"
@@ -275,9 +272,6 @@
"ksh": {
"name": "колоніан"
},
- "sw-CD": {
- "name": "конгійське суахілі"
- },
"kok": {
"name": "конкані"
},
@@ -287,9 +281,6 @@
"kw": {
"name": "корнійська"
},
- "ckb": {
- "name": "курдська (сорані)"
- },
"km": {
"name": "кхмерська"
},
@@ -386,9 +377,6 @@
"jgo": {
"name": "нгомба"
},
- "nd": {
- "name": "ндебелє північна"
- },
"ne": {
"name": "непальська"
},
@@ -401,6 +389,9 @@
"nds-NL": {
"name": "нижньосаксонська"
},
+ "nl": {
+ "name": "нідерландська"
+ },
"de": {
"name": "німецька"
},
@@ -410,17 +401,20 @@
"gsw": {
"name": "німецька (Швейцарія)"
},
+ "nb": {
+ "name": "норвезька (букмол)"
+ },
+ "nn": {
+ "name": "норвезька (нюношк)"
+ },
"nus": {
"name": "нуер"
},
"nyn": {
"name": "ньянколе"
},
- "nn": {
- "name": "нюношк (Норвегія)"
- },
"or": {
- "name": "орія"
+ "name": "одія"
},
"om": {
"name": "оромо"
@@ -434,17 +428,20 @@
"fa": {
"name": "перська"
},
+ "nd": {
+ "name": "північна ндебеле"
+ },
"lrc": {
- "name": "північна лурська"
+ "name": "північнолурська"
+ },
+ "se": {
+ "name": "північносаамська"
},
"pl": {
"name": "польська"
},
"pt": {
- "name": "португальська"
- },
- "pt-PT": {
- "name": "португальська (Європа)"
+ "name": "портуґальська"
},
"prg": {
"name": "пруська"
@@ -473,9 +470,6 @@
"smn": {
"name": "саамська інарі"
},
- "se": {
- "name": "саамська північна"
- },
"saq": {
"name": "самбуру"
},
@@ -497,6 +491,9 @@
"ii": {
"name": "сичуань"
},
+ "sd": {
+ "name": "сіндхі"
+ },
"sk": {
"name": "словацька"
},
@@ -515,6 +512,12 @@
"sw": {
"name": "суахілі"
},
+ "sw-CD": {
+ "name": "суахілі (Конго)"
+ },
+ "tg": {
+ "name": "таджицька"
+ },
"dav": {
"name": "таіта"
},
@@ -527,6 +530,9 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татарська"
+ },
"shi": {
"name": "тачеліт"
},
@@ -543,7 +549,7 @@
"name": "тигринья"
},
"to": {
- "name": "тонганська"
+ "name": "тонґанська"
},
"tr": {
"name": "турецька"
@@ -599,6 +605,9 @@
"hr": {
"name": "хорватська"
},
+ "ckb": {
+ "name": "центральнокурдська"
+ },
"tzm": {
"name": "центральномароканська тамазіт"
},
diff --git a/vendor/commerceguys/intl/resources/language/ur-IN.json b/vendor/commerceguys/intl/resources/language/ur-IN.json
index 64d95ae59..a70762353 100644
--- a/vendor/commerceguys/intl/resources/language/ur-IN.json
+++ b/vendor/commerceguys/intl/resources/language/ur-IN.json
@@ -11,9 +11,6 @@
"ur": {
"name": "اردو"
},
- "hy": {
- "name": "ارمینی"
- },
"or": {
"name": "اڑیہ"
},
@@ -77,6 +74,9 @@
"az": {
"name": "آذربائیجانی"
},
+ "hy": {
+ "name": "آرمینیائی"
+ },
"as": {
"name": "آسامی"
},
@@ -155,6 +155,12 @@
"pl": {
"name": "پولش"
},
+ "tt": {
+ "name": "تاتار"
+ },
+ "tg": {
+ "name": "تاجک"
+ },
"twq": {
"name": "تاساواق"
},
@@ -204,7 +210,7 @@
"name": "جولا فونيا"
},
"cu": {
- "name": "چرچ سلاؤ"
+ "name": "چرچ سلاوک"
},
"ce": {
"name": "چیچن"
@@ -285,7 +291,7 @@
"name": "سربین"
},
"gd": {
- "name": "سکاٹ گیلِک"
+ "name": "سکاٹش گیلک"
},
"sk": {
"name": "سلوواک"
@@ -293,6 +299,9 @@
"sl": {
"name": "سلووینیائی"
},
+ "sd": {
+ "name": "سندھی"
+ },
"si": {
"name": "سنہالا"
},
@@ -422,9 +431,6 @@
"ki": {
"name": "کیکویو"
},
- "yue": {
- "name": "کینٹونیز"
- },
"rw": {
"name": "کینیاروانڈا"
},
@@ -542,6 +548,9 @@
"nb": {
"name": "نارویجین بوکمل"
},
+ "nn": {
+ "name": "نارویجین نینورسک"
+ },
"naq": {
"name": "ناما"
},
@@ -551,9 +560,6 @@
"nnh": {
"name": "نگیمبون"
},
- "nn": {
- "name": "نورویجینی نینورسک"
- },
"nus": {
"name": "نویر"
},
@@ -575,6 +581,9 @@
"vo": {
"name": "وولاپوک"
},
+ "wo": {
+ "name": "وولوف"
+ },
"vi": {
"name": "ویتنامی"
},
diff --git a/vendor/commerceguys/intl/resources/language/ur.json b/vendor/commerceguys/intl/resources/language/ur.json
index 52b0637a1..50cd43a71 100644
--- a/vendor/commerceguys/intl/resources/language/ur.json
+++ b/vendor/commerceguys/intl/resources/language/ur.json
@@ -11,9 +11,6 @@
"ur": {
"name": "اردو"
},
- "hy": {
- "name": "ارمینی"
- },
"or": {
"name": "اڑیہ"
},
@@ -35,6 +32,9 @@
"agq": {
"name": "اغم"
},
+ "af": {
+ "name": "افریقی"
+ },
"ak": {
"name": "اکان"
},
@@ -68,9 +68,6 @@
"eo": {
"name": "ایسپرانٹو"
},
- "af": {
- "name": "ایفریکانز"
- },
"ee": {
"name": "ایو"
},
@@ -80,6 +77,9 @@
"az": {
"name": "آذربائیجانی"
},
+ "hy": {
+ "name": "آرمینیائی"
+ },
"as": {
"name": "آسامی"
},
@@ -155,6 +155,12 @@
"pl": {
"name": "پولش"
},
+ "tt": {
+ "name": "تاتار"
+ },
+ "tg": {
+ "name": "تاجک"
+ },
"twq": {
"name": "تاساواق"
},
@@ -195,7 +201,7 @@
"name": "جاپانی"
},
"ka": {
- "name": "جارجی"
+ "name": "جارجیائی"
},
"de": {
"name": "جرمن"
@@ -204,7 +210,7 @@
"name": "جولا فونيا"
},
"cu": {
- "name": "چرچ سلاؤ"
+ "name": "چرچ سلاوک"
},
"ce": {
"name": "چیچن"
@@ -288,7 +294,7 @@
"name": "سربین"
},
"gd": {
- "name": "سکاٹ گیلِک"
+ "name": "سکاٹش گیلک"
},
"sk": {
"name": "سلوواک"
@@ -296,15 +302,15 @@
"sl": {
"name": "سلووینیائی"
},
+ "sd": {
+ "name": "سندھی"
+ },
"si": {
"name": "سنہالا"
},
"sw": {
"name": "سواحلی"
},
- "ckb": {
- "name": "سورانی کردش"
- },
"xog": {
"name": "سوگا"
},
@@ -326,6 +332,9 @@
"tzm": {
"name": "سینٹرل ایٹلس ٹمازائٹ"
},
+ "ckb": {
+ "name": "سینٹرل کردش"
+ },
"ksb": {
"name": "شامبالا"
},
@@ -422,9 +431,6 @@
"ki": {
"name": "کیکویو"
},
- "yue": {
- "name": "کینٹونیز"
- },
"rw": {
"name": "کینیاروانڈا"
},
@@ -479,9 +485,6 @@
"mgh": {
"name": "ماخاوا-ميتو"
},
- "mas": {
- "name": "ماسای"
- },
"jmc": {
"name": "ماشیم"
},
@@ -506,6 +509,9 @@
"mzn": {
"name": "مزندرانی"
},
+ "mas": {
+ "name": "مسائی"
+ },
"fy": {
"name": "مغربی فریسیئن"
},
@@ -539,6 +545,9 @@
"nb": {
"name": "نارویجین بوکمل"
},
+ "nn": {
+ "name": "نارویجین نینورسک"
+ },
"naq": {
"name": "ناما"
},
@@ -548,9 +557,6 @@
"nnh": {
"name": "نگیمبون"
},
- "nn": {
- "name": "نورویجینی نینورسک"
- },
"nus": {
"name": "نویر"
},
@@ -572,6 +578,9 @@
"vo": {
"name": "وولاپوک"
},
+ "wo": {
+ "name": "وولوف"
+ },
"vi": {
"name": "ویتنامی"
},
diff --git a/vendor/commerceguys/intl/resources/language/uz-Cyrl.json b/vendor/commerceguys/intl/resources/language/uz-Cyrl.json
index 8e1e36a03..d4267d0a3 100644
--- a/vendor/commerceguys/intl/resources/language/uz-Cyrl.json
+++ b/vendor/commerceguys/intl/resources/language/uz-Cyrl.json
@@ -101,6 +101,9 @@
"vo": {
"name": "волапюк"
},
+ "wo": {
+ "name": "волофча"
+ },
"vun": {
"name": "вунжо"
},
@@ -215,9 +218,6 @@
"kn": {
"name": "каннада"
},
- "yue": {
- "name": "кантонча"
- },
"ca": {
"name": "каталонча"
},
@@ -449,6 +449,9 @@
"si": {
"name": "сингалча"
},
+ "sd": {
+ "name": "синдҳи"
+ },
"cu": {
"name": "славянча (черков)"
},
@@ -488,6 +491,9 @@
"twq": {
"name": "тасавак"
},
+ "tt": {
+ "name": "татарча"
+ },
"shi": {
"name": "ташелхит"
},
@@ -503,6 +509,9 @@
"ti": {
"name": "тигриняча"
},
+ "tg": {
+ "name": "тожикча"
+ },
"to": {
"name": "тонганча"
},
diff --git a/vendor/commerceguys/intl/resources/language/uz.json b/vendor/commerceguys/intl/resources/language/uz.json
index 35118cc23..ef7ca200f 100644
--- a/vendor/commerceguys/intl/resources/language/uz.json
+++ b/vendor/commerceguys/intl/resources/language/uz.json
@@ -36,7 +36,7 @@
"name": "bambara"
},
"bas": {
- "name": "Basaa"
+ "name": "basa"
},
"eu": {
"name": "bask"
@@ -68,20 +68,8 @@
"br": {
"name": "breton"
},
- "ce": {
- "name": "chechen"
- },
- "chr": {
- "name": "cheroki"
- },
- "cs": {
- "name": "chex"
- },
- "cgg": {
- "name": "chiga"
- },
"da": {
- "name": "dat"
+ "name": "dan"
},
"dyo": {
"name": "diola-fogni"
@@ -105,7 +93,7 @@
"name": "eve"
},
"ewo": {
- "name": "Ewondo"
+ "name": "evondo"
},
"fo": {
"name": "farercha"
@@ -132,13 +120,10 @@
"name": "fransuzcha"
},
"fur": {
- "name": "Friulian"
+ "name": "friul"
},
"ff": {
- "name": "Fulah"
- },
- "fy": {
- "name": "g‘arbiy friz"
+ "name": "fula"
},
"gl": {
"name": "galisiy"
@@ -170,9 +155,6 @@
"hi": {
"name": "hind"
},
- "he": {
- "name": "ibroniy"
- },
"yi": {
"name": "idish"
},
@@ -212,6 +194,9 @@
"it": {
"name": "italyan"
},
+ "he": {
+ "name": "ivrit"
+ },
"kab": {
"name": "kabil"
},
@@ -230,15 +215,12 @@
"kn": {
"name": "kannada"
},
- "yue": {
- "name": "kanton"
+ "ca": {
+ "name": "katalan"
},
"ks": {
"name": "kashmircha"
},
- "ca": {
- "name": "katalan"
- },
"qu": {
"name": "kechua"
},
@@ -299,9 +281,6 @@
"lb": {
"name": "lyuksemburgcha"
},
- "jmc": {
- "name": "machame"
- },
"mk": {
"name": "makedon"
},
@@ -332,6 +311,9 @@
"mgh": {
"name": "maxuva-mitto"
},
+ "jmc": {
+ "name": "machame"
+ },
"gv": {
"name": "men"
},
@@ -341,9 +323,6 @@
"mgo": {
"name": "meta"
},
- "mn": {
- "name": "mo‘g‘ul"
- },
"ro-MD": {
"name": "moldovan"
},
@@ -356,6 +335,9 @@
"mua": {
"name": "mundang"
},
+ "mn": {
+ "name": "mo‘g‘ul"
+ },
"naq": {
"name": "nama"
},
@@ -389,9 +371,6 @@
"nyn": {
"name": "nyankole"
},
- "uz": {
- "name": "o‘zbek"
- },
"or": {
"name": "oriya"
},
@@ -467,39 +446,21 @@
"sah": {
"name": "saxa"
},
- "gd": {
- "name": "Scottish Gaelic"
- },
"seh": {
"name": "sena"
},
"sr": {
"name": "serbcha"
},
- "ksb": {
- "name": "shambala"
- },
- "lrc": {
- "name": "shimoliy luri"
- },
- "nd": {
- "name": "shimoliy ndebele"
- },
- "se": {
- "name": "shimoliy saam"
+ "sd": {
+ "name": "sindxi"
},
- "sn": {
- "name": "shona"
- },
- "sv": {
- "name": "shved"
+ "si": {
+ "name": "singal"
},
"ii": {
"name": "sichuan"
},
- "si": {
- "name": "singal"
- },
"cu": {
"name": "slavyan (cherkov)"
},
@@ -536,12 +497,15 @@
"twq": {
"name": "tasavak"
},
- "shi": {
- "name": "tashelxit"
+ "tt": {
+ "name": "tatar"
},
"th": {
"name": "tay"
},
+ "shi": {
+ "name": "tashelxit"
+ },
"te": {
"name": "telugu"
},
@@ -554,6 +518,9 @@
"ti": {
"name": "tigrinya"
},
+ "tg": {
+ "name": "tojik"
+ },
"to": {
"name": "tongan"
},
@@ -575,6 +542,9 @@
"vai": {
"name": "Vai"
},
+ "wae": {
+ "name": "valis"
+ },
"cy": {
"name": "valliy"
},
@@ -584,15 +554,15 @@
"vo": {
"name": "volapyuk"
},
+ "wo": {
+ "name": "volof"
+ },
"vun": {
"name": "vunjo"
},
"vi": {
"name": "vyetnam"
},
- "wae": {
- "name": "Walser"
- },
"ha": {
"name": "xausa"
},
@@ -606,7 +576,7 @@
"name": "xitoy (soddalashgan)"
},
"km": {
- "name": "xmercha"
+ "name": "xmer"
},
"hr": {
"name": "xorvat"
@@ -631,5 +601,44 @@
},
"zu": {
"name": "zulu"
+ },
+ "uz": {
+ "name": "o‘zbek"
+ },
+ "fy": {
+ "name": "g‘arbiy friz"
+ },
+ "ksb": {
+ "name": "shambala"
+ },
+ "lrc": {
+ "name": "shimoliy luri"
+ },
+ "nd": {
+ "name": "shimoliy ndebele"
+ },
+ "se": {
+ "name": "shimoliy saam"
+ },
+ "sn": {
+ "name": "shona"
+ },
+ "gd": {
+ "name": "shotland-gel"
+ },
+ "sv": {
+ "name": "shved"
+ },
+ "chr": {
+ "name": "cheroki"
+ },
+ "cs": {
+ "name": "chex"
+ },
+ "ce": {
+ "name": "chechen"
+ },
+ "cgg": {
+ "name": "chiga"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/vai-Latn.json b/vendor/commerceguys/intl/resources/language/vai-Latn.json
index 307c31a71..170b9d698 100644
--- a/vendor/commerceguys/intl/resources/language/vai-Latn.json
+++ b/vendor/commerceguys/intl/resources/language/vai-Latn.json
@@ -68,9 +68,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -515,6 +512,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -554,12 +554,18 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"ta": {
"name": "Tamíli"
},
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -611,6 +617,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/vai.json b/vendor/commerceguys/intl/resources/language/vai.json
index 63a09ed16..7ba6263d6 100644
--- a/vendor/commerceguys/intl/resources/language/vai.json
+++ b/vendor/commerceguys/intl/resources/language/vai.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -374,6 +371,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -404,9 +404,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -449,6 +455,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/vi.json b/vendor/commerceguys/intl/resources/language/vi.json
index d54e59f74..da2bbdd3d 100644
--- a/vendor/commerceguys/intl/resources/language/vi.json
+++ b/vendor/commerceguys/intl/resources/language/vi.json
@@ -125,9 +125,6 @@
"dua": {
"name": "Tiếng Duala"
},
- "ug": {
- "name": "Tiếng Duy Ngô Nhĩ"
- },
"dz": {
"name": "Tiếng Dzongkha"
},
@@ -180,7 +177,7 @@
"name": "Tiếng Ganda"
},
"ka": {
- "name": "Tiếng Gruzia"
+ "name": "Tiếng Georgia"
},
"gu": {
"name": "Tiếng Gujarati"
@@ -233,6 +230,9 @@
"ga": {
"name": "Tiếng Ireland"
},
+ "it": {
+ "name": "Tiếng Italy"
+ },
"dyo": {
"name": "Tiếng Jola-Fonyi"
},
@@ -264,7 +264,7 @@
"name": "Tiếng Kazakh"
},
"km": {
- "name": "Tiếng Khơ-me"
+ "name": "Tiếng Khmer"
},
"ki": {
"name": "Tiếng Kikuyu"
@@ -443,9 +443,6 @@
"pa": {
"name": "Tiếng Punjab"
},
- "yue": {
- "name": "Tiếng Quảng Đông"
- },
"qu": {
"name": "Tiếng Quechua"
},
@@ -497,6 +494,9 @@
"sn": {
"name": "Tiếng Shona"
},
+ "sd": {
+ "name": "Tiếng Sindhi"
+ },
"si": {
"name": "Tiếng Sinhala"
},
@@ -527,6 +527,9 @@
"dav": {
"name": "Tiếng Taita"
},
+ "tg": {
+ "name": "Tiếng Tajik"
+ },
"zgh": {
"name": "Tiếng Tamazight Chuẩn của Ma-rốc"
},
@@ -539,6 +542,9 @@
"twq": {
"name": "Tiếng Tasawaq"
},
+ "tt": {
+ "name": "Tiếng Tatar"
+ },
"es": {
"name": "Tiếng Tây Ban Nha"
},
@@ -593,6 +599,9 @@
"ur": {
"name": "Tiếng Urdu"
},
+ "ug": {
+ "name": "Tiếng Uyghur"
+ },
"uz": {
"name": "Tiếng Uzbek"
},
@@ -614,8 +623,8 @@
"wae": {
"name": "Tiếng Walser"
},
- "it": {
- "name": "Tiếng Ý"
+ "wo": {
+ "name": "Tiếng Wolof"
},
"yav": {
"name": "Tiếng Yangben"
diff --git a/vendor/commerceguys/intl/resources/language/vun.json b/vendor/commerceguys/intl/resources/language/vun.json
index a623d1752..9c99d908f 100644
--- a/vendor/commerceguys/intl/resources/language/vun.json
+++ b/vendor/commerceguys/intl/resources/language/vun.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -545,6 +542,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -575,9 +575,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/wae.json b/vendor/commerceguys/intl/resources/language/wae.json
index 56097d8a0..cdcdf49ec 100644
--- a/vendor/commerceguys/intl/resources/language/wae.json
+++ b/vendor/commerceguys/intl/resources/language/wae.json
@@ -74,9 +74,6 @@
"dz": {
"name": "Butaniš"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -494,6 +491,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Singalesiš"
},
@@ -524,6 +524,9 @@
"shi": {
"name": "Tachelhit"
},
+ "tg": {
+ "name": "Tadšikiš"
+ },
"dav": {
"name": "Taita"
},
@@ -533,6 +536,9 @@
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -614,6 +620,9 @@
"be": {
"name": "Wísrussiš"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/wo.json b/vendor/commerceguys/intl/resources/language/wo.json
new file mode 100644
index 000000000..b9684d657
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/language/wo.json
@@ -0,0 +1,641 @@
+{
+ "af": {
+ "name": "Afrikaans"
+ },
+ "agq": {
+ "name": "Aghem"
+ },
+ "ak": {
+ "name": "Akan"
+ },
+ "sq": {
+ "name": "Albane"
+ },
+ "de": {
+ "name": "Almaa"
+ },
+ "de-AT": {
+ "name": "Almaa (Ótiriis)"
+ },
+ "de-CH": {
+ "name": "Almaa (Siwis)"
+ },
+ "am": {
+ "name": "Amharik"
+ },
+ "ar": {
+ "name": "Araab"
+ },
+ "hy": {
+ "name": "Armaniye"
+ },
+ "as": {
+ "name": "Asame"
+ },
+ "az": {
+ "name": "Aserbayjane"
+ },
+ "ast": {
+ "name": "Asturian"
+ },
+ "asa": {
+ "name": "Asu"
+ },
+ "en": {
+ "name": "Àngale"
+ },
+ "en-CA": {
+ "name": "Àngale (Kanadaa)"
+ },
+ "en-AU": {
+ "name": "Àngale (Ostarali)"
+ },
+ "en-GB": {
+ "name": "Àngale (Ruwaayom Ini)"
+ },
+ "ksf": {
+ "name": "Bafia"
+ },
+ "bm": {
+ "name": "Bambara"
+ },
+ "bn": {
+ "name": "Baŋla"
+ },
+ "bas": {
+ "name": "Basaa"
+ },
+ "eu": {
+ "name": "Bask"
+ },
+ "be": {
+ "name": "Belaris"
+ },
+ "bem": {
+ "name": "Bemba"
+ },
+ "bez": {
+ "name": "Bena"
+ },
+ "bg": {
+ "name": "Bilgaar"
+ },
+ "my": {
+ "name": "Birmes"
+ },
+ "brx": {
+ "name": "Bodo"
+ },
+ "bs": {
+ "name": "Bosñak"
+ },
+ "br": {
+ "name": "Breton"
+ },
+ "cs": {
+ "name": "Cek"
+ },
+ "chr": {
+ "name": "Ceroki"
+ },
+ "ce": {
+ "name": "Chechen"
+ },
+ "cgg": {
+ "name": "Chiga"
+ },
+ "cu": {
+ "name": "Church Slavic"
+ },
+ "ksh": {
+ "name": "Colognian"
+ },
+ "kw": {
+ "name": "Cornish"
+ },
+ "da": {
+ "name": "Danuwa"
+ },
+ "dz": {
+ "name": "Dsongkaa"
+ },
+ "dua": {
+ "name": "Duala"
+ },
+ "he": {
+ "name": "Ebrë"
+ },
+ "ebu": {
+ "name": "Embu"
+ },
+ "hi": {
+ "name": "Endo"
+ },
+ "id": {
+ "name": "Endonesiye"
+ },
+ "sk": {
+ "name": "Eslowaki (Eslowak)"
+ },
+ "sl": {
+ "name": "Esloweniye"
+ },
+ "es": {
+ "name": "Español"
+ },
+ "es-MX": {
+ "name": "Español (Meksiko)"
+ },
+ "eo": {
+ "name": "Esperantoo"
+ },
+ "et": {
+ "name": "Estoñiye"
+ },
+ "ee": {
+ "name": "Ewe"
+ },
+ "ewo": {
+ "name": "Ewondo"
+ },
+ "fr": {
+ "name": "Farañse"
+ },
+ "fr-CA": {
+ "name": "Farañse (Kanadaa)"
+ },
+ "fr-CH": {
+ "name": "Farañse (Siwis)"
+ },
+ "fo": {
+ "name": "Feroos"
+ },
+ "fi": {
+ "name": "Feylànde"
+ },
+ "fil": {
+ "name": "Filipiye"
+ },
+ "fur": {
+ "name": "Friulian"
+ },
+ "gl": {
+ "name": "Galisiye"
+ },
+ "gd": {
+ "name": "Galuwaa bu Ekos"
+ },
+ "lg": {
+ "name": "Ganda"
+ },
+ "el": {
+ "name": "Gereg"
+ },
+ "gu": {
+ "name": "Gujarati"
+ },
+ "guz": {
+ "name": "Gusii"
+ },
+ "haw": {
+ "name": "Hawaye"
+ },
+ "ha": {
+ "name": "Hawsa"
+ },
+ "ig": {
+ "name": "Igbo"
+ },
+ "uk": {
+ "name": "Ikreniye"
+ },
+ "smn": {
+ "name": "Inari Sami"
+ },
+ "ga": {
+ "name": "Irlànde"
+ },
+ "is": {
+ "name": "Islànde"
+ },
+ "it": {
+ "name": "Italiye"
+ },
+ "dyo": {
+ "name": "Jola-Fonyi"
+ },
+ "kea": {
+ "name": "Kabuverdianu"
+ },
+ "kab": {
+ "name": "Kabyle"
+ },
+ "kkj": {
+ "name": "Kako"
+ },
+ "kl": {
+ "name": "Kalaallisut"
+ },
+ "kln": {
+ "name": "Kalenjin"
+ },
+ "kam": {
+ "name": "Kamba"
+ },
+ "kn": {
+ "name": "Kannadaa"
+ },
+ "kk": {
+ "name": "Kasax"
+ },
+ "ks": {
+ "name": "Kashmiri"
+ },
+ "ca": {
+ "name": "Katalan"
+ },
+ "qu": {
+ "name": "Kesuwa"
+ },
+ "ki": {
+ "name": "Kikuyu"
+ },
+ "rw": {
+ "name": "Kinyarwànda"
+ },
+ "ky": {
+ "name": "Kirgiis"
+ },
+ "kok": {
+ "name": "Konkani"
+ },
+ "ko": {
+ "name": "Koreye"
+ },
+ "khq": {
+ "name": "Koyra Chiini"
+ },
+ "ses": {
+ "name": "Koyraboro Senni"
+ },
+ "hr": {
+ "name": "Krowat"
+ },
+ "ckb": {
+ "name": "Kurdi gu Diggu"
+ },
+ "nmg": {
+ "name": "Kwasio"
+ },
+ "lo": {
+ "name": "Laaw"
+ },
+ "lkt": {
+ "name": "Lakota"
+ },
+ "lag": {
+ "name": "Langi"
+ },
+ "lv": {
+ "name": "Letoniye"
+ },
+ "lb": {
+ "name": "Liksàmbursuwaa"
+ },
+ "ln": {
+ "name": "Lingala"
+ },
+ "lt": {
+ "name": "Lituyaniye"
+ },
+ "lu": {
+ "name": "Luba-Katanga"
+ },
+ "luo": {
+ "name": "Luo"
+ },
+ "luy": {
+ "name": "Luyia"
+ },
+ "jmc": {
+ "name": "Machame"
+ },
+ "mgh": {
+ "name": "Makhuwa-Meetto"
+ },
+ "kde": {
+ "name": "Makonde"
+ },
+ "mg": {
+ "name": "Malagasi"
+ },
+ "ms": {
+ "name": "Malay"
+ },
+ "ml": {
+ "name": "Malayalam"
+ },
+ "mt": {
+ "name": "Malt"
+ },
+ "gv": {
+ "name": "Manx"
+ },
+ "mr": {
+ "name": "Marati"
+ },
+ "mas": {
+ "name": "Masai"
+ },
+ "mk": {
+ "name": "Maseduwaane"
+ },
+ "mzn": {
+ "name": "Mazanderani"
+ },
+ "mer": {
+ "name": "Meru"
+ },
+ "mgo": {
+ "name": "Metaʼ"
+ },
+ "mn": {
+ "name": "Mongoliye"
+ },
+ "mfe": {
+ "name": "Morisyen"
+ },
+ "mua": {
+ "name": "Mundang"
+ },
+ "naq": {
+ "name": "Nama"
+ },
+ "nds-NL": {
+ "name": "nds (Peyi Baa)"
+ },
+ "ne": {
+ "name": "Nepale"
+ },
+ "nl": {
+ "name": "Neyerlànde"
+ },
+ "nl-BE": {
+ "name": "Neyerlànde (Belsig)"
+ },
+ "nnh": {
+ "name": "Ngiemboon"
+ },
+ "jgo": {
+ "name": "Ngomba"
+ },
+ "nd": {
+ "name": "North Ndebele"
+ },
+ "lrc": {
+ "name": "Northern Luri"
+ },
+ "nb": {
+ "name": "Norwegian Bokmål"
+ },
+ "nn": {
+ "name": "Norwegian Nynorsk"
+ },
+ "nus": {
+ "name": "Nuer"
+ },
+ "nyn": {
+ "name": "Nyankole"
+ },
+ "or": {
+ "name": "Oja"
+ },
+ "hu": {
+ "name": "Ongruwaa"
+ },
+ "om": {
+ "name": "Oromo"
+ },
+ "os": {
+ "name": "Ossetic"
+ },
+ "ps": {
+ "name": "Pasto"
+ },
+ "se": {
+ "name": "Penku Sami"
+ },
+ "fa": {
+ "name": "Pers"
+ },
+ "ff": {
+ "name": "Pël"
+ },
+ "pl": {
+ "name": "Polone"
+ },
+ "prg": {
+ "name": "Prussian"
+ },
+ "pa": {
+ "name": "Punjabi"
+ },
+ "pt": {
+ "name": "Purtugees"
+ },
+ "pt-PT": {
+ "name": "Purtugees (Portigaal)"
+ },
+ "rm": {
+ "name": "Romaas"
+ },
+ "rof": {
+ "name": "Rombo"
+ },
+ "ro": {
+ "name": "Rumaniyee"
+ },
+ "ro-MD": {
+ "name": "Rumaniyee (Moldawi)"
+ },
+ "rn": {
+ "name": "Rundi"
+ },
+ "ru": {
+ "name": "Rus"
+ },
+ "rwk": {
+ "name": "Rwa"
+ },
+ "saq": {
+ "name": "Samburu"
+ },
+ "sg": {
+ "name": "Sango"
+ },
+ "sbp": {
+ "name": "Sangu"
+ },
+ "ja": {
+ "name": "Sapone"
+ },
+ "sah": {
+ "name": "Saxa"
+ },
+ "seh": {
+ "name": "Sena"
+ },
+ "sr": {
+ "name": "Serb"
+ },
+ "ksb": {
+ "name": "Shambala"
+ },
+ "sn": {
+ "name": "Shona"
+ },
+ "ii": {
+ "name": "Sichuan Yi"
+ },
+ "si": {
+ "name": "Sinala"
+ },
+ "sd": {
+ "name": "Sindi"
+ },
+ "zh": {
+ "name": "Sinuwaa"
+ },
+ "zh-Hant": {
+ "name": "Sinuwaa bu cosaan"
+ },
+ "zh-Hans": {
+ "name": "Sinuwaa buñ woyofal"
+ },
+ "xog": {
+ "name": "Soga"
+ },
+ "so": {
+ "name": "Somali (làkk)"
+ },
+ "hsb": {
+ "name": "Sorab-Kaw"
+ },
+ "dsb": {
+ "name": "Sorab-Suuf"
+ },
+ "ka": {
+ "name": "Sorsiye"
+ },
+ "zgh": {
+ "name": "Standard Moroccan Tamazight"
+ },
+ "sv": {
+ "name": "Suweduwaa"
+ },
+ "sw-CD": {
+ "name": "sw (CD)"
+ },
+ "sw": {
+ "name": "Swahili"
+ },
+ "gsw": {
+ "name": "Swiss German"
+ },
+ "shi": {
+ "name": "Tachelhit"
+ },
+ "dav": {
+ "name": "Taita"
+ },
+ "tg": {
+ "name": "Tajis"
+ },
+ "tzm": {
+ "name": "Tamasis gu Digg Atlaas"
+ },
+ "ta": {
+ "name": "Tamil"
+ },
+ "twq": {
+ "name": "Tasawaq"
+ },
+ "tt": {
+ "name": "Tatar"
+ },
+ "th": {
+ "name": "Tay"
+ },
+ "te": {
+ "name": "Telugu"
+ },
+ "teo": {
+ "name": "Teso"
+ },
+ "bo": {
+ "name": "Tibetan"
+ },
+ "ti": {
+ "name": "Tigriña"
+ },
+ "tr": {
+ "name": "Tirk"
+ },
+ "tk": {
+ "name": "Tirkmen"
+ },
+ "to": {
+ "name": "Tongan"
+ },
+ "ur": {
+ "name": "Urdu"
+ },
+ "uz": {
+ "name": "Usbek"
+ },
+ "ug": {
+ "name": "Uygur"
+ },
+ "vai": {
+ "name": "Vai"
+ },
+ "vo": {
+ "name": "Volapük"
+ },
+ "vun": {
+ "name": "Vunjo"
+ },
+ "wae": {
+ "name": "Walser"
+ },
+ "cy": {
+ "name": "Wels"
+ },
+ "fy": {
+ "name": "Western Frisian"
+ },
+ "vi": {
+ "name": "Wiyetnaamiye"
+ },
+ "wo": {
+ "name": "Wolof"
+ },
+ "km": {
+ "name": "Xmer"
+ },
+ "yav": {
+ "name": "Yangben"
+ },
+ "yi": {
+ "name": "Yidis"
+ },
+ "yo": {
+ "name": "Yoruba"
+ },
+ "dje": {
+ "name": "Zarma"
+ },
+ "zu": {
+ "name": "Zulu"
+ }
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/xog.json b/vendor/commerceguys/intl/resources/language/xog.json
index 5f9b1cc21..2ce0dad29 100644
--- a/vendor/commerceguys/intl/resources/language/xog.json
+++ b/vendor/commerceguys/intl/resources/language/xog.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -545,6 +542,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/yav.json b/vendor/commerceguys/intl/resources/language/yav.json
index 09492632b..4893e40fa 100644
--- a/vendor/commerceguys/intl/resources/language/yav.json
+++ b/vendor/commerceguys/intl/resources/language/yav.json
@@ -62,9 +62,6 @@
"bg": {
"name": "bulgálɛ"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -533,6 +530,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -572,9 +572,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -620,6 +626,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"el": {
"name": "yavánɛ"
},
diff --git a/vendor/commerceguys/intl/resources/language/yi.json b/vendor/commerceguys/intl/resources/language/yi.json
index a686dc2f0..6f7dd9fdf 100644
--- a/vendor/commerceguys/intl/resources/language/yi.json
+++ b/vendor/commerceguys/intl/resources/language/yi.json
@@ -122,6 +122,9 @@
"dyo": {
"name": "זשאלא־פֿאני"
},
+ "tt": {
+ "name": "טאָטעריש"
+ },
"ta": {
"name": "טאַמיל"
},
@@ -203,6 +206,9 @@
"sw": {
"name": "סוואַהיליש"
},
+ "sd": {
+ "name": "סינדהי"
+ },
"si": {
"name": "סינהאַליש"
},
@@ -353,9 +359,6 @@
"brx": {
"name": "Bodo"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -590,6 +593,9 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
@@ -623,6 +629,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/yo-BJ.json b/vendor/commerceguys/intl/resources/language/yo-BJ.json
index b9f3f8ad2..8d21e74f5 100644
--- a/vendor/commerceguys/intl/resources/language/yo-BJ.json
+++ b/vendor/commerceguys/intl/resources/language/yo-BJ.json
@@ -26,9 +26,6 @@
"brx": {
"name": "Bodo"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -128,6 +125,9 @@
"fo": {
"name": "Èdè Faroesi"
},
+ "fil": {
+ "name": "Èdè Filipino"
+ },
"fi": {
"name": "Èdè Finisi"
},
@@ -287,6 +287,9 @@
"zu": {
"name": "Èdè Shulu"
},
+ "sd": {
+ "name": "Èdè Sindhi"
+ },
"si": {
"name": "Èdè Sinhalese"
},
@@ -311,9 +314,6 @@
"sw-CD": {
"name": "Èdè Swahili (Orilɛ́ède Kóngò)"
},
- "fil": {
- "name": "Èdè Tagalogi"
- },
"th": {
"name": "Èdè Tai"
},
@@ -590,9 +590,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"teo": {
"name": "Teso"
},
@@ -623,6 +629,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/yo.json b/vendor/commerceguys/intl/resources/language/yo.json
index ee7fd2d0c..659fc4f79 100644
--- a/vendor/commerceguys/intl/resources/language/yo.json
+++ b/vendor/commerceguys/intl/resources/language/yo.json
@@ -26,9 +26,6 @@
"brx": {
"name": "Bodo"
},
- "yue": {
- "name": "Cantonese"
- },
"tzm": {
"name": "Central Atlas Tamazight"
},
@@ -128,6 +125,9 @@
"fo": {
"name": "Èdè Faroesi"
},
+ "fil": {
+ "name": "Èdè Filipino"
+ },
"fi": {
"name": "Èdè Finisi"
},
@@ -284,6 +284,9 @@
"sr": {
"name": "Èdè Serbia"
},
+ "sd": {
+ "name": "Èdè Sindhi"
+ },
"si": {
"name": "Èdè Sinhalese"
},
@@ -311,9 +314,6 @@
"zu": {
"name": "Èdè Ṣulu"
},
- "fil": {
- "name": "Èdè Tagalogi"
- },
"th": {
"name": "Èdè Tai"
},
@@ -590,9 +590,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"teo": {
"name": "Teso"
},
@@ -623,6 +629,9 @@
"wae": {
"name": "Walser"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/yue.json b/vendor/commerceguys/intl/resources/language/yue.json
deleted file mode 100644
index 2c1e3eb45..000000000
--- a/vendor/commerceguys/intl/resources/language/yue.json
+++ /dev/null
@@ -1,635 +0,0 @@
-{
- "hsb": {
- "name": "上索布文"
- },
- "dsb": {
- "name": "下索布文"
- },
- "eo": {
- "name": "世界文"
- },
- "zh": {
- "name": "中文"
- },
- "da": {
- "name": "丹麥文"
- },
- "az": {
- "name": "亞塞拜然文"
- },
- "agq": {
- "name": "亞罕文"
- },
- "hy": {
- "name": "亞美尼亞文"
- },
- "ig": {
- "name": "伊布文"
- },
- "smn": {
- "name": "伊納裡薩米文"
- },
- "nds": {
- "name": "低地德文"
- },
- "nds-NL": {
- "name": "低地薩克遜文"
- },
- "nl-BE": {
- "name": "佛蘭芒文"
- },
- "ewo": {
- "name": "依汪都文"
- },
- "ru": {
- "name": "俄文"
- },
- "bg": {
- "name": "保加利亞文"
- },
- "si": {
- "name": "僧伽羅文"
- },
- "hr": {
- "name": "克羅埃西亞文"
- },
- "mfe": {
- "name": "克里奧文(模里西斯)"
- },
- "is": {
- "name": "冰島文"
- },
- "bem": {
- "name": "別姆巴文"
- },
- "gl": {
- "name": "加利西亞文"
- },
- "ca": {
- "name": "加泰羅尼亞文"
- },
- "nus": {
- "name": "努埃爾文"
- },
- "hu": {
- "name": "匈牙利文"
- },
- "hi": {
- "name": "北印度文"
- },
- "nd": {
- "name": "北地畢列文"
- },
- "se": {
- "name": "北方薩米文"
- },
- "twq": {
- "name": "北桑海文"
- },
- "lrc": {
- "name": "北盧爾文"
- },
- "af": {
- "name": "南非荷蘭文"
- },
- "brx": {
- "name": "博多文"
- },
- "kln": {
- "name": "卡倫金文"
- },
- "kam": {
- "name": "卡姆巴文"
- },
- "kea": {
- "name": "卡布威爾第文"
- },
- "kkj": {
- "name": "卡庫文"
- },
- "kab": {
- "name": "卡比爾文"
- },
- "id": {
- "name": "印尼文"
- },
- "gu": {
- "name": "古吉拉特文"
- },
- "guz": {
- "name": "古西文"
- },
- "dav": {
- "name": "台塔文"
- },
- "sw": {
- "name": "史瓦希里文"
- },
- "sw-CD": {
- "name": "史瓦希里文(剛果)"
- },
- "ki": {
- "name": "吉庫尤文"
- },
- "ky": {
- "name": "吉爾吉斯文"
- },
- "kk": {
- "name": "哈薩克文"
- },
- "ks": {
- "name": "喀什米爾文"
- },
- "ka": {
- "name": "喬治亞文"
- },
- "ii": {
- "name": "四川彝文"
- },
- "tk": {
- "name": "土庫曼文"
- },
- "tr": {
- "name": "土耳其文"
- },
- "kn": {
- "name": "坎那達文"
- },
- "ta": {
- "name": "坦米爾文"
- },
- "ee": {
- "name": "埃維文"
- },
- "tzm": {
- "name": "塔馬齊格特文"
- },
- "sn": {
- "name": "塞內加爾文"
- },
- "sr": {
- "name": "塞爾維亞文"
- },
- "haw": {
- "name": "夏威夷文"
- },
- "nmg": {
- "name": "夸西奧文"
- },
- "cgg": {
- "name": "奇加文"
- },
- "os": {
- "name": "奧塞提文"
- },
- "om": {
- "name": "奧羅莫文"
- },
- "cy": {
- "name": "威爾斯文"
- },
- "bn": {
- "name": "孟加拉文"
- },
- "dz": {
- "name": "宗卡文"
- },
- "cu": {
- "name": "宗教斯拉夫文"
- },
- "ff": {
- "name": "富拉文"
- },
- "lo": {
- "name": "寮文"
- },
- "ksb": {
- "name": "尚巴拉文"
- },
- "nyn": {
- "name": "尼揚科萊文"
- },
- "ne": {
- "name": "尼泊爾文"
- },
- "nb": {
- "name": "巴克摩挪威文"
- },
- "eu": {
- "name": "巴斯克文"
- },
- "ksf": {
- "name": "巴菲亞文"
- },
- "bas": {
- "name": "巴薩文"
- },
- "br": {
- "name": "布列塔尼文"
- },
- "he": {
- "name": "希伯來文"
- },
- "shi": {
- "name": "希爾哈文"
- },
- "el": {
- "name": "希臘文"
- },
- "lg": {
- "name": "干達文"
- },
- "kw": {
- "name": "康瓦耳文"
- },
- "fur": {
- "name": "弗留利文"
- },
- "de": {
- "name": "德文"
- },
- "de-AT": {
- "name": "德文 (奧地利)"
- },
- "gsw": {
- "name": "德文(瑞士)"
- },
- "ebu": {
- "name": "恩布文"
- },
- "jgo": {
- "name": "恩格姆巴文"
- },
- "nnh": {
- "name": "恩甘澎文"
- },
- "yi": {
- "name": "意第緒文"
- },
- "et": {
- "name": "愛沙尼亞文"
- },
- "ga": {
- "name": "愛爾蘭文"
- },
- "dje": {
- "name": "扎爾馬文"
- },
- "lkt": {
- "name": "拉科塔文"
- },
- "lv": {
- "name": "拉脫維亞文"
- },
- "cs": {
- "name": "捷克文"
- },
- "ti": {
- "name": "提格利尼亞文"
- },
- "ro-MD": {
- "name": "摩爾多瓦文"
- },
- "sk": {
- "name": "斯洛伐克文"
- },
- "sl": {
- "name": "斯洛維尼亞文"
- },
- "pa": {
- "name": "旁遮普文"
- },
- "ja": {
- "name": "日文"
- },
- "ps": {
- "name": "普什圖文"
- },
- "prg": {
- "name": "普魯士文"
- },
- "gv": {
- "name": "曼島文"
- },
- "lag": {
- "name": "朗吉文"
- },
- "dyo": {
- "name": "朱拉文"
- },
- "dua": {
- "name": "杜亞拉文"
- },
- "to": {
- "name": "東加文"
- },
- "ses": {
- "name": "東桑海文"
- },
- "ln": {
- "name": "林加拉文"
- },
- "chr": {
- "name": "柴羅基文"
- },
- "kl": {
- "name": "格陵蘭文"
- },
- "sbp": {
- "name": "桑古文"
- },
- "sg": {
- "name": "桑戈文"
- },
- "mer": {
- "name": "梅魯文"
- },
- "zgh": {
- "name": "標準摩洛哥塔馬塞特文"
- },
- "or": {
- "name": "歐利亞文"
- },
- "vo": {
- "name": "沃拉普克文"
- },
- "fr": {
- "name": "法文"
- },
- "fr-CA": {
- "name": "法文 (加拿大)"
- },
- "fr-CH": {
- "name": "法文 (瑞士)"
- },
- "fo": {
- "name": "法羅文"
- },
- "bs": {
- "name": "波士尼亞文"
- },
- "fa": {
- "name": "波斯文"
- },
- "pl": {
- "name": "波蘭文"
- },
- "th": {
- "name": "泰文"
- },
- "te": {
- "name": "泰盧固文"
- },
- "yav": {
- "name": "洋卞文"
- },
- "vun": {
- "name": "溫舊文"
- },
- "uk": {
- "name": "烏克蘭文"
- },
- "uz": {
- "name": "烏茲別克文"
- },
- "ur": {
- "name": "烏都文"
- },
- "teo": {
- "name": "特索文"
- },
- "bm": {
- "name": "班巴拉文"
- },
- "sv": {
- "name": "瑞典文"
- },
- "vai": {
- "name": "瓦伊文"
- },
- "wae": {
- "name": "瓦瑟文"
- },
- "be": {
- "name": "白俄羅斯文"
- },
- "luo": {
- "name": "盧奧文"
- },
- "rw": {
- "name": "盧安達文"
- },
- "lb": {
- "name": "盧森堡文"
- },
- "luy": {
- "name": "盧雅文"
- },
- "zu": {
- "name": "祖魯文"
- },
- "ksh": {
- "name": "科隆文"
- },
- "lt": {
- "name": "立陶宛文"
- },
- "zh-Hans": {
- "name": "簡體中文"
- },
- "yue": {
- "name": "粵語"
- },
- "yo": {
- "name": "約魯巴文"
- },
- "naq": {
- "name": "納馬文"
- },
- "xog": {
- "name": "索加文"
- },
- "ckb": {
- "name": "索拉尼庫爾德文"
- },
- "so": {
- "name": "索馬利文"
- },
- "ug": {
- "name": "維吾爾文"
- },
- "my": {
- "name": "緬甸文"
- },
- "zh-Hant": {
- "name": "繁體中文"
- },
- "rm": {
- "name": "羅曼斯文"
- },
- "rwk": {
- "name": "羅瓦文"
- },
- "ro": {
- "name": "羅馬尼亞文"
- },
- "mgo": {
- "name": "美塔文"
- },
- "it": {
- "name": "義大利文"
- },
- "nn": {
- "name": "耐諾斯克挪威文"
- },
- "fi": {
- "name": "芬蘭文"
- },
- "en": {
- "name": "英文"
- },
- "en-CA": {
- "name": "英文 (加拿大)"
- },
- "en-AU": {
- "name": "英文 (澳洲)"
- },
- "en-GB": {
- "name": "英文 (英國)"
- },
- "nl": {
- "name": "荷蘭文"
- },
- "fil": {
- "name": "菲律賓文"
- },
- "pt": {
- "name": "葡萄牙文"
- },
- "pt-PT": {
- "name": "葡萄牙文 (葡萄牙)"
- },
- "mn": {
- "name": "蒙古文"
- },
- "mua": {
- "name": "蒙當文"
- },
- "qu": {
- "name": "蓋楚瓦文"
- },
- "saq": {
- "name": "薩布魯文"
- },
- "bo": {
- "name": "藏文"
- },
- "gd": {
- "name": "蘇格蘭蓋爾文"
- },
- "rof": {
- "name": "蘭博文"
- },
- "fy": {
- "name": "西弗里西亞文"
- },
- "khq": {
- "name": "西桑海文"
- },
- "es": {
- "name": "西班牙文"
- },
- "es-MX": {
- "name": "西班牙文 (墨西哥)"
- },
- "ha": {
- "name": "豪撒文"
- },
- "bez": {
- "name": "貝納文"
- },
- "kok": {
- "name": "貢根文"
- },
- "seh": {
- "name": "賽納文"
- },
- "vi": {
- "name": "越南文"
- },
- "ce": {
- "name": "車臣文"
- },
- "ak": {
- "name": "阿坎文"
- },
- "am": {
- "name": "阿姆哈拉文"
- },
- "ar": {
- "name": "阿拉伯文"
- },
- "ast": {
- "name": "阿斯圖里亞文"
- },
- "sq": {
- "name": "阿爾巴尼亞文"
- },
- "as": {
- "name": "阿薩姆文"
- },
- "asa": {
- "name": "阿蘇文"
- },
- "rn": {
- "name": "隆迪文"
- },
- "sah": {
- "name": "雅庫特文"
- },
- "ko": {
- "name": "韓文"
- },
- "ml": {
- "name": "馬來亞拉姆文"
- },
- "ms": {
- "name": "馬來文"
- },
- "mk": {
- "name": "馬其頓文"
- },
- "mgh": {
- "name": "馬夸文"
- },
- "kde": {
- "name": "馬孔德文"
- },
- "jmc": {
- "name": "馬恰美文"
- },
- "mg": {
- "name": "馬拉加什文"
- },
- "mr": {
- "name": "馬拉地文"
- },
- "mt": {
- "name": "馬爾他文"
- },
- "mas": {
- "name": "馬賽文"
- },
- "mzn": {
- "name": "馬贊德蘭文"
- },
- "de-CH": {
- "name": "高地德文(瑞士)"
- },
- "km": {
- "name": "高棉文"
- },
- "lu": {
- "name": "魯巴加丹加文"
- }
-} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/zgh.json b/vendor/commerceguys/intl/resources/language/zgh.json
index 0e7e0f2df..dc0051635 100644
--- a/vendor/commerceguys/intl/resources/language/zgh.json
+++ b/vendor/commerceguys/intl/resources/language/zgh.json
@@ -50,9 +50,6 @@
"br": {
"name": "Breton"
},
- "yue": {
- "name": "Cantonese"
- },
"ca": {
"name": "Catalan"
},
@@ -374,6 +371,9 @@
"ii": {
"name": "Sichuan Yi"
},
+ "sd": {
+ "name": "Sindhi"
+ },
"si": {
"name": "Sinhala"
},
@@ -401,9 +401,15 @@
"dav": {
"name": "Taita"
},
+ "tg": {
+ "name": "Tajik"
+ },
"twq": {
"name": "Tasawaq"
},
+ "tt": {
+ "name": "Tatar"
+ },
"te": {
"name": "Telugu"
},
@@ -449,6 +455,9 @@
"fy": {
"name": "Western Frisian"
},
+ "wo": {
+ "name": "Wolof"
+ },
"yav": {
"name": "Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/language/zh-Hant-HK.json b/vendor/commerceguys/intl/resources/language/zh-Hant-HK.json
index ad25a7625..4bc506f7d 100644
--- a/vendor/commerceguys/intl/resources/language/zh-Hant-HK.json
+++ b/vendor/commerceguys/intl/resources/language/zh-Hant-HK.json
@@ -176,6 +176,9 @@
"nds": {
"name": "低地德文"
},
+ "nds-NL": {
+ "name": "低地薩克遜文"
+ },
"hr": {
"name": "克羅地亞文"
},
@@ -203,6 +206,9 @@
"vo": {
"name": "沃拉普克文"
},
+ "wo": {
+ "name": "沃洛夫文"
+ },
"bez": {
"name": "貝納文"
},
@@ -293,6 +299,9 @@
"bg": {
"name": "保加利亞文"
},
+ "sd": {
+ "name": "信德語"
+ },
"af": {
"name": "南非荷蘭文"
},
@@ -455,9 +464,6 @@
"nl": {
"name": "荷蘭文"
},
- "nds-NL": {
- "name": "荷蘭低地德文"
- },
"brx": {
"name": "博多文"
},
@@ -497,6 +503,9 @@
"sah": {
"name": "雅庫特文"
},
+ "tg": {
+ "name": "塔吉克文"
+ },
"sr": {
"name": "塞爾維亞文"
},
@@ -560,9 +569,6 @@
"ha": {
"name": "豪撒文"
},
- "yue": {
- "name": "廣東話"
- },
"de": {
"name": "德文"
},
@@ -631,5 +637,8 @@
},
"rof": {
"name": "蘭博文"
+ },
+ "tt": {
+ "name": "韃靼文"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/zh-Hant-MO.json b/vendor/commerceguys/intl/resources/language/zh-Hant-MO.json
index ad25a7625..4bc506f7d 100644
--- a/vendor/commerceguys/intl/resources/language/zh-Hant-MO.json
+++ b/vendor/commerceguys/intl/resources/language/zh-Hant-MO.json
@@ -176,6 +176,9 @@
"nds": {
"name": "低地德文"
},
+ "nds-NL": {
+ "name": "低地薩克遜文"
+ },
"hr": {
"name": "克羅地亞文"
},
@@ -203,6 +206,9 @@
"vo": {
"name": "沃拉普克文"
},
+ "wo": {
+ "name": "沃洛夫文"
+ },
"bez": {
"name": "貝納文"
},
@@ -293,6 +299,9 @@
"bg": {
"name": "保加利亞文"
},
+ "sd": {
+ "name": "信德語"
+ },
"af": {
"name": "南非荷蘭文"
},
@@ -455,9 +464,6 @@
"nl": {
"name": "荷蘭文"
},
- "nds-NL": {
- "name": "荷蘭低地德文"
- },
"brx": {
"name": "博多文"
},
@@ -497,6 +503,9 @@
"sah": {
"name": "雅庫特文"
},
+ "tg": {
+ "name": "塔吉克文"
+ },
"sr": {
"name": "塞爾維亞文"
},
@@ -560,9 +569,6 @@
"ha": {
"name": "豪撒文"
},
- "yue": {
- "name": "廣東話"
- },
"de": {
"name": "德文"
},
@@ -631,5 +637,8 @@
},
"rof": {
"name": "蘭博文"
+ },
+ "tt": {
+ "name": "韃靼文"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/zh-Hant.json b/vendor/commerceguys/intl/resources/language/zh-Hant.json
index c5d0827d7..d73fc629a 100644
--- a/vendor/commerceguys/intl/resources/language/zh-Hant.json
+++ b/vendor/commerceguys/intl/resources/language/zh-Hant.json
@@ -203,6 +203,9 @@
"vo": {
"name": "沃拉普克文"
},
+ "wo": {
+ "name": "沃洛夫文"
+ },
"bez": {
"name": "貝納文"
},
@@ -305,6 +308,9 @@
"bg": {
"name": "保加利亞文"
},
+ "sd": {
+ "name": "信德文"
+ },
"af": {
"name": "南非荷蘭文"
},
@@ -425,15 +431,15 @@
"mk": {
"name": "馬其頓文"
},
- "mg": {
- "name": "馬拉加什文"
- },
"mr": {
"name": "馬拉地文"
},
"jmc": {
"name": "馬恰美文"
},
+ "mg": {
+ "name": "馬達加斯加文"
+ },
"mt": {
"name": "馬爾他文"
},
@@ -506,6 +512,9 @@
"sah": {
"name": "雅庫特文"
},
+ "tg": {
+ "name": "塔吉克文"
+ },
"sr": {
"name": "塞爾維亞文"
},
@@ -530,9 +539,6 @@
"sv": {
"name": "瑞典文"
},
- "yue": {
- "name": "粵語"
- },
"it": {
"name": "義大利文"
},
@@ -631,5 +637,8 @@
},
"rof": {
"name": "蘭博文"
+ },
+ "tt": {
+ "name": "韃靼文"
}
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/language/zh.json b/vendor/commerceguys/intl/resources/language/zh.json
index 27d01436e..5aff7ec0d 100644
--- a/vendor/commerceguys/intl/resources/language/zh.json
+++ b/vendor/commerceguys/intl/resources/language/zh.json
@@ -1,30 +1,27 @@
{
"sq": {
- "name": "阿尔巴尼亚文"
+ "name": "阿尔巴尼亚语"
},
"ak": {
- "name": "阿肯文"
+ "name": "阿肯语"
},
"ar": {
"name": "阿拉伯语"
},
"am": {
- "name": "阿姆哈拉文"
+ "name": "阿姆哈拉语"
},
"as": {
- "name": "阿萨姆文"
+ "name": "阿萨姆语"
},
"az": {
"name": "阿塞拜疆语"
},
"ast": {
- "name": "阿斯图里亚斯文"
- },
- "asa": {
- "name": "阿苏文"
+ "name": "阿斯图里亚斯语"
},
"ee": {
- "name": "埃维文"
+ "name": "埃维语"
},
"ga": {
"name": "爱尔兰语"
@@ -33,128 +30,122 @@
"name": "爱沙尼亚语"
},
"de-AT": {
- "name": "奥地利德文"
+ "name": "奥地利德语"
},
"or": {
- "name": "奥里亚文"
+ "name": "奥里亚语"
},
"om": {
- "name": "奥洛莫文"
+ "name": "奥罗莫语"
},
"os": {
- "name": "奥塞梯文"
+ "name": "奥塞梯语"
+ },
+ "en-AU": {
+ "name": "澳大利亚英语"
},
"ksf": {
- "name": "巴菲亚文"
+ "name": "巴菲亚语"
},
"bas": {
- "name": "巴萨文"
+ "name": "巴萨语"
},
"eu": {
- "name": "巴斯克文"
+ "name": "巴斯克语"
},
"be": {
"name": "白俄罗斯语"
},
"bm": {
- "name": "班巴拉文"
+ "name": "班巴拉语"
},
"bg": {
"name": "保加利亚语"
},
"nd": {
- "name": "北恩德贝勒文"
- },
- "lrc": {
- "name": "北卢尔文"
+ "name": "北恩德贝勒语"
},
"se": {
- "name": "北萨米文"
+ "name": "北方萨米语"
+ },
+ "lrc": {
+ "name": "北卢尔语"
},
"twq": {
- "name": "北桑海文"
+ "name": "北桑海语"
},
"bez": {
- "name": "贝纳文"
- },
- "zgh": {
- "name": "标准摩洛哥塔马塞特文"
+ "name": "贝纳语"
},
"bem": {
- "name": "别姆巴文"
+ "name": "本巴语"
+ },
+ "zgh": {
+ "name": "标准摩洛哥塔马塞特语"
},
"is": {
"name": "冰岛语"
},
"pl": {
- "name": "波兰文"
+ "name": "波兰语"
},
"bs": {
"name": "波斯尼亚语"
},
"fa": {
- "name": "波斯文"
+ "name": "波斯语"
},
"brx": {
- "name": "博多文"
+ "name": "博多语"
},
"br": {
- "name": "布列塔尼文"
+ "name": "布列塔尼语"
},
"bo": {
"name": "藏语"
},
"ce": {
- "name": "车臣文"
+ "name": "车臣语"
},
- "chr": {
- "name": "彻罗基文"
+ "tt": {
+ "name": "鞑靼语"
},
"da": {
"name": "丹麦语"
},
"de": {
- "name": "德文"
- },
- "gsw": {
- "name": "德语(瑞士)"
+ "name": "德语"
},
"nds": {
- "name": "低地德文"
+ "name": "低地德语"
},
"nds-NL": {
- "name": "低萨克森文"
+ "name": "低萨克森语"
},
"ses": {
- "name": "东桑海文"
+ "name": "东桑海语"
},
"dua": {
- "name": "都阿拉文"
+ "name": "都阿拉语"
},
"ru": {
- "name": "俄文"
+ "name": "俄语"
},
"ebu": {
- "name": "恩布文"
+ "name": "恩布语"
},
"nnh": {
- "name": "恩甘澎文"
+ "name": "恩甘澎语"
},
"jgo": {
- "name": "恩艮巴"
+ "name": "恩艮巴语"
},
"fo": {
- "name": "法罗文"
+ "name": "法罗语"
},
"fr": {
"name": "法语"
},
- "fr-CA": {
- "name": "法语(加拿大)"
- },
- "fr-CH": {
- "name": "法语(瑞士)"
- },
"zh-Hant": {
"name": "繁体中文"
},
@@ -164,29 +155,23 @@
"fi": {
"name": "芬兰语"
},
- "fur": {
- "name": "弗留利文"
- },
"nl-BE": {
- "name": "佛兰德文"
+ "name": "弗拉芒语"
},
- "ff": {
- "name": "富拉文"
+ "fur": {
+ "name": "弗留利语"
},
- "qu": {
- "name": "盖丘亚文"
+ "ff": {
+ "name": "富拉语"
},
"sw-CD": {
- "name": "刚果斯瓦希里文"
- },
- "kok": {
- "name": "刚卡尼文"
+ "name": "刚果斯瓦希里语"
},
"km": {
- "name": "高棉文"
+ "name": "高棉语"
},
"kl": {
- "name": "格陵兰文"
+ "name": "格陵兰语"
},
"ka": {
"name": "格鲁吉亚语"
@@ -195,29 +180,32 @@
"name": "古吉拉特语"
},
"guz": {
- "name": "古西文"
+ "name": "古西语"
},
"kk": {
"name": "哈萨克语"
},
"ko": {
- "name": "韩文"
+ "name": "韩语"
},
"ha": {
- "name": "豪萨文"
+ "name": "豪萨语"
},
"nl": {
"name": "荷兰语"
},
- "ky": {
- "name": "吉尔吉斯文"
- },
"ki": {
- "name": "吉库尤文"
+ "name": "吉库尤语"
},
"gl": {
"name": "加利西亚语"
},
+ "fr-CA": {
+ "name": "加拿大法语"
+ },
+ "en-CA": {
+ "name": "加拿大英语"
+ },
"ca": {
"name": "加泰罗尼亚语"
},
@@ -225,55 +213,64 @@
"name": "简体中文"
},
"cu": {
- "name": "教会斯拉夫文"
+ "name": "教会斯拉夫语"
},
"cs": {
"name": "捷克语"
},
"kab": {
- "name": "卡比尔文"
+ "name": "卡拜尔语"
},
"kea": {
- "name": "卡布佛得鲁文"
+ "name": "卡布佛得鲁语"
},
"kkj": {
- "name": "卡库文"
+ "name": "卡库语"
},
"kln": {
- "name": "卡伦金文"
+ "name": "卡伦金语"
},
"kam": {
- "name": "卡姆巴文"
+ "name": "卡姆巴语"
},
"kn": {
- "name": "卡纳达文"
+ "name": "卡纳达语"
},
"kw": {
- "name": "凯尔特文"
+ "name": "康沃尔语"
+ },
+ "ky": {
+ "name": "柯尔克孜语"
},
"ksh": {
- "name": "科隆文"
+ "name": "科隆语"
},
"hr": {
"name": "克罗地亚语"
},
+ "qu": {
+ "name": "克丘亚语"
+ },
"ks": {
- "name": "克什米尔文"
+ "name": "克什米尔语"
+ },
+ "kok": {
+ "name": "孔卡尼语"
},
"nmg": {
- "name": "夸西奥文"
+ "name": "夸西奥语"
},
"lkt": {
- "name": "拉科塔文"
+ "name": "拉科塔语"
},
"lv": {
"name": "拉脱维亚语"
},
"rof": {
- "name": "兰博文"
+ "name": "兰博语"
},
"lag": {
- "name": "朗吉文"
+ "name": "朗吉语"
},
"lo": {
"name": "老挝语"
@@ -282,16 +279,16 @@
"name": "立陶宛语"
},
"ln": {
- "name": "林加拉文"
+ "name": "林加拉语"
},
"rn": {
- "name": "隆迪文"
- },
- "luo": {
- "name": "卢奥文"
+ "name": "隆迪语"
},
"lg": {
- "name": "卢干达文"
+ "name": "卢干达语"
+ },
+ "luo": {
+ "name": "卢欧语"
},
"lb": {
"name": "卢森堡语"
@@ -300,37 +297,37 @@
"name": "卢旺达语"
},
"luy": {
- "name": "卢雅文"
+ "name": "卢雅语"
},
"lu": {
- "name": "鲁巴加丹加文"
+ "name": "鲁巴加丹加语"
},
"ro": {
- "name": "罗马尼亚文"
+ "name": "罗马尼亚语"
},
"rm": {
- "name": "罗曼什文"
+ "name": "罗曼什语"
},
"rwk": {
- "name": "罗瓦文"
+ "name": "罗瓦语"
},
"gv": {
- "name": "马恩岛文"
- },
- "mg": {
- "name": "马尔加什文"
+ "name": "马恩语"
},
"mt": {
- "name": "马耳他文"
+ "name": "马耳他语"
},
"kde": {
- "name": "马孔德文"
+ "name": "马孔德语"
},
"mgh": {
- "name": "马库阿文"
+ "name": "马库阿语"
},
"mr": {
- "name": "马拉地文"
+ "name": "马拉地语"
+ },
+ "mg": {
+ "name": "马拉加斯语"
},
"ml": {
"name": "马拉雅拉姆语"
@@ -339,28 +336,31 @@
"name": "马来语"
},
"mk": {
- "name": "马其顿文"
+ "name": "马其顿语"
},
"jmc": {
- "name": "马切姆文"
+ "name": "马切姆语"
+ },
+ "mas": {
+ "name": "马赛语"
},
"mzn": {
- "name": "马赞德兰文"
+ "name": "马赞德兰语"
},
"mfe": {
- "name": "毛里求斯克里奥尔文"
+ "name": "毛里求斯克里奥尔语"
},
"mer": {
- "name": "梅鲁文"
+ "name": "梅鲁语"
},
"mgo": {
- "name": "梅塔文"
+ "name": "梅塔语"
},
"mua": {
- "name": "蒙当文"
+ "name": "蒙当语"
},
"mn": {
- "name": "蒙古文"
+ "name": "蒙古语"
},
"bn": {
"name": "孟加拉语"
@@ -369,49 +369,52 @@
"name": "缅甸语"
},
"ro-MD": {
- "name": "摩尔多瓦文"
+ "name": "摩尔多瓦语"
},
"es-MX": {
- "name": "墨西哥西班牙文"
+ "name": "墨西哥西班牙语"
},
"naq": {
- "name": "纳马文"
+ "name": "纳马语"
},
"af": {
"name": "南非荷兰语"
},
"nyn": {
- "name": "尼昂科勒文"
+ "name": "尼昂科勒语"
},
"ne": {
"name": "尼泊尔语"
},
"nus": {
- "name": "努埃尔文"
- },
- "nb": {
- "name": "挪威博克马尔语"
+ "name": "努埃尔语"
},
"nn": {
- "name": "挪威尼诺斯克文"
+ "name": "挪威尼诺斯克语"
},
"pt-PT": {
- "name": "欧洲葡萄牙文"
+ "name": "欧洲葡萄牙语"
+ },
+ "asa": {
+ "name": "帕雷语"
},
"pa": {
- "name": "旁遮普文"
+ "name": "旁遮普语"
},
"pt": {
- "name": "葡萄牙文"
+ "name": "葡萄牙语"
},
"prg": {
- "name": "普鲁士文"
+ "name": "普鲁士语"
},
"ps": {
- "name": "普什图文"
+ "name": "普什图语"
},
"cgg": {
- "name": "奇加文"
+ "name": "奇加语"
+ },
+ "chr": {
+ "name": "切罗基语"
},
"ja": {
"name": "日语"
@@ -419,68 +422,77 @@
"sv": {
"name": "瑞典语"
},
+ "gsw": {
+ "name": "瑞士德语"
+ },
+ "fr-CH": {
+ "name": "瑞士法语"
+ },
"de-CH": {
- "name": "瑞士高地德文"
+ "name": "瑞士高地德语"
},
"sah": {
- "name": "萨哈文"
- },
- "mas": {
- "name": "萨伊文"
+ "name": "萨哈语"
},
"sr": {
- "name": "塞尔维亚文"
+ "name": "塞尔维亚语"
},
"seh": {
- "name": "塞纳文"
+ "name": "塞纳语"
},
"saq": {
- "name": "桑布鲁文"
+ "name": "桑布鲁语"
},
"sg": {
- "name": "桑戈文"
+ "name": "桑戈语"
},
"sbp": {
- "name": "桑古文"
+ "name": "桑古语"
},
"si": {
- "name": "僧伽罗文"
+ "name": "僧伽罗语"
},
"hsb": {
- "name": "上索布文"
+ "name": "上索布语"
},
"sn": {
- "name": "绍纳文"
+ "name": "绍纳语"
},
"eo": {
"name": "世界语"
},
+ "nb": {
+ "name": "书面挪威语"
+ },
"sk": {
- "name": "斯洛伐克文"
+ "name": "斯洛伐克语"
},
"sl": {
- "name": "斯洛文尼亚文"
+ "name": "斯洛文尼亚语"
},
"sw": {
- "name": "斯瓦希里文"
+ "name": "斯瓦希里语"
},
"ii": {
- "name": "四川彝文"
+ "name": "四川彝语"
},
"gd": {
- "name": "苏格兰盖尔文"
+ "name": "苏格兰盖尔语"
},
"xog": {
- "name": "索加文"
+ "name": "索加语"
},
"so": {
- "name": "索马里文"
+ "name": "索马里语"
+ },
+ "tg": {
+ "name": "塔吉克语"
},
"tzm": {
- "name": "塔马齐格特文"
+ "name": "塔马齐格特语"
},
"dav": {
- "name": "台塔文"
+ "name": "台塔语"
},
"te": {
"name": "泰卢固语"
@@ -492,28 +504,28 @@
"name": "泰语"
},
"to": {
- "name": "汤加文"
+ "name": "汤加语"
},
"teo": {
- "name": "特索文"
+ "name": "特索语"
},
"ti": {
- "name": "提格利尼亚文"
+ "name": "提格利尼亚语"
},
"tr": {
- "name": "土耳其文"
+ "name": "土耳其语"
},
"tk": {
- "name": "土库曼文"
+ "name": "土库曼语"
},
"wae": {
- "name": "瓦尔瑟文"
+ "name": "瓦尔瑟语"
},
"vai": {
- "name": "瓦伊文"
+ "name": "瓦伊语"
},
"ewo": {
- "name": "旺杜文"
+ "name": "旺杜语"
},
"cy": {
"name": "威尔士语"
@@ -522,10 +534,13 @@
"name": "维吾尔语"
},
"vun": {
- "name": "温旧文"
+ "name": "温旧语"
},
"vo": {
- "name": "沃拉普克文"
+ "name": "沃拉普克语"
+ },
+ "wo": {
+ "name": "沃洛夫语"
},
"ur": {
"name": "乌尔都语"
@@ -536,56 +551,59 @@
"uz": {
"name": "乌兹别克语"
},
+ "es": {
+ "name": "西班牙语"
+ },
+ "fy": {
+ "name": "西弗里西亚语"
+ },
+ "khq": {
+ "name": "西桑海语"
+ },
"he": {
"name": "希伯来语"
},
"shi": {
- "name": "希尔哈文"
+ "name": "希尔哈语"
},
"el": {
"name": "希腊语"
},
- "es": {
- "name": "西班牙文"
- },
- "fy": {
- "name": "西弗里西亚文"
- },
- "khq": {
- "name": "西桑海文"
- },
"dsb": {
- "name": "下索布文"
+ "name": "下索布语"
},
"haw": {
- "name": "夏威夷文"
+ "name": "夏威夷语"
},
"ksb": {
- "name": "香巴拉文"
+ "name": "香巴拉语"
+ },
+ "sd": {
+ "name": "信德语"
},
"hu": {
"name": "匈牙利语"
},
"agq": {
- "name": "亚罕文"
+ "name": "亚罕语"
},
"hy": {
"name": "亚美尼亚语"
},
"yav": {
- "name": "洋卞文"
+ "name": "洋卞语"
},
"ig": {
- "name": "伊布文"
+ "name": "伊博语"
},
"smn": {
- "name": "伊纳里萨米文"
+ "name": "伊纳里萨米语"
},
"it": {
"name": "意大利语"
},
"yi": {
- "name": "意第绪文"
+ "name": "意第绪语"
},
"hi": {
"name": "印地语"
@@ -593,41 +611,32 @@
"id": {
"name": "印度尼西亚语"
},
+ "en-GB": {
+ "name": "英国英语"
+ },
"en": {
"name": "英语"
},
- "en-AU": {
- "name": "英语(澳大利亚)"
- },
- "en-CA": {
- "name": "英语(加拿大)"
- },
- "en-GB": {
- "name": "英语(英国)"
- },
"yo": {
- "name": "约鲁巴文"
- },
- "yue": {
- "name": "粤语"
+ "name": "约鲁巴语"
},
"vi": {
"name": "越南语"
},
"dje": {
- "name": "哲尔马文"
+ "name": "哲尔马语"
},
"ckb": {
- "name": "中库尔德文"
+ "name": "中库尔德语"
},
"zh": {
"name": "中文"
},
"dyo": {
- "name": "朱拉文"
+ "name": "朱拉语"
},
"dz": {
- "name": "宗卡文"
+ "name": "宗卡语"
},
"zu": {
"name": "祖鲁语"
diff --git a/vendor/commerceguys/intl/resources/language/zu.json b/vendor/commerceguys/intl/resources/language/zu.json
index 53310e00c..f6d2916bf 100644
--- a/vendor/commerceguys/intl/resources/language/zu.json
+++ b/vendor/commerceguys/intl/resources/language/zu.json
@@ -116,9 +116,6 @@
"my": {
"name": "isi-Burmese"
},
- "yue": {
- "name": "isi-Cantonese"
- },
"ca": {
"name": "isi-Catalan"
},
@@ -515,6 +512,9 @@
"ii": {
"name": "isi-Sichuan Yi"
},
+ "sd": {
+ "name": "isi-Sindhi"
+ },
"sk": {
"name": "isi-Slovak"
},
@@ -542,12 +542,18 @@
"dav": {
"name": "isi-Taita"
},
+ "tg": {
+ "name": "isi-Tajik"
+ },
"ta": {
"name": "isi-Tamil"
},
"twq": {
"name": "isi-Tasawaq"
},
+ "tt": {
+ "name": "isi-Tatar"
+ },
"te": {
"name": "isi-Telugu"
},
@@ -605,6 +611,9 @@
"fy": {
"name": "isi-Western Frisian"
},
+ "wo": {
+ "name": "isi-Wolof"
+ },
"yav": {
"name": "isi-Yangben"
},
diff --git a/vendor/commerceguys/intl/resources/number_format/bg.json b/vendor/commerceguys/intl/resources/number_format/bg.json
index db5594973..e7e048d67 100644
--- a/vendor/commerceguys/intl/resources/number_format/bg.json
+++ b/vendor/commerceguys/intl/resources/number_format/bg.json
@@ -2,8 +2,8 @@
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
"percent_pattern": "#,##0%",
- "currency_pattern": "#0.00 ¤",
- "accounting_currency_pattern": "#0.00 ¤;(#0.00 ¤)",
+ "currency_pattern": "0.00 ¤",
+ "accounting_currency_pattern": "0.00 ¤;(0.00 ¤)",
"decimal_separator": ",",
"grouping_separator": " "
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/bs-Cyrl.json b/vendor/commerceguys/intl/resources/number_format/bs-Cyrl.json
new file mode 100644
index 000000000..fe7da1e1a
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/number_format/bs-Cyrl.json
@@ -0,0 +1,9 @@
+{
+ "numbering_system": "latn",
+ "decimal_pattern": "#,##0.###",
+ "percent_pattern": "#,##0%",
+ "currency_pattern": "#,##0.00 ¤",
+ "accounting_currency_pattern": "#,##0.00 ¤",
+ "decimal_separator": ",",
+ "grouping_separator": "."
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/ckb.json b/vendor/commerceguys/intl/resources/number_format/ckb.json
index 536e7e1d4..10b888cbc 100644
--- a/vendor/commerceguys/intl/resources/number_format/ckb.json
+++ b/vendor/commerceguys/intl/resources/number_format/ckb.json
@@ -6,7 +6,7 @@
"accounting_currency_pattern": "#,##0.00 ¤",
"decimal_separator": "٫",
"grouping_separator": "٬",
- "plus_sign": "؜+",
- "minus_sign": "؜-",
+ "plus_sign": "‏+",
+ "minus_sign": "‏-",
"percent_sign": "٪"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/de-CH.json b/vendor/commerceguys/intl/resources/number_format/de-CH.json
index 71149a173..845578f9a 100644
--- a/vendor/commerceguys/intl/resources/number_format/de-CH.json
+++ b/vendor/commerceguys/intl/resources/number_format/de-CH.json
@@ -4,5 +4,5 @@
"percent_pattern": "#,##0%",
"currency_pattern": "¤ #,##0.00;¤-#,##0.00",
"accounting_currency_pattern": "#,##0.00 ¤",
- "grouping_separator": "'"
+ "grouping_separator": "’"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/de-LI.json b/vendor/commerceguys/intl/resources/number_format/de-LI.json
index c48f86bec..f788741c8 100644
--- a/vendor/commerceguys/intl/resources/number_format/de-LI.json
+++ b/vendor/commerceguys/intl/resources/number_format/de-LI.json
@@ -4,5 +4,5 @@
"percent_pattern": "#,##0%",
"currency_pattern": "¤ #,##0.00",
"accounting_currency_pattern": "#,##0.00 ¤",
- "grouping_separator": "'"
+ "grouping_separator": "’"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/el.json b/vendor/commerceguys/intl/resources/number_format/el.json
index c30bdc3aa..fe7da1e1a 100644
--- a/vendor/commerceguys/intl/resources/number_format/el.json
+++ b/vendor/commerceguys/intl/resources/number_format/el.json
@@ -3,7 +3,7 @@
"decimal_pattern": "#,##0.###",
"percent_pattern": "#,##0%",
"currency_pattern": "#,##0.00 ¤",
- "accounting_currency_pattern": "#,##0.00 ¤;(#,##0.00 ¤)",
+ "accounting_currency_pattern": "#,##0.00 ¤",
"decimal_separator": ",",
"grouping_separator": "."
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/yue.json b/vendor/commerceguys/intl/resources/number_format/es-BZ.json
index b3c1634ea..a474daf71 100644
--- a/vendor/commerceguys/intl/resources/number_format/yue.json
+++ b/vendor/commerceguys/intl/resources/number_format/es-BZ.json
@@ -1,7 +1,7 @@
{
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
- "percent_pattern": "#,##0%",
+ "percent_pattern": "#,##0 %",
"currency_pattern": "¤#,##0.00",
- "accounting_currency_pattern": "¤#,##0.00;(¤#,##0.00)"
+ "accounting_currency_pattern": "¤#,##0.00"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/es-CO.json b/vendor/commerceguys/intl/resources/number_format/es-CO.json
index b366f5e59..9289ceb55 100644
--- a/vendor/commerceguys/intl/resources/number_format/es-CO.json
+++ b/vendor/commerceguys/intl/resources/number_format/es-CO.json
@@ -1,7 +1,7 @@
{
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
- "percent_pattern": "#,##0%",
+ "percent_pattern": "#,##0 %",
"currency_pattern": "¤ #,##0.00",
"accounting_currency_pattern": "¤#,##0.00",
"decimal_separator": ",",
diff --git a/vendor/commerceguys/intl/resources/number_format/es-DO.json b/vendor/commerceguys/intl/resources/number_format/es-DO.json
index b3c1634ea..ff98fbc27 100644
--- a/vendor/commerceguys/intl/resources/number_format/es-DO.json
+++ b/vendor/commerceguys/intl/resources/number_format/es-DO.json
@@ -1,7 +1,7 @@
{
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
- "percent_pattern": "#,##0%",
+ "percent_pattern": "#,##0 %",
"currency_pattern": "¤#,##0.00",
"accounting_currency_pattern": "¤#,##0.00;(¤#,##0.00)"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/es-MX.json b/vendor/commerceguys/intl/resources/number_format/es-MX.json
index a605145a8..a474daf71 100644
--- a/vendor/commerceguys/intl/resources/number_format/es-MX.json
+++ b/vendor/commerceguys/intl/resources/number_format/es-MX.json
@@ -1,7 +1,7 @@
{
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
- "percent_pattern": "#,##0%",
+ "percent_pattern": "#,##0 %",
"currency_pattern": "¤#,##0.00",
"accounting_currency_pattern": "¤#,##0.00"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/eu.json b/vendor/commerceguys/intl/resources/number_format/eu.json
index 37104eb26..7f845e5ae 100644
--- a/vendor/commerceguys/intl/resources/number_format/eu.json
+++ b/vendor/commerceguys/intl/resources/number_format/eu.json
@@ -5,5 +5,6 @@
"currency_pattern": "#,##0.00 ¤",
"accounting_currency_pattern": "#,##0.00 ¤;(#,##0.00 ¤)",
"decimal_separator": ",",
- "grouping_separator": "."
+ "grouping_separator": ".",
+ "minus_sign": "−"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/fa-AF.json b/vendor/commerceguys/intl/resources/number_format/fa-AF.json
index 3c5fdc3b2..c277c3ce1 100644
--- a/vendor/commerceguys/intl/resources/number_format/fa-AF.json
+++ b/vendor/commerceguys/intl/resources/number_format/fa-AF.json
@@ -1,12 +1,12 @@
{
"numbering_system": "arabext",
"decimal_pattern": "#,##0.###",
- "percent_pattern": "% #,##0;% -#,##0",
+ "percent_pattern": "#,##0%",
"currency_pattern": "¤ #,##0.00",
"accounting_currency_pattern": "¤ #,##0.00;‎(¤ #,##0.00)",
"decimal_separator": "٫",
"grouping_separator": "٬",
"plus_sign": "‎+",
"minus_sign": "‎−",
- "percent_sign": "‎٪"
+ "percent_sign": "٪"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/fa.json b/vendor/commerceguys/intl/resources/number_format/fa.json
index e00541db5..da53dbb93 100644
--- a/vendor/commerceguys/intl/resources/number_format/fa.json
+++ b/vendor/commerceguys/intl/resources/number_format/fa.json
@@ -1,12 +1,12 @@
{
"numbering_system": "arabext",
"decimal_pattern": "#,##0.###",
- "percent_pattern": "% #,##0;% -#,##0",
- "currency_pattern": "#,##0.00 ؜¤;؜-#,##0.00 ؜¤",
+ "percent_pattern": "#,##0%",
+ "currency_pattern": "‎¤#,##0.00",
"accounting_currency_pattern": "‎¤ #,##0.00;‎(¤ #,##0.00)",
"decimal_separator": "٫",
"grouping_separator": "٬",
"plus_sign": "‎+",
"minus_sign": "‎−",
- "percent_sign": "‎٪"
+ "percent_sign": "٪"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/fr-CH.json b/vendor/commerceguys/intl/resources/number_format/fr-CH.json
index 5b320ddde..2c5f891ef 100644
--- a/vendor/commerceguys/intl/resources/number_format/fr-CH.json
+++ b/vendor/commerceguys/intl/resources/number_format/fr-CH.json
@@ -2,7 +2,8 @@
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
"percent_pattern": "#,##0%",
- "currency_pattern": "¤ #,##0.00;¤-#,##0.00",
+ "currency_pattern": "#,##0.00 ¤ ;-#,##0.00 ¤",
"accounting_currency_pattern": "#,##0.00 ¤;(#,##0.00 ¤)",
+ "decimal_separator": ",",
"grouping_separator": " "
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/hy.json b/vendor/commerceguys/intl/resources/number_format/hy.json
index 28881d5d4..7ec8623e4 100644
--- a/vendor/commerceguys/intl/resources/number_format/hy.json
+++ b/vendor/commerceguys/intl/resources/number_format/hy.json
@@ -2,8 +2,8 @@
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
"percent_pattern": "#,##0%",
- "currency_pattern": "¤ #,##0.00",
- "accounting_currency_pattern": "¤ #,##0.00",
+ "currency_pattern": "#,##0.00 ¤",
+ "accounting_currency_pattern": "#,##0.00 ¤",
"decimal_separator": ",",
"grouping_separator": " "
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/it-CH.json b/vendor/commerceguys/intl/resources/number_format/it-CH.json
index 71149a173..845578f9a 100644
--- a/vendor/commerceguys/intl/resources/number_format/it-CH.json
+++ b/vendor/commerceguys/intl/resources/number_format/it-CH.json
@@ -4,5 +4,5 @@
"percent_pattern": "#,##0%",
"currency_pattern": "¤ #,##0.00;¤-#,##0.00",
"accounting_currency_pattern": "#,##0.00 ¤",
- "grouping_separator": "'"
+ "grouping_separator": "’"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/ka.json b/vendor/commerceguys/intl/resources/number_format/ka.json
index d764f9629..7ec8623e4 100644
--- a/vendor/commerceguys/intl/resources/number_format/ka.json
+++ b/vendor/commerceguys/intl/resources/number_format/ka.json
@@ -1,7 +1,7 @@
{
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
- "percent_pattern": "#,##0 %",
+ "percent_pattern": "#,##0%",
"currency_pattern": "#,##0.00 ¤",
"accounting_currency_pattern": "#,##0.00 ¤",
"decimal_separator": ",",
diff --git a/vendor/commerceguys/intl/resources/number_format/or.json b/vendor/commerceguys/intl/resources/number_format/or.json
index a844ebdb7..2ed36233b 100644
--- a/vendor/commerceguys/intl/resources/number_format/or.json
+++ b/vendor/commerceguys/intl/resources/number_format/or.json
@@ -3,5 +3,5 @@
"decimal_pattern": "#,##,##0.###",
"percent_pattern": "#,##,##0%",
"currency_pattern": "¤ #,##,##0.00",
- "accounting_currency_pattern": "¤ #,##,##0.00"
+ "accounting_currency_pattern": "¤#,##,##0.00;(¤#,##,##0.00)"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/pt.json b/vendor/commerceguys/intl/resources/number_format/pt.json
index 55f79831a..481a97b35 100644
--- a/vendor/commerceguys/intl/resources/number_format/pt.json
+++ b/vendor/commerceguys/intl/resources/number_format/pt.json
@@ -2,8 +2,8 @@
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
"percent_pattern": "#,##0%",
- "currency_pattern": "¤#,##0.00",
- "accounting_currency_pattern": "¤#,##0.00;(¤#,##0.00)",
+ "currency_pattern": "¤ #,##0.00",
+ "accounting_currency_pattern": "¤ #,##0.00",
"decimal_separator": ",",
"grouping_separator": "."
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/sd.json b/vendor/commerceguys/intl/resources/number_format/sd.json
new file mode 100644
index 000000000..055e131eb
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/number_format/sd.json
@@ -0,0 +1,12 @@
+{
+ "numbering_system": "arab",
+ "decimal_pattern": "#,##0.###",
+ "percent_pattern": "#,##0 %",
+ "currency_pattern": "#,##0.00 ¤",
+ "accounting_currency_pattern": "#,##0.00 ¤",
+ "decimal_separator": "٫",
+ "grouping_separator": "٬",
+ "plus_sign": "؜+",
+ "minus_sign": "؜-",
+ "percent_sign": "٪؜"
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/sl.json b/vendor/commerceguys/intl/resources/number_format/sl.json
index 7acfea5e6..0236c4142 100644
--- a/vendor/commerceguys/intl/resources/number_format/sl.json
+++ b/vendor/commerceguys/intl/resources/number_format/sl.json
@@ -6,5 +6,5 @@
"accounting_currency_pattern": "#,##0.00 ¤;(#,##0.00 ¤)",
"decimal_separator": ",",
"grouping_separator": ".",
- "minus_sign": "–"
+ "minus_sign": "−"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/tg.json b/vendor/commerceguys/intl/resources/number_format/tg.json
new file mode 100644
index 000000000..7ec8623e4
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/number_format/tg.json
@@ -0,0 +1,9 @@
+{
+ "numbering_system": "latn",
+ "decimal_pattern": "#,##0.###",
+ "percent_pattern": "#,##0%",
+ "currency_pattern": "#,##0.00 ¤",
+ "accounting_currency_pattern": "#,##0.00 ¤",
+ "decimal_separator": ",",
+ "grouping_separator": " "
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/tt.json b/vendor/commerceguys/intl/resources/number_format/tt.json
new file mode 100644
index 000000000..d764f9629
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/number_format/tt.json
@@ -0,0 +1,9 @@
+{
+ "numbering_system": "latn",
+ "decimal_pattern": "#,##0.###",
+ "percent_pattern": "#,##0 %",
+ "currency_pattern": "#,##0.00 ¤",
+ "accounting_currency_pattern": "#,##0.00 ¤",
+ "decimal_separator": ",",
+ "grouping_separator": " "
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/ur-IN.json b/vendor/commerceguys/intl/resources/number_format/ur-IN.json
index 0d180566d..d0b2d6ae0 100644
--- a/vendor/commerceguys/intl/resources/number_format/ur-IN.json
+++ b/vendor/commerceguys/intl/resources/number_format/ur-IN.json
@@ -3,7 +3,9 @@
"decimal_pattern": "#,##0.###",
"percent_pattern": "#,##0%",
"currency_pattern": "¤ #,##,##0.00",
- "accounting_currency_pattern": "¤ #,##,##0.00",
+ "accounting_currency_pattern": "¤#,##0.00;(¤#,##0.00)",
+ "decimal_separator": "٫",
+ "grouping_separator": "٬",
"plus_sign": "‎+‎",
"minus_sign": "‎-‎"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/ur.json b/vendor/commerceguys/intl/resources/number_format/ur.json
index 019972cbc..1f42d1590 100644
--- a/vendor/commerceguys/intl/resources/number_format/ur.json
+++ b/vendor/commerceguys/intl/resources/number_format/ur.json
@@ -1,9 +1,9 @@
{
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
- "percent_pattern": "#,##,##0%",
- "currency_pattern": "¤ #,##,##0.00",
- "accounting_currency_pattern": "¤ #,##,##0.00",
+ "percent_pattern": "#,##0%",
+ "currency_pattern": "¤ #,##0.00",
+ "accounting_currency_pattern": "¤#,##0.00;(¤#,##0.00)",
"plus_sign": "‎+",
"minus_sign": "‎-"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/vi.json b/vendor/commerceguys/intl/resources/number_format/vi.json
index c889e5944..fe7da1e1a 100644
--- a/vendor/commerceguys/intl/resources/number_format/vi.json
+++ b/vendor/commerceguys/intl/resources/number_format/vi.json
@@ -2,7 +2,7 @@
"numbering_system": "latn",
"decimal_pattern": "#,##0.###",
"percent_pattern": "#,##0%",
- "currency_pattern": "¤ #,##0.00",
+ "currency_pattern": "#,##0.00 ¤",
"accounting_currency_pattern": "#,##0.00 ¤",
"decimal_separator": ",",
"grouping_separator": "."
diff --git a/vendor/commerceguys/intl/resources/number_format/wo.json b/vendor/commerceguys/intl/resources/number_format/wo.json
new file mode 100644
index 000000000..481a97b35
--- /dev/null
+++ b/vendor/commerceguys/intl/resources/number_format/wo.json
@@ -0,0 +1,9 @@
+{
+ "numbering_system": "latn",
+ "decimal_pattern": "#,##0.###",
+ "percent_pattern": "#,##0%",
+ "currency_pattern": "¤ #,##0.00",
+ "accounting_currency_pattern": "¤ #,##0.00",
+ "decimal_separator": ",",
+ "grouping_separator": "."
+} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/resources/number_format/zu.json b/vendor/commerceguys/intl/resources/number_format/zu.json
index b3c1634ea..a605145a8 100644
--- a/vendor/commerceguys/intl/resources/number_format/zu.json
+++ b/vendor/commerceguys/intl/resources/number_format/zu.json
@@ -3,5 +3,5 @@
"decimal_pattern": "#,##0.###",
"percent_pattern": "#,##0%",
"currency_pattern": "¤#,##0.00",
- "accounting_currency_pattern": "¤#,##0.00;(¤#,##0.00)"
+ "accounting_currency_pattern": "¤#,##0.00"
} \ No newline at end of file
diff --git a/vendor/commerceguys/intl/scripts/fetch_data.sh b/vendor/commerceguys/intl/scripts/fetch_data.sh
index df727e758..804ecc1a1 100644
--- a/vendor/commerceguys/intl/scripts/fetch_data.sh
+++ b/vendor/commerceguys/intl/scripts/fetch_data.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-URL="http://www.currency-iso.org/dam/downloads/lists/list_one.xml"
+URL="https://www.currency-iso.org/dam/downloads/lists/list_one.xml"
rm -fR assets
mkdir assets
diff --git a/vendor/commerceguys/intl/scripts/number_format/generate.php b/vendor/commerceguys/intl/scripts/number_format/generate.php
index 0fd8998f1..6809c980f 100644
--- a/vendor/commerceguys/intl/scripts/number_format/generate.php
+++ b/vendor/commerceguys/intl/scripts/number_format/generate.php
@@ -27,7 +27,7 @@ $ignoredLocales = [
// Interlingua is a made up language.
'ia',
// Ignored by other generation scripts, very minor locales.
- 'as', 'asa', 'bem', 'chr', 'dav', 'dua', 'ebu', 'ewo', 'guz', 'gv', 'ii',
+ 'as', 'asa', 'bem', 'ccp', 'chr', 'dav', 'dua', 'ebu', 'ewo', 'guz', 'gv', 'ii',
'jgo', 'jmc', 'kam', 'kde', 'ki', 'kkj', 'kl', 'kln', 'ksb', 'kw', 'lag',
'ln', 'mer', 'mgo', 'nd', 'nmg', 'nnh', 'nus', 'os', 'ps', 'rwk', 'sah',
'saq', 'sbp', 'shi', 'sn', 'teo', 'vai', 'vun', 'xog', 'zgh',
diff --git a/vendor/commerceguys/intl/src/Formatter/NumberFormatter.php b/vendor/commerceguys/intl/src/Formatter/NumberFormatter.php
index 5d36fc89b..9c8979043 100644
--- a/vendor/commerceguys/intl/src/Formatter/NumberFormatter.php
+++ b/vendor/commerceguys/intl/src/Formatter/NumberFormatter.php
@@ -99,7 +99,7 @@ class NumberFormatter implements NumberFormatterInterface
];
/**
- * Creaes a NumberFormatter instance.
+ * Creates a NumberFormatter instance.
*
* @param NumberFormatInterface $numberFormat The number format.
* @param int $style The formatting style.
diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php
index c6f6d2322..dc02dfb11 100644
--- a/vendor/composer/ClassLoader.php
+++ b/vendor/composer/ClassLoader.php
@@ -43,8 +43,7 @@ namespace Composer\Autoload;
class ClassLoader
{
// PSR-4
- private $firstCharsPsr4 = array();
- private $prefixLengthsPsr4 = array(); // For BC with legacy static maps
+ private $prefixLengthsPsr4 = array();
private $prefixDirsPsr4 = array();
private $fallbackDirsPsr4 = array();
@@ -171,10 +170,11 @@ class ClassLoader
}
} elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
- if ('\\' !== substr($prefix, -1)) {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
- $this->firstCharsPsr4[$prefix[0]] = true;
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
} elseif ($prepend) {
// Prepend directories for an already registered namespace.
@@ -221,10 +221,11 @@ class ClassLoader
if (!$prefix) {
$this->fallbackDirsPsr4 = (array) $paths;
} else {
- if ('\\' !== substr($prefix, -1)) {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
- $this->firstCharsPsr4[$prefix[0]] = true;
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
}
@@ -372,7 +373,7 @@ class ClassLoader
$logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
$first = $class[0];
- if (isset($this->firstCharsPsr4[$first]) || isset($this->prefixLengthsPsr4[$first])) {
+ if (isset($this->prefixLengthsPsr4[$first])) {
$subPath = $class;
while (false !== $lastPos = strrpos($subPath, '\\')) {
$subPath = substr($subPath, 0, $lastPos);
diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php
index 3c3031de8..e7e1de1d0 100644
--- a/vendor/composer/autoload_classmap.php
+++ b/vendor/composer/autoload_classmap.php
@@ -270,7 +270,6 @@ return array(
'HTMLPurifier_VarParser_Flexible' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php',
'HTMLPurifier_VarParser_Native' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php',
'HTMLPurifier_Zipper' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php',
- 'Hubzilla\\Import\\Import' => $baseDir . '/include/Import/Importer.php',
'ID3Parser\\ID3Parser' => $vendorDir . '/lukasreschke/id3parser/src/ID3Parser.php',
'ID3Parser\\getID3\\Tags\\getid3_id3v1' => $vendorDir . '/lukasreschke/id3parser/src/getID3/Tags/getid3_id3v1.php',
'ID3Parser\\getID3\\Tags\\getid3_id3v2' => $vendorDir . '/lukasreschke/id3parser/src/getID3/Tags/getid3_id3v2.php',
@@ -788,6 +787,8 @@ return array(
'Zotlabs\\Daemon\\Thumbnail' => $baseDir . '/Zotlabs/Daemon/Thumbnail.php',
'Zotlabs\\Extend\\Hook' => $baseDir . '/Zotlabs/Extend/Hook.php',
'Zotlabs\\Identity\\BasicId\\BasicId' => $baseDir . '/Zotlabs/Identity/BasicId.php',
+ 'Zotlabs\\Identity\\OAuth2Server' => $baseDir . '/Zotlabs/Identity/OAuth2Server.php',
+ 'Zotlabs\\Identity\\OAuth2Storage' => $baseDir . '/Zotlabs/Identity/OAuth2Storage.php',
'Zotlabs\\Identity\\ProfilePhoto\\ProfilePhoto' => $baseDir . '/Zotlabs/Identity/ProfilePhoto.php',
'Zotlabs\\Lib\\AConfig' => $baseDir . '/Zotlabs/Lib/AConfig.php',
'Zotlabs\\Lib\\AbConfig' => $baseDir . '/Zotlabs/Lib/AbConfig.php',
@@ -798,6 +799,7 @@ return array(
'Zotlabs\\Lib\\Chatroom' => $baseDir . '/Zotlabs/Lib/Chatroom.php',
'Zotlabs\\Lib\\Config' => $baseDir . '/Zotlabs/Lib/Config.php',
'Zotlabs\\Lib\\DB_Upgrade' => $baseDir . '/Zotlabs/Lib/DB_Upgrade.php',
+ 'Zotlabs\\Lib\\DReport' => $baseDir . '/Zotlabs/Lib/DReport.php',
'Zotlabs\\Lib\\Enotify' => $baseDir . '/Zotlabs/Lib/Enotify.php',
'Zotlabs\\Lib\\ExtendedZip' => $baseDir . '/Zotlabs/Lib/ExtendedZip.php',
'Zotlabs\\Lib\\IConfig' => $baseDir . '/Zotlabs/Lib/IConfig.php',
@@ -810,15 +812,15 @@ return array(
'Zotlabs\\Lib\\PConfig' => $baseDir . '/Zotlabs/Lib/PConfig.php',
'Zotlabs\\Lib\\Permcat' => $baseDir . '/Zotlabs/Lib/Permcat.php',
'Zotlabs\\Lib\\PermissionDescription' => $baseDir . '/Zotlabs/Lib/PermissionDescription.php',
- 'Zotlabs\\Lib\\ProtoDriver' => $baseDir . '/Zotlabs/Lib/ProtoDriver.php',
'Zotlabs\\Lib\\SConfig' => $baseDir . '/Zotlabs/Lib/SConfig.php',
+ 'Zotlabs\\Lib\\Share' => $baseDir . '/Zotlabs/Lib/Share.php',
'Zotlabs\\Lib\\SuperCurl' => $baseDir . '/Zotlabs/Lib/SuperCurl.php',
'Zotlabs\\Lib\\System' => $baseDir . '/Zotlabs/Lib/System.php',
'Zotlabs\\Lib\\Techlevels' => $baseDir . '/Zotlabs/Lib/Techlevels.php',
'Zotlabs\\Lib\\ThreadItem' => $baseDir . '/Zotlabs/Lib/ThreadItem.php',
'Zotlabs\\Lib\\ThreadStream' => $baseDir . '/Zotlabs/Lib/ThreadStream.php',
+ 'Zotlabs\\Lib\\Verify' => $baseDir . '/Zotlabs/Lib/Verify.php',
'Zotlabs\\Lib\\XConfig' => $baseDir . '/Zotlabs/Lib/XConfig.php',
- 'Zotlabs\\Lib\\ZotDriver' => $baseDir . '/Zotlabs/Lib/ZotDriver.php',
'Zotlabs\\Module\\Achievements' => $baseDir . '/Zotlabs/Module/Achievements.php',
'Zotlabs\\Module\\Acl' => $baseDir . '/Zotlabs/Module/Acl.php',
'Zotlabs\\Module\\Admin' => $baseDir . '/Zotlabs/Module/Admin.php',
@@ -874,6 +876,8 @@ return array(
'Zotlabs\\Module\\Editlayout' => $baseDir . '/Zotlabs/Module/Editlayout.php',
'Zotlabs\\Module\\Editpost' => $baseDir . '/Zotlabs/Module/Editpost.php',
'Zotlabs\\Module\\Editwebpage' => $baseDir . '/Zotlabs/Module/Editwebpage.php',
+ 'Zotlabs\\Module\\Email_resend' => $baseDir . '/Zotlabs/Module/Email_resend.php',
+ 'Zotlabs\\Module\\Email_validation' => $baseDir . '/Zotlabs/Module/Email_validation.php',
'Zotlabs\\Module\\Embedphotos' => $baseDir . '/Zotlabs/Module/Embedphotos.php',
'Zotlabs\\Module\\Events' => $baseDir . '/Zotlabs/Module/Events.php',
'Zotlabs\\Module\\Fbrowser' => $baseDir . '/Zotlabs/Module/Fbrowser.php',
@@ -885,7 +889,9 @@ return array(
'Zotlabs\\Module\\Filestorage' => $baseDir . '/Zotlabs/Module/Filestorage.php',
'Zotlabs\\Module\\Follow' => $baseDir . '/Zotlabs/Module/Follow.php',
'Zotlabs\\Module\\Getfile' => $baseDir . '/Zotlabs/Module/Getfile.php',
+ 'Zotlabs\\Module\\Go' => $baseDir . '/Zotlabs/Module/Go.php',
'Zotlabs\\Module\\Group' => $baseDir . '/Zotlabs/Module/Group.php',
+ 'Zotlabs\\Module\\Hashtags' => $baseDir . '/Zotlabs/Module/Hashtags.php',
'Zotlabs\\Module\\Hcard' => $baseDir . '/Zotlabs/Module/Hcard.php',
'Zotlabs\\Module\\Help' => $baseDir . '/Zotlabs/Module/Help.php',
'Zotlabs\\Module\\Home' => $baseDir . '/Zotlabs/Module/Home.php',
@@ -919,6 +925,8 @@ return array(
'Zotlabs\\Module\\Notes' => $baseDir . '/Zotlabs/Module/Notes.php',
'Zotlabs\\Module\\Notifications' => $baseDir . '/Zotlabs/Module/Notifications.php',
'Zotlabs\\Module\\Notify' => $baseDir . '/Zotlabs/Module/Notify.php',
+ 'Zotlabs\\Module\\OAuth2TestVehicle' => $baseDir . '/Zotlabs/Module/Oauth2testvehicle.php',
+ 'Zotlabs\\Module\\Ochannel' => $baseDir . '/Zotlabs/Module/Ochannel.php',
'Zotlabs\\Module\\Oembed' => $baseDir . '/Zotlabs/Module/Oembed.php',
'Zotlabs\\Module\\Oep' => $baseDir . '/Zotlabs/Module/Oep.php',
'Zotlabs\\Module\\Oexchange' => $baseDir . '/Zotlabs/Module/Oexchange.php',
@@ -968,6 +976,7 @@ return array(
'Zotlabs\\Module\\Settings\\Featured' => $baseDir . '/Zotlabs/Module/Settings/Featured.php',
'Zotlabs\\Module\\Settings\\Features' => $baseDir . '/Zotlabs/Module/Settings/Features.php',
'Zotlabs\\Module\\Settings\\Oauth' => $baseDir . '/Zotlabs/Module/Settings/Oauth.php',
+ 'Zotlabs\\Module\\Settings\\Oauth2' => $baseDir . '/Zotlabs/Module/Settings/Oauth2.php',
'Zotlabs\\Module\\Settings\\Permcats' => $baseDir . '/Zotlabs/Module/Settings/Permcats.php',
'Zotlabs\\Module\\Settings\\Tokens' => $baseDir . '/Zotlabs/Module/Settings/Tokens.php',
'Zotlabs\\Module\\Setup' => $baseDir . '/Zotlabs/Module/Setup.php',
@@ -1021,12 +1030,226 @@ return array(
'Zotlabs\\Storage\\Directory' => $baseDir . '/Zotlabs/Storage/Directory.php',
'Zotlabs\\Storage\\File' => $baseDir . '/Zotlabs/Storage/File.php',
'Zotlabs\\Storage\\GitRepo' => $baseDir . '/Zotlabs/Storage/GitRepo.php',
+ 'Zotlabs\\Storage\\ZotOauth2Pdo' => $baseDir . '/Zotlabs/Storage/ZotOauth2Pdo.php',
'Zotlabs\\Text\\Tagadelic' => $baseDir . '/Zotlabs/Text/Tagadelic.php',
'Zotlabs\\Thumbs\\Epubthumb' => $baseDir . '/Zotlabs/Thumbs/Epubthumb.php',
'Zotlabs\\Thumbs\\Mp3audio' => $baseDir . '/Zotlabs/Thumbs/Mp3audio.php',
'Zotlabs\\Thumbs\\Pdf' => $baseDir . '/Zotlabs/Thumbs/Pdf.php',
'Zotlabs\\Thumbs\\Text' => $baseDir . '/Zotlabs/Thumbs/Text.php',
'Zotlabs\\Thumbs\\Video' => $baseDir . '/Zotlabs/Thumbs/Video.php',
+ 'Zotlabs\\Update\\_1000' => $baseDir . '/Zotlabs/Update/_1000.php',
+ 'Zotlabs\\Update\\_1001' => $baseDir . '/Zotlabs/Update/_1001.php',
+ 'Zotlabs\\Update\\_1002' => $baseDir . '/Zotlabs/Update/_1002.php',
+ 'Zotlabs\\Update\\_1003' => $baseDir . '/Zotlabs/Update/_1003.php',
+ 'Zotlabs\\Update\\_1004' => $baseDir . '/Zotlabs/Update/_1004.php',
+ 'Zotlabs\\Update\\_1005' => $baseDir . '/Zotlabs/Update/_1005.php',
+ 'Zotlabs\\Update\\_1006' => $baseDir . '/Zotlabs/Update/_1006.php',
+ 'Zotlabs\\Update\\_1007' => $baseDir . '/Zotlabs/Update/_1007.php',
+ 'Zotlabs\\Update\\_1008' => $baseDir . '/Zotlabs/Update/_1008.php',
+ 'Zotlabs\\Update\\_1009' => $baseDir . '/Zotlabs/Update/_1009.php',
+ 'Zotlabs\\Update\\_1010' => $baseDir . '/Zotlabs/Update/_1010.php',
+ 'Zotlabs\\Update\\_1011' => $baseDir . '/Zotlabs/Update/_1011.php',
+ 'Zotlabs\\Update\\_1012' => $baseDir . '/Zotlabs/Update/_1012.php',
+ 'Zotlabs\\Update\\_1013' => $baseDir . '/Zotlabs/Update/_1013.php',
+ 'Zotlabs\\Update\\_1014' => $baseDir . '/Zotlabs/Update/_1014.php',
+ 'Zotlabs\\Update\\_1015' => $baseDir . '/Zotlabs/Update/_1015.php',
+ 'Zotlabs\\Update\\_1016' => $baseDir . '/Zotlabs/Update/_1016.php',
+ 'Zotlabs\\Update\\_1017' => $baseDir . '/Zotlabs/Update/_1017.php',
+ 'Zotlabs\\Update\\_1018' => $baseDir . '/Zotlabs/Update/_1018.php',
+ 'Zotlabs\\Update\\_1019' => $baseDir . '/Zotlabs/Update/_1019.php',
+ 'Zotlabs\\Update\\_1020' => $baseDir . '/Zotlabs/Update/_1020.php',
+ 'Zotlabs\\Update\\_1021' => $baseDir . '/Zotlabs/Update/_1021.php',
+ 'Zotlabs\\Update\\_1022' => $baseDir . '/Zotlabs/Update/_1022.php',
+ 'Zotlabs\\Update\\_1023' => $baseDir . '/Zotlabs/Update/_1023.php',
+ 'Zotlabs\\Update\\_1024' => $baseDir . '/Zotlabs/Update/_1024.php',
+ 'Zotlabs\\Update\\_1025' => $baseDir . '/Zotlabs/Update/_1025.php',
+ 'Zotlabs\\Update\\_1026' => $baseDir . '/Zotlabs/Update/_1026.php',
+ 'Zotlabs\\Update\\_1027' => $baseDir . '/Zotlabs/Update/_1027.php',
+ 'Zotlabs\\Update\\_1028' => $baseDir . '/Zotlabs/Update/_1028.php',
+ 'Zotlabs\\Update\\_1029' => $baseDir . '/Zotlabs/Update/_1029.php',
+ 'Zotlabs\\Update\\_1030' => $baseDir . '/Zotlabs/Update/_1030.php',
+ 'Zotlabs\\Update\\_1031' => $baseDir . '/Zotlabs/Update/_1031.php',
+ 'Zotlabs\\Update\\_1032' => $baseDir . '/Zotlabs/Update/_1032.php',
+ 'Zotlabs\\Update\\_1033' => $baseDir . '/Zotlabs/Update/_1033.php',
+ 'Zotlabs\\Update\\_1034' => $baseDir . '/Zotlabs/Update/_1034.php',
+ 'Zotlabs\\Update\\_1035' => $baseDir . '/Zotlabs/Update/_1035.php',
+ 'Zotlabs\\Update\\_1036' => $baseDir . '/Zotlabs/Update/_1036.php',
+ 'Zotlabs\\Update\\_1037' => $baseDir . '/Zotlabs/Update/_1037.php',
+ 'Zotlabs\\Update\\_1038' => $baseDir . '/Zotlabs/Update/_1038.php',
+ 'Zotlabs\\Update\\_1039' => $baseDir . '/Zotlabs/Update/_1039.php',
+ 'Zotlabs\\Update\\_1040' => $baseDir . '/Zotlabs/Update/_1040.php',
+ 'Zotlabs\\Update\\_1041' => $baseDir . '/Zotlabs/Update/_1041.php',
+ 'Zotlabs\\Update\\_1042' => $baseDir . '/Zotlabs/Update/_1042.php',
+ 'Zotlabs\\Update\\_1043' => $baseDir . '/Zotlabs/Update/_1043.php',
+ 'Zotlabs\\Update\\_1044' => $baseDir . '/Zotlabs/Update/_1044.php',
+ 'Zotlabs\\Update\\_1045' => $baseDir . '/Zotlabs/Update/_1045.php',
+ 'Zotlabs\\Update\\_1046' => $baseDir . '/Zotlabs/Update/_1046.php',
+ 'Zotlabs\\Update\\_1047' => $baseDir . '/Zotlabs/Update/_1047.php',
+ 'Zotlabs\\Update\\_1048' => $baseDir . '/Zotlabs/Update/_1048.php',
+ 'Zotlabs\\Update\\_1049' => $baseDir . '/Zotlabs/Update/_1049.php',
+ 'Zotlabs\\Update\\_1050' => $baseDir . '/Zotlabs/Update/_1050.php',
+ 'Zotlabs\\Update\\_1051' => $baseDir . '/Zotlabs/Update/_1051.php',
+ 'Zotlabs\\Update\\_1052' => $baseDir . '/Zotlabs/Update/_1052.php',
+ 'Zotlabs\\Update\\_1053' => $baseDir . '/Zotlabs/Update/_1053.php',
+ 'Zotlabs\\Update\\_1054' => $baseDir . '/Zotlabs/Update/_1054.php',
+ 'Zotlabs\\Update\\_1055' => $baseDir . '/Zotlabs/Update/_1055.php',
+ 'Zotlabs\\Update\\_1056' => $baseDir . '/Zotlabs/Update/_1056.php',
+ 'Zotlabs\\Update\\_1057' => $baseDir . '/Zotlabs/Update/_1057.php',
+ 'Zotlabs\\Update\\_1058' => $baseDir . '/Zotlabs/Update/_1058.php',
+ 'Zotlabs\\Update\\_1059' => $baseDir . '/Zotlabs/Update/_1059.php',
+ 'Zotlabs\\Update\\_1060' => $baseDir . '/Zotlabs/Update/_1060.php',
+ 'Zotlabs\\Update\\_1061' => $baseDir . '/Zotlabs/Update/_1061.php',
+ 'Zotlabs\\Update\\_1062' => $baseDir . '/Zotlabs/Update/_1062.php',
+ 'Zotlabs\\Update\\_1063' => $baseDir . '/Zotlabs/Update/_1063.php',
+ 'Zotlabs\\Update\\_1064' => $baseDir . '/Zotlabs/Update/_1064.php',
+ 'Zotlabs\\Update\\_1065' => $baseDir . '/Zotlabs/Update/_1065.php',
+ 'Zotlabs\\Update\\_1066' => $baseDir . '/Zotlabs/Update/_1066.php',
+ 'Zotlabs\\Update\\_1067' => $baseDir . '/Zotlabs/Update/_1067.php',
+ 'Zotlabs\\Update\\_1068' => $baseDir . '/Zotlabs/Update/_1068.php',
+ 'Zotlabs\\Update\\_1069' => $baseDir . '/Zotlabs/Update/_1069.php',
+ 'Zotlabs\\Update\\_1070' => $baseDir . '/Zotlabs/Update/_1070.php',
+ 'Zotlabs\\Update\\_1071' => $baseDir . '/Zotlabs/Update/_1071.php',
+ 'Zotlabs\\Update\\_1072' => $baseDir . '/Zotlabs/Update/_1072.php',
+ 'Zotlabs\\Update\\_1073' => $baseDir . '/Zotlabs/Update/_1073.php',
+ 'Zotlabs\\Update\\_1074' => $baseDir . '/Zotlabs/Update/_1074.php',
+ 'Zotlabs\\Update\\_1075' => $baseDir . '/Zotlabs/Update/_1075.php',
+ 'Zotlabs\\Update\\_1076' => $baseDir . '/Zotlabs/Update/_1076.php',
+ 'Zotlabs\\Update\\_1077' => $baseDir . '/Zotlabs/Update/_1077.php',
+ 'Zotlabs\\Update\\_1078' => $baseDir . '/Zotlabs/Update/_1078.php',
+ 'Zotlabs\\Update\\_1079' => $baseDir . '/Zotlabs/Update/_1079.php',
+ 'Zotlabs\\Update\\_1080' => $baseDir . '/Zotlabs/Update/_1080.php',
+ 'Zotlabs\\Update\\_1081' => $baseDir . '/Zotlabs/Update/_1081.php',
+ 'Zotlabs\\Update\\_1082' => $baseDir . '/Zotlabs/Update/_1082.php',
+ 'Zotlabs\\Update\\_1083' => $baseDir . '/Zotlabs/Update/_1083.php',
+ 'Zotlabs\\Update\\_1084' => $baseDir . '/Zotlabs/Update/_1084.php',
+ 'Zotlabs\\Update\\_1085' => $baseDir . '/Zotlabs/Update/_1085.php',
+ 'Zotlabs\\Update\\_1086' => $baseDir . '/Zotlabs/Update/_1086.php',
+ 'Zotlabs\\Update\\_1087' => $baseDir . '/Zotlabs/Update/_1087.php',
+ 'Zotlabs\\Update\\_1088' => $baseDir . '/Zotlabs/Update/_1088.php',
+ 'Zotlabs\\Update\\_1089' => $baseDir . '/Zotlabs/Update/_1089.php',
+ 'Zotlabs\\Update\\_1090' => $baseDir . '/Zotlabs/Update/_1090.php',
+ 'Zotlabs\\Update\\_1091' => $baseDir . '/Zotlabs/Update/_1091.php',
+ 'Zotlabs\\Update\\_1092' => $baseDir . '/Zotlabs/Update/_1092.php',
+ 'Zotlabs\\Update\\_1093' => $baseDir . '/Zotlabs/Update/_1093.php',
+ 'Zotlabs\\Update\\_1094' => $baseDir . '/Zotlabs/Update/_1094.php',
+ 'Zotlabs\\Update\\_1095' => $baseDir . '/Zotlabs/Update/_1095.php',
+ 'Zotlabs\\Update\\_1096' => $baseDir . '/Zotlabs/Update/_1096.php',
+ 'Zotlabs\\Update\\_1097' => $baseDir . '/Zotlabs/Update/_1097.php',
+ 'Zotlabs\\Update\\_1098' => $baseDir . '/Zotlabs/Update/_1098.php',
+ 'Zotlabs\\Update\\_1099' => $baseDir . '/Zotlabs/Update/_1099.php',
+ 'Zotlabs\\Update\\_1100' => $baseDir . '/Zotlabs/Update/_1100.php',
+ 'Zotlabs\\Update\\_1101' => $baseDir . '/Zotlabs/Update/_1101.php',
+ 'Zotlabs\\Update\\_1102' => $baseDir . '/Zotlabs/Update/_1102.php',
+ 'Zotlabs\\Update\\_1103' => $baseDir . '/Zotlabs/Update/_1103.php',
+ 'Zotlabs\\Update\\_1104' => $baseDir . '/Zotlabs/Update/_1104.php',
+ 'Zotlabs\\Update\\_1105' => $baseDir . '/Zotlabs/Update/_1105.php',
+ 'Zotlabs\\Update\\_1106' => $baseDir . '/Zotlabs/Update/_1106.php',
+ 'Zotlabs\\Update\\_1107' => $baseDir . '/Zotlabs/Update/_1107.php',
+ 'Zotlabs\\Update\\_1108' => $baseDir . '/Zotlabs/Update/_1108.php',
+ 'Zotlabs\\Update\\_1109' => $baseDir . '/Zotlabs/Update/_1109.php',
+ 'Zotlabs\\Update\\_1110' => $baseDir . '/Zotlabs/Update/_1110.php',
+ 'Zotlabs\\Update\\_1111' => $baseDir . '/Zotlabs/Update/_1111.php',
+ 'Zotlabs\\Update\\_1112' => $baseDir . '/Zotlabs/Update/_1112.php',
+ 'Zotlabs\\Update\\_1113' => $baseDir . '/Zotlabs/Update/_1113.php',
+ 'Zotlabs\\Update\\_1114' => $baseDir . '/Zotlabs/Update/_1114.php',
+ 'Zotlabs\\Update\\_1115' => $baseDir . '/Zotlabs/Update/_1115.php',
+ 'Zotlabs\\Update\\_1116' => $baseDir . '/Zotlabs/Update/_1116.php',
+ 'Zotlabs\\Update\\_1117' => $baseDir . '/Zotlabs/Update/_1117.php',
+ 'Zotlabs\\Update\\_1118' => $baseDir . '/Zotlabs/Update/_1118.php',
+ 'Zotlabs\\Update\\_1119' => $baseDir . '/Zotlabs/Update/_1119.php',
+ 'Zotlabs\\Update\\_1120' => $baseDir . '/Zotlabs/Update/_1120.php',
+ 'Zotlabs\\Update\\_1121' => $baseDir . '/Zotlabs/Update/_1121.php',
+ 'Zotlabs\\Update\\_1122' => $baseDir . '/Zotlabs/Update/_1122.php',
+ 'Zotlabs\\Update\\_1123' => $baseDir . '/Zotlabs/Update/_1123.php',
+ 'Zotlabs\\Update\\_1124' => $baseDir . '/Zotlabs/Update/_1124.php',
+ 'Zotlabs\\Update\\_1125' => $baseDir . '/Zotlabs/Update/_1125.php',
+ 'Zotlabs\\Update\\_1126' => $baseDir . '/Zotlabs/Update/_1126.php',
+ 'Zotlabs\\Update\\_1127' => $baseDir . '/Zotlabs/Update/_1127.php',
+ 'Zotlabs\\Update\\_1128' => $baseDir . '/Zotlabs/Update/_1128.php',
+ 'Zotlabs\\Update\\_1129' => $baseDir . '/Zotlabs/Update/_1129.php',
+ 'Zotlabs\\Update\\_1130' => $baseDir . '/Zotlabs/Update/_1130.php',
+ 'Zotlabs\\Update\\_1131' => $baseDir . '/Zotlabs/Update/_1131.php',
+ 'Zotlabs\\Update\\_1132' => $baseDir . '/Zotlabs/Update/_1132.php',
+ 'Zotlabs\\Update\\_1133' => $baseDir . '/Zotlabs/Update/_1133.php',
+ 'Zotlabs\\Update\\_1134' => $baseDir . '/Zotlabs/Update/_1134.php',
+ 'Zotlabs\\Update\\_1135' => $baseDir . '/Zotlabs/Update/_1135.php',
+ 'Zotlabs\\Update\\_1136' => $baseDir . '/Zotlabs/Update/_1136.php',
+ 'Zotlabs\\Update\\_1137' => $baseDir . '/Zotlabs/Update/_1137.php',
+ 'Zotlabs\\Update\\_1138' => $baseDir . '/Zotlabs/Update/_1138.php',
+ 'Zotlabs\\Update\\_1139' => $baseDir . '/Zotlabs/Update/_1139.php',
+ 'Zotlabs\\Update\\_1140' => $baseDir . '/Zotlabs/Update/_1140.php',
+ 'Zotlabs\\Update\\_1141' => $baseDir . '/Zotlabs/Update/_1141.php',
+ 'Zotlabs\\Update\\_1142' => $baseDir . '/Zotlabs/Update/_1142.php',
+ 'Zotlabs\\Update\\_1143' => $baseDir . '/Zotlabs/Update/_1143.php',
+ 'Zotlabs\\Update\\_1144' => $baseDir . '/Zotlabs/Update/_1144.php',
+ 'Zotlabs\\Update\\_1145' => $baseDir . '/Zotlabs/Update/_1145.php',
+ 'Zotlabs\\Update\\_1146' => $baseDir . '/Zotlabs/Update/_1146.php',
+ 'Zotlabs\\Update\\_1147' => $baseDir . '/Zotlabs/Update/_1147.php',
+ 'Zotlabs\\Update\\_1148' => $baseDir . '/Zotlabs/Update/_1148.php',
+ 'Zotlabs\\Update\\_1149' => $baseDir . '/Zotlabs/Update/_1149.php',
+ 'Zotlabs\\Update\\_1150' => $baseDir . '/Zotlabs/Update/_1150.php',
+ 'Zotlabs\\Update\\_1151' => $baseDir . '/Zotlabs/Update/_1151.php',
+ 'Zotlabs\\Update\\_1152' => $baseDir . '/Zotlabs/Update/_1152.php',
+ 'Zotlabs\\Update\\_1153' => $baseDir . '/Zotlabs/Update/_1153.php',
+ 'Zotlabs\\Update\\_1154' => $baseDir . '/Zotlabs/Update/_1154.php',
+ 'Zotlabs\\Update\\_1155' => $baseDir . '/Zotlabs/Update/_1155.php',
+ 'Zotlabs\\Update\\_1156' => $baseDir . '/Zotlabs/Update/_1156.php',
+ 'Zotlabs\\Update\\_1157' => $baseDir . '/Zotlabs/Update/_1157.php',
+ 'Zotlabs\\Update\\_1158' => $baseDir . '/Zotlabs/Update/_1158.php',
+ 'Zotlabs\\Update\\_1159' => $baseDir . '/Zotlabs/Update/_1159.php',
+ 'Zotlabs\\Update\\_1160' => $baseDir . '/Zotlabs/Update/_1160.php',
+ 'Zotlabs\\Update\\_1161' => $baseDir . '/Zotlabs/Update/_1161.php',
+ 'Zotlabs\\Update\\_1162' => $baseDir . '/Zotlabs/Update/_1162.php',
+ 'Zotlabs\\Update\\_1163' => $baseDir . '/Zotlabs/Update/_1163.php',
+ 'Zotlabs\\Update\\_1164' => $baseDir . '/Zotlabs/Update/_1164.php',
+ 'Zotlabs\\Update\\_1165' => $baseDir . '/Zotlabs/Update/_1165.php',
+ 'Zotlabs\\Update\\_1166' => $baseDir . '/Zotlabs/Update/_1166.php',
+ 'Zotlabs\\Update\\_1167' => $baseDir . '/Zotlabs/Update/_1167.php',
+ 'Zotlabs\\Update\\_1168' => $baseDir . '/Zotlabs/Update/_1168.php',
+ 'Zotlabs\\Update\\_1169' => $baseDir . '/Zotlabs/Update/_1169.php',
+ 'Zotlabs\\Update\\_1170' => $baseDir . '/Zotlabs/Update/_1170.php',
+ 'Zotlabs\\Update\\_1171' => $baseDir . '/Zotlabs/Update/_1171.php',
+ 'Zotlabs\\Update\\_1172' => $baseDir . '/Zotlabs/Update/_1172.php',
+ 'Zotlabs\\Update\\_1173' => $baseDir . '/Zotlabs/Update/_1173.php',
+ 'Zotlabs\\Update\\_1174' => $baseDir . '/Zotlabs/Update/_1174.php',
+ 'Zotlabs\\Update\\_1175' => $baseDir . '/Zotlabs/Update/_1175.php',
+ 'Zotlabs\\Update\\_1176' => $baseDir . '/Zotlabs/Update/_1176.php',
+ 'Zotlabs\\Update\\_1177' => $baseDir . '/Zotlabs/Update/_1177.php',
+ 'Zotlabs\\Update\\_1178' => $baseDir . '/Zotlabs/Update/_1178.php',
+ 'Zotlabs\\Update\\_1179' => $baseDir . '/Zotlabs/Update/_1179.php',
+ 'Zotlabs\\Update\\_1180' => $baseDir . '/Zotlabs/Update/_1180.php',
+ 'Zotlabs\\Update\\_1181' => $baseDir . '/Zotlabs/Update/_1181.php',
+ 'Zotlabs\\Update\\_1182' => $baseDir . '/Zotlabs/Update/_1182.php',
+ 'Zotlabs\\Update\\_1183' => $baseDir . '/Zotlabs/Update/_1183.php',
+ 'Zotlabs\\Update\\_1184' => $baseDir . '/Zotlabs/Update/_1184.php',
+ 'Zotlabs\\Update\\_1185' => $baseDir . '/Zotlabs/Update/_1185.php',
+ 'Zotlabs\\Update\\_1186' => $baseDir . '/Zotlabs/Update/_1186.php',
+ 'Zotlabs\\Update\\_1187' => $baseDir . '/Zotlabs/Update/_1187.php',
+ 'Zotlabs\\Update\\_1188' => $baseDir . '/Zotlabs/Update/_1188.php',
+ 'Zotlabs\\Update\\_1189' => $baseDir . '/Zotlabs/Update/_1189.php',
+ 'Zotlabs\\Update\\_1190' => $baseDir . '/Zotlabs/Update/_1190.php',
+ 'Zotlabs\\Update\\_1191' => $baseDir . '/Zotlabs/Update/_1191.php',
+ 'Zotlabs\\Update\\_1192' => $baseDir . '/Zotlabs/Update/_1192.php',
+ 'Zotlabs\\Update\\_1193' => $baseDir . '/Zotlabs/Update/_1193.php',
+ 'Zotlabs\\Update\\_1194' => $baseDir . '/Zotlabs/Update/_1194.php',
+ 'Zotlabs\\Update\\_1195' => $baseDir . '/Zotlabs/Update/_1195.php',
+ 'Zotlabs\\Update\\_1196' => $baseDir . '/Zotlabs/Update/_1196.php',
+ 'Zotlabs\\Update\\_1197' => $baseDir . '/Zotlabs/Update/_1197.php',
+ 'Zotlabs\\Update\\_1198' => $baseDir . '/Zotlabs/Update/_1198.php',
+ 'Zotlabs\\Update\\_1199' => $baseDir . '/Zotlabs/Update/_1199.php',
+ 'Zotlabs\\Update\\_1200' => $baseDir . '/Zotlabs/Update/_1200.php',
+ 'Zotlabs\\Update\\_1201' => $baseDir . '/Zotlabs/Update/_1201.php',
+ 'Zotlabs\\Update\\_1202' => $baseDir . '/Zotlabs/Update/_1202.php',
+ 'Zotlabs\\Update\\_1203' => $baseDir . '/Zotlabs/Update/_1203.php',
+ 'Zotlabs\\Update\\_1204' => $baseDir . '/Zotlabs/Update/_1204.php',
+ 'Zotlabs\\Update\\_1205' => $baseDir . '/Zotlabs/Update/_1205.php',
+ 'Zotlabs\\Update\\_1206' => $baseDir . '/Zotlabs/Update/_1206.php',
+ 'Zotlabs\\Update\\_1207' => $baseDir . '/Zotlabs/Update/_1207.php',
+ 'Zotlabs\\Update\\_1208' => $baseDir . '/Zotlabs/Update/_1208.php',
+ 'Zotlabs\\Update\\_1209' => $baseDir . '/Zotlabs/Update/_1209.php',
+ 'Zotlabs\\Update\\_1210' => $baseDir . '/Zotlabs/Update/_1210.php',
+ 'Zotlabs\\Update\\_1211' => $baseDir . '/Zotlabs/Update/_1211.php',
+ 'Zotlabs\\Update\\_1212' => $baseDir . '/Zotlabs/Update/_1212.php',
'Zotlabs\\Web\\CheckJS' => $baseDir . '/Zotlabs/Web/CheckJS.php',
'Zotlabs\\Web\\Controller' => $baseDir . '/Zotlabs/Web/Controller.php',
'Zotlabs\\Web\\HTTPHeaders' => $baseDir . '/Zotlabs/Web/HTTPHeaders.php',
@@ -1045,6 +1268,7 @@ return array(
'Zotlabs\\Widget\\Appcloud' => $baseDir . '/Zotlabs/Widget/Appcloud.php',
'Zotlabs\\Widget\\Archive' => $baseDir . '/Zotlabs/Widget/Archive.php',
'Zotlabs\\Widget\\Bookmarkedchats' => $baseDir . '/Zotlabs/Widget/Bookmarkedchats.php',
+ 'Zotlabs\\Widget\\Catcloud' => $baseDir . '/Zotlabs/Widget/Catcloud.php',
'Zotlabs\\Widget\\Catcloud_wall' => $baseDir . '/Zotlabs/Widget/Catcloud_wall.php',
'Zotlabs\\Widget\\Categories' => $baseDir . '/Zotlabs/Widget/Categories.php',
'Zotlabs\\Widget\\Cdav' => $baseDir . '/Zotlabs/Widget/Cdav.php',
@@ -1069,6 +1293,7 @@ return array(
'Zotlabs\\Widget\\Item' => $baseDir . '/Zotlabs/Widget/Item.php',
'Zotlabs\\Widget\\Mailmenu' => $baseDir . '/Zotlabs/Widget/Mailmenu.php',
'Zotlabs\\Widget\\Menu_preview' => $baseDir . '/Zotlabs/Widget/Menu_preview.php',
+ 'Zotlabs\\Widget\\Newmember' => $baseDir . '/Zotlabs/Widget/Newmember.php',
'Zotlabs\\Widget\\Notes' => $baseDir . '/Zotlabs/Widget/Notes.php',
'Zotlabs\\Widget\\Notifications' => $baseDir . '/Zotlabs/Widget/Notifications.php',
'Zotlabs\\Widget\\Photo' => $baseDir . '/Zotlabs/Widget/Photo.php',
@@ -1077,6 +1302,7 @@ return array(
'Zotlabs\\Widget\\Portfolio' => $baseDir . '/Zotlabs/Widget/Portfolio.php',
'Zotlabs\\Widget\\Profile' => $baseDir . '/Zotlabs/Widget/Profile.php',
'Zotlabs\\Widget\\Pubsites' => $baseDir . '/Zotlabs/Widget/Pubsites.php',
+ 'Zotlabs\\Widget\\Pubtagcloud' => $baseDir . '/Zotlabs/Widget/Pubtagcloud.php',
'Zotlabs\\Widget\\Random_block' => $baseDir . '/Zotlabs/Widget/Random_block.php',
'Zotlabs\\Widget\\Rating' => $baseDir . '/Zotlabs/Widget/Rating.php',
'Zotlabs\\Widget\\Savedsearch' => $baseDir . '/Zotlabs/Widget/Savedsearch.php',
@@ -1095,10 +1321,8 @@ return array(
'Zotlabs\\Widget\\Wiki_pages' => $baseDir . '/Zotlabs/Widget/Wiki_pages.php',
'Zotlabs\\Widget\\Zcard' => $baseDir . '/Zotlabs/Widget/Zcard.php',
'Zotlabs\\Zot\\Auth' => $baseDir . '/Zotlabs/Zot/Auth.php',
- 'Zotlabs\\Zot\\DReport' => $baseDir . '/Zotlabs/Zot/DReport.php',
'Zotlabs\\Zot\\Finger' => $baseDir . '/Zotlabs/Zot/Finger.php',
'Zotlabs\\Zot\\IHandler' => $baseDir . '/Zotlabs/Zot/IHandler.php',
'Zotlabs\\Zot\\Receiver' => $baseDir . '/Zotlabs/Zot/Receiver.php',
- 'Zotlabs\\Zot\\Verify' => $baseDir . '/Zotlabs/Zot/Verify.php',
'Zotlabs\\Zot\\ZotHandler' => $baseDir . '/Zotlabs/Zot/ZotHandler.php',
);
diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php
index 7d8d3963a..8a46cfcb7 100644
--- a/vendor/composer/autoload_namespaces.php
+++ b/vendor/composer/autoload_namespaces.php
@@ -9,6 +9,5 @@ return array(
'Text' => array($vendorDir . '/pear/text_languagedetect'),
'SimplePie' => array($vendorDir . '/simplepie/simplepie/library'),
'OAuth2' => array($vendorDir . '/bshaffer/oauth2-server-php/src'),
- 'Michelf' => array($vendorDir . '/michelf/php-markdown'),
'HTMLPurifier' => array($vendorDir . '/ezyang/htmlpurifier/library'),
);
diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php
index dcd673b73..e57848647 100644
--- a/vendor/composer/autoload_psr4.php
+++ b/vendor/composer/autoload_psr4.php
@@ -17,6 +17,7 @@ return array(
'Sabre\\CardDAV\\' => array($vendorDir . '/sabre/dav/lib/CardDAV'),
'Sabre\\CalDAV\\' => array($vendorDir . '/sabre/dav/lib/CalDAV'),
'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
+ 'Michelf\\' => array($vendorDir . '/michelf/php-markdown/Michelf'),
'League\\HTMLToMarkdown\\' => array($vendorDir . '/league/html-to-markdown/src'),
'ID3Parser\\' => array($vendorDir . '/lukasreschke/id3parser/src'),
'Hubzilla\\' => array($baseDir . '/include'),
diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php
index b0fb922de..11f2c01d6 100644
--- a/vendor/composer/autoload_static.php
+++ b/vendor/composer/autoload_static.php
@@ -18,14 +18,47 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'f084d01b0a599f67676cffef638aa95b' => __DIR__ . '/..' . '/smarty/smarty/libs/bootstrap.php',
);
- public static $firstCharsPsr4 = array (
- 'Z' => true,
- 'S' => true,
- 'P' => true,
- 'L' => true,
- 'I' => true,
- 'H' => true,
- 'C' => true,
+ public static $prefixLengthsPsr4 = array (
+ 'Z' =>
+ array (
+ 'Zotlabs\\' => 8,
+ ),
+ 'S' =>
+ array (
+ 'Sabre\\Xml\\' => 10,
+ 'Sabre\\VObject\\' => 14,
+ 'Sabre\\Uri\\' => 10,
+ 'Sabre\\HTTP\\' => 11,
+ 'Sabre\\Event\\' => 12,
+ 'Sabre\\DAV\\' => 10,
+ 'Sabre\\DAVACL\\' => 13,
+ 'Sabre\\CardDAV\\' => 14,
+ 'Sabre\\CalDAV\\' => 13,
+ ),
+ 'P' =>
+ array (
+ 'Psr\\Log\\' => 8,
+ ),
+ 'M' =>
+ array (
+ 'Michelf\\' => 8,
+ ),
+ 'L' =>
+ array (
+ 'League\\HTMLToMarkdown\\' => 22,
+ ),
+ 'I' =>
+ array (
+ 'ID3Parser\\' => 10,
+ ),
+ 'H' =>
+ array (
+ 'Hubzilla\\' => 9,
+ ),
+ 'C' =>
+ array (
+ 'CommerceGuys\\Intl\\' => 18,
+ ),
);
public static $prefixDirsPsr4 = array (
@@ -73,6 +106,10 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
array (
0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
),
+ 'Michelf\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/michelf/php-markdown/Michelf',
+ ),
'League\\HTMLToMarkdown\\' =>
array (
0 => __DIR__ . '/..' . '/league/html-to-markdown/src',
@@ -113,13 +150,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
0 => __DIR__ . '/..' . '/bshaffer/oauth2-server-php/src',
),
),
- 'M' =>
- array (
- 'Michelf' =>
- array (
- 0 => __DIR__ . '/..' . '/michelf/php-markdown',
- ),
- ),
'H' =>
array (
'HTMLPurifier' =>
@@ -394,7 +424,6 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'HTMLPurifier_VarParser_Flexible' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Flexible.php',
'HTMLPurifier_VarParser_Native' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/VarParser/Native.php',
'HTMLPurifier_Zipper' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier/Zipper.php',
- 'Hubzilla\\Import\\Import' => __DIR__ . '/../..' . '/include/Import/Importer.php',
'ID3Parser\\ID3Parser' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/ID3Parser.php',
'ID3Parser\\getID3\\Tags\\getid3_id3v1' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/getID3/Tags/getid3_id3v1.php',
'ID3Parser\\getID3\\Tags\\getid3_id3v2' => __DIR__ . '/..' . '/lukasreschke/id3parser/src/getID3/Tags/getid3_id3v2.php',
@@ -912,6 +941,8 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Daemon\\Thumbnail' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Thumbnail.php',
'Zotlabs\\Extend\\Hook' => __DIR__ . '/../..' . '/Zotlabs/Extend/Hook.php',
'Zotlabs\\Identity\\BasicId\\BasicId' => __DIR__ . '/../..' . '/Zotlabs/Identity/BasicId.php',
+ 'Zotlabs\\Identity\\OAuth2Server' => __DIR__ . '/../..' . '/Zotlabs/Identity/OAuth2Server.php',
+ 'Zotlabs\\Identity\\OAuth2Storage' => __DIR__ . '/../..' . '/Zotlabs/Identity/OAuth2Storage.php',
'Zotlabs\\Identity\\ProfilePhoto\\ProfilePhoto' => __DIR__ . '/../..' . '/Zotlabs/Identity/ProfilePhoto.php',
'Zotlabs\\Lib\\AConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/AConfig.php',
'Zotlabs\\Lib\\AbConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/AbConfig.php',
@@ -922,6 +953,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Lib\\Chatroom' => __DIR__ . '/../..' . '/Zotlabs/Lib/Chatroom.php',
'Zotlabs\\Lib\\Config' => __DIR__ . '/../..' . '/Zotlabs/Lib/Config.php',
'Zotlabs\\Lib\\DB_Upgrade' => __DIR__ . '/../..' . '/Zotlabs/Lib/DB_Upgrade.php',
+ 'Zotlabs\\Lib\\DReport' => __DIR__ . '/../..' . '/Zotlabs/Lib/DReport.php',
'Zotlabs\\Lib\\Enotify' => __DIR__ . '/../..' . '/Zotlabs/Lib/Enotify.php',
'Zotlabs\\Lib\\ExtendedZip' => __DIR__ . '/../..' . '/Zotlabs/Lib/ExtendedZip.php',
'Zotlabs\\Lib\\IConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/IConfig.php',
@@ -934,15 +966,15 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Lib\\PConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/PConfig.php',
'Zotlabs\\Lib\\Permcat' => __DIR__ . '/../..' . '/Zotlabs/Lib/Permcat.php',
'Zotlabs\\Lib\\PermissionDescription' => __DIR__ . '/../..' . '/Zotlabs/Lib/PermissionDescription.php',
- 'Zotlabs\\Lib\\ProtoDriver' => __DIR__ . '/../..' . '/Zotlabs/Lib/ProtoDriver.php',
'Zotlabs\\Lib\\SConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/SConfig.php',
+ 'Zotlabs\\Lib\\Share' => __DIR__ . '/../..' . '/Zotlabs/Lib/Share.php',
'Zotlabs\\Lib\\SuperCurl' => __DIR__ . '/../..' . '/Zotlabs/Lib/SuperCurl.php',
'Zotlabs\\Lib\\System' => __DIR__ . '/../..' . '/Zotlabs/Lib/System.php',
'Zotlabs\\Lib\\Techlevels' => __DIR__ . '/../..' . '/Zotlabs/Lib/Techlevels.php',
'Zotlabs\\Lib\\ThreadItem' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadItem.php',
'Zotlabs\\Lib\\ThreadStream' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadStream.php',
+ 'Zotlabs\\Lib\\Verify' => __DIR__ . '/../..' . '/Zotlabs/Lib/Verify.php',
'Zotlabs\\Lib\\XConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/XConfig.php',
- 'Zotlabs\\Lib\\ZotDriver' => __DIR__ . '/../..' . '/Zotlabs/Lib/ZotDriver.php',
'Zotlabs\\Module\\Achievements' => __DIR__ . '/../..' . '/Zotlabs/Module/Achievements.php',
'Zotlabs\\Module\\Acl' => __DIR__ . '/../..' . '/Zotlabs/Module/Acl.php',
'Zotlabs\\Module\\Admin' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin.php',
@@ -998,6 +1030,8 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Editlayout' => __DIR__ . '/../..' . '/Zotlabs/Module/Editlayout.php',
'Zotlabs\\Module\\Editpost' => __DIR__ . '/../..' . '/Zotlabs/Module/Editpost.php',
'Zotlabs\\Module\\Editwebpage' => __DIR__ . '/../..' . '/Zotlabs/Module/Editwebpage.php',
+ 'Zotlabs\\Module\\Email_resend' => __DIR__ . '/../..' . '/Zotlabs/Module/Email_resend.php',
+ 'Zotlabs\\Module\\Email_validation' => __DIR__ . '/../..' . '/Zotlabs/Module/Email_validation.php',
'Zotlabs\\Module\\Embedphotos' => __DIR__ . '/../..' . '/Zotlabs/Module/Embedphotos.php',
'Zotlabs\\Module\\Events' => __DIR__ . '/../..' . '/Zotlabs/Module/Events.php',
'Zotlabs\\Module\\Fbrowser' => __DIR__ . '/../..' . '/Zotlabs/Module/Fbrowser.php',
@@ -1009,7 +1043,9 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Filestorage' => __DIR__ . '/../..' . '/Zotlabs/Module/Filestorage.php',
'Zotlabs\\Module\\Follow' => __DIR__ . '/../..' . '/Zotlabs/Module/Follow.php',
'Zotlabs\\Module\\Getfile' => __DIR__ . '/../..' . '/Zotlabs/Module/Getfile.php',
+ 'Zotlabs\\Module\\Go' => __DIR__ . '/../..' . '/Zotlabs/Module/Go.php',
'Zotlabs\\Module\\Group' => __DIR__ . '/../..' . '/Zotlabs/Module/Group.php',
+ 'Zotlabs\\Module\\Hashtags' => __DIR__ . '/../..' . '/Zotlabs/Module/Hashtags.php',
'Zotlabs\\Module\\Hcard' => __DIR__ . '/../..' . '/Zotlabs/Module/Hcard.php',
'Zotlabs\\Module\\Help' => __DIR__ . '/../..' . '/Zotlabs/Module/Help.php',
'Zotlabs\\Module\\Home' => __DIR__ . '/../..' . '/Zotlabs/Module/Home.php',
@@ -1043,6 +1079,8 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Notes' => __DIR__ . '/../..' . '/Zotlabs/Module/Notes.php',
'Zotlabs\\Module\\Notifications' => __DIR__ . '/../..' . '/Zotlabs/Module/Notifications.php',
'Zotlabs\\Module\\Notify' => __DIR__ . '/../..' . '/Zotlabs/Module/Notify.php',
+ 'Zotlabs\\Module\\OAuth2TestVehicle' => __DIR__ . '/../..' . '/Zotlabs/Module/Oauth2testvehicle.php',
+ 'Zotlabs\\Module\\Ochannel' => __DIR__ . '/../..' . '/Zotlabs/Module/Ochannel.php',
'Zotlabs\\Module\\Oembed' => __DIR__ . '/../..' . '/Zotlabs/Module/Oembed.php',
'Zotlabs\\Module\\Oep' => __DIR__ . '/../..' . '/Zotlabs/Module/Oep.php',
'Zotlabs\\Module\\Oexchange' => __DIR__ . '/../..' . '/Zotlabs/Module/Oexchange.php',
@@ -1092,6 +1130,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Module\\Settings\\Featured' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Featured.php',
'Zotlabs\\Module\\Settings\\Features' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Features.php',
'Zotlabs\\Module\\Settings\\Oauth' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Oauth.php',
+ 'Zotlabs\\Module\\Settings\\Oauth2' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Oauth2.php',
'Zotlabs\\Module\\Settings\\Permcats' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Permcats.php',
'Zotlabs\\Module\\Settings\\Tokens' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Tokens.php',
'Zotlabs\\Module\\Setup' => __DIR__ . '/../..' . '/Zotlabs/Module/Setup.php',
@@ -1145,12 +1184,226 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Storage\\Directory' => __DIR__ . '/../..' . '/Zotlabs/Storage/Directory.php',
'Zotlabs\\Storage\\File' => __DIR__ . '/../..' . '/Zotlabs/Storage/File.php',
'Zotlabs\\Storage\\GitRepo' => __DIR__ . '/../..' . '/Zotlabs/Storage/GitRepo.php',
+ 'Zotlabs\\Storage\\ZotOauth2Pdo' => __DIR__ . '/../..' . '/Zotlabs/Storage/ZotOauth2Pdo.php',
'Zotlabs\\Text\\Tagadelic' => __DIR__ . '/../..' . '/Zotlabs/Text/Tagadelic.php',
'Zotlabs\\Thumbs\\Epubthumb' => __DIR__ . '/../..' . '/Zotlabs/Thumbs/Epubthumb.php',
'Zotlabs\\Thumbs\\Mp3audio' => __DIR__ . '/../..' . '/Zotlabs/Thumbs/Mp3audio.php',
'Zotlabs\\Thumbs\\Pdf' => __DIR__ . '/../..' . '/Zotlabs/Thumbs/Pdf.php',
'Zotlabs\\Thumbs\\Text' => __DIR__ . '/../..' . '/Zotlabs/Thumbs/Text.php',
'Zotlabs\\Thumbs\\Video' => __DIR__ . '/../..' . '/Zotlabs/Thumbs/Video.php',
+ 'Zotlabs\\Update\\_1000' => __DIR__ . '/../..' . '/Zotlabs/Update/_1000.php',
+ 'Zotlabs\\Update\\_1001' => __DIR__ . '/../..' . '/Zotlabs/Update/_1001.php',
+ 'Zotlabs\\Update\\_1002' => __DIR__ . '/../..' . '/Zotlabs/Update/_1002.php',
+ 'Zotlabs\\Update\\_1003' => __DIR__ . '/../..' . '/Zotlabs/Update/_1003.php',
+ 'Zotlabs\\Update\\_1004' => __DIR__ . '/../..' . '/Zotlabs/Update/_1004.php',
+ 'Zotlabs\\Update\\_1005' => __DIR__ . '/../..' . '/Zotlabs/Update/_1005.php',
+ 'Zotlabs\\Update\\_1006' => __DIR__ . '/../..' . '/Zotlabs/Update/_1006.php',
+ 'Zotlabs\\Update\\_1007' => __DIR__ . '/../..' . '/Zotlabs/Update/_1007.php',
+ 'Zotlabs\\Update\\_1008' => __DIR__ . '/../..' . '/Zotlabs/Update/_1008.php',
+ 'Zotlabs\\Update\\_1009' => __DIR__ . '/../..' . '/Zotlabs/Update/_1009.php',
+ 'Zotlabs\\Update\\_1010' => __DIR__ . '/../..' . '/Zotlabs/Update/_1010.php',
+ 'Zotlabs\\Update\\_1011' => __DIR__ . '/../..' . '/Zotlabs/Update/_1011.php',
+ 'Zotlabs\\Update\\_1012' => __DIR__ . '/../..' . '/Zotlabs/Update/_1012.php',
+ 'Zotlabs\\Update\\_1013' => __DIR__ . '/../..' . '/Zotlabs/Update/_1013.php',
+ 'Zotlabs\\Update\\_1014' => __DIR__ . '/../..' . '/Zotlabs/Update/_1014.php',
+ 'Zotlabs\\Update\\_1015' => __DIR__ . '/../..' . '/Zotlabs/Update/_1015.php',
+ 'Zotlabs\\Update\\_1016' => __DIR__ . '/../..' . '/Zotlabs/Update/_1016.php',
+ 'Zotlabs\\Update\\_1017' => __DIR__ . '/../..' . '/Zotlabs/Update/_1017.php',
+ 'Zotlabs\\Update\\_1018' => __DIR__ . '/../..' . '/Zotlabs/Update/_1018.php',
+ 'Zotlabs\\Update\\_1019' => __DIR__ . '/../..' . '/Zotlabs/Update/_1019.php',
+ 'Zotlabs\\Update\\_1020' => __DIR__ . '/../..' . '/Zotlabs/Update/_1020.php',
+ 'Zotlabs\\Update\\_1021' => __DIR__ . '/../..' . '/Zotlabs/Update/_1021.php',
+ 'Zotlabs\\Update\\_1022' => __DIR__ . '/../..' . '/Zotlabs/Update/_1022.php',
+ 'Zotlabs\\Update\\_1023' => __DIR__ . '/../..' . '/Zotlabs/Update/_1023.php',
+ 'Zotlabs\\Update\\_1024' => __DIR__ . '/../..' . '/Zotlabs/Update/_1024.php',
+ 'Zotlabs\\Update\\_1025' => __DIR__ . '/../..' . '/Zotlabs/Update/_1025.php',
+ 'Zotlabs\\Update\\_1026' => __DIR__ . '/../..' . '/Zotlabs/Update/_1026.php',
+ 'Zotlabs\\Update\\_1027' => __DIR__ . '/../..' . '/Zotlabs/Update/_1027.php',
+ 'Zotlabs\\Update\\_1028' => __DIR__ . '/../..' . '/Zotlabs/Update/_1028.php',
+ 'Zotlabs\\Update\\_1029' => __DIR__ . '/../..' . '/Zotlabs/Update/_1029.php',
+ 'Zotlabs\\Update\\_1030' => __DIR__ . '/../..' . '/Zotlabs/Update/_1030.php',
+ 'Zotlabs\\Update\\_1031' => __DIR__ . '/../..' . '/Zotlabs/Update/_1031.php',
+ 'Zotlabs\\Update\\_1032' => __DIR__ . '/../..' . '/Zotlabs/Update/_1032.php',
+ 'Zotlabs\\Update\\_1033' => __DIR__ . '/../..' . '/Zotlabs/Update/_1033.php',
+ 'Zotlabs\\Update\\_1034' => __DIR__ . '/../..' . '/Zotlabs/Update/_1034.php',
+ 'Zotlabs\\Update\\_1035' => __DIR__ . '/../..' . '/Zotlabs/Update/_1035.php',
+ 'Zotlabs\\Update\\_1036' => __DIR__ . '/../..' . '/Zotlabs/Update/_1036.php',
+ 'Zotlabs\\Update\\_1037' => __DIR__ . '/../..' . '/Zotlabs/Update/_1037.php',
+ 'Zotlabs\\Update\\_1038' => __DIR__ . '/../..' . '/Zotlabs/Update/_1038.php',
+ 'Zotlabs\\Update\\_1039' => __DIR__ . '/../..' . '/Zotlabs/Update/_1039.php',
+ 'Zotlabs\\Update\\_1040' => __DIR__ . '/../..' . '/Zotlabs/Update/_1040.php',
+ 'Zotlabs\\Update\\_1041' => __DIR__ . '/../..' . '/Zotlabs/Update/_1041.php',
+ 'Zotlabs\\Update\\_1042' => __DIR__ . '/../..' . '/Zotlabs/Update/_1042.php',
+ 'Zotlabs\\Update\\_1043' => __DIR__ . '/../..' . '/Zotlabs/Update/_1043.php',
+ 'Zotlabs\\Update\\_1044' => __DIR__ . '/../..' . '/Zotlabs/Update/_1044.php',
+ 'Zotlabs\\Update\\_1045' => __DIR__ . '/../..' . '/Zotlabs/Update/_1045.php',
+ 'Zotlabs\\Update\\_1046' => __DIR__ . '/../..' . '/Zotlabs/Update/_1046.php',
+ 'Zotlabs\\Update\\_1047' => __DIR__ . '/../..' . '/Zotlabs/Update/_1047.php',
+ 'Zotlabs\\Update\\_1048' => __DIR__ . '/../..' . '/Zotlabs/Update/_1048.php',
+ 'Zotlabs\\Update\\_1049' => __DIR__ . '/../..' . '/Zotlabs/Update/_1049.php',
+ 'Zotlabs\\Update\\_1050' => __DIR__ . '/../..' . '/Zotlabs/Update/_1050.php',
+ 'Zotlabs\\Update\\_1051' => __DIR__ . '/../..' . '/Zotlabs/Update/_1051.php',
+ 'Zotlabs\\Update\\_1052' => __DIR__ . '/../..' . '/Zotlabs/Update/_1052.php',
+ 'Zotlabs\\Update\\_1053' => __DIR__ . '/../..' . '/Zotlabs/Update/_1053.php',
+ 'Zotlabs\\Update\\_1054' => __DIR__ . '/../..' . '/Zotlabs/Update/_1054.php',
+ 'Zotlabs\\Update\\_1055' => __DIR__ . '/../..' . '/Zotlabs/Update/_1055.php',
+ 'Zotlabs\\Update\\_1056' => __DIR__ . '/../..' . '/Zotlabs/Update/_1056.php',
+ 'Zotlabs\\Update\\_1057' => __DIR__ . '/../..' . '/Zotlabs/Update/_1057.php',
+ 'Zotlabs\\Update\\_1058' => __DIR__ . '/../..' . '/Zotlabs/Update/_1058.php',
+ 'Zotlabs\\Update\\_1059' => __DIR__ . '/../..' . '/Zotlabs/Update/_1059.php',
+ 'Zotlabs\\Update\\_1060' => __DIR__ . '/../..' . '/Zotlabs/Update/_1060.php',
+ 'Zotlabs\\Update\\_1061' => __DIR__ . '/../..' . '/Zotlabs/Update/_1061.php',
+ 'Zotlabs\\Update\\_1062' => __DIR__ . '/../..' . '/Zotlabs/Update/_1062.php',
+ 'Zotlabs\\Update\\_1063' => __DIR__ . '/../..' . '/Zotlabs/Update/_1063.php',
+ 'Zotlabs\\Update\\_1064' => __DIR__ . '/../..' . '/Zotlabs/Update/_1064.php',
+ 'Zotlabs\\Update\\_1065' => __DIR__ . '/../..' . '/Zotlabs/Update/_1065.php',
+ 'Zotlabs\\Update\\_1066' => __DIR__ . '/../..' . '/Zotlabs/Update/_1066.php',
+ 'Zotlabs\\Update\\_1067' => __DIR__ . '/../..' . '/Zotlabs/Update/_1067.php',
+ 'Zotlabs\\Update\\_1068' => __DIR__ . '/../..' . '/Zotlabs/Update/_1068.php',
+ 'Zotlabs\\Update\\_1069' => __DIR__ . '/../..' . '/Zotlabs/Update/_1069.php',
+ 'Zotlabs\\Update\\_1070' => __DIR__ . '/../..' . '/Zotlabs/Update/_1070.php',
+ 'Zotlabs\\Update\\_1071' => __DIR__ . '/../..' . '/Zotlabs/Update/_1071.php',
+ 'Zotlabs\\Update\\_1072' => __DIR__ . '/../..' . '/Zotlabs/Update/_1072.php',
+ 'Zotlabs\\Update\\_1073' => __DIR__ . '/../..' . '/Zotlabs/Update/_1073.php',
+ 'Zotlabs\\Update\\_1074' => __DIR__ . '/../..' . '/Zotlabs/Update/_1074.php',
+ 'Zotlabs\\Update\\_1075' => __DIR__ . '/../..' . '/Zotlabs/Update/_1075.php',
+ 'Zotlabs\\Update\\_1076' => __DIR__ . '/../..' . '/Zotlabs/Update/_1076.php',
+ 'Zotlabs\\Update\\_1077' => __DIR__ . '/../..' . '/Zotlabs/Update/_1077.php',
+ 'Zotlabs\\Update\\_1078' => __DIR__ . '/../..' . '/Zotlabs/Update/_1078.php',
+ 'Zotlabs\\Update\\_1079' => __DIR__ . '/../..' . '/Zotlabs/Update/_1079.php',
+ 'Zotlabs\\Update\\_1080' => __DIR__ . '/../..' . '/Zotlabs/Update/_1080.php',
+ 'Zotlabs\\Update\\_1081' => __DIR__ . '/../..' . '/Zotlabs/Update/_1081.php',
+ 'Zotlabs\\Update\\_1082' => __DIR__ . '/../..' . '/Zotlabs/Update/_1082.php',
+ 'Zotlabs\\Update\\_1083' => __DIR__ . '/../..' . '/Zotlabs/Update/_1083.php',
+ 'Zotlabs\\Update\\_1084' => __DIR__ . '/../..' . '/Zotlabs/Update/_1084.php',
+ 'Zotlabs\\Update\\_1085' => __DIR__ . '/../..' . '/Zotlabs/Update/_1085.php',
+ 'Zotlabs\\Update\\_1086' => __DIR__ . '/../..' . '/Zotlabs/Update/_1086.php',
+ 'Zotlabs\\Update\\_1087' => __DIR__ . '/../..' . '/Zotlabs/Update/_1087.php',
+ 'Zotlabs\\Update\\_1088' => __DIR__ . '/../..' . '/Zotlabs/Update/_1088.php',
+ 'Zotlabs\\Update\\_1089' => __DIR__ . '/../..' . '/Zotlabs/Update/_1089.php',
+ 'Zotlabs\\Update\\_1090' => __DIR__ . '/../..' . '/Zotlabs/Update/_1090.php',
+ 'Zotlabs\\Update\\_1091' => __DIR__ . '/../..' . '/Zotlabs/Update/_1091.php',
+ 'Zotlabs\\Update\\_1092' => __DIR__ . '/../..' . '/Zotlabs/Update/_1092.php',
+ 'Zotlabs\\Update\\_1093' => __DIR__ . '/../..' . '/Zotlabs/Update/_1093.php',
+ 'Zotlabs\\Update\\_1094' => __DIR__ . '/../..' . '/Zotlabs/Update/_1094.php',
+ 'Zotlabs\\Update\\_1095' => __DIR__ . '/../..' . '/Zotlabs/Update/_1095.php',
+ 'Zotlabs\\Update\\_1096' => __DIR__ . '/../..' . '/Zotlabs/Update/_1096.php',
+ 'Zotlabs\\Update\\_1097' => __DIR__ . '/../..' . '/Zotlabs/Update/_1097.php',
+ 'Zotlabs\\Update\\_1098' => __DIR__ . '/../..' . '/Zotlabs/Update/_1098.php',
+ 'Zotlabs\\Update\\_1099' => __DIR__ . '/../..' . '/Zotlabs/Update/_1099.php',
+ 'Zotlabs\\Update\\_1100' => __DIR__ . '/../..' . '/Zotlabs/Update/_1100.php',
+ 'Zotlabs\\Update\\_1101' => __DIR__ . '/../..' . '/Zotlabs/Update/_1101.php',
+ 'Zotlabs\\Update\\_1102' => __DIR__ . '/../..' . '/Zotlabs/Update/_1102.php',
+ 'Zotlabs\\Update\\_1103' => __DIR__ . '/../..' . '/Zotlabs/Update/_1103.php',
+ 'Zotlabs\\Update\\_1104' => __DIR__ . '/../..' . '/Zotlabs/Update/_1104.php',
+ 'Zotlabs\\Update\\_1105' => __DIR__ . '/../..' . '/Zotlabs/Update/_1105.php',
+ 'Zotlabs\\Update\\_1106' => __DIR__ . '/../..' . '/Zotlabs/Update/_1106.php',
+ 'Zotlabs\\Update\\_1107' => __DIR__ . '/../..' . '/Zotlabs/Update/_1107.php',
+ 'Zotlabs\\Update\\_1108' => __DIR__ . '/../..' . '/Zotlabs/Update/_1108.php',
+ 'Zotlabs\\Update\\_1109' => __DIR__ . '/../..' . '/Zotlabs/Update/_1109.php',
+ 'Zotlabs\\Update\\_1110' => __DIR__ . '/../..' . '/Zotlabs/Update/_1110.php',
+ 'Zotlabs\\Update\\_1111' => __DIR__ . '/../..' . '/Zotlabs/Update/_1111.php',
+ 'Zotlabs\\Update\\_1112' => __DIR__ . '/../..' . '/Zotlabs/Update/_1112.php',
+ 'Zotlabs\\Update\\_1113' => __DIR__ . '/../..' . '/Zotlabs/Update/_1113.php',
+ 'Zotlabs\\Update\\_1114' => __DIR__ . '/../..' . '/Zotlabs/Update/_1114.php',
+ 'Zotlabs\\Update\\_1115' => __DIR__ . '/../..' . '/Zotlabs/Update/_1115.php',
+ 'Zotlabs\\Update\\_1116' => __DIR__ . '/../..' . '/Zotlabs/Update/_1116.php',
+ 'Zotlabs\\Update\\_1117' => __DIR__ . '/../..' . '/Zotlabs/Update/_1117.php',
+ 'Zotlabs\\Update\\_1118' => __DIR__ . '/../..' . '/Zotlabs/Update/_1118.php',
+ 'Zotlabs\\Update\\_1119' => __DIR__ . '/../..' . '/Zotlabs/Update/_1119.php',
+ 'Zotlabs\\Update\\_1120' => __DIR__ . '/../..' . '/Zotlabs/Update/_1120.php',
+ 'Zotlabs\\Update\\_1121' => __DIR__ . '/../..' . '/Zotlabs/Update/_1121.php',
+ 'Zotlabs\\Update\\_1122' => __DIR__ . '/../..' . '/Zotlabs/Update/_1122.php',
+ 'Zotlabs\\Update\\_1123' => __DIR__ . '/../..' . '/Zotlabs/Update/_1123.php',
+ 'Zotlabs\\Update\\_1124' => __DIR__ . '/../..' . '/Zotlabs/Update/_1124.php',
+ 'Zotlabs\\Update\\_1125' => __DIR__ . '/../..' . '/Zotlabs/Update/_1125.php',
+ 'Zotlabs\\Update\\_1126' => __DIR__ . '/../..' . '/Zotlabs/Update/_1126.php',
+ 'Zotlabs\\Update\\_1127' => __DIR__ . '/../..' . '/Zotlabs/Update/_1127.php',
+ 'Zotlabs\\Update\\_1128' => __DIR__ . '/../..' . '/Zotlabs/Update/_1128.php',
+ 'Zotlabs\\Update\\_1129' => __DIR__ . '/../..' . '/Zotlabs/Update/_1129.php',
+ 'Zotlabs\\Update\\_1130' => __DIR__ . '/../..' . '/Zotlabs/Update/_1130.php',
+ 'Zotlabs\\Update\\_1131' => __DIR__ . '/../..' . '/Zotlabs/Update/_1131.php',
+ 'Zotlabs\\Update\\_1132' => __DIR__ . '/../..' . '/Zotlabs/Update/_1132.php',
+ 'Zotlabs\\Update\\_1133' => __DIR__ . '/../..' . '/Zotlabs/Update/_1133.php',
+ 'Zotlabs\\Update\\_1134' => __DIR__ . '/../..' . '/Zotlabs/Update/_1134.php',
+ 'Zotlabs\\Update\\_1135' => __DIR__ . '/../..' . '/Zotlabs/Update/_1135.php',
+ 'Zotlabs\\Update\\_1136' => __DIR__ . '/../..' . '/Zotlabs/Update/_1136.php',
+ 'Zotlabs\\Update\\_1137' => __DIR__ . '/../..' . '/Zotlabs/Update/_1137.php',
+ 'Zotlabs\\Update\\_1138' => __DIR__ . '/../..' . '/Zotlabs/Update/_1138.php',
+ 'Zotlabs\\Update\\_1139' => __DIR__ . '/../..' . '/Zotlabs/Update/_1139.php',
+ 'Zotlabs\\Update\\_1140' => __DIR__ . '/../..' . '/Zotlabs/Update/_1140.php',
+ 'Zotlabs\\Update\\_1141' => __DIR__ . '/../..' . '/Zotlabs/Update/_1141.php',
+ 'Zotlabs\\Update\\_1142' => __DIR__ . '/../..' . '/Zotlabs/Update/_1142.php',
+ 'Zotlabs\\Update\\_1143' => __DIR__ . '/../..' . '/Zotlabs/Update/_1143.php',
+ 'Zotlabs\\Update\\_1144' => __DIR__ . '/../..' . '/Zotlabs/Update/_1144.php',
+ 'Zotlabs\\Update\\_1145' => __DIR__ . '/../..' . '/Zotlabs/Update/_1145.php',
+ 'Zotlabs\\Update\\_1146' => __DIR__ . '/../..' . '/Zotlabs/Update/_1146.php',
+ 'Zotlabs\\Update\\_1147' => __DIR__ . '/../..' . '/Zotlabs/Update/_1147.php',
+ 'Zotlabs\\Update\\_1148' => __DIR__ . '/../..' . '/Zotlabs/Update/_1148.php',
+ 'Zotlabs\\Update\\_1149' => __DIR__ . '/../..' . '/Zotlabs/Update/_1149.php',
+ 'Zotlabs\\Update\\_1150' => __DIR__ . '/../..' . '/Zotlabs/Update/_1150.php',
+ 'Zotlabs\\Update\\_1151' => __DIR__ . '/../..' . '/Zotlabs/Update/_1151.php',
+ 'Zotlabs\\Update\\_1152' => __DIR__ . '/../..' . '/Zotlabs/Update/_1152.php',
+ 'Zotlabs\\Update\\_1153' => __DIR__ . '/../..' . '/Zotlabs/Update/_1153.php',
+ 'Zotlabs\\Update\\_1154' => __DIR__ . '/../..' . '/Zotlabs/Update/_1154.php',
+ 'Zotlabs\\Update\\_1155' => __DIR__ . '/../..' . '/Zotlabs/Update/_1155.php',
+ 'Zotlabs\\Update\\_1156' => __DIR__ . '/../..' . '/Zotlabs/Update/_1156.php',
+ 'Zotlabs\\Update\\_1157' => __DIR__ . '/../..' . '/Zotlabs/Update/_1157.php',
+ 'Zotlabs\\Update\\_1158' => __DIR__ . '/../..' . '/Zotlabs/Update/_1158.php',
+ 'Zotlabs\\Update\\_1159' => __DIR__ . '/../..' . '/Zotlabs/Update/_1159.php',
+ 'Zotlabs\\Update\\_1160' => __DIR__ . '/../..' . '/Zotlabs/Update/_1160.php',
+ 'Zotlabs\\Update\\_1161' => __DIR__ . '/../..' . '/Zotlabs/Update/_1161.php',
+ 'Zotlabs\\Update\\_1162' => __DIR__ . '/../..' . '/Zotlabs/Update/_1162.php',
+ 'Zotlabs\\Update\\_1163' => __DIR__ . '/../..' . '/Zotlabs/Update/_1163.php',
+ 'Zotlabs\\Update\\_1164' => __DIR__ . '/../..' . '/Zotlabs/Update/_1164.php',
+ 'Zotlabs\\Update\\_1165' => __DIR__ . '/../..' . '/Zotlabs/Update/_1165.php',
+ 'Zotlabs\\Update\\_1166' => __DIR__ . '/../..' . '/Zotlabs/Update/_1166.php',
+ 'Zotlabs\\Update\\_1167' => __DIR__ . '/../..' . '/Zotlabs/Update/_1167.php',
+ 'Zotlabs\\Update\\_1168' => __DIR__ . '/../..' . '/Zotlabs/Update/_1168.php',
+ 'Zotlabs\\Update\\_1169' => __DIR__ . '/../..' . '/Zotlabs/Update/_1169.php',
+ 'Zotlabs\\Update\\_1170' => __DIR__ . '/../..' . '/Zotlabs/Update/_1170.php',
+ 'Zotlabs\\Update\\_1171' => __DIR__ . '/../..' . '/Zotlabs/Update/_1171.php',
+ 'Zotlabs\\Update\\_1172' => __DIR__ . '/../..' . '/Zotlabs/Update/_1172.php',
+ 'Zotlabs\\Update\\_1173' => __DIR__ . '/../..' . '/Zotlabs/Update/_1173.php',
+ 'Zotlabs\\Update\\_1174' => __DIR__ . '/../..' . '/Zotlabs/Update/_1174.php',
+ 'Zotlabs\\Update\\_1175' => __DIR__ . '/../..' . '/Zotlabs/Update/_1175.php',
+ 'Zotlabs\\Update\\_1176' => __DIR__ . '/../..' . '/Zotlabs/Update/_1176.php',
+ 'Zotlabs\\Update\\_1177' => __DIR__ . '/../..' . '/Zotlabs/Update/_1177.php',
+ 'Zotlabs\\Update\\_1178' => __DIR__ . '/../..' . '/Zotlabs/Update/_1178.php',
+ 'Zotlabs\\Update\\_1179' => __DIR__ . '/../..' . '/Zotlabs/Update/_1179.php',
+ 'Zotlabs\\Update\\_1180' => __DIR__ . '/../..' . '/Zotlabs/Update/_1180.php',
+ 'Zotlabs\\Update\\_1181' => __DIR__ . '/../..' . '/Zotlabs/Update/_1181.php',
+ 'Zotlabs\\Update\\_1182' => __DIR__ . '/../..' . '/Zotlabs/Update/_1182.php',
+ 'Zotlabs\\Update\\_1183' => __DIR__ . '/../..' . '/Zotlabs/Update/_1183.php',
+ 'Zotlabs\\Update\\_1184' => __DIR__ . '/../..' . '/Zotlabs/Update/_1184.php',
+ 'Zotlabs\\Update\\_1185' => __DIR__ . '/../..' . '/Zotlabs/Update/_1185.php',
+ 'Zotlabs\\Update\\_1186' => __DIR__ . '/../..' . '/Zotlabs/Update/_1186.php',
+ 'Zotlabs\\Update\\_1187' => __DIR__ . '/../..' . '/Zotlabs/Update/_1187.php',
+ 'Zotlabs\\Update\\_1188' => __DIR__ . '/../..' . '/Zotlabs/Update/_1188.php',
+ 'Zotlabs\\Update\\_1189' => __DIR__ . '/../..' . '/Zotlabs/Update/_1189.php',
+ 'Zotlabs\\Update\\_1190' => __DIR__ . '/../..' . '/Zotlabs/Update/_1190.php',
+ 'Zotlabs\\Update\\_1191' => __DIR__ . '/../..' . '/Zotlabs/Update/_1191.php',
+ 'Zotlabs\\Update\\_1192' => __DIR__ . '/../..' . '/Zotlabs/Update/_1192.php',
+ 'Zotlabs\\Update\\_1193' => __DIR__ . '/../..' . '/Zotlabs/Update/_1193.php',
+ 'Zotlabs\\Update\\_1194' => __DIR__ . '/../..' . '/Zotlabs/Update/_1194.php',
+ 'Zotlabs\\Update\\_1195' => __DIR__ . '/../..' . '/Zotlabs/Update/_1195.php',
+ 'Zotlabs\\Update\\_1196' => __DIR__ . '/../..' . '/Zotlabs/Update/_1196.php',
+ 'Zotlabs\\Update\\_1197' => __DIR__ . '/../..' . '/Zotlabs/Update/_1197.php',
+ 'Zotlabs\\Update\\_1198' => __DIR__ . '/../..' . '/Zotlabs/Update/_1198.php',
+ 'Zotlabs\\Update\\_1199' => __DIR__ . '/../..' . '/Zotlabs/Update/_1199.php',
+ 'Zotlabs\\Update\\_1200' => __DIR__ . '/../..' . '/Zotlabs/Update/_1200.php',
+ 'Zotlabs\\Update\\_1201' => __DIR__ . '/../..' . '/Zotlabs/Update/_1201.php',
+ 'Zotlabs\\Update\\_1202' => __DIR__ . '/../..' . '/Zotlabs/Update/_1202.php',
+ 'Zotlabs\\Update\\_1203' => __DIR__ . '/../..' . '/Zotlabs/Update/_1203.php',
+ 'Zotlabs\\Update\\_1204' => __DIR__ . '/../..' . '/Zotlabs/Update/_1204.php',
+ 'Zotlabs\\Update\\_1205' => __DIR__ . '/../..' . '/Zotlabs/Update/_1205.php',
+ 'Zotlabs\\Update\\_1206' => __DIR__ . '/../..' . '/Zotlabs/Update/_1206.php',
+ 'Zotlabs\\Update\\_1207' => __DIR__ . '/../..' . '/Zotlabs/Update/_1207.php',
+ 'Zotlabs\\Update\\_1208' => __DIR__ . '/../..' . '/Zotlabs/Update/_1208.php',
+ 'Zotlabs\\Update\\_1209' => __DIR__ . '/../..' . '/Zotlabs/Update/_1209.php',
+ 'Zotlabs\\Update\\_1210' => __DIR__ . '/../..' . '/Zotlabs/Update/_1210.php',
+ 'Zotlabs\\Update\\_1211' => __DIR__ . '/../..' . '/Zotlabs/Update/_1211.php',
+ 'Zotlabs\\Update\\_1212' => __DIR__ . '/../..' . '/Zotlabs/Update/_1212.php',
'Zotlabs\\Web\\CheckJS' => __DIR__ . '/../..' . '/Zotlabs/Web/CheckJS.php',
'Zotlabs\\Web\\Controller' => __DIR__ . '/../..' . '/Zotlabs/Web/Controller.php',
'Zotlabs\\Web\\HTTPHeaders' => __DIR__ . '/../..' . '/Zotlabs/Web/HTTPHeaders.php',
@@ -1169,6 +1422,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Widget\\Appcloud' => __DIR__ . '/../..' . '/Zotlabs/Widget/Appcloud.php',
'Zotlabs\\Widget\\Archive' => __DIR__ . '/../..' . '/Zotlabs/Widget/Archive.php',
'Zotlabs\\Widget\\Bookmarkedchats' => __DIR__ . '/../..' . '/Zotlabs/Widget/Bookmarkedchats.php',
+ 'Zotlabs\\Widget\\Catcloud' => __DIR__ . '/../..' . '/Zotlabs/Widget/Catcloud.php',
'Zotlabs\\Widget\\Catcloud_wall' => __DIR__ . '/../..' . '/Zotlabs/Widget/Catcloud_wall.php',
'Zotlabs\\Widget\\Categories' => __DIR__ . '/../..' . '/Zotlabs/Widget/Categories.php',
'Zotlabs\\Widget\\Cdav' => __DIR__ . '/../..' . '/Zotlabs/Widget/Cdav.php',
@@ -1193,6 +1447,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Widget\\Item' => __DIR__ . '/../..' . '/Zotlabs/Widget/Item.php',
'Zotlabs\\Widget\\Mailmenu' => __DIR__ . '/../..' . '/Zotlabs/Widget/Mailmenu.php',
'Zotlabs\\Widget\\Menu_preview' => __DIR__ . '/../..' . '/Zotlabs/Widget/Menu_preview.php',
+ 'Zotlabs\\Widget\\Newmember' => __DIR__ . '/../..' . '/Zotlabs/Widget/Newmember.php',
'Zotlabs\\Widget\\Notes' => __DIR__ . '/../..' . '/Zotlabs/Widget/Notes.php',
'Zotlabs\\Widget\\Notifications' => __DIR__ . '/../..' . '/Zotlabs/Widget/Notifications.php',
'Zotlabs\\Widget\\Photo' => __DIR__ . '/../..' . '/Zotlabs/Widget/Photo.php',
@@ -1201,6 +1456,7 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Widget\\Portfolio' => __DIR__ . '/../..' . '/Zotlabs/Widget/Portfolio.php',
'Zotlabs\\Widget\\Profile' => __DIR__ . '/../..' . '/Zotlabs/Widget/Profile.php',
'Zotlabs\\Widget\\Pubsites' => __DIR__ . '/../..' . '/Zotlabs/Widget/Pubsites.php',
+ 'Zotlabs\\Widget\\Pubtagcloud' => __DIR__ . '/../..' . '/Zotlabs/Widget/Pubtagcloud.php',
'Zotlabs\\Widget\\Random_block' => __DIR__ . '/../..' . '/Zotlabs/Widget/Random_block.php',
'Zotlabs\\Widget\\Rating' => __DIR__ . '/../..' . '/Zotlabs/Widget/Rating.php',
'Zotlabs\\Widget\\Savedsearch' => __DIR__ . '/../..' . '/Zotlabs/Widget/Savedsearch.php',
@@ -1219,18 +1475,16 @@ class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d
'Zotlabs\\Widget\\Wiki_pages' => __DIR__ . '/../..' . '/Zotlabs/Widget/Wiki_pages.php',
'Zotlabs\\Widget\\Zcard' => __DIR__ . '/../..' . '/Zotlabs/Widget/Zcard.php',
'Zotlabs\\Zot\\Auth' => __DIR__ . '/../..' . '/Zotlabs/Zot/Auth.php',
- 'Zotlabs\\Zot\\DReport' => __DIR__ . '/../..' . '/Zotlabs/Zot/DReport.php',
'Zotlabs\\Zot\\Finger' => __DIR__ . '/../..' . '/Zotlabs/Zot/Finger.php',
'Zotlabs\\Zot\\IHandler' => __DIR__ . '/../..' . '/Zotlabs/Zot/IHandler.php',
'Zotlabs\\Zot\\Receiver' => __DIR__ . '/../..' . '/Zotlabs/Zot/Receiver.php',
- 'Zotlabs\\Zot\\Verify' => __DIR__ . '/../..' . '/Zotlabs/Zot/Verify.php',
'Zotlabs\\Zot\\ZotHandler' => __DIR__ . '/../..' . '/Zotlabs/Zot/ZotHandler.php',
);
public static function getInitializer(ClassLoader $loader)
{
return \Closure::bind(function () use ($loader) {
- $loader->firstCharsPsr4 = ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$firstCharsPsr4;
+ $loader->prefixLengthsPsr4 = ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$prefixLengthsPsr4;
$loader->prefixDirsPsr4 = ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$prefixDirsPsr4;
$loader->prefixesPsr0 = ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$prefixesPsr0;
$loader->classMap = ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$classMap;
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index f4a2b6278..6ce7bf350 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -61,17 +61,17 @@
},
{
"name": "commerceguys/intl",
- "version": "v0.7.4",
- "version_normalized": "0.7.4.0",
+ "version": "v0.7.5",
+ "version_normalized": "0.7.5.0",
"source": {
"type": "git",
"url": "https://github.com/commerceguys/intl.git",
- "reference": "edfcfc26ed8505c4f6fcf862eb36dfda1af74b00"
+ "reference": "de1435502068393fae4061818e194e4ea61b98d6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/commerceguys/intl/zipball/edfcfc26ed8505c4f6fcf862eb36dfda1af74b00",
- "reference": "edfcfc26ed8505c4f6fcf862eb36dfda1af74b00",
+ "url": "https://api.github.com/repos/commerceguys/intl/zipball/de1435502068393fae4061818e194e4ea61b98d6",
+ "reference": "de1435502068393fae4061818e194e4ea61b98d6",
"shasum": ""
},
"require": {
@@ -81,7 +81,7 @@
"mikey179/vfsstream": "1.*",
"phpunit/phpunit": "~4.0"
},
- "time": "2016-12-13T12:33:19+00:00",
+ "time": "2017-12-29T00:13:05+00:00",
"type": "library",
"extra": {
"branch-alias": {
@@ -107,17 +107,17 @@
},
{
"name": "ezyang/htmlpurifier",
- "version": "v4.9.3",
- "version_normalized": "4.9.3.0",
+ "version": "v4.10.0",
+ "version_normalized": "4.10.0.0",
"source": {
"type": "git",
"url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "95e1bae3182efc0f3422896a3236e991049dac69"
+ "reference": "d85d39da4576a6934b72480be6978fb10c860021"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/95e1bae3182efc0f3422896a3236e991049dac69",
- "reference": "95e1bae3182efc0f3422896a3236e991049dac69",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/d85d39da4576a6934b72480be6978fb10c860021",
+ "reference": "d85d39da4576a6934b72480be6978fb10c860021",
"shasum": ""
},
"require": {
@@ -126,7 +126,7 @@
"require-dev": {
"simpletest/simpletest": "^1.1"
},
- "time": "2017-06-03T02:28:16+00:00",
+ "time": "2018-02-23T01:58:20+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -259,33 +259,28 @@
},
{
"name": "michelf/php-markdown",
- "version": "1.7.0",
- "version_normalized": "1.7.0.0",
+ "version": "1.8.0",
+ "version_normalized": "1.8.0.0",
"source": {
"type": "git",
"url": "https://github.com/michelf/php-markdown.git",
- "reference": "1f51cc520948f66cd2af8cbc45a5ee175e774220"
+ "reference": "01ab082b355bf188d907b9929cd99b2923053495"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/michelf/php-markdown/zipball/1f51cc520948f66cd2af8cbc45a5ee175e774220",
- "reference": "1f51cc520948f66cd2af8cbc45a5ee175e774220",
+ "url": "https://api.github.com/repos/michelf/php-markdown/zipball/01ab082b355bf188d907b9929cd99b2923053495",
+ "reference": "01ab082b355bf188d907b9929cd99b2923053495",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
- "time": "2016-10-29T18:58:20+00:00",
+ "time": "2018-01-15T00:49:33+00:00",
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-lib": "1.4.x-dev"
- }
- },
"installation-source": "dist",
"autoload": {
- "psr-0": {
- "Michelf": ""
+ "psr-4": {
+ "Michelf\\": "Michelf/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -551,17 +546,17 @@
},
{
"name": "sabre/http",
- "version": "4.2.3",
- "version_normalized": "4.2.3.0",
+ "version": "v4.2.4",
+ "version_normalized": "4.2.4.0",
"source": {
"type": "git",
"url": "https://github.com/sabre-io/http.git",
- "reference": "0295f9a3ee39be97e0898592fc19e42421e0cd93"
+ "reference": "acccec4ba863959b2d10c1fa0fb902736c5c8956"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sabre-io/http/zipball/0295f9a3ee39be97e0898592fc19e42421e0cd93",
- "reference": "0295f9a3ee39be97e0898592fc19e42421e0cd93",
+ "url": "https://api.github.com/repos/sabre-io/http/zipball/acccec4ba863959b2d10c1fa0fb902736c5c8956",
+ "reference": "acccec4ba863959b2d10c1fa0fb902736c5c8956",
"shasum": ""
},
"require": {
@@ -578,7 +573,7 @@
"suggest": {
"ext-curl": " to make http requests with the Client class"
},
- "time": "2017-06-12T07:53:04+00:00",
+ "time": "2018-02-23T11:10:29+00:00",
"type": "library",
"installation-source": "dist",
"autoload": {
@@ -662,17 +657,17 @@
},
{
"name": "sabre/vobject",
- "version": "4.1.3",
- "version_normalized": "4.1.3.0",
+ "version": "4.1.5",
+ "version_normalized": "4.1.5.0",
"source": {
"type": "git",
"url": "https://github.com/sabre-io/vobject.git",
- "reference": "df9916813d1d83e4f761c4cba13361ee74196fac"
+ "reference": "0928660e92d46d2d24336a6db320636aa3a75414"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sabre-io/vobject/zipball/df9916813d1d83e4f761c4cba13361ee74196fac",
- "reference": "df9916813d1d83e4f761c4cba13361ee74196fac",
+ "url": "https://api.github.com/repos/sabre-io/vobject/zipball/0928660e92d46d2d24336a6db320636aa3a75414",
+ "reference": "0928660e92d46d2d24336a6db320636aa3a75414",
"shasum": ""
},
"require": {
@@ -681,13 +676,13 @@
"sabre/xml": ">=1.5 <3.0"
},
"require-dev": {
- "phpunit/phpunit": "> 4.8, <6.0.0",
+ "phpunit/phpunit": "> 4.8.35, <6.0.0",
"sabre/cs": "^1.0.0"
},
"suggest": {
"hoa/bench": "If you would like to run the benchmark scripts"
},
- "time": "2017-10-18T08:29:40+00:00",
+ "time": "2018-03-08T21:06:39+00:00",
"bin": [
"bin/vobject",
"bin/generate_vcards"
diff --git a/vendor/ezyang/htmlpurifier/NEWS b/vendor/ezyang/htmlpurifier/NEWS
index fd5d56cf0..9b6e10232 100644
--- a/vendor/ezyang/htmlpurifier/NEWS
+++ b/vendor/ezyang/htmlpurifier/NEWS
@@ -9,6 +9,20 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
. Internal change
==========================
+4.10.0, released 2018-02-22
+# PHP 5.3 is no longer officially supported by HTML Purifier
+ (we did not specifically break support, but we are no longer
+ testing on PHP 5.3)
+! Relative CSS length units are now supported
+- A few PHP 7.2 compatibility fixes, thanks John Flatness
+ <john@zerocrates.org>
+- Improve portability with old versions of libxml which don't
+ support accessing the data of a node
+- IDNA2008 is now used for converting domains to ASCII, fixing
+ some rather strange bugs with international domains
+- Fix race condition resulting in E_WARNING when creating
+ directories with Serializer
+
4.9.3, released 2017-06-02
- Workaround PHP 7.1 infinite loop when opcode cache is enabled.
Thanks @Xiphin (#134, #135)
diff --git a/vendor/ezyang/htmlpurifier/README.md b/vendor/ezyang/htmlpurifier/README.md
index b321f2b69..37715c607 100644
--- a/vendor/ezyang/htmlpurifier/README.md
+++ b/vendor/ezyang/htmlpurifier/README.md
@@ -2,7 +2,7 @@ HTML Purifier [![Build Status](https://secure.travis-ci.org/ezyang/htmlpurifier.
=============
HTML Purifier is an HTML filtering solution that uses a unique combination
-of robust whitelists and agressive parsing to ensure that not only are
+of robust whitelists and aggressive parsing to ensure that not only are
XSS attacks thwarted, but the resulting HTML is standards compliant.
HTML Purifier is oriented towards richly formatted documents from
@@ -26,4 +26,4 @@ Package available on [Composer](https://packagist.org/packages/ezyang/htmlpurifi
If you're using Composer to manage dependencies, you can use
- $ composer require "ezyang/htmlpurifier": "dev-master"
+ $ composer require "ezyang/htmlpurifier":"dev-master"
diff --git a/vendor/ezyang/htmlpurifier/VERSION b/vendor/ezyang/htmlpurifier/VERSION
index e94f14fa9..1910ba9d2 100644
--- a/vendor/ezyang/htmlpurifier/VERSION
+++ b/vendor/ezyang/htmlpurifier/VERSION
@@ -1 +1 @@
-4.9.3 \ No newline at end of file
+4.10.0 \ No newline at end of file
diff --git a/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload-legacy.php b/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload-legacy.php
new file mode 100644
index 000000000..d1485bf2e
--- /dev/null
+++ b/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload-legacy.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * @file
+ * Legacy autoloader for systems lacking spl_autoload_register
+ *
+ * Must be separate to prevent deprecation warning on PHP 7.2
+ */
+
+function __autoload($class)
+{
+ return HTMLPurifierExtras::autoload($class);
+}
+
+// vim: et sw=4 sts=4
diff --git a/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload.php b/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload.php
index de4a8aaaf..69c909538 100644
--- a/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload.php
+++ b/vendor/ezyang/htmlpurifier/extras/HTMLPurifierExtras.autoload.php
@@ -17,10 +17,7 @@ if (function_exists('spl_autoload_register')) {
spl_autoload_register('__autoload');
}
} elseif (!function_exists('__autoload')) {
- function __autoload($class)
- {
- return HTMLPurifierExtras::autoload($class);
- }
+ require dirname(__FILE__) . '/HTMLPurifierExtras.autoload-legacy.php';
}
// vim: et sw=4 sts=4
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php
new file mode 100644
index 000000000..c271cd158
--- /dev/null
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * @file
+ * Legacy autoloader for systems lacking spl_autoload_register
+ *
+ * Must be separate to prevent deprecation warning on PHP 7.2
+ */
+
+function __autoload($class)
+{
+ return HTMLPurifier_Bootstrap::autoload($class);
+}
+
+// vim: et sw=4 sts=4
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php
index c3ea67e81..9d8d29926 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload.php
@@ -14,10 +14,7 @@ if (function_exists('spl_autoload_register') && function_exists('spl_autoload_un
spl_autoload_register('__autoload');
}
} elseif (!function_exists('__autoload')) {
- function __autoload($class)
- {
- return HTMLPurifier_Bootstrap::autoload($class);
- }
+ require dirname(__FILE__) . '/HTMLPurifier.autoload-legacy.php';
}
if (ini_get('zend.ze1_compatibility_mode')) {
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
index e8bce5c85..321bdc566 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php
@@ -7,7 +7,7 @@
* primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS
* FILE, changes will be overwritten the next time the script is run.
*
- * @version 4.9.3
+ * @version 4.10.0
*
* @warning
* You must *not* include any other HTML Purifier files before this file,
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
index b4605ebc6..bada5188b 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php
@@ -19,7 +19,7 @@
*/
/*
- HTML Purifier 4.9.3 - Standards Compliant HTML Filtering
+ HTML Purifier 4.10.0 - Standards Compliant HTML Filtering
Copyright (C) 2006-2008 Edward Z. Yang
This library is free software; you can redistribute it and/or
@@ -58,12 +58,12 @@ class HTMLPurifier
* Version of HTML Purifier.
* @type string
*/
- public $version = '4.9.3';
+ public $version = '4.10.0';
/**
* Constant with version of HTML Purifier.
*/
- const VERSION = '4.9.3';
+ const VERSION = '4.10.0';
/**
* Global configuration object.
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
index 3b4d18674..e54a3344a 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php
@@ -97,7 +97,7 @@ class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef
// PHP 5.3 and later support this functionality natively
if (function_exists('idn_to_ascii')) {
- $string = idn_to_ascii($string);
+ $string = idn_to_ascii($string, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46);
// If we have Net_IDNA2 support, we can support IRIs by
// punycoding them. (This is the most portable thing to do,
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
index 3648364b3..f37cf3713 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php
@@ -21,7 +21,7 @@ class HTMLPurifier_Config
* HTML Purifier's version
* @type string
*/
- public $version = '4.9.3';
+ public $version = '4.10.0';
/**
* Whether or not to automatically finalize
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
index 952e48d47..b82c6bb20 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php
@@ -217,9 +217,14 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac
$directory = $this->generateDirectoryPath($config);
$chmod = $config->get('Cache.SerializerPermissions');
if ($chmod === null) {
- // TODO: This races
- if (is_dir($directory)) return true;
- return mkdir($directory);
+ if (!@mkdir($directory) && !is_dir($directory)) {
+ trigger_error(
+ 'Could not create directory ' . $directory . '',
+ E_USER_WARNING
+ );
+ return false;
+ }
+ return true;
}
if (!is_dir($directory)) {
$base = $this->generateBaseDirectoryPath($config);
@@ -233,7 +238,7 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac
} elseif (!$this->_testPermissions($base, $chmod)) {
return false;
}
- if (!mkdir($directory, $chmod)) {
+ if (!@mkdir($directory, $chmod) && !is_dir($directory)) {
trigger_error(
'Could not create directory ' . $directory . '',
E_USER_WARNING
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README
index 2e35c1c3d..2e35c1c3d 100755..100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php
index 5060eef9e..116b470c3 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Injector.php
@@ -157,11 +157,13 @@ abstract class HTMLPurifier_Injector
return false;
}
// check for exclusion
- for ($i = count($this->currentNesting) - 2; $i >= 0; $i--) {
- $node = $this->currentNesting[$i];
- $def = $this->htmlDefinition->info[$node->name];
- if (isset($def->excludes[$name])) {
- return false;
+ if (!empty($this->currentNesting)) {
+ for ($i = count($this->currentNesting) - 2; $i >= 0; $i--) {
+ $node = $this->currentNesting[$i];
+ $def = $this->htmlDefinition->info[$node->name];
+ if (isset($def->excludes[$name])) {
+ return false;
+ }
}
}
return true;
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php
index bbfbe6624..e70da55a9 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Length.php
@@ -26,12 +26,14 @@ class HTMLPurifier_Length
protected $isValid;
/**
- * Array Lookup array of units recognized by CSS 2.1
+ * Array Lookup array of units recognized by CSS 3
* @type array
*/
protected static $allowedUnits = array(
'em' => true, 'ex' => true, 'px' => true, 'in' => true,
- 'cm' => true, 'mm' => true, 'pt' => true, 'pc' => true
+ 'cm' => true, 'mm' => true, 'pt' => true, 'pc' => true,
+ 'ch' => true, 'rem' => true, 'vw' => true, 'vh' => true,
+ 'vmin' => true, 'vmax' => true
);
/**
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
index 22ab5820c..6238a99e3 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php
@@ -127,6 +127,41 @@ class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
}
/**
+ * Portably retrieve the tag name of a node; deals with older versions
+ * of libxml like 2.7.6
+ * @param DOMNode $node
+ */
+ protected function getTagName($node)
+ {
+ if (property_exists($node, 'tagName')) {
+ return $node->tagName;
+ } else if (property_exists($node, 'nodeName')) {
+ return $node->nodeName;
+ } else if (property_exists($node, 'localName')) {
+ return $node->localName;
+ }
+ return null;
+ }
+
+ /**
+ * Portably retrieve the data of a node; deals with older versions
+ * of libxml like 2.7.6
+ * @param DOMNode $node
+ */
+ protected function getData($node)
+ {
+ if (property_exists($node, 'data')) {
+ return $node->data;
+ } else if (property_exists($node, 'nodeValue')) {
+ return $node->nodeValue;
+ } else if (property_exists($node, 'textContent')) {
+ return $node->textContent;
+ }
+ return null;
+ }
+
+
+ /**
* @param DOMNode $node DOMNode to be tokenized.
* @param HTMLPurifier_Token[] $tokens Array-list of already tokenized tokens.
* @param bool $collect Says whether or start and close are collected, set to
@@ -141,7 +176,10 @@ class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
// but we're not getting the character reference nodes because
// those should have been preprocessed
if ($node->nodeType === XML_TEXT_NODE) {
- $tokens[] = $this->factory->createText($node->data);
+ $data = $this->getData($node); // Handle variable data property
+ if ($data !== null) {
+ $tokens[] = $this->factory->createText($data);
+ }
return false;
} elseif ($node->nodeType === XML_CDATA_SECTION_NODE) {
// undo libxml's special treatment of <script> and <style> tags
@@ -171,21 +209,20 @@ class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
// not-well tested: there may be other nodes we have to grab
return false;
}
-
$attr = $node->hasAttributes() ? $this->transformAttrToAssoc($node->attributes) : array();
-
+ $tag_name = $this->getTagName($node); // Handle variable tagName property
+ if (empty($tag_name)) {
+ return (bool) $node->childNodes->length;
+ }
// We still have to make sure that the element actually IS empty
if (!$node->childNodes->length) {
if ($collect) {
- $tokens[] = $this->factory->createEmpty($node->tagName, $attr);
+ $tokens[] = $this->factory->createEmpty($tag_name, $attr);
}
return false;
} else {
if ($collect) {
- $tokens[] = $this->factory->createStart(
- $tag_name = $node->tagName, // somehow, it get's dropped
- $attr
- );
+ $tokens[] = $this->factory->createStart($tag_name, $attr);
}
return true;
}
@@ -197,10 +234,10 @@ class HTMLPurifier_Lexer_DOMLex extends HTMLPurifier_Lexer
*/
protected function createEndNode($node, &$tokens)
{
- $tokens[] = $this->factory->createEnd($node->tagName);
+ $tag_name = $this->getTagName($node); // Handle variable tagName property
+ $tokens[] = $this->factory->createEnd($tag_name);
}
-
/**
* Converts a DOMNamedNodeMap of DOMAttr objects into an assoc array.
*
diff --git a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
index 0b452d17f..72476ddf3 100644
--- a/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
+++ b/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/PH5P.php
@@ -1507,7 +1507,7 @@ class HTML5
$entity = $this->character($start, $this->char);
$cond = strlen($e_name) > 0;
- // The rest of the parsing happens bellow.
+ // The rest of the parsing happens below.
break;
// Anything else
@@ -1535,7 +1535,7 @@ class HTML5
}
$cond = isset($entity);
- // The rest of the parsing happens bellow.
+ // The rest of the parsing happens below.
break;
}
diff --git a/vendor/ezyang/htmlpurifier/maintenance/PH5P.php b/vendor/ezyang/htmlpurifier/maintenance/PH5P.php
index 9d83dcbf5..a04273e01 100644
--- a/vendor/ezyang/htmlpurifier/maintenance/PH5P.php
+++ b/vendor/ezyang/htmlpurifier/maintenance/PH5P.php
@@ -1080,7 +1080,7 @@ class HTML5
$entity = $this->character($start, $this->char);
$cond = strlen($e_name) > 0;
- // The rest of the parsing happens bellow.
+ // The rest of the parsing happens below.
break;
// Anything else
@@ -1102,7 +1102,7 @@ class HTML5
}
$cond = isset($entity);
- // The rest of the parsing happens bellow.
+ // The rest of the parsing happens below.
break;
}
diff --git a/vendor/ezyang/htmlpurifier/maintenance/compile-doxygen.sh b/vendor/ezyang/htmlpurifier/maintenance/compile-doxygen.sh
index ecd1127fd..ecd1127fd 100755..100644
--- a/vendor/ezyang/htmlpurifier/maintenance/compile-doxygen.sh
+++ b/vendor/ezyang/htmlpurifier/maintenance/compile-doxygen.sh
diff --git a/vendor/ezyang/htmlpurifier/maintenance/flush-definition-cache.php b/vendor/ezyang/htmlpurifier/maintenance/flush-definition-cache.php
index 138badb65..138badb65 100755..100644
--- a/vendor/ezyang/htmlpurifier/maintenance/flush-definition-cache.php
+++ b/vendor/ezyang/htmlpurifier/maintenance/flush-definition-cache.php
diff --git a/vendor/ezyang/htmlpurifier/maintenance/generate-entity-file.php b/vendor/ezyang/htmlpurifier/maintenance/generate-entity-file.php
index ff1713e39..ff1713e39 100755..100644
--- a/vendor/ezyang/htmlpurifier/maintenance/generate-entity-file.php
+++ b/vendor/ezyang/htmlpurifier/maintenance/generate-entity-file.php
diff --git a/vendor/ezyang/htmlpurifier/maintenance/generate-standalone.php b/vendor/ezyang/htmlpurifier/maintenance/generate-standalone.php
index 254d4d83b..254d4d83b 100755..100644
--- a/vendor/ezyang/htmlpurifier/maintenance/generate-standalone.php
+++ b/vendor/ezyang/htmlpurifier/maintenance/generate-standalone.php
diff --git a/vendor/ezyang/htmlpurifier/maintenance/merge-library.php b/vendor/ezyang/htmlpurifier/maintenance/merge-library.php
index de2eecdc0..de2eecdc0 100755..100644
--- a/vendor/ezyang/htmlpurifier/maintenance/merge-library.php
+++ b/vendor/ezyang/htmlpurifier/maintenance/merge-library.php
diff --git a/vendor/ezyang/htmlpurifier/maintenance/regenerate-docs.sh b/vendor/ezyang/htmlpurifier/maintenance/regenerate-docs.sh
index 6f4d720ff..6f4d720ff 100755..100644
--- a/vendor/ezyang/htmlpurifier/maintenance/regenerate-docs.sh
+++ b/vendor/ezyang/htmlpurifier/maintenance/regenerate-docs.sh
diff --git a/vendor/michelf/php-markdown/.gitignore b/vendor/michelf/php-markdown/.gitignore
new file mode 100644
index 000000000..5bd6475b7
--- /dev/null
+++ b/vendor/michelf/php-markdown/.gitignore
@@ -0,0 +1,3 @@
+*~
+/composer.lock
+/vendor/
diff --git a/vendor/michelf/php-markdown/License.md b/vendor/michelf/php-markdown/License.md
index c16197b69..b3df08f99 100644
--- a/vendor/michelf/php-markdown/License.md
+++ b/vendor/michelf/php-markdown/License.md
@@ -1,11 +1,11 @@
PHP Markdown Lib
-Copyright (c) 2004-2016 Michel Fortin
+Copyright (c) 2004-2018 Michel Fortin
<https://michelf.ca/>
All rights reserved.
Based on Markdown
-Copyright (c) 2003-2006 John Gruber
-<https://daringfireball.net/>
+Copyright (c) 2003-2006 John Gruber
+<https://daringfireball.net/>
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/vendor/michelf/php-markdown/Michelf/Markdown.php b/vendor/michelf/php-markdown/Michelf/Markdown.php
index c3eaf4464..e4c2c2361 100644
--- a/vendor/michelf/php-markdown/Michelf/Markdown.php
+++ b/vendor/michelf/php-markdown/Michelf/Markdown.php
@@ -4,7 +4,7 @@
*
* @package php-markdown
* @author Michel Fortin <michel.fortin@michelf.com>
- * @copyright 2004-2016 Michel Fortin <https://michelf.com/projects/php-markdown/>
+ * @copyright 2004-2018 Michel Fortin <https://michelf.com/projects/php-markdown/>
* @copyright (Original Markdown) 2004-2006 John Gruber <https://daringfireball.net/projects/markdown/>
*/
@@ -18,7 +18,7 @@ class Markdown implements MarkdownInterface {
* Define the package version
* @var string
*/
- const MARKDOWNLIB_VERSION = "1.7.0";
+ const MARKDOWNLIB_VERSION = "1.8.0";
/**
* Simple function interface - Initialize the parser and return the result
@@ -61,14 +61,14 @@ class Markdown implements MarkdownInterface {
* @var int
*/
public $tab_width = 4;
-
+
/**
* Change to `true` to disallow markup or entities.
* @var boolean
*/
public $no_markup = false;
public $no_entities = false;
-
+
/**
* Change to `true` to enable line breaks on \n without two trailling spaces
@@ -94,7 +94,7 @@ class Markdown implements MarkdownInterface {
* @var callable
*/
public $header_id_func = null;
-
+
/**
* Optional function for converting code block content to HTML
* @var callable
@@ -111,7 +111,7 @@ class Markdown implements MarkdownInterface {
* Class attribute to toggle "enhanced ordered list" behaviour
* setting this to true will allow ordered lists to start from the index
* number that is defined first.
- *
+ *
* For example:
* 2. List item two
* 3. List item three
@@ -155,17 +155,17 @@ class Markdown implements MarkdownInterface {
public function __construct() {
$this->_initDetab();
$this->prepareItalicsAndBold();
-
- $this->nested_brackets_re =
+
+ $this->nested_brackets_re =
str_repeat('(?>[^\[\]]+|\[', $this->nested_brackets_depth).
str_repeat('\])*', $this->nested_brackets_depth);
-
- $this->nested_url_parenthesis_re =
+
+ $this->nested_url_parenthesis_re =
str_repeat('(?>[^()\s]+|\(', $this->nested_url_parenthesis_depth).
str_repeat('(?>\)))*', $this->nested_url_parenthesis_depth);
-
+
$this->escape_chars_re = '['.preg_quote($this->escape_chars).']';
-
+
// Sort document, block, and span gamut in ascendent priority order.
asort($this->document_gamut);
asort($this->block_gamut);
@@ -180,13 +180,19 @@ class Markdown implements MarkdownInterface {
protected $urls = array();
protected $titles = array();
protected $html_hashes = array();
-
+
/**
* Status flag to avoid invalid nesting.
* @var boolean
*/
protected $in_anchor = false;
-
+
+ /**
+ * Status flag to avoid invalid nesting.
+ * @var boolean
+ */
+ protected $in_emphasis_processing = false;
+
/**
* Called before the transformation process starts to setup parser states.
* @return void
@@ -197,8 +203,9 @@ class Markdown implements MarkdownInterface {
$this->titles = $this->predef_titles;
$this->html_hashes = array();
$this->in_anchor = false;
+ $this->in_emphasis_processing = false;
}
-
+
/**
* Called after the transformation process to clear any variable which may
* be taking up memory unnecessarly.
@@ -221,7 +228,7 @@ class Markdown implements MarkdownInterface {
*/
public function transform($text) {
$this->setup();
-
+
# Remove UTF-8 BOM and marker character in input, if present.
$text = preg_replace('{^\xEF\xBB\xBF|\x1A}', '', $text);
@@ -248,7 +255,7 @@ class Markdown implements MarkdownInterface {
foreach ($this->document_gamut as $method => $priority) {
$text = $this->$method($text);
}
-
+
$this->teardown();
return $text . "\n";
@@ -271,7 +278,7 @@ class Markdown implements MarkdownInterface {
* @return string
*/
protected function stripLinkDefinitions($text) {
-
+
$less_than_tab = $this->tab_width - 1;
// Link defs are in the form: ^[id]: url "optional title"
@@ -338,8 +345,8 @@ class Markdown implements MarkdownInterface {
* for is hard-coded:
*
* * List "a" is made of tags which can be both inline or block-level.
- * These will be treated block-level when the start tag is alone on
- * its line, otherwise they're not matched here and will be taken as
+ * These will be treated block-level when the start tag is alone on
+ * its line, otherwise they're not matched here and will be taken as
* inline later.
* * List "b" is made of tags which are always block-level;
*/
@@ -363,7 +370,7 @@ class Markdown implements MarkdownInterface {
|
\'[^\']*\' # text inside single quotes (tolerate ">")
)*
- )?
+ )?
';
$content =
str_repeat('
@@ -380,7 +387,7 @@ class Markdown implements MarkdownInterface {
str_repeat('
</\2\s*> # closing nested tag
)
- |
+ |
<(?!/\2\s*> # other tags with a different name
)
)*',
@@ -409,9 +416,9 @@ class Markdown implements MarkdownInterface {
)
( # save in $1
- # Match from `\n<tag>` to `</tag>\n`, handling nested tags
+ # Match from `\n<tag>` to `</tag>\n`, handling nested tags
# in between.
-
+
[ ]{0,'.$less_than_tab.'}
<('.$block_tags_b_re.')# start tag = $2
'.$attr.'> # attributes followed by > and \n
@@ -429,28 +436,28 @@ class Markdown implements MarkdownInterface {
</\3> # the matching end tag
[ ]* # trailing spaces/tabs
(?=\n+|\Z) # followed by a newline or end of document
-
- | # Special case just for <hr />. It was easier to make a special
+
+ | # Special case just for <hr />. It was easier to make a special
# case than to make the other regex more complicated.
-
+
[ ]{0,'.$less_than_tab.'}
<(hr) # start tag = $2
'.$attr.' # attributes
/?> # the matching end tag
[ ]*
(?=\n{2,}|\Z) # followed by a blank line or end of document
-
+
| # Special case for standalone HTML comments:
-
+
[ ]{0,'.$less_than_tab.'}
(?s:
<!-- .*? -->
)
[ ]*
(?=\n{2,}|\Z) # followed by a blank line or end of document
-
+
| # PHP and ASP-style processor instructions (<? and <%)
-
+
[ ]{0,'.$less_than_tab.'}
(?s:
<([?%]) # $2
@@ -459,7 +466,7 @@ class Markdown implements MarkdownInterface {
)
[ ]*
(?=\n{2,}|\Z) # followed by a blank line or end of document
-
+
)
)}Sxmi',
array($this, '_hashHTMLBlocks_callback'),
@@ -479,9 +486,9 @@ class Markdown implements MarkdownInterface {
$key = $this->hashBlock($text);
return "\n\n$key\n\n";
}
-
+
/**
- * Called whenever a tag must be hashed when a function insert an atomic
+ * Called whenever a tag must be hashed when a function insert an atomic
* element in the text stream. Passing $text to through this function gives
* a unique text-token which will be reverted back when calling unhash.
*
@@ -498,7 +505,7 @@ class Markdown implements MarkdownInterface {
// Swap back any tag hash found in $text so we do not have to `unhash`
// multiple times at the end.
$text = $this->unhash($text);
-
+
// Then hash the block.
static $i = 0;
$key = "$boundary\x1A" . ++$i . $boundary;
@@ -531,10 +538,10 @@ class Markdown implements MarkdownInterface {
/**
* Run block gamut tranformations.
*
- * We need to escape raw HTML in Markdown source before doing anything
- * else. This need to be done for each block, and not only at the
+ * We need to escape raw HTML in Markdown source before doing anything
+ * else. This need to be done for each block, and not only at the
* begining in the Markdown function since hashed blocks can be part of
- * list items and could have been indented. Indented blocks would have
+ * list items and could have been indented. Indented blocks would have
* been seen as a code block in a previous pass of hashHTMLBlocks.
*
* @param string $text
@@ -546,7 +553,7 @@ class Markdown implements MarkdownInterface {
}
/**
- * Run block gamut tranformations, without hashing HTML blocks. This is
+ * Run block gamut tranformations, without hashing HTML blocks. This is
* useful when HTML blocks are known to be already hashed, like in the first
* whole-document pass.
*
@@ -554,11 +561,11 @@ class Markdown implements MarkdownInterface {
* @return string
*/
protected function runBasicBlockGamut($text) {
-
+
foreach ($this->block_gamut as $method => $priority) {
$text = $this->$method($text);
}
-
+
// Finally form paragraph and restore hashed blocks.
$text = $this->formParagraphs($text);
@@ -582,7 +589,7 @@ class Markdown implements MarkdownInterface {
[ ]* # Tailing spaces
$ # End of line.
}mx',
- "\n".$this->hashBlock("<hr$this->empty_element_suffix")."\n",
+ "\n".$this->hashBlock("<hr$this->empty_element_suffix")."\n",
$text
);
}
@@ -629,10 +636,10 @@ class Markdown implements MarkdownInterface {
*/
protected function doHardBreaks($text) {
if ($this->hard_wrap) {
- return preg_replace_callback('/ *\n/',
+ return preg_replace_callback('/ *\n/',
array($this, '_doHardBreaks_callback'), $text);
} else {
- return preg_replace_callback('/ {2,}\n/',
+ return preg_replace_callback('/ {2,}\n/',
array($this, '_doHardBreaks_callback'), $text);
}
}
@@ -656,7 +663,7 @@ class Markdown implements MarkdownInterface {
return $text;
}
$this->in_anchor = true;
-
+
// First, handle reference-style links: [link text] [id]
$text = preg_replace_callback('{
( # wrap whole match in $1
@@ -729,7 +736,7 @@ class Markdown implements MarkdownInterface {
// for shortcut links like [this][] or [this].
$link_id = $link_text;
}
-
+
// lower-case and turn embedded newlines into spaces
$link_id = strtolower($link_id);
$link_id = preg_replace('{[ ]?\n}', ' ', $link_id);
@@ -737,14 +744,14 @@ class Markdown implements MarkdownInterface {
if (isset($this->urls[$link_id])) {
$url = $this->urls[$link_id];
$url = $this->encodeURLAttribute($url);
-
+
$result = "<a href=\"$url\"";
if ( isset( $this->titles[$link_id] ) ) {
$title = $this->titles[$link_id];
$title = $this->encodeAttribute($title);
$result .= " title=\"$title\"";
}
-
+
$link_text = $this->runSpanGamut($link_text);
$result .= ">$link_text</a>";
$result = $this->hashPart($result);
@@ -779,7 +786,7 @@ class Markdown implements MarkdownInterface {
$title = $this->encodeAttribute($title);
$result .= " title=\"$title\"";
}
-
+
$link_text = $this->runSpanGamut($link_text);
$result .= ">$link_text</a>";
@@ -807,7 +814,7 @@ class Markdown implements MarkdownInterface {
\]
)
- }xs',
+ }xs',
array($this, '_doImages_reference_callback'), $text);
// Next, handle inline images: ![alt text](url "optional title")
@@ -906,7 +913,7 @@ class Markdown implements MarkdownInterface {
* Setext-style headers:
* Header 1
* ========
- *
+ *
* Header 2
* --------
*/
@@ -944,7 +951,7 @@ class Markdown implements MarkdownInterface {
if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1])) {
return $matches[0];
}
-
+
$level = $matches[2]{0} == '=' ? 1 : 2;
// ID attribute generation
@@ -977,7 +984,7 @@ class Markdown implements MarkdownInterface {
* @param string $headerValue
* @return string
*/
- protected function _generateIdFromHeaderValue($headerValue) {
+ protected function _generateIdFromHeaderValue($headerValue) {
if (!is_callable($this->header_id_func)) {
return "";
}
@@ -1035,10 +1042,10 @@ class Markdown implements MarkdownInterface {
)
)
'; // mx
-
+
// We use a different prefix before nested lists than top-level lists.
//See extended comment in _ProcessListItems().
-
+
if ($this->list_level) {
$text = preg_replace_callback('{
^
@@ -1132,7 +1139,7 @@ class Markdown implements MarkdownInterface {
* without resorting to mind-reading. Perhaps the solution is to
* change the syntax rules such that sub-lists must start with a
* starting cardinal number; e.g. "1." or "a.".
- */
+ */
$this->list_level++;
// Trim trailing blank lines:
@@ -1166,7 +1173,7 @@ class Markdown implements MarkdownInterface {
$marker_space = $matches[3];
$tailing_blank_line =& $matches[5];
- if ($leading_line || $tailing_blank_line ||
+ if ($leading_line || $tailing_blank_line ||
preg_match('/\n{2,}/', $item))
{
// Replace marker with the appropriate whitespace indentation
@@ -1273,7 +1280,7 @@ class Markdown implements MarkdownInterface {
* @var array
*/
protected $em_strong_prepared_relist;
-
+
/**
* Prepare regular expressions for searching emphasis tokens in any
* context.
@@ -1289,7 +1296,7 @@ class Markdown implements MarkdownInterface {
}
$token_relist[] = $em_re;
$token_relist[] = $strong_re;
-
+
// Construct master expression from list.
$token_re = '{(' . implode('|', $token_relist) . ')}';
$this->em_strong_prepared_relist["$em$strong"] = $token_re;
@@ -1303,24 +1310,29 @@ class Markdown implements MarkdownInterface {
* @return string
*/
protected function doItalicsAndBold($text) {
+ if ($this->in_emphasis_processing) {
+ return $text; // avoid reentrency
+ }
+ $this->in_emphasis_processing = true;
+
$token_stack = array('');
$text_stack = array('');
$em = '';
$strong = '';
$tree_char_em = false;
-
+
while (1) {
// Get prepared regular expression for seraching emphasis tokens
// in current context.
$token_re = $this->em_strong_prepared_relist["$em$strong"];
-
- // Each loop iteration search for the next emphasis token.
+
+ // Each loop iteration search for the next emphasis token.
// Each token is then passed to handleSpanToken.
$parts = preg_split($token_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
$text_stack[0] .= $parts[0];
$token =& $parts[1];
$text =& $parts[2];
-
+
if (empty($token)) {
// Reached end of text span: empty stack without emitting.
// any more emphasis.
@@ -1330,7 +1342,7 @@ class Markdown implements MarkdownInterface {
}
break;
}
-
+
$token_len = strlen($token);
if ($tree_char_em) {
// Reached closing marker while inside a three-char emphasis.
@@ -1369,7 +1381,7 @@ class Markdown implements MarkdownInterface {
$$tag = ''; // $$tag stands for $em or $strong
}
} else {
- // Reached opening three-char emphasis marker. Push on token
+ // Reached opening three-char emphasis marker. Push on token
// stack; will be handled by the special condition above.
$em = $token{0};
$strong = "$em$em";
@@ -1383,6 +1395,7 @@ class Markdown implements MarkdownInterface {
if (strlen($token_stack[0]) == 1) {
$text_stack[1] .= array_shift($token_stack);
$text_stack[0] .= array_shift($text_stack);
+ $em = '';
}
// Closing strong marker:
array_shift($token_stack);
@@ -1417,6 +1430,7 @@ class Markdown implements MarkdownInterface {
}
}
}
+ $this->in_emphasis_processing = false;
return $text_stack[0];
}
@@ -1453,9 +1467,9 @@ class Markdown implements MarkdownInterface {
$bq = $this->runBlockGamut($bq); // recurse
$bq = preg_replace('/^/m', " ", $bq);
- // These leading spaces cause problem with <pre> content,
+ // These leading spaces cause problem with <pre> content,
// so we need to fix that:
- $bq = preg_replace_callback('{(\s*<pre>.+?</pre>)}sx',
+ $bq = preg_replace_callback('{(\s*<pre>.+?</pre>)}sx',
array($this, '_doBlockQuotes_callback2'), $bq);
return "\n" . $this->hashBlock("<blockquote>\n$bq\n</blockquote>") . "\n\n";
@@ -1525,7 +1539,7 @@ class Markdown implements MarkdownInterface {
// // We can't call Markdown(), because that resets the hash;
// // that initialization code should be pulled into its own sub, though.
// $div_content = $this->hashHTMLBlocks($div_content);
-//
+//
// // Run document gamut methods on the content.
// foreach ($this->document_gamut as $method => $priority) {
// $div_content = $this->$method($div_content);
@@ -1582,9 +1596,9 @@ class Markdown implements MarkdownInterface {
return $url;
}
-
+
/**
- * Smart processing for ampersands and angle brackets that need to
+ * Smart processing for ampersands and angle brackets that need to
* be encoded. Valid character entities are left alone unless the
* no-entities mode is set.
* @param string $text
@@ -1596,7 +1610,7 @@ class Markdown implements MarkdownInterface {
} else {
// Ampersand-encoding based entirely on Nat Irons's Amputator
// MT plugin: <http://bumppo.net/projects/amputator/>
- $text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/',
+ $text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/',
'&amp;', $text);
}
// Encode remaining <'s
@@ -1724,7 +1738,7 @@ class Markdown implements MarkdownInterface {
*/
protected function parseSpan($str) {
$output = '';
-
+
$span_re = '{
(
\\\\'.$this->escape_chars_re.'
@@ -1752,16 +1766,16 @@ class Markdown implements MarkdownInterface {
}xs';
while (1) {
- // Each loop iteration seach for either the next tag, the next
- // openning code span marker, or the next escaped character.
+ // Each loop iteration seach for either the next tag, the next
+ // openning code span marker, or the next escaped character.
// Each token is then passed to handleSpanToken.
$parts = preg_split($span_re, $str, 2, PREG_SPLIT_DELIM_CAPTURE);
-
+
// Create token from text preceding tag.
if ($parts[0] != "") {
$output .= $parts[0];
}
-
+
// Check if we reach the end.
if (isset($parts[1])) {
$output .= $this->handleSpanToken($parts[1], $parts[2]);
@@ -1770,7 +1784,7 @@ class Markdown implements MarkdownInterface {
break;
}
}
-
+
return $output;
}
@@ -1787,7 +1801,7 @@ class Markdown implements MarkdownInterface {
return $this->hashPart("&#". ord($token{1}). ";");
case "`":
// Search for end marker in remaining text.
- if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm',
+ if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm',
$str, $matches))
{
$str = $matches[2];
@@ -1823,11 +1837,11 @@ class Markdown implements MarkdownInterface {
* For each line we separate the line in blocks delemited by tab characters.
* Then we reconstruct every line by adding the appropriate number of space
* between each blocks.
- *
+ *
* @param string $text
* @return string
*/
- protected function detab($text) {
+ protected function detab($text) {
$text = preg_replace_callback('/^.*\t.*$/m',
array($this, '_detab_callback'), $text);
@@ -1842,7 +1856,7 @@ class Markdown implements MarkdownInterface {
protected function _detab_callback($matches) {
$line = $matches[0];
$strlen = $this->utf8_strlen; // strlen function for UTF-8.
-
+
// Split in blocks.
$blocks = explode("\t", $line);
// Add each blocks to the line.
@@ -1850,7 +1864,7 @@ class Markdown implements MarkdownInterface {
unset($blocks[0]); // Do not add first block twice.
foreach ($blocks as $block) {
// Calculate amount of space, insert spaces, insert block.
- $amount = $this->tab_width -
+ $amount = $this->tab_width -
$strlen($line, 'UTF-8') % $this->tab_width;
$line .= str_repeat(" ", $amount) . $block;
}
@@ -1859,20 +1873,20 @@ class Markdown implements MarkdownInterface {
/**
* Check for the availability of the function in the `utf8_strlen` property
- * (initially `mb_strlen`). If the function is not available, create a
+ * (initially `mb_strlen`). If the function is not available, create a
* function that will loosely count the number of UTF-8 characters with a
* regular expression.
* @return void
*/
protected function _initDetab() {
-
+
if (function_exists($this->utf8_strlen)) {
return;
}
- $this->utf8_strlen = create_function('$text', 'return preg_match_all(
- "/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/",
- $text, $m);');
+ $this->utf8_strlen = function($text) {
+ return preg_match_all('/[\x00-\xBF]|[\xC0-\xFF][\x80-\xBF]*/', $text, $m);
+ };
}
/**
@@ -1881,7 +1895,7 @@ class Markdown implements MarkdownInterface {
* @return string
*/
protected function unhash($text) {
- return preg_replace_callback('/(.)\x1A[0-9]+\1/',
+ return preg_replace_callback('/(.)\x1A[0-9]+\1/',
array($this, '_unhash_callback'), $text);
}
diff --git a/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php b/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php
index ac6b1b4f2..a8f7f2c5d 100644
--- a/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php
+++ b/vendor/michelf/php-markdown/Michelf/MarkdownExtra.php
@@ -4,7 +4,7 @@
*
* @package php-markdown
* @author Michel Fortin <michel.fortin@michelf.com>
- * @copyright 2004-2016 Michel Fortin <https://michelf.com/projects/php-markdown/>
+ * @copyright 2004-2018 Michel Fortin <https://michelf.com/projects/php-markdown/>
* @copyright (Original Markdown) 2004-2006 John Gruber <https://daringfireball.net/projects/markdown/>
*/
@@ -23,14 +23,14 @@ class MarkdownExtra extends \Michelf\Markdown {
* @var string
*/
public $fn_id_prefix = "";
-
+
/**
* Optional title attribute for footnote links and backlinks.
* @var string
*/
public $fn_link_title = "";
public $fn_backlink_title = "";
-
+
/**
* Optional class attribute for footnote links and backlinks.
* @var string
@@ -74,19 +74,25 @@ class MarkdownExtra extends \Michelf\Markdown {
public $predef_abbr = array();
/**
+ * Only convert atx-style headers if there's a space between the header and #
+ * @var boolean
+ */
+ public $hashtag_protection = false;
+
+ /**
* Parser implementation
*/
-
+
/**
* Constructor function. Initialize the parser object.
* @return void
*/
public function __construct() {
- // Add extra escapable characters before parent constructor
+ // Add extra escapable characters before parent constructor
// initialize the table.
$this->escape_chars .= ':|';
-
- // Insert extra document, block, and span transformations.
+
+ // Insert extra document, block, and span transformations.
// Parent constructor will do the sorting.
$this->document_gamut += array(
"doFencedCodeBlocks" => 5,
@@ -103,12 +109,12 @@ class MarkdownExtra extends \Michelf\Markdown {
"doFootnotes" => 5,
"doAbbreviations" => 70,
);
-
+
$this->enhanced_ordered_list = true;
parent::__construct();
}
-
-
+
+
/**
* Extra variables used during extra transformations.
* @var array
@@ -118,21 +124,21 @@ class MarkdownExtra extends \Michelf\Markdown {
protected $footnotes_ref_count = array();
protected $footnotes_numbers = array();
protected $abbr_desciptions = array();
- /** @var @string */
+ /** @var string */
protected $abbr_word_re = '';
-
+
/**
* Give the current footnote number.
* @var integer
*/
protected $footnote_counter = 1;
-
+
/**
* Setting up Extra-specific variables.
*/
protected function setup() {
parent::setup();
-
+
$this->footnotes = array();
$this->footnotes_ordered = array();
$this->footnotes_ref_count = array();
@@ -140,7 +146,7 @@ class MarkdownExtra extends \Michelf\Markdown {
$this->abbr_desciptions = array();
$this->abbr_word_re = '';
$this->footnote_counter = 1;
-
+
foreach ($this->predef_abbr as $abbr_word => $abbr_desc) {
if ($this->abbr_word_re)
$this->abbr_word_re .= '|';
@@ -159,11 +165,11 @@ class MarkdownExtra extends \Michelf\Markdown {
$this->footnotes_numbers = array();
$this->abbr_desciptions = array();
$this->abbr_word_re = '';
-
+
parent::teardown();
}
-
-
+
+
/**
* Extra attribute parser
*/
@@ -197,7 +203,7 @@ class MarkdownExtra extends \Michelf\Markdown {
*/
protected function doExtraAttributes($tag_name, $attr, $defaultIdValue = null, $classes = array()) {
if (empty($attr) && !$defaultIdValue && empty($classes)) return "";
-
+
// Split on components
preg_match_all('/[#.a-z][-_:a-zA-Z0-9=]+/', $attr, $matches);
$elements = $matches[0];
@@ -288,38 +294,38 @@ class MarkdownExtra extends \Michelf\Markdown {
/**
* HTML block parser
*/
-
+
/**
* Tags that are always treated as block tags
* @var string
*/
protected $block_tags_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|form|fieldset|iframe|hr|legend|article|section|nav|aside|hgroup|header|footer|figcaption|figure';
-
+
/**
* Tags treated as block tags only if the opening tag is alone on its line
* @var string
*/
protected $context_block_tags_re = 'script|noscript|style|ins|del|iframe|object|source|track|param|math|svg|canvas|audio|video';
-
+
/**
* Tags where markdown="1" default to span mode:
* @var string
*/
protected $contain_span_tags_re = 'p|h[1-6]|li|dd|dt|td|th|legend|address';
-
+
/**
* Tags which must not have their contents modified, no matter where
* they appear
* @var string
*/
protected $clean_tags_re = 'script|style|math|svg';
-
+
/**
* Tags that do not need to be closed.
* @var string
*/
protected $auto_close_tags_re = 'hr|img|param|source|track';
-
+
/**
* Hashify HTML Blocks and "clean tags".
*
@@ -330,7 +336,7 @@ class MarkdownExtra extends \Michelf\Markdown {
* hard-coded.
*
* This works by calling _HashHTMLBlocks_InMarkdown, which then calls
- * _HashHTMLBlocks_InHTML when it encounter block tags. When the markdown="1"
+ * _HashHTMLBlocks_InHTML when it encounter block tags. When the markdown="1"
* attribute is found within a tag, _HashHTMLBlocks_InHTML calls back
* _HashHTMLBlocks_InMarkdown to handle the Markdown syntax within the tag.
* These two functions are calling each other. It's recursive!
@@ -344,15 +350,15 @@ class MarkdownExtra extends \Michelf\Markdown {
// Call the HTML-in-Markdown hasher.
list($text, ) = $this->_hashHTMLBlocks_inMarkdown($text);
-
+
return $text;
}
/**
* Parse markdown text, calling _HashHTMLBlocks_InHTML for block tags.
*
- * * $indent is the number of space to be ignored when checking for code
- * blocks. This is important because if we don't take the indent into
+ * * $indent is the number of space to be ignored when checking for code
+ * blocks. This is important because if we don't take the indent into
* account, something like this (which looks right) won't work as expected:
*
* <div>
@@ -364,11 +370,11 @@ class MarkdownExtra extends \Michelf\Markdown {
* If you don't like this, just don't indent the tag on which
* you apply the markdown="1" attribute.
*
- * * If $enclosing_tag_re is not empty, stops at the first unmatched closing
+ * * If $enclosing_tag_re is not empty, stops at the first unmatched closing
* tag with that name. Nested tags supported.
*
- * * If $span is true, text inside must treated as span. So any double
- * newline will be replaced by a single newline so that it does not create
+ * * If $span is true, text inside must treated as span. So any double
+ * newline will be replaced by a single newline so that it does not create
* paragraphs.
*
* Returns an array of that form: ( processed text , remaining text )
@@ -382,18 +388,18 @@ class MarkdownExtra extends \Michelf\Markdown {
protected function _hashHTMLBlocks_inMarkdown($text, $indent = 0,
$enclosing_tag_re = '', $span = false)
{
-
+
if ($text === '') return array('', '');
// Regex to check for the presense of newlines around a block tag.
$newline_before_re = '/(?:^\n?|\n\n)*$/';
- $newline_after_re =
+ $newline_after_re =
'{
^ # Start of text following the tag.
(?>[ ]*<!--.*?-->)? # Optional comment.
[ ]*\n # Must be followed by newline.
}xs';
-
+
// Regex to match any tag.
$block_tag_re =
'{
@@ -448,7 +454,7 @@ class MarkdownExtra extends \Michelf\Markdown {
)
}xs';
-
+
$depth = 0; // Current depth inside the tag tree.
$parsed = ""; // Parsed text that will be returned.
@@ -457,31 +463,31 @@ class MarkdownExtra extends \Michelf\Markdown {
do {
// Split the text using the first $tag_match pattern found.
// Text before pattern will be first in the array, text after
- // pattern will be at the end, and between will be any catches made
+ // pattern will be at the end, and between will be any catches made
// by the pattern.
- $parts = preg_split($block_tag_re, $text, 2,
+ $parts = preg_split($block_tag_re, $text, 2,
PREG_SPLIT_DELIM_CAPTURE);
-
- // If in Markdown span mode, add a empty-string span-level hash
+
+ // If in Markdown span mode, add a empty-string span-level hash
// after each newline to prevent triggering any block element.
if ($span) {
$void = $this->hashPart("", ':');
$newline = "\n$void";
$parts[0] = $void . str_replace("\n", $newline, $parts[0]) . $void;
}
-
+
$parsed .= $parts[0]; // Text before current tag.
-
+
// If end of $text has been reached. Stop loop.
if (count($parts) < 3) {
$text = "";
break;
}
-
+
$tag = $parts[1]; // Tag to handle.
$text = $parts[2]; // Remaining text after current tag.
$tag_re = preg_quote($tag); // For use in a regular expression.
-
+
// Check for: Fenced code block marker.
// Note: need to recheck the whole tag to disambiguate backtick
// fences from code spans
@@ -490,7 +496,7 @@ class MarkdownExtra extends \Michelf\Markdown {
$fence_indent = strlen($capture[1]); // use captured indent in re
$fence_re = $capture[2]; // use captured fence in re
if (preg_match('{^(?>.*\n)*?[ ]{' . ($fence_indent) . '}' . $fence_re . '[ ]*(?:\n|$)}', $text,
- $matches))
+ $matches))
{
// End marker found: pass text unchanged until marker.
$parsed .= $tag . $matches[0];
@@ -503,7 +509,7 @@ class MarkdownExtra extends \Michelf\Markdown {
}
// Check for: Indented code block.
else if ($tag{0} == "\n" || $tag{0} == " ") {
- // Indented code block: pass it unchanged, will be handled
+ // Indented code block: pass it unchanged, will be handled
// later.
$parsed .= $tag;
}
@@ -525,7 +531,7 @@ class MarkdownExtra extends \Michelf\Markdown {
}
}
// Check for: Opening Block level tag or
- // Opening Context Block tag (like ins and del)
+ // Opening Context Block tag (like ins and del)
// used as a block tag (tag is alone on it's line).
else if (preg_match('{^<(?:' . $this->block_tags_re . ')\b}', $tag) ||
( preg_match('{^<(?:' . $this->context_block_tags_re . ')\b}', $tag) &&
@@ -534,9 +540,9 @@ class MarkdownExtra extends \Michelf\Markdown {
)
{
// Need to parse tag and following text using the HTML parser.
- list($block_text, $text) =
+ list($block_text, $text) =
$this->_hashHTMLBlocks_inHTML($tag . $text, "hashBlock", true);
-
+
// Make sure it stays outside of any paragraph by adding newlines.
$parsed .= "\n\n$block_text\n\n";
}
@@ -547,9 +553,9 @@ class MarkdownExtra extends \Michelf\Markdown {
{
// Need to parse tag and following text using the HTML parser.
// (don't check for markdown attribute)
- list($block_text, $text) =
+ list($block_text, $text) =
$this->_hashHTMLBlocks_inHTML($tag . $text, "hashClean", false);
-
+
$parsed .= $block_text;
}
// Check for: Tag with same name as enclosing tag.
@@ -567,14 +573,14 @@ class MarkdownExtra extends \Michelf\Markdown {
$text = $tag . $text;
break;
}
-
+
$parsed .= $tag;
}
else {
$parsed .= $tag;
}
} while ($depth >= 0);
-
+
return array($parsed, $text);
}
@@ -594,7 +600,7 @@ class MarkdownExtra extends \Michelf\Markdown {
*/
protected function _hashHTMLBlocks_inHTML($text, $hash_method, $md_attr) {
if ($text === '') return array('', '');
-
+
// Regex to match `markdown` attribute inside of a tag.
$markdown_attr_re = '
{
@@ -602,15 +608,15 @@ class MarkdownExtra extends \Michelf\Markdown {
markdown
\s*=\s*
(?>
- (["\']) # $1: quote delimiter
+ (["\']) # $1: quote delimiter
(.*?) # $2: attribute value
- \1 # matching delimiter
+ \1 # matching delimiter
|
([^\s>]*) # $3: unquoted attribute value
)
() # $4: make $3 always defined (avoid warnings)
}xs';
-
+
// Regex to match any tag.
$tag_re = '{
( # $2: Capture whole tag.
@@ -633,9 +639,9 @@ class MarkdownExtra extends \Michelf\Markdown {
<!\[CDATA\[.*?\]\]> # CData Block
)
}xs';
-
+
$original_text = $text; // Save original text in case of faliure.
-
+
$depth = 0; // Current depth inside the tag tree.
$block_text = ""; // Temporary text holder for current text.
$parsed = ""; // Parsed text that will be returned.
@@ -649,22 +655,22 @@ class MarkdownExtra extends \Michelf\Markdown {
do {
// Split the text using the first $tag_match pattern found.
// Text before pattern will be first in the array, text after
- // pattern will be at the end, and between will be any catches made
+ // pattern will be at the end, and between will be any catches made
// by the pattern.
$parts = preg_split($tag_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE);
-
+
if (count($parts) < 3) {
// End of $text reached with unbalenced tag(s).
// In that case, we return original text unchanged and pass the
- // first character as filtered to prevent an infinite loop in the
+ // first character as filtered to prevent an infinite loop in the
// parent function.
return array($original_text{0}, substr($original_text, 1));
}
-
+
$block_text .= $parts[0]; // Text before current tag.
$tag = $parts[1]; // Tag to handle.
$text = $parts[2]; // Remaining text after current tag.
-
+
// Check for: Auto-close tag (like <hr/>)
// Comments and Processing Instructions.
if (preg_match('{^</?(?:' . $this->auto_close_tags_re . ')\b}', $tag) ||
@@ -680,20 +686,20 @@ class MarkdownExtra extends \Michelf\Markdown {
if ($tag{1} == '/') $depth--;
else if ($tag{strlen($tag)-2} != '/') $depth++;
}
-
+
// Check for `markdown="1"` attribute and handle it.
- if ($md_attr &&
+ if ($md_attr &&
preg_match($markdown_attr_re, $tag, $attr_m) &&
preg_match('/^1|block|span$/', $attr_m[2] . $attr_m[3]))
{
// Remove `markdown` attribute from opening tag.
$tag = preg_replace($markdown_attr_re, '', $tag);
-
+
// Check if text inside this tag must be parsed in span mode.
$this->mode = $attr_m[2] . $attr_m[3];
$span_mode = $this->mode == 'span' || $this->mode != 'block' &&
preg_match('{^<(?:' . $this->contain_span_tags_re . ')\b}', $tag);
-
+
// Calculate indent before tag.
if (preg_match('/(?:^|\n)( *?)(?! ).*?$/', $block_text, $matches)) {
$strlen = $this->utf8_strlen;
@@ -701,48 +707,48 @@ class MarkdownExtra extends \Michelf\Markdown {
} else {
$indent = 0;
}
-
+
// End preceding block with this tag.
$block_text .= $tag;
$parsed .= $this->$hash_method($block_text);
-
+
// Get enclosing tag name for the ParseMarkdown function.
// (This pattern makes $tag_name_re safe without quoting.)
preg_match('/^<([\w:$]*)\b/', $tag, $matches);
$tag_name_re = $matches[1];
-
+
// Parse the content using the HTML-in-Markdown parser.
list ($block_text, $text)
- = $this->_hashHTMLBlocks_inMarkdown($text, $indent,
+ = $this->_hashHTMLBlocks_inMarkdown($text, $indent,
$tag_name_re, $span_mode);
-
+
// Outdent markdown text.
if ($indent > 0) {
- $block_text = preg_replace("/^[ ]{1,$indent}/m", "",
+ $block_text = preg_replace("/^[ ]{1,$indent}/m", "",
$block_text);
}
-
+
// Append tag content to parsed text.
if (!$span_mode) $parsed .= "\n\n$block_text\n\n";
else $parsed .= "$block_text";
-
+
// Start over with a new block.
$block_text = "";
}
else $block_text .= $tag;
}
-
+
} while ($depth > 0);
-
+
// Hash last block text that wasn't processed inside the loop.
$parsed .= $this->$hash_method($block_text);
-
+
return array($parsed, $text);
}
/**
* Called whenever a tag must be hashed when a function inserts a "clean" tag
- * in $text, it passes through this function and is automaticaly escaped,
+ * in $text, it passes through this function and is automaticaly escaped,
* blocking invalid nested overlap.
* @param string $text
* @return string
@@ -835,7 +841,7 @@ class MarkdownExtra extends \Michelf\Markdown {
// for shortcut links like [this][] or [this].
$link_id = $link_text;
}
-
+
// lower-case and turn embedded newlines into spaces
$link_id = strtolower($link_id);
$link_id = preg_replace('{[ ]?\n}', ' ', $link_id);
@@ -843,7 +849,7 @@ class MarkdownExtra extends \Michelf\Markdown {
if (isset($this->urls[$link_id])) {
$url = $this->urls[$link_id];
$url = $this->encodeURLAttribute($url);
-
+
$result = "<a href=\"$url\"";
if ( isset( $this->titles[$link_id] ) ) {
$title = $this->titles[$link_id];
@@ -852,7 +858,7 @@ class MarkdownExtra extends \Michelf\Markdown {
}
if (isset($this->ref_attr[$link_id]))
$result .= $this->ref_attr[$link_id];
-
+
$link_text = $this->runSpanGamut($link_text);
$result .= ">$link_text</a>";
$result = $this->hashPart($result);
@@ -889,7 +895,7 @@ class MarkdownExtra extends \Michelf\Markdown {
$result .= " title=\"$title\"";
}
$result .= $attr;
-
+
$link_text = $this->runSpanGamut($link_text);
$result .= ">$link_text</a>";
@@ -917,7 +923,7 @@ class MarkdownExtra extends \Michelf\Markdown {
\]
)
- }xs',
+ }xs',
array($this, '_doImages_reference_callback'), $text);
// Next, handle inline images: ![alt text](url "optional title")
@@ -1021,7 +1027,7 @@ class MarkdownExtra extends \Michelf\Markdown {
// Setext-style headers:
// Header 1 {#header1}
// ========
- //
+ //
// Header 2 {#header2 .class1 .class2}
// --------
//
@@ -1042,7 +1048,7 @@ class MarkdownExtra extends \Michelf\Markdown {
//
$text = preg_replace_callback('{
^(\#{1,6}) # $1 = string of #\'s
- [ ]*
+ [ ]'.($this->hashtag_protection ? '+' : '*').'
(.+?) # $2 = Header text
[ ]*
\#* # optional closing #\'s (not counted)
@@ -1107,10 +1113,10 @@ class MarkdownExtra extends \Michelf\Markdown {
[ ]{0,' . $less_than_tab . '} # Allowed whitespace.
[|] # Optional leading pipe (present)
(.+) \n # $1: Header row (at least one pipe)
-
+
[ ]{0,' . $less_than_tab . '} # Allowed whitespace.
[|] ([ ]*[-:]+[-| :]*) \n # $2: Header underline
-
+
( # $3: Cells
(?>
[ ]* # Allowed whitespace.
@@ -1132,10 +1138,10 @@ class MarkdownExtra extends \Michelf\Markdown {
^ # Start of a line
[ ]{0,' . $less_than_tab . '} # Allowed whitespace.
(\S.*[|].*) \n # $1: Header row (at least one pipe)
-
+
[ ]{0,' . $less_than_tab . '} # Allowed whitespace.
([-:]+[ ]*[|][-| :]*) \n # $2: Header underline
-
+
( # $3: Cells
(?>
.* [|] .* \n # Row content
@@ -1159,7 +1165,7 @@ class MarkdownExtra extends \Michelf\Markdown {
$content = $matches[3];
$content = preg_replace('/^ *[|]/m', '', $content);
-
+
return $this->_doTable_callback(array($matches[0], $head, $underline, $content));
}
@@ -1192,7 +1198,7 @@ class MarkdownExtra extends \Michelf\Markdown {
$head = preg_replace('/[|] *$/m', '', $head);
$underline = preg_replace('/[|] *$/m', '', $underline);
$content = preg_replace('/[|] *$/m', '', $content);
-
+
// Reading alignement from header underline.
$separators = preg_split('/ *[|] */', $underline);
foreach ($separators as $n => $s) {
@@ -1205,14 +1211,14 @@ class MarkdownExtra extends \Michelf\Markdown {
else
$attr[$n] = '';
}
-
- // Parsing span elements, including code spans, character escapes,
+
+ // Parsing span elements, including code spans, character escapes,
// and inline HTML tags, so that pipes inside those gets ignored.
$head = $this->parseSpan($head);
$headers = preg_split('/ *[|] */', $head);
$col_count = count($headers);
$attr = array_pad($attr, $col_count, '');
-
+
// Write column headers.
$text = "<table>\n";
$text .= "<thead>\n";
@@ -1221,20 +1227,20 @@ class MarkdownExtra extends \Michelf\Markdown {
$text .= " <th$attr[$n]>" . $this->runSpanGamut(trim($header)) . "</th>\n";
$text .= "</tr>\n";
$text .= "</thead>\n";
-
+
// Split content by row.
$rows = explode("\n", trim($content, "\n"));
-
+
$text .= "<tbody>\n";
foreach ($rows as $row) {
- // Parsing span elements, including code spans, character escapes,
+ // Parsing span elements, including code spans, character escapes,
// and inline HTML tags, so that pipes inside those gets ignored.
$row = $this->parseSpan($row);
-
+
// Split row by cell.
$row_cells = preg_split('/ *[|] */', $row, $col_count);
$row_cells = array_pad($row_cells, $col_count, '');
-
+
$text .= "<tr>\n";
foreach ($row_cells as $n => $cell)
$text .= " <td$attr[$n]>" . $this->runSpanGamut(trim($cell)) . "</td>\n";
@@ -1242,7 +1248,7 @@ class MarkdownExtra extends \Michelf\Markdown {
}
$text .= "</tbody>\n";
$text .= "</table>";
-
+
return $this->hashBlock($text) . "\n";
}
@@ -1299,7 +1305,7 @@ class MarkdownExtra extends \Michelf\Markdown {
protected function _doDefLists_callback($matches) {
// Re-usable patterns to match list item bullets and number markers:
$list = $matches[1];
-
+
// Turn double returns into triple returns, so that we can make a
// paragraph for the last item in a list, if necessary:
$result = trim($this->processDefListItems($list));
@@ -1314,9 +1320,9 @@ class MarkdownExtra extends \Michelf\Markdown {
* @return string
*/
protected function processDefListItems($list_str) {
-
+
$less_than_tab = $this->tab_width - 1;
-
+
// Trim trailing blank lines:
$list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str);
@@ -1327,9 +1333,9 @@ class MarkdownExtra extends \Michelf\Markdown {
[ ]{0,' . $less_than_tab . '} # leading whitespace
(?!\:[ ]|[ ]) # negative lookahead for a definition
# mark (colon) or more whitespace.
- (?> \S.* \n)+? # actual term (not whitespace).
- )
- (?=\n?[ ]{0,3}:[ ]) # lookahead for following line feed
+ (?> \S.* \n)+? # actual term (not whitespace).
+ )
+ (?=\n?[ ]{0,3}:[ ]) # lookahead for following line feed
# with a definition mark.
}xm',
array($this, '_processDefListItems_callback_dt'), $list_str);
@@ -1346,8 +1352,8 @@ class MarkdownExtra extends \Michelf\Markdown {
(?: # next term or end of text
[ ]{0,' . $less_than_tab . '} \:[ ] |
<dt> | \z
- )
- )
+ )
+ )
}xm',
array($this, '_processDefListItems_callback_dd'), $list_str);
@@ -1399,14 +1405,14 @@ class MarkdownExtra extends \Michelf\Markdown {
* ~~~
* Code block
* ~~~
- *
+ *
* @param string $text
* @return string
*/
protected function doFencedCodeBlocks($text) {
-
+
$less_than_tab = $this->tab_width;
-
+
$text = preg_replace_callback('{
(?:\n|\A)
# 1: Opening marker
@@ -1422,7 +1428,7 @@ class MarkdownExtra extends \Michelf\Markdown {
' . $this->id_class_attr_catch_re . ' # 3: Extra attributes
)?
[ ]* \n # Whitespace and newline following marker.
-
+
# 4: Content
(
(?>
@@ -1430,7 +1436,7 @@ class MarkdownExtra extends \Michelf\Markdown {
.*\n+
)+
)
-
+
# Closing marker.
\1 [ ]* (?= \n )
}xm',
@@ -1468,7 +1474,7 @@ class MarkdownExtra extends \Michelf\Markdown {
$pre_attr_str = $this->code_attr_on_pre ? $attr_str : '';
$code_attr_str = $this->code_attr_on_pre ? '' : $attr_str;
$codeblock = "<pre$pre_attr_str><code$code_attr_str>$codeblock</code></pre>";
-
+
return "\n\n".$this->hashBlock($codeblock)."\n\n";
}
@@ -1478,7 +1484,7 @@ class MarkdownExtra extends \Michelf\Markdown {
* @return string
*/
protected function _doFencedCodeBlocks_newlines($matches) {
- return str_repeat("<br$this->empty_element_suffix",
+ return str_repeat("<br$this->empty_element_suffix",
strlen($matches[0]));
}
@@ -1518,27 +1524,27 @@ class MarkdownExtra extends \Michelf\Markdown {
// Wrap <p> tags and unhashify HTML blocks
foreach ($grafs as $key => $value) {
$value = trim($this->runSpanGamut($value));
-
+
// Check if this should be enclosed in a paragraph.
// Clean tag hashes & block tag hashes are left alone.
$is_p = $wrap_in_p && !preg_match('/^B\x1A[0-9]+B|^C\x1A[0-9]+C$/', $value);
-
+
if ($is_p) {
$value = "<p>$value</p>";
}
$grafs[$key] = $value;
}
-
- // Join grafs in one text, then unhash HTML tags.
+
+ // Join grafs in one text, then unhash HTML tags.
$text = implode("\n\n", $grafs);
-
+
// Finish by removing any tag hashes still present in $text.
$text = $this->unhash($text);
-
+
return $text;
}
-
-
+
+
/**
* Footnotes - Strips link definitions from text, stores the URLs and
* titles in hash references.
@@ -1554,15 +1560,15 @@ class MarkdownExtra extends \Michelf\Markdown {
[ ]*
\n? # maybe *one* newline
( # text = $2 (no blank lines allowed)
- (?:
+ (?:
.+ # actual text
|
- \n # newlines but
+ \n # newlines but
(?!\[.+?\][ ]?:\s)# negative lookahead for footnote or link definition marker.
- (?!\n+[ ]{0,3}\S)# ensure line is not blank and followed
+ (?!\n+[ ]{0,3}\S)# ensure line is not blank and followed
# by non-indented content
)*
- )
+ )
}xm',
array($this, '_stripFootnotes_callback'),
$text);
@@ -1581,7 +1587,7 @@ class MarkdownExtra extends \Michelf\Markdown {
}
/**
- * Replace footnote references in $text [^id] with a special text-token
+ * Replace footnote references in $text [^id] with a special text-token
* which will be replaced by the actual footnote marker in appendFootnotes.
* @param string $text
* @return string
@@ -1599,12 +1605,12 @@ class MarkdownExtra extends \Michelf\Markdown {
* @return string
*/
protected function appendFootnotes($text) {
- $text = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
+ $text = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
array($this, '_appendFootnotes_callback'), $text);
-
+
if (!empty($this->footnotes_ordered)) {
$text .= "\n\n";
- $text .= "<div class=\"footnotes\">\n";
+ $text .= "<div class=\"footnotes\" role=\"doc-endnotes\">\n";
$text .= "<hr" . $this->empty_element_suffix . "\n";
$text .= "<ol>\n\n";
@@ -1618,10 +1624,12 @@ class MarkdownExtra extends \Michelf\Markdown {
$title = $this->fn_backlink_title;
$title = $this->encodeAttribute($title);
$attr .= " title=\"$title\"";
+ $attr .= " aria-label=\"$title\"";
}
+ $attr .= " role=\"doc-backlink\"";
$backlink_text = $this->fn_backlink_html;
$num = 0;
-
+
while (!empty($this->footnotes_ordered)) {
$footnote = reset($this->footnotes_ordered);
$note_id = key($this->footnotes_ordered);
@@ -1629,12 +1637,12 @@ class MarkdownExtra extends \Michelf\Markdown {
$ref_count = $this->footnotes_ref_count[$note_id];
unset($this->footnotes_ref_count[$note_id]);
unset($this->footnotes[$note_id]);
-
+
$footnote .= "\n"; // Need to append newline before parsing.
- $footnote = $this->runBlockGamut("$footnote\n");
- $footnote = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
+ $footnote = $this->runBlockGamut("$footnote\n");
+ $footnote = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}',
array($this, '_appendFootnotes_callback'), $footnote);
-
+
$attr = str_replace("%%", ++$num, $attr);
$note_id = $this->encodeAttribute($note_id);
@@ -1649,12 +1657,12 @@ class MarkdownExtra extends \Michelf\Markdown {
} else {
$footnote .= "\n\n<p>$backlink</p>";
}
-
- $text .= "<li id=\"fn:$note_id\">\n";
+
+ $text .= "<li id=\"fn:$note_id\" role=\"doc-endnote\">\n";
$text .= $footnote . "\n";
$text .= "</li>\n\n";
}
-
+
$text .= "</ol>\n";
$text .= "</div>";
}
@@ -1668,7 +1676,7 @@ class MarkdownExtra extends \Michelf\Markdown {
*/
protected function _appendFootnotes_callback($matches) {
$node_id = $this->fn_id_prefix . $matches[1];
-
+
// Create footnote marker only if it has a corresponding footnote *and*
// the footnote hasn't been used by another marker.
if (isset($this->footnotes[$node_id])) {
@@ -1695,20 +1703,21 @@ class MarkdownExtra extends \Michelf\Markdown {
$title = $this->encodeAttribute($title);
$attr .= " title=\"$title\"";
}
-
+ $attr .= " role=\"doc-noteref\"";
+
$attr = str_replace("%%", $num, $attr);
$node_id = $this->encodeAttribute($node_id);
-
+
return
"<sup id=\"fnref$ref_count_mark:$node_id\">".
"<a href=\"#fn:$node_id\"$attr>$num</a>".
"</sup>";
}
-
+
return "[^" . $matches[1] . "]";
}
-
-
+
+
/**
* Abbreviations - strips abbreviations from text, stores titles in hash
* references.
@@ -1721,7 +1730,7 @@ class MarkdownExtra extends \Michelf\Markdown {
// Link defs are in the form: [id]*: url "optional title"
$text = preg_replace_callback('{
^[ ]{0,' . $less_than_tab . '}\*\[(.+?)\][ ]?: # abbr_id = $1
- (.*) # text = $2 (no blank lines allowed)
+ (.*) # text = $2 (no blank lines allowed)
}xm',
array($this, '_stripAbbreviations_callback'),
$text);
@@ -1751,7 +1760,7 @@ class MarkdownExtra extends \Michelf\Markdown {
*/
protected function doAbbreviations($text) {
if ($this->abbr_word_re) {
- // cannot use the /x modifier because abbr_word_re may
+ // cannot use the /x modifier because abbr_word_re may
// contain significant spaces:
$text = preg_replace_callback('{' .
'(?<![\w\x1A])' .
diff --git a/vendor/michelf/php-markdown/Michelf/MarkdownInterface.php b/vendor/michelf/php-markdown/Michelf/MarkdownInterface.php
index 8512e3753..7fc0da06e 100644
--- a/vendor/michelf/php-markdown/Michelf/MarkdownInterface.php
+++ b/vendor/michelf/php-markdown/Michelf/MarkdownInterface.php
@@ -4,14 +4,14 @@
*
* @package php-markdown
* @author Michel Fortin <michel.fortin@michelf.com>
- * @copyright 2004-2016 Michel Fortin <https://michelf.com/projects/php-markdown/>
+ * @copyright 2004-2018 Michel Fortin <https://michelf.com/projects/php-markdown/>
* @copyright (Original Markdown) 2004-2006 John Gruber <https://daringfireball.net/projects/markdown/>
*/
namespace Michelf;
/**
- * Markdown Parser Interface
+ * Markdown Parser Interface
*/
interface MarkdownInterface {
/**
diff --git a/vendor/michelf/php-markdown/Readme.md b/vendor/michelf/php-markdown/Readme.md
index 044407106..c05cd93d4 100644
--- a/vendor/michelf/php-markdown/Readme.md
+++ b/vendor/michelf/php-markdown/Readme.md
@@ -1,7 +1,7 @@
PHP Markdown
============
-PHP Markdown Lib 1.7.0 - 29 Oct 2016
+PHP Markdown Lib 1.8.0 - 14 Jan 2018
by Michel Fortin
<https://michelf.ca/>
@@ -13,16 +13,16 @@ based on Markdown by John Gruber
Introduction
------------
-This is a library package that includes the PHP Markdown parser and its
+This is a library package that includes the PHP Markdown parser and its
sibling PHP Markdown Extra with additional features.
Markdown is a text-to-HTML conversion tool for web writers. Markdown
allows you to write using an easy-to-read, easy-to-write plain text
format, then convert it to structurally valid XHTML (or HTML).
-"Markdown" is actually two things: a plain text markup syntax, and a
-software tool, originally written in Perl, that converts the plain text
-markup to HTML. PHP Markdown is a port to PHP of the original Markdown
+"Markdown" is actually two things: a plain text markup syntax, and a
+software tool, originally written in Perl, that converts the plain text
+markup to HTML. PHP Markdown is a port to PHP of the original Markdown
program by John Gruber.
* [Full documentation of the Markdown syntax](<https://daringfireball.net/projects/markdown/>)
@@ -37,68 +37,77 @@ Requirement
This library package requires PHP 5.3 or later.
Note: The older plugin/library hybrid package for PHP Markdown and
-PHP Markdown Extra is still maintained and will work with PHP 4.0.5 and later.
+PHP Markdown Extra is no longer maintained but will work with PHP 4.0.5 and
+later.
Before PHP 5.3.7, pcre.backtrack_limit defaults to 100 000, which is too small
-in many situations. You might need to set it to higher values. Later PHP
+in many situations. You might need to set it to higher values. Later PHP
releases defaults to 1 000 000, which is usually fine.
Usage
-----
-This library package is meant to be used with class autoloading. For autoloading
-to work, your project needs have setup a PSR-0-compatible autoloader. See the
-included Readme.php file for a minimal autoloader setup. (If you cannot use
-autoloading, see below.)
+To use this library with Composer, first install it with:
-With class autoloading in place, putting the 'Michelf' folder in your
-include path should be enough for this to work:
+ $ composer require michelf/php-markdown
- use \Michelf\Markdown;
+Then include Composer's generated vendor/autoload.php to [enable autoloading]:
+
+ require 'vendor/autoload.php';
+
+Without Composer, for autoloading to work, your project needs an autoloader
+compatible with PSR-4 or PSR-0. See the included Readme.php file for a minimal
+autoloader setup. (If you cannot use autoloading, see below.)
+
+With class autoloading in place:
+
+ use Michelf\Markdown;
$my_html = Markdown::defaultTransform($my_text);
Markdown Extra syntax is also available the same way:
- use \Michelf\MarkdownExtra;
+ use Michelf\MarkdownExtra;
$my_html = MarkdownExtra::defaultTransform($my_text);
-If you wish to use PHP Markdown with another text filter function
+If you wish to use PHP Markdown with another text filter function
built to parse HTML, you should filter the text *after* the `transform`
-function call. This is an example with [PHP SmartyPants][psp]:
+function call. This is an example with [PHP SmartyPants]:
- use \Michelf\Markdown, \Michelf\SmartyPants;
+ use Michelf\Markdown, Michelf\SmartyPants;
$my_html = Markdown::defaultTransform($my_text);
$my_html = SmartyPants::defaultTransform($my_html);
-All these examples are using the static `defaultTransform` static function
-found inside the parser class. If you want to customize the parser
-configuration, you can also instantiate it directly and change some
+All these examples are using the static `defaultTransform` static function
+found inside the parser class. If you want to customize the parser
+configuration, you can also instantiate it directly and change some
configuration variables:
- use \Michelf\MarkdownExtra;
+ use Michelf\MarkdownExtra;
$parser = new MarkdownExtra;
$parser->fn_id_prefix = "post22-";
$my_html = $parser->transform($my_text);
To learn more, see the full list of [configuration variables].
+ [enable autoloading]: https://getcomposer.org/doc/01-basic-usage.md#autoloading
+ [PHP SmartyPants]: https://michelf.ca/projects/php-smartypants/
[configuration variables]: https://michelf.ca/projects/php-markdown/configuration/
### Usage without an autoloader
-If you cannot use class autoloading, you can still use `include` or `require`
-to access the parser. To load the `\Michelf\Markdown` parser, do it this way:
+If you cannot use class autoloading, you can still use `include` or `require`
+to access the parser. To load the `Michelf\Markdown` parser, do it this way:
require_once 'Michelf/Markdown.inc.php';
-Or, if you need the `\Michelf\MarkdownExtra` parser:
+Or, if you need the `Michelf\MarkdownExtra` parser:
require_once 'Michelf/MarkdownExtra.inc.php';
While the plain `.php` files depend on autoloading to work correctly, using the
-`.inc.php` files instead will eagerly load the dependencies that would be
+`.inc.php` files instead will eagerly load the dependencies that would be
loaded on demand if you were using autoloading.
@@ -113,19 +122,19 @@ functions and their configuration variables. The public API is stable for
a given major version number. It might get additions when the minor version
number increments.
-**Protected members are not considered public API.** This is unconventional
-and deserves an explanation. Incrementing the major version number every time
+**Protected members are not considered public API.** This is unconventional
+and deserves an explanation. Incrementing the major version number every time
the underlying implementation of something changes is going to give
nonessential version numbers for the vast majority of people who just use the
parser. Protected members are meant to create parser subclasses that behave in
-different ways. Very few people create parser subclasses. I don't want to
-discourage it by making everything private, but at the same time I can't
+different ways. Very few people create parser subclasses. I don't want to
+discourage it by making everything private, but at the same time I can't
guarantee any stable hook between versions if you use protected members.
-**Syntax changes** will increment the minor number for new features, and the
-patch number for small corrections. A *new feature* is something that needs a
+**Syntax changes** will increment the minor number for new features, and the
+patch number for small corrections. A *new feature* is something that needs a
change in the syntax documentation. Note that since PHP Markdown Lib includes
-two parsers, a syntax change for either of them will increment the minor
+two parsers, a syntax change for either of them will increment the minor
number. Also note that there is nothing perfectly backward-compatible with the
Markdown syntax: all inputs are always valid, so new features always replace
something that was previously legal, although generally nonsensical to do.
@@ -140,7 +149,7 @@ To file bug reports please send email to:
Please include with your report: (1) the example input; (2) the output you
expected; (3) the output PHP Markdown actually produced.
-If you have a problem where Markdown gives you an empty result, first check
+If you have a problem where Markdown gives you an empty result, first check
that the backtrack limit is not too low by running `php --info | grep pcre`.
See Installation and Requirement above for details.
@@ -149,12 +158,12 @@ Development and Testing
-----------------------
Pull requests for fixing bugs are welcome. Proposed new features are
-going to be meticulously reviewed -- taking into account backward compatibility,
+going to be meticulously reviewed -- taking into account backward compatibility,
potential side effects, and future extensibility -- before deciding on
acceptance or rejection.
-If you make a pull request that includes changes to the parser please add
-tests for what is being changed to [MDTest][] and make a pull request there
+If you make a pull request that includes changes to the parser please add
+tests for what is being changed to [MDTest][] and make a pull request there
too.
[MDTest]: https://github.com/michelf/mdtest/
@@ -163,7 +172,7 @@ too.
Donations
---------
-If you wish to make a donation that will help me devote more time to
+If you wish to make a donation that will help me devote more time to
PHP Markdown, please visit [michelf.ca/donate] or send Bitcoin to
[1HiuX34czvVPPdhXbUAsAu7pZcesniDCGH].
@@ -174,56 +183,72 @@ PHP Markdown, please visit [michelf.ca/donate] or send Bitcoin to
Version History
---------------
+PHP Markdown Lib 1.8.0 (14 Jan 2018)
+
+* Autoloading with Composer now uses PSR-4.
+
+* HTML output for Markdown Extra footnotes now include `role` attributes
+ with values from [WAI-ARIA](https://www.w3.org/TR/dpub-aria/) to
+ make them more accessible.
+ (Thanks to Tobias Bengfort)
+
+* In Markdown Extra, added the `hashtag_protection` configuration variable.
+ When set to `true` it prevents ATX-style headers with no space after the initial
+ hash from being interpreted as headers. This way your precious hashtags
+ are preserved.
+ (Thanks to Jaussoin Timothée for the implementation.)
+
+
PHP Markdown Lib 1.7.0 (29 Oct 2016)
-* Added a `hard_wrap` configuration variable to make all newline characters
- in the text become `<br>` tags in the HTML output. By default, according
- to the standard Markdown syntax these newlines are ignored unless they a
+* Added a `hard_wrap` configuration variable to make all newline characters
+ in the text become `<br>` tags in the HTML output. By default, according
+ to the standard Markdown syntax these newlines are ignored unless they a
preceded by two spaces. Thanks to Jonathan Cohlmeyer for the implementation.
-* Improved the parsing of list items to fix problematic cases that came to
- light with the addition of `hard_wrap`. This should have no effect on the
- output except span-level list items that ended with two spaces (and thus
+* Improved the parsing of list items to fix problematic cases that came to
+ light with the addition of `hard_wrap`. This should have no effect on the
+ output except span-level list items that ended with two spaces (and thus
ended with a line break).
-* Added a `code_span_content_func` configuration variable which takes a
+* Added a `code_span_content_func` configuration variable which takes a
function that will convert the content of the code span to HTML. This can
- be useful to implement syntax highlighting. Although contrary to its
- code block equivalent, there is no syntax for specifying a language.
+ be useful to implement syntax highlighting. Although contrary to its
+ code block equivalent, there is no syntax for specifying a language.
Credits to styxit for the implementation.
-* Fixed a Markdwon Extra issue where two-space-at-end-of-line hard breaks
- wouldn't work inside of HTML block elements such as `<p markdown="1">`
+* Fixed a Markdown Extra issue where two-space-at-end-of-line hard breaks
+ wouldn't work inside of HTML block elements such as `<p markdown="1">`
where the element expects only span-level content.
-* In the parser code, switched to PHPDoc comment format. Thanks to
+* In the parser code, switched to PHPDoc comment format. Thanks to
Robbie Averill for the help.
-PHP Markdown Lib 1.6.0 (23 Dec 2015)
+PHP Markdown Lib 1.6.0 (23 Dec 2015)
-Note: this version was incorrectly released as 1.5.1 on Dec 22, a number
+Note: this version was incorrectly released as 1.5.1 on Dec 22, a number
that contradicted the versioning policy.
-* For fenced code blocks in Markdown Extra, can now set a class name for the
- code block's language before the special attribute block. Previously, this
+* For fenced code blocks in Markdown Extra, can now set a class name for the
+ code block's language before the special attribute block. Previously, this
class name was only allowed in the absence of the special attribute block.
-* Added a `code_block_content_func` configuration variable which takes a
- function that will convert the content of the code block to HTML. This is
- most useful for syntax highlighting. For fenced code blocks in Markdown
- Extra, the function has access to the language class name (the one outside
- of the special attribute block). Credits to Mario Konrad for providing the
+* Added a `code_block_content_func` configuration variable which takes a
+ function that will convert the content of the code block to HTML. This is
+ most useful for syntax highlighting. For fenced code blocks in Markdown
+ Extra, the function has access to the language class name (the one outside
+ of the special attribute block). Credits to Mario Konrad for providing the
implementation.
* The curled arrow character for the backlink in footnotes is now followed
by a Unicode variant selector to prevent it from being displayed in emoji
form on iOS.
- Note that in older browsers the variant selector is often interpreted as a
- separate character, making it visible after the arrow. So there is now a
- also a `fn_backlink_html` configuration variable that can be used to set
- the link text to something else. Credits to Dana for providing the
+ Note that in older browsers the variant selector is often interpreted as a
+ separate character, making it visible after the arrow. So there is now a
+ also a `fn_backlink_html` configuration variable that can be used to set
+ the link text to something else. Credits to Dana for providing the
implementation.
* Fixed an issue in MarkdownExtra where long header lines followed by a
@@ -235,13 +260,13 @@ PHP Markdown Lib 1.5.0 (1 Mar 2015)
* Added the ability start ordered lists with a number different from 1 and
and have that reflected in the HTML output. This can be enabled with
- the `enhanced_ordered_lists` configuration variable for the Markdown
+ the `enhanced_ordered_lists` configuration variable for the Markdown
parser; it is enabled by default for Markdown Extra.
Credits to Matt Gorle for providing the implementation.
-* Added the ability to insert custom HTML attributes with simple values
+* Added the ability to insert custom HTML attributes with simple values
everywhere an extra attribute block is allowed (links, images, headers).
- The value must be unquoted, cannot contains spaces and is limited to
+ The value must be unquoted, cannot contains spaces and is limited to
alphanumeric ASCII characters.
Credits to Peter Droogmans for providing the implementation.
@@ -256,7 +281,7 @@ PHP Markdown Lib 1.5.0 (1 Mar 2015)
PHP Markdown Lib 1.4.1 (4 May 2014)
* The HTML block parser will now treat `<figure>` as a block-level element
- (as it should) and no longer wrap it in `<p>` or parse it's content with
+ (as it should) and no longer wrap it in `<p>` or parse it's content with
the as Markdown syntax (although with Extra you can use `markdown="1"`
if you wish to use the Markdown syntax inside it).
@@ -265,7 +290,7 @@ PHP Markdown Lib 1.4.1 (4 May 2014)
* Corrected an bug where some inline links with spaces in them would not
work even when surounded with angle brackets:
-
+
[link](<s p a c e s>)
* Fixed an issue where email addresses with quotes in them would not always
@@ -281,9 +306,9 @@ PHP Markdown Lib 1.4.0 (29 Nov 2013)
* Added support for the `tel:` URL scheme in automatic links.
<tel:+1-111-111-1111>
-
+
It gets converted to this (note the `tel:` prefix becomes invisible):
-
+
<a href="tel:+1-111-111-1111">+1-111-111-1111</a>
* Added backtick fenced code blocks to MarkdownExtra, originally from
@@ -294,16 +319,16 @@ PHP Markdown Lib 1.4.0 (29 Nov 2013)
you want to create a mockup parser object for unit testing.
* For those of you who cannot use class autoloading, you can now
- include `Michelf/Markdown.inc.php` or `Michelf/MarkdownExtra.inc.php` (note
+ include `Michelf/Markdown.inc.php` or `Michelf/MarkdownExtra.inc.php` (note
the `.inc.php` extension) to automatically include other files required
by the parser.
PHP Markdown Lib 1.3 (11 Apr 2013)
-This is the first release of PHP Markdown Lib. This package requires PHP
-version 5.3 or later and is designed to work with PSR-0 autoloading and,
-optionally with Composer. Here is a list of the changes since
+This is the first release of PHP Markdown Lib. This package requires PHP
+version 5.3 or later and is designed to work with PSR-0 autoloading and,
+optionally with Composer. Here is a list of the changes since
PHP Markdown Extra 1.2.6:
* Plugin interface for WordPress and other systems is no longer present in
@@ -323,22 +348,22 @@ PHP Markdown Extra 1.2.6:
* Added optional class and id attributes to images and links using the same
syntax as for headers:
- [link](url){#id .class}
+ [link](url){#id .class}
![img](url){#id .class}
-
+
It work too for reference-style links and images. In this case you need
to put those attributes at the reference definition:
- [link][linkref] or [linkref]
+ [link][linkref] or [linkref]
![img][linkref]
-
+
[linkref]: url "optional title" {#id .class}
-* Fixed a PHP notice message triggered when some table column separator
+* Fixed a PHP notice message triggered when some table column separator
markers are missing on the separator line below column headers.
* Fixed a small mistake that could cause the parser to retain an invalid
- state related to parsing links across multiple runs. This was never
+ state related to parsing links across multiple runs. This was never
observed (that I know of), but it's still worth fixing.
@@ -351,20 +376,20 @@ Copyright (c) 2004-2016 Michel Fortin
All rights reserved.
Based on Markdown
-Copyright (c) 2003-2005 John Gruber
-<https://daringfireball.net/>
+Copyright (c) 2003-2005 John Gruber
+<https://daringfireball.net/>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
-* Redistributions of source code must retain the above copyright
+* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the
+ documentation and/or other materials provided with the
distribution.
* Neither the name "Markdown" nor the names of its contributors may
diff --git a/vendor/michelf/php-markdown/Readme.php b/vendor/michelf/php-markdown/Readme.php
index 89449dea4..e473d7336 100644
--- a/vendor/michelf/php-markdown/Readme.php
+++ b/vendor/michelf/php-markdown/Readme.php
@@ -4,13 +4,15 @@
// through the Markdown filter. You can adapt this sample code in any way
// you like.
-// Install PSR-0-compatible class autoloader
+// Install PSR-4-compatible class autoloader
spl_autoload_register(function($class){
- require preg_replace('{\\\\|_(?!.*\\\\)}', DIRECTORY_SEPARATOR, ltrim($class, '\\')).'.php';
+ require str_replace('\\', DIRECTORY_SEPARATOR, ltrim($class, '\\')).'.php';
});
+// If using Composer, use this instead:
+//require 'vendor/autoloader.php';
// Get Markdown class
-use \Michelf\Markdown;
+use Michelf\Markdown;
// Read file and pass content through the Markdown parser
$text = file_get_contents('Readme.md');
diff --git a/vendor/michelf/php-markdown/composer.json b/vendor/michelf/php-markdown/composer.json
index 36a4f744a..6b1993d65 100644
--- a/vendor/michelf/php-markdown/composer.json
+++ b/vendor/michelf/php-markdown/composer.json
@@ -21,11 +21,6 @@
"php": ">=5.3.0"
},
"autoload": {
- "psr-0": { "Michelf": "" }
- },
- "extra": {
- "branch-alias": {
- "dev-lib": "1.4.x-dev"
- }
+ "psr-4": { "Michelf\\": "Michelf/" }
}
}
diff --git a/vendor/sabre/http/.travis.yml b/vendor/sabre/http/.travis.yml
index 8ae84d90f..9e4964b9d 100644
--- a/vendor/sabre/http/.travis.yml
+++ b/vendor/sabre/http/.travis.yml
@@ -9,6 +9,8 @@ php:
matrix:
fast_finish: true
+ allow_failures:
+ - php: hhvm
env:
matrix:
diff --git a/vendor/sabre/http/CHANGELOG.md b/vendor/sabre/http/CHANGELOG.md
index 00be2d887..d3dd8b2d9 100644
--- a/vendor/sabre/http/CHANGELOG.md
+++ b/vendor/sabre/http/CHANGELOG.md
@@ -1,6 +1,13 @@
ChangeLog
=========
+4.2.4 (2018-02-23)
+------------------
+
+* #69: Sending `charset="UTF-8"` on Basic authentication challenges per
+ [rfc7617][rfc7617].
+
+
4.2.3 (2017-06-12)
------------------
@@ -12,7 +19,6 @@ ChangeLog
* #72: Handling clients that send invalid `Content-Length` headers.
-
4.2.1 (2016-01-06)
------------------
@@ -259,4 +265,5 @@ Before 2.0.0, this package was built-into SabreDAV, where it first appeared in
January 2009.
[psr-http]: https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md
-[rfc-7240]: http://tools.ietf.org/html/rfc7240
+[rfc7240]: http://tools.ietf.org/html/rfc7240
+[rfc7617]: https://tools.ietf.org/html/rfc7617
diff --git a/vendor/sabre/http/lib/Auth/Basic.php b/vendor/sabre/http/lib/Auth/Basic.php
index 60633b957..c263e3f9b 100644
--- a/vendor/sabre/http/lib/Auth/Basic.php
+++ b/vendor/sabre/http/lib/Auth/Basic.php
@@ -55,7 +55,7 @@ class Basic extends AbstractAuth {
*/
function requireLogin() {
- $this->response->addHeader('WWW-Authenticate', 'Basic realm="' . $this->realm . '"');
+ $this->response->addHeader('WWW-Authenticate', 'Basic realm="' . $this->realm . '", charset="UTF-8"');
$this->response->setStatus(401);
}
diff --git a/vendor/sabre/http/lib/Sapi.php b/vendor/sabre/http/lib/Sapi.php
index 6fc6452e4..054380e73 100644
--- a/vendor/sabre/http/lib/Sapi.php
+++ b/vendor/sabre/http/lib/Sapi.php
@@ -77,12 +77,12 @@ class Sapi {
if (is_resource($body) && get_resource_type($body) == 'stream') {
if (PHP_INT_SIZE !== 4){
// use the dedicated function on 64 Bit systems
- stream_copy_to_stream($body, $output, $contentLength);
+ stream_copy_to_stream($body, $output, $contentLength);
} else {
// workaround for 32 Bit systems to avoid stream_copy_to_stream
while (!feof($body)) {
- fwrite($output, fread($body, 8192));
- }
+ fwrite($output, fread($body, 8192));
+ }
}
} else {
fwrite($output, $body, $contentLength);
diff --git a/vendor/sabre/http/lib/Version.php b/vendor/sabre/http/lib/Version.php
index aeb080e93..c40532ae8 100644
--- a/vendor/sabre/http/lib/Version.php
+++ b/vendor/sabre/http/lib/Version.php
@@ -14,6 +14,6 @@ class Version {
/**
* Full version number
*/
- const VERSION = '4.2.3';
+ const VERSION = '4.2.4';
}
diff --git a/vendor/sabre/vobject/CHANGELOG.md b/vendor/sabre/vobject/CHANGELOG.md
index 56a36f99c..269b3dbff 100644
--- a/vendor/sabre/vobject/CHANGELOG.md
+++ b/vendor/sabre/vobject/CHANGELOG.md
@@ -1,6 +1,22 @@
ChangeLog
=========
+4.1.5 (2018-03-08)
+------------------
+
+* Serialization: Performance boost for long properties (@gharlan)
+
+4.1.4 (2017-12-22)
+------------------
+
+* #383: Fix possible infinite loop in RRuleIterator, when the RRule FREQ
+ is YEARLY and it uses BYYEARDAY only (@mvdnes).
+* #392: Improved significant change detection. This should reduce the number of
+ unneeded update emails in scheduling systems. (@alecpl).
+* #395: Removed `Canada/East-Saskatchewan` timezone, as it got removed
+ from PHP as well. (@remicollet).
+
+
4.1.3 (2017-10-18)
------------------
diff --git a/vendor/sabre/vobject/composer.json b/vendor/sabre/vobject/composer.json
index 1f22f6de1..2407cabb1 100644
--- a/vendor/sabre/vobject/composer.json
+++ b/vendor/sabre/vobject/composer.json
@@ -37,7 +37,7 @@
"sabre/xml" : ">=1.5 <3.0"
},
"require-dev" : {
- "phpunit/phpunit" : "> 4.8, <6.0.0",
+ "phpunit/phpunit" : "> 4.8.35, <6.0.0",
"sabre/cs" : "^1.0.0"
},
diff --git a/vendor/sabre/vobject/lib/ITip/Broker.php b/vendor/sabre/vobject/lib/ITip/Broker.php
index effa74317..b9a30611b 100644
--- a/vendor/sabre/vobject/lib/ITip/Broker.php
+++ b/vendor/sabre/vobject/lib/ITip/Broker.php
@@ -849,6 +849,7 @@ class Broker {
$exdate = [];
foreach ($calendar->VEVENT as $vevent) {
+ $rrule = [];
if (is_null($uid)) {
$uid = $vevent->UID->getValue();
@@ -889,6 +890,18 @@ class Broker {
}
sort($exdate);
}
+ if (isset($vevent->RRULE)) {
+ foreach ($vevent->select('RRULE') as $rr) {
+ foreach ($rr->getParts() as $key => $val) {
+ // ignore default values (https://github.com/sabre-io/vobject/issues/126)
+ if ($key === 'INTERVAL' && $val == 1) {
+ continue;
+ }
+ $rrule[] = "$key=$val";
+ }
+ }
+ sort($rrule);
+ }
if (isset($vevent->STATUS)) {
$status = strtoupper($vevent->STATUS->getValue());
}
@@ -953,19 +966,16 @@ class Broker {
$significantChangeHash .= $prop . ':';
if ($prop === 'EXDATE') {
-
$significantChangeHash .= implode(',', $exdate) . ';';
-
+ } elseif ($prop === 'RRULE') {
+ $significantChangeHash .= implode(',', $rrule) . ';';
} else {
-
foreach ($propertyValues as $val) {
$significantChangeHash .= $val->getValue() . ';';
}
-
}
}
}
-
}
$significantChangeHash = md5($significantChangeHash);
diff --git a/vendor/sabre/vobject/lib/Parser/MimeDir.php b/vendor/sabre/vobject/lib/Parser/MimeDir.php
index fa75a1a3b..78e5bf385 100644
--- a/vendor/sabre/vobject/lib/Parser/MimeDir.php
+++ b/vendor/sabre/vobject/lib/Parser/MimeDir.php
@@ -464,13 +464,13 @@ class MimeDir extends Parser {
// vCard 2.1 allows the character set to be specified per property.
$charset = (string)$propObj['CHARSET'];
}
- switch ($charset) {
- case 'UTF-8' :
+ switch (strtolower($charset)) {
+ case 'utf-8' :
break;
- case 'ISO-8859-1' :
+ case 'iso-8859-1' :
$property['value'] = utf8_encode($property['value']);
break;
- case 'Windows-1252' :
+ case 'windows-1252' :
$property['value'] = mb_convert_encoding($property['value'], 'UTF-8', $charset);
break;
default :
diff --git a/vendor/sabre/vobject/lib/Property.php b/vendor/sabre/vobject/lib/Property.php
index 1aaa3ed58..96855f1f7 100644
--- a/vendor/sabre/vobject/lib/Property.php
+++ b/vendor/sabre/vobject/lib/Property.php
@@ -249,8 +249,9 @@ abstract class Property extends Node {
$out = '';
while (strlen($str) > 0) {
if (strlen($str) > 75) {
- $out .= mb_strcut($str, 0, 75, 'utf-8') . "\r\n";
- $str = ' ' . mb_strcut($str, 75, strlen($str), 'utf-8');
+ $part = mb_strcut($str, 0, 75, 'utf-8');
+ $out .= $part . "\r\n";
+ $str = ' ' . substr($str, strlen($part));
} else {
$out .= $str . "\r\n";
$str = '';
diff --git a/vendor/sabre/vobject/lib/Property/Text.php b/vendor/sabre/vobject/lib/Property/Text.php
index 476dcde4d..bb7ab34ee 100644
--- a/vendor/sabre/vobject/lib/Property/Text.php
+++ b/vendor/sabre/vobject/lib/Property/Text.php
@@ -275,8 +275,9 @@ class Text extends Property {
$out = '';
while (strlen($str) > 0) {
if (strlen($str) > 75) {
- $out .= mb_strcut($str, 0, 75, 'utf-8') . "\r\n";
- $str = ' ' . mb_strcut($str, 75, strlen($str), 'utf-8');
+ $part = mb_strcut($str, 0, 75, 'utf-8');
+ $out .= $part . "\r\n";
+ $str = ' ' . substr($str, strlen($part));
} else {
$out .= $str . "\r\n";
$str = '';
diff --git a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
index 20f34ef42..dbea1155d 100644
--- a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
+++ b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php
@@ -592,11 +592,11 @@ class RRuleIterator implements Iterator {
// loop through all YearDay and Days to check all the combinations
foreach ($this->byYearDay as $byYearDay) {
$date = clone $this->currentDate;
- $date->setDate($currentYear, 1, 1);
+ $date = $date->setDate($currentYear, 1, 1);
if ($byYearDay > 0) {
- $date->add(new \DateInterval('P' . $byYearDay . 'D'));
+ $date = $date->add(new \DateInterval('P' . $byYearDay . 'D'));
} else {
- $date->sub(new \DateInterval('P' . abs($byYearDay) . 'D'));
+ $date = $date->sub(new \DateInterval('P' . abs($byYearDay) . 'D'));
}
if ($date > $this->currentDate && in_array($date->format('N'), $dayOffsets)) {
diff --git a/vendor/sabre/vobject/lib/Version.php b/vendor/sabre/vobject/lib/Version.php
index 24c51a604..67e8a4037 100644
--- a/vendor/sabre/vobject/lib/Version.php
+++ b/vendor/sabre/vobject/lib/Version.php
@@ -14,6 +14,6 @@ class Version {
/**
* Full version number.
*/
- const VERSION = '4.1.3';
+ const VERSION = '4.1.5';
}
diff --git a/vendor/sabre/vobject/lib/timezonedata/php-bc.php b/vendor/sabre/vobject/lib/timezonedata/php-bc.php
index 906ccb0e4..83f38f507 100644
--- a/vendor/sabre/vobject/lib/timezonedata/php-bc.php
+++ b/vendor/sabre/vobject/lib/timezonedata/php-bc.php
@@ -68,7 +68,6 @@ return [
'Brazil/West',
'Canada/Atlantic',
'Canada/Central',
- 'Canada/East-Saskatchewan',
'Canada/Eastern',
'Canada/Mountain',
'Canada/Newfoundland',
diff --git a/view/css/conversation.css b/view/css/conversation.css
index c239a665b..cff59aecb 100644
--- a/view/css/conversation.css
+++ b/view/css/conversation.css
@@ -15,11 +15,11 @@
#jot-title-wrap,
#jot-pagetitle-wrap,
#jot-category-wrap {
- border-bottom: 1px solid #ccc;
+ border-bottom: 1px solid rgba(0, 0, 0, .2);
}
#jot-attachment-wrap {
- border-top: 1px solid #ccc;
+ border-top: 1px solid rgba(0, 0, 0, .2);
}
#jot-title-wrap input,
@@ -65,7 +65,7 @@
}
#profile-jot-submit-wrapper {
- border-top: 1px solid #ccc;
+ border-top: 1px solid rgba(0, 0, 0, .2);
}
/* conversation */
@@ -87,6 +87,23 @@
margin-left:10px;
}
+.wall-item-photo-wrapper {
+ position: relative;
+}
+
+.wall-item-photo-caret {
+ position: absolute;
+ left: 3px;
+ bottom: 0px;
+ color: #fff;
+ text-shadow: 1px 1px 3px rgba(0, 0, 0, .5);
+ display: none;
+}
+
+.wall-item-photo-wrapper:hover .wall-item-photo-caret {
+ display: block;
+}
+
.wall-item-divider {
margin: 5px;
}
diff --git a/view/css/mod_help.css b/view/css/mod_help.css
index 643885c99..1799493b8 100644
--- a/view/css/mod_help.css
+++ b/view/css/mod_help.css
@@ -21,9 +21,9 @@
}
#doco-side-toc li {
- padding-left: 10px;
+ padding-left: 20px;
}
#doco-side-toc {
padding-top: 10px;
-} \ No newline at end of file
+}
diff --git a/view/css/mod_import.css b/view/css/mod_import.css
deleted file mode 100644
index 8b988b324..000000000
--- a/view/css/mod_import.css
+++ /dev/null
@@ -1,37 +0,0 @@
-h2 {
- margin-left: 15%;
- margin-top: 8%;
-}
-
-#import-channel-form {
- font-size: 1.4em;
- margin-left: 15%;
- margin-top: 5%;
- width: 50%;
-}
-
-
-
-#import-channel-form .descriptive-paragraph {
- color: #888;
- margin-left: 20px;
- margin-bottom: 25px;
-}
-
-.import-label {
- float: left;
- width: 275px;
-}
-
-.import-input {
- float: left;
- width: 275px;
- padding: 5px;
-}
-
-
-.import-field-end {
- clear: both;
- margin-bottom: 20px;
-}
-
diff --git a/view/css/mod_oauth2testvehicle.css b/view/css/mod_oauth2testvehicle.css
new file mode 100644
index 000000000..0ef2896b5
--- /dev/null
+++ b/view/css/mod_oauth2testvehicle.css
@@ -0,0 +1,4 @@
+.oath2test-form-box {
+ border: #ccc thin solid;
+ padding: 1em;
+} \ No newline at end of file
diff --git a/view/css/widgets.css b/view/css/widgets.css
index 48df1811f..9730d6915 100644
--- a/view/css/widgets.css
+++ b/view/css/widgets.css
@@ -41,6 +41,7 @@ li:hover .widget-nav-pills-icons {
/* notes */
#note-text {
+ border: 1px solid rgba(0,0,0,.125);
padding: 5px;
width: 100%;
resize: none;
diff --git a/view/de-de/hmessages.po b/view/de-de/hmessages.po
index bdd6c0ac2..d7ae365e5 100644
--- a/view/de-de/hmessages.po
+++ b/view/de-de/hmessages.po
@@ -27,8 +27,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-03-01 08:51+0100\n"
-"PO-Revision-Date: 2018-03-04 23:22+0000\n"
+"POT-Creation-Date: 2018-04-23 11:34+0200\n"
+"PO-Revision-Date: 2018-04-26 18:46+0000\n"
"Last-Translator: Phellmes <forum@suschka.de>\n"
"Language-Team: German (http://www.transifex.com/Friendica/red-matrix/language/de/)\n"
"MIME-Version: 1.0\n"
@@ -109,75 +109,79 @@ msgstr "Kann meine öffentlichen Beiträge als Quellen für Kanäle verwenden"
msgid "Can administer my channel"
msgstr "Kann meinen Kanal administrieren"
-#: ../../Zotlabs/Access/PermissionRoles.php:265
+#: ../../Zotlabs/Access/PermissionRoles.php:283
msgid "Social Networking"
msgstr "Soziales Netzwerk"
-#: ../../Zotlabs/Access/PermissionRoles.php:266
+#: ../../Zotlabs/Access/PermissionRoles.php:284
+msgid "Social - Federation"
+msgstr "Soziales Netzwerk - Föderation (verbundene Netze)"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:285
msgid "Social - Mostly Public"
msgstr "Soziales Netzwerk - Weitgehend öffentlich"
-#: ../../Zotlabs/Access/PermissionRoles.php:267
+#: ../../Zotlabs/Access/PermissionRoles.php:286
msgid "Social - Restricted"
msgstr "Soziales Netzwerk - Beschränkt"
-#: ../../Zotlabs/Access/PermissionRoles.php:268
+#: ../../Zotlabs/Access/PermissionRoles.php:287
msgid "Social - Private"
msgstr "Soziales Netzwerk - Privat"
-#: ../../Zotlabs/Access/PermissionRoles.php:271
+#: ../../Zotlabs/Access/PermissionRoles.php:290
msgid "Community Forum"
msgstr "Forum"
-#: ../../Zotlabs/Access/PermissionRoles.php:272
+#: ../../Zotlabs/Access/PermissionRoles.php:291
msgid "Forum - Mostly Public"
msgstr "Forum - Weitgehend öffentlich"
-#: ../../Zotlabs/Access/PermissionRoles.php:273
+#: ../../Zotlabs/Access/PermissionRoles.php:292
msgid "Forum - Restricted"
msgstr "Forum - Beschränkt"
-#: ../../Zotlabs/Access/PermissionRoles.php:274
+#: ../../Zotlabs/Access/PermissionRoles.php:293
msgid "Forum - Private"
msgstr "Forum - Privat"
-#: ../../Zotlabs/Access/PermissionRoles.php:277
+#: ../../Zotlabs/Access/PermissionRoles.php:296
msgid "Feed Republish"
msgstr "Teilen von Feeds"
-#: ../../Zotlabs/Access/PermissionRoles.php:278
+#: ../../Zotlabs/Access/PermissionRoles.php:297
msgid "Feed - Mostly Public"
msgstr "Feeds - Weitgehend öffentlich"
-#: ../../Zotlabs/Access/PermissionRoles.php:279
+#: ../../Zotlabs/Access/PermissionRoles.php:298
msgid "Feed - Restricted"
msgstr "Feeds - Beschränkt"
-#: ../../Zotlabs/Access/PermissionRoles.php:282
+#: ../../Zotlabs/Access/PermissionRoles.php:301
msgid "Special Purpose"
msgstr "Für besondere Zwecke"
-#: ../../Zotlabs/Access/PermissionRoles.php:283
+#: ../../Zotlabs/Access/PermissionRoles.php:302
msgid "Special - Celebrity/Soapbox"
msgstr "Speziell - Mitteilungs-Kanal (keine Kommentare)"
-#: ../../Zotlabs/Access/PermissionRoles.php:284
+#: ../../Zotlabs/Access/PermissionRoles.php:303
msgid "Special - Group Repository"
msgstr "Speziell - Gruppenarchiv"
-#: ../../Zotlabs/Access/PermissionRoles.php:287
-#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Settings/Channel.php:473
-#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:798
+#: ../../Zotlabs/Access/PermissionRoles.php:306
+#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:144
+#: ../../Zotlabs/Module/Settings/Channel.php:479
+#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:795
#: ../../Zotlabs/Module/Register.php:224 ../../include/selectors.php:49
#: ../../include/selectors.php:66 ../../include/selectors.php:104
#: ../../include/selectors.php:140 ../../include/event.php:1315
-#: ../../include/event.php:1322 ../../include/connections.php:689
-#: ../../include/connections.php:696
+#: ../../include/event.php:1322 ../../include/connections.php:697
+#: ../../include/connections.php:704
msgid "Other"
msgstr "Andere"
-#: ../../Zotlabs/Access/PermissionRoles.php:288
+#: ../../Zotlabs/Access/PermissionRoles.php:307
msgid "Custom/Expert Mode"
msgstr "Benutzerdefiniert/Expertenmodus"
@@ -187,7 +191,7 @@ msgstr "Benutzerdefiniert/Expertenmodus"
#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20
#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Editwebpage.php:32
#: ../../Zotlabs/Module/Cards.php:33 ../../Zotlabs/Module/Webpages.php:33
-#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1198
+#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1197
msgid "Requested profile is not available."
msgstr "Das angefragte Profil ist nicht verfügbar."
@@ -198,26 +202,27 @@ msgstr "Das angefragte Profil ist nicht verfügbar."
#: ../../Zotlabs/Module/Channel.php:248 ../../Zotlabs/Module/Channel.php:288
#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Events.php:271
-#: ../../Zotlabs/Module/Appman.php:86 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:21
#: ../../Zotlabs/Module/Article_edit.php:51
-#: ../../Zotlabs/Module/New_channel.php:77
-#: ../../Zotlabs/Module/New_channel.php:102
+#: ../../Zotlabs/Module/New_channel.php:91
+#: ../../Zotlabs/Module/New_channel.php:116
#: ../../Zotlabs/Module/Sharedwithme.php:16 ../../Zotlabs/Module/Setup.php:209
#: ../../Zotlabs/Module/Moderate.php:13
-#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:275
-#: ../../Zotlabs/Module/Thing.php:295 ../../Zotlabs/Module/Thing.php:336
+#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:280
+#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Connections.php:29
#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:64
#: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:50
-#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:404
#: ../../Zotlabs/Module/Pdledit.php:29 ../../Zotlabs/Module/Poke.php:149
#: ../../Zotlabs/Module/Profile_photo.php:302
#: ../../Zotlabs/Module/Profile_photo.php:315
#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:229
#: ../../Zotlabs/Module/Item.php:246 ../../Zotlabs/Module/Item.php:256
-#: ../../Zotlabs/Module/Item.php:1099 ../../Zotlabs/Module/Page.php:34
+#: ../../Zotlabs/Module/Item.php:1106 ../../Zotlabs/Module/Page.php:34
#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:389
#: ../../Zotlabs/Module/Chat.php:100 ../../Zotlabs/Module/Chat.php:105
#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Layouts.php:71
@@ -236,7 +241,7 @@ msgstr "Das angefragte Profil ist nicht verfügbar."
#: ../../Zotlabs/Module/Register.php:77
#: ../../Zotlabs/Module/Cover_photo.php:281
#: ../../Zotlabs/Module/Cover_photo.php:294
-#: ../../Zotlabs/Module/Display.php:406 ../../Zotlabs/Module/Network.php:15
+#: ../../Zotlabs/Module/Display.php:449 ../../Zotlabs/Module/Network.php:15
#: ../../Zotlabs/Module/Filestorage.php:15
#: ../../Zotlabs/Module/Filestorage.php:70
#: ../../Zotlabs/Module/Filestorage.php:85
@@ -248,15 +253,14 @@ msgstr "Das angefragte Profil ist nicht verfügbar."
#: ../../Zotlabs/Module/Notifications.php:11
#: ../../Zotlabs/Lib/Chatroom.php:133 ../../Zotlabs/Web/WebServer.php:123
#: ../../addon/keepout/keepout.php:36 ../../addon/openid/Mod_Id.php:53
-#: ../../addon/gitwiki/Mod_Gitwiki.php:196
-#: ../../addon/gitwiki/Mod_Gitwiki.php:292 ../../addon/pumpio/pumpio.php:40
-#: ../../include/attach.php:150 ../../include/attach.php:197
-#: ../../include/attach.php:270 ../../include/attach.php:284
-#: ../../include/attach.php:293 ../../include/attach.php:366
-#: ../../include/attach.php:380 ../../include/attach.php:387
-#: ../../include/attach.php:469 ../../include/attach.php:1019
-#: ../../include/attach.php:1093 ../../include/attach.php:1258
-#: ../../include/items.php:3656 ../../include/photos.php:27
+#: ../../addon/pumpio/pumpio.php:40 ../../include/attach.php:150
+#: ../../include/attach.php:197 ../../include/attach.php:270
+#: ../../include/attach.php:284 ../../include/attach.php:293
+#: ../../include/attach.php:366 ../../include/attach.php:380
+#: ../../include/attach.php:387 ../../include/attach.php:469
+#: ../../include/attach.php:1029 ../../include/attach.php:1103
+#: ../../include/attach.php:1268 ../../include/items.php:3706
+#: ../../include/photos.php:27
msgid "Permission denied."
msgstr "Berechtigung verweigert."
@@ -265,7 +269,7 @@ msgstr "Berechtigung verweigert."
msgid "Block Name"
msgstr "Block-Name"
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2402
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2422
msgid "Blocks"
msgstr "Blöcke"
@@ -284,9 +288,9 @@ msgid "Edited"
msgstr "Geändert"
#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:96
-#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:146
+#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:160
#: ../../Zotlabs/Module/Connedit.php:921 ../../Zotlabs/Module/Menu.php:118
-#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798
#: ../../Zotlabs/Module/Cards.php:100 ../../Zotlabs/Module/Webpages.php:239
#: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:382
#: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
@@ -295,43 +299,44 @@ msgstr "Erstelle"
#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Editlayout.php:114
#: ../../Zotlabs/Module/Article_edit.php:99
-#: ../../Zotlabs/Module/Admin/Profs.php:154
-#: ../../Zotlabs/Module/Settings/Oauth.php:149
-#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Module/Editblock.php:114
-#: ../../Zotlabs/Module/Connections.php:265
-#: ../../Zotlabs/Module/Connections.php:303
-#: ../../Zotlabs/Module/Connections.php:323 ../../Zotlabs/Module/Wiki.php:202
-#: ../../Zotlabs/Module/Wiki.php:358 ../../Zotlabs/Module/Menu.php:112
+#: ../../Zotlabs/Module/Admin/Profs.php:175
+#: ../../Zotlabs/Module/Settings/Oauth2.php:149
+#: ../../Zotlabs/Module/Settings/Oauth.php:150
+#: ../../Zotlabs/Module/Thing.php:266 ../../Zotlabs/Module/Editblock.php:114
+#: ../../Zotlabs/Module/Connections.php:281
+#: ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Connections.php:339 ../../Zotlabs/Module/Wiki.php:202
+#: ../../Zotlabs/Module/Wiki.php:362 ../../Zotlabs/Module/Menu.php:112
#: ../../Zotlabs/Module/Layouts.php:193
#: ../../Zotlabs/Module/Editwebpage.php:142
-#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Editpost.php:85
-#: ../../Zotlabs/Module/Card_edit.php:99 ../../Zotlabs/Lib/Apps.php:409
-#: ../../Zotlabs/Lib/ThreadItem.php:121 ../../Zotlabs/Storage/Browser.php:288
-#: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162
-#: ../../addon/gitwiki/Mod_Gitwiki.php:151
-#: ../../addon/gitwiki/Mod_Gitwiki.php:252 ../../include/channel.php:1297
-#: ../../include/channel.php:1301 ../../include/menu.php:113
+#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Card_edit.php:99
+#: ../../Zotlabs/Lib/Apps.php:409 ../../Zotlabs/Lib/ThreadItem.php:121
+#: ../../Zotlabs/Storage/Browser.php:288 ../../Zotlabs/Widget/Cdav.php:126
+#: ../../Zotlabs/Widget/Cdav.php:162 ../../include/channel.php:1296
+#: ../../include/channel.php:1300 ../../include/menu.php:113
msgid "Edit"
msgstr "Bearbeiten"
#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1102
-#: ../../Zotlabs/Module/Layouts.php:194 ../../Zotlabs/Module/Webpages.php:241
-#: ../../Zotlabs/Widget/Cdav.php:124 ../../include/conversation.php:1363
+#: ../../Zotlabs/Module/Wiki.php:287 ../../Zotlabs/Module/Layouts.php:194
+#: ../../Zotlabs/Module/Webpages.php:241 ../../Zotlabs/Widget/Cdav.php:124
+#: ../../include/conversation.php:1366
msgid "Share"
msgstr "Teilen"
#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editlayout.php:138
#: ../../Zotlabs/Module/Cdav.php:897 ../../Zotlabs/Module/Cdav.php:1187
#: ../../Zotlabs/Module/Article_edit.php:129
-#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Admin/Accounts.php:175
#: ../../Zotlabs/Module/Admin/Channels.php:149
-#: ../../Zotlabs/Module/Admin/Profs.php:155
-#: ../../Zotlabs/Module/Settings/Oauth.php:150
-#: ../../Zotlabs/Module/Thing.php:262 ../../Zotlabs/Module/Editblock.php:139
-#: ../../Zotlabs/Module/Connections.php:273
+#: ../../Zotlabs/Module/Admin/Profs.php:176
+#: ../../Zotlabs/Module/Settings/Oauth2.php:150
+#: ../../Zotlabs/Module/Settings/Oauth.php:151
+#: ../../Zotlabs/Module/Thing.php:267 ../../Zotlabs/Module/Editblock.php:139
+#: ../../Zotlabs/Module/Connections.php:289
#: ../../Zotlabs/Module/Photos.php:1203 ../../Zotlabs/Module/Connedit.php:654
#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Group.php:179
-#: ../../Zotlabs/Module/Profiles.php:803
+#: ../../Zotlabs/Module/Profiles.php:800
#: ../../Zotlabs/Module/Editwebpage.php:167
#: ../../Zotlabs/Module/Webpages.php:242
#: ../../Zotlabs/Module/Card_edit.php:129 ../../Zotlabs/Lib/Apps.php:410
@@ -343,7 +348,6 @@ msgstr "Löschen"
#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Events.php:694
#: ../../Zotlabs/Module/Wiki.php:204 ../../Zotlabs/Module/Layouts.php:198
#: ../../Zotlabs/Module/Webpages.php:246 ../../Zotlabs/Module/Pubsites.php:60
-#: ../../addon/gitwiki/Mod_Gitwiki.php:153
msgid "View"
msgstr "Ansicht"
@@ -420,30 +424,31 @@ msgstr "3. Klicke auf [Verbinden]"
#: ../../Zotlabs/Module/Invite.php:151 ../../Zotlabs/Module/Locs.php:121
#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Events.php:493
-#: ../../Zotlabs/Module/Appman.php:152
+#: ../../Zotlabs/Module/Appman.php:153
#: ../../Zotlabs/Module/Import_items.php:129
#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:349
#: ../../Zotlabs/Module/Connect.php:98
#: ../../Zotlabs/Module/Admin/Features.php:66
#: ../../Zotlabs/Module/Admin/Plugins.php:438
-#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:168
#: ../../Zotlabs/Module/Admin/Logs.php:84
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Themes.php:158
-#: ../../Zotlabs/Module/Admin/Site.php:289
-#: ../../Zotlabs/Module/Admin/Profs.php:157
+#: ../../Zotlabs/Module/Admin/Site.php:296
+#: ../../Zotlabs/Module/Admin/Profs.php:178
#: ../../Zotlabs/Module/Admin/Account_edit.php:74
#: ../../Zotlabs/Module/Admin/Security.php:104
-#: ../../Zotlabs/Module/Settings/Permcats.php:110
-#: ../../Zotlabs/Module/Settings/Channel.php:488
-#: ../../Zotlabs/Module/Settings/Features.php:47
+#: ../../Zotlabs/Module/Settings/Permcats.php:115
+#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Features.php:79
#: ../../Zotlabs/Module/Settings/Tokens.php:168
+#: ../../Zotlabs/Module/Settings/Oauth2.php:84
#: ../../Zotlabs/Module/Settings/Account.php:118
#: ../../Zotlabs/Module/Settings/Featured.php:54
#: ../../Zotlabs/Module/Settings/Display.php:192
-#: ../../Zotlabs/Module/Settings/Oauth.php:87
-#: ../../Zotlabs/Module/Thing.php:321 ../../Zotlabs/Module/Thing.php:374
-#: ../../Zotlabs/Module/Import.php:529 ../../Zotlabs/Module/Cal.php:345
+#: ../../Zotlabs/Module/Settings/Oauth.php:88
+#: ../../Zotlabs/Module/Thing.php:326 ../../Zotlabs/Module/Thing.php:379
+#: ../../Zotlabs/Module/Import.php:530 ../../Zotlabs/Module/Cal.php:345
#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Photos.php:1082
#: ../../Zotlabs/Module/Photos.php:1122 ../../Zotlabs/Module/Photos.php:1240
#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Module/Pdledit.php:98
@@ -451,17 +456,17 @@ msgstr "3. Klicke auf [Verbinden]"
#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:242
#: ../../Zotlabs/Module/Email_validation.php:40
#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Defperms.php:249
-#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:726
-#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149
-#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Module/Mail.php:431
-#: ../../Zotlabs/Module/Filestorage.php:160 ../../Zotlabs/Module/Rate.php:166
-#: ../../Zotlabs/Lib/ThreadItem.php:750
+#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:723
+#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:114
+#: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Lib/ThreadItem.php:752
#: ../../Zotlabs/Widget/Eventstools.php:16
#: ../../Zotlabs/Widget/Wiki_pages.php:40
#: ../../Zotlabs/Widget/Wiki_pages.php:97
#: ../../view/theme/redbasic_c/php/config.php:95
#: ../../view/theme/redbasic/php/config.php:93
-#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:275
#: ../../addon/planets/planets.php:153
#: ../../addon/openclipatar/openclipatar.php:53
#: ../../addon/wppost/wppost.php:113 ../../addon/nsfw/nsfw.php:92
@@ -469,16 +474,16 @@ msgstr "3. Klicke auf [Verbinden]"
#: ../../addon/likebanner/likebanner.php:57
#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53
#: ../../addon/ljpost/ljpost.php:86 ../../addon/startpage/startpage.php:113
-#: ../../addon/diaspora/diaspora.php:822
-#: ../../addon/gitwiki/Mod_Gitwiki.php:155
+#: ../../addon/diaspora/diaspora.php:825
#: ../../addon/rainbowtag/rainbowtag.php:85 ../../addon/hzfiles/hzfiles.php:84
#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161
#: ../../addon/mailtest/mailtest.php:100
#: ../../addon/openstreetmap/openstreetmap.php:168
-#: ../../addon/rtof/rtof.php:101 ../../addon/jappixmini/jappixmini.php:371
+#: ../../addon/fuzzloc/fuzzloc.php:191 ../../addon/rtof/rtof.php:101
+#: ../../addon/jappixmini/jappixmini.php:371
#: ../../addon/superblock/superblock.php:120 ../../addon/nofed/nofed.php:80
#: ../../addon/redred/redred.php:119 ../../addon/logrot/logrot.php:35
-#: ../../addon/frphotos/frphotos.php:96 ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/frphotos/frphotos.php:97 ../../addon/pubcrawl/pubcrawl.php:1072
#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85
#: ../../addon/flattrwidget/flattrwidget.php:124
#: ../../addon/statusnet/statusnet.php:322
@@ -487,15 +492,16 @@ msgstr "3. Klicke auf [Verbinden]"
#: ../../addon/statusnet/statusnet.php:900 ../../addon/twitter/twitter.php:218
#: ../../addon/twitter/twitter.php:265
#: ../../addon/smileybutton/smileybutton.php:219
-#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/pageheader.php:48
+#: ../../addon/cart/cart.php:1104 ../../addon/piwik/piwik.php:95
+#: ../../addon/pageheader/pageheader.php:48
#: ../../addon/authchoose/authchoose.php:71 ../../addon/xmpp/xmpp.php:69
#: ../../addon/pumpio/pumpio.php:237 ../../addon/redfiles/redfiles.php:124
#: ../../addon/hubwall/hubwall.php:95 ../../include/js_strings.php:22
msgid "Submit"
msgstr "Absenden"
-#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:179
-#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:124
+#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:191
+#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:133
#: ../../include/nav.php:469
msgid "Articles"
msgstr "Artikel"
@@ -530,11 +536,11 @@ msgstr "Layout bearbeiten"
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86
#: ../../Zotlabs/Module/Import_items.php:120
-#: ../../Zotlabs/Module/Cloud.php:111 ../../Zotlabs/Module/Group.php:74
+#: ../../Zotlabs/Module/Cloud.php:117 ../../Zotlabs/Module/Group.php:74
#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:68
#: ../../Zotlabs/Module/Like.php:296 ../../Zotlabs/Web/WebServer.php:122
#: ../../addon/redphotos/redphotos.php:119 ../../addon/hzfiles/hzfiles.php:73
-#: ../../addon/frphotos/frphotos.php:81 ../../addon/redfiles/redfiles.php:109
+#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109
#: ../../include/items.php:358
msgid "Permission denied"
msgstr "Keine Berechtigung"
@@ -547,7 +553,7 @@ msgstr "Ungültiger Profil-Identifikator"
msgid "Profile Visibility Editor"
msgstr "Profil-Sichtbarkeits-Editor"
-#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1634
+#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1644
msgid "Profile"
msgstr "Profil"
@@ -560,7 +566,7 @@ msgid "Visible To"
msgstr "Sichtbar für"
#: ../../Zotlabs/Module/Profperm.php:140
-#: ../../Zotlabs/Module/Connections.php:140
+#: ../../Zotlabs/Module/Connections.php:200
msgid "All Connections"
msgstr "Alle Verbindungen"
@@ -575,9 +581,9 @@ msgstr "Zusammenfassung:"
#: ../../Zotlabs/Module/Cdav.php:786 ../../Zotlabs/Module/Cdav.php:787
#: ../../Zotlabs/Module/Cdav.php:794 ../../Zotlabs/Module/Embedphotos.php:146
#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1273
-#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:832
+#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:833
#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Widget/Portfolio.php:95
-#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:853
+#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:891
#: ../../include/conversation.php:1160
msgid "Unknown"
msgstr "Unbekannt"
@@ -615,14 +621,14 @@ msgid "End date and time"
msgstr "Enddatum und -zeit"
#: ../../Zotlabs/Module/Cdav.php:871 ../../Zotlabs/Module/Events.php:473
-#: ../../Zotlabs/Module/Appman.php:142 ../../Zotlabs/Module/Rbmark.php:101
+#: ../../Zotlabs/Module/Appman.php:143 ../../Zotlabs/Module/Rbmark.php:101
#: ../../addon/rendezvous/rendezvous.php:173
msgid "Description"
msgstr "Beschreibung"
#: ../../Zotlabs/Module/Cdav.php:872 ../../Zotlabs/Module/Locs.php:117
#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Profiles.php:509
-#: ../../Zotlabs/Module/Profiles.php:737 ../../Zotlabs/Module/Pubsites.php:52
+#: ../../Zotlabs/Module/Profiles.php:734 ../../Zotlabs/Module/Pubsites.php:52
#: ../../include/js_strings.php:25
msgid "Location"
msgstr "Ort"
@@ -687,17 +693,17 @@ msgstr "Alles löschen"
#: ../../Zotlabs/Module/Cdav.php:899 ../../Zotlabs/Module/Cdav.php:1188
#: ../../Zotlabs/Module/Admin/Plugins.php:423
-#: ../../Zotlabs/Module/Settings/Oauth.php:88
-#: ../../Zotlabs/Module/Settings/Oauth.php:114
-#: ../../Zotlabs/Module/Wiki.php:345 ../../Zotlabs/Module/Wiki.php:375
+#: ../../Zotlabs/Module/Settings/Oauth2.php:85
+#: ../../Zotlabs/Module/Settings/Oauth2.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:89
+#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Wiki.php:347 ../../Zotlabs/Module/Wiki.php:379
#: ../../Zotlabs/Module/Profile_photo.php:464
#: ../../Zotlabs/Module/Connedit.php:924 ../../Zotlabs/Module/Fbrowser.php:66
-#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:804
-#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:365
+#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:366
#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138
-#: ../../addon/gitwiki/Mod_Gitwiki.php:244
-#: ../../addon/gitwiki/Mod_Gitwiki.php:267 ../../include/conversation.php:1386
-#: ../../include/conversation.php:1435
+#: ../../include/conversation.php:1389 ../../include/conversation.php:1438
msgid "Cancel"
msgstr "Abbrechen"
@@ -708,14 +714,15 @@ msgstr "Entschuldigung, aber das Bearbeiten von wiederkehrenden Veranstaltungen
#: ../../Zotlabs/Module/Cdav.php:1170
#: ../../Zotlabs/Module/Sharedwithme.php:105
#: ../../Zotlabs/Module/Admin/Channels.php:159
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+#: ../../Zotlabs/Module/Settings/Oauth.php:116
#: ../../Zotlabs/Module/Wiki.php:209 ../../Zotlabs/Module/Connedit.php:906
#: ../../Zotlabs/Module/Chat.php:251 ../../Zotlabs/Lib/NativeWikiPage.php:558
#: ../../Zotlabs/Storage/Browser.php:283
#: ../../Zotlabs/Widget/Wiki_page_history.php:22
#: ../../addon/rendezvous/rendezvous.php:172
-#: ../../addon/gitwiki/Mod_Gitwiki.php:158
msgid "Name"
msgstr "Name"
@@ -728,76 +735,78 @@ msgid "Title"
msgstr "Titel"
#: ../../Zotlabs/Module/Cdav.php:1173 ../../Zotlabs/Module/Connedit.php:909
-#: ../../Zotlabs/Module/Profiles.php:789
+#: ../../Zotlabs/Module/Profiles.php:786
msgid "Phone"
msgstr "Telefon"
#: ../../Zotlabs/Module/Cdav.php:1174
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
-#: ../../Zotlabs/Module/Admin/Accounts.php:182
-#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:790
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:183
+#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:787
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93
-#: ../../addon/redred/redred.php:107 ../../include/network.php:1775
+#: ../../addon/redred/redred.php:107 ../../include/network.php:1770
msgid "Email"
msgstr "E-Mail"
#: ../../Zotlabs/Module/Cdav.php:1175 ../../Zotlabs/Module/Connedit.php:911
-#: ../../Zotlabs/Module/Profiles.php:791
+#: ../../Zotlabs/Module/Profiles.php:788
msgid "Instant messenger"
msgstr "Sofortnachrichtendienst"
#: ../../Zotlabs/Module/Cdav.php:1176 ../../Zotlabs/Module/Connedit.php:912
-#: ../../Zotlabs/Module/Profiles.php:792
+#: ../../Zotlabs/Module/Profiles.php:789
msgid "Website"
msgstr "Webseite"
#: ../../Zotlabs/Module/Cdav.php:1177 ../../Zotlabs/Module/Locs.php:118
#: ../../Zotlabs/Module/Admin/Channels.php:160
#: ../../Zotlabs/Module/Connedit.php:913 ../../Zotlabs/Module/Profiles.php:502
-#: ../../Zotlabs/Module/Profiles.php:793
+#: ../../Zotlabs/Module/Profiles.php:790
msgid "Address"
msgstr "Adresse"
#: ../../Zotlabs/Module/Cdav.php:1178 ../../Zotlabs/Module/Connedit.php:914
-#: ../../Zotlabs/Module/Profiles.php:794
+#: ../../Zotlabs/Module/Profiles.php:791
msgid "Note"
msgstr "Hinweis"
#: ../../Zotlabs/Module/Cdav.php:1179 ../../Zotlabs/Module/Connedit.php:915
-#: ../../Zotlabs/Module/Profiles.php:795 ../../include/event.php:1308
-#: ../../include/connections.php:682
+#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1308
+#: ../../include/connections.php:690
msgid "Mobile"
msgstr "Mobil"
#: ../../Zotlabs/Module/Cdav.php:1180 ../../Zotlabs/Module/Connedit.php:916
-#: ../../Zotlabs/Module/Profiles.php:796 ../../include/event.php:1309
-#: ../../include/connections.php:683
+#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1309
+#: ../../include/connections.php:691
msgid "Home"
msgstr "Home"
#: ../../Zotlabs/Module/Cdav.php:1181 ../../Zotlabs/Module/Connedit.php:917
-#: ../../Zotlabs/Module/Profiles.php:797 ../../include/event.php:1312
-#: ../../include/connections.php:686
+#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1312
+#: ../../include/connections.php:694
msgid "Work"
msgstr "Arbeit"
#: ../../Zotlabs/Module/Cdav.php:1183 ../../Zotlabs/Module/Connedit.php:919
-#: ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Profiles.php:796
#: ../../addon/jappixmini/jappixmini.php:368
msgid "Add Contact"
msgstr "Kontakt hinzufügen"
#: ../../Zotlabs/Module/Cdav.php:1184 ../../Zotlabs/Module/Connedit.php:920
-#: ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Profiles.php:797
msgid "Add Field"
msgstr "Feld hinzufügen"
#: ../../Zotlabs/Module/Cdav.php:1186
#: ../../Zotlabs/Module/Admin/Plugins.php:453
-#: ../../Zotlabs/Module/Settings/Oauth.php:42
-#: ../../Zotlabs/Module/Settings/Oauth.php:113
-#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:802
+#: ../../Zotlabs/Module/Settings/Oauth2.php:39
+#: ../../Zotlabs/Module/Settings/Oauth2.php:112
+#: ../../Zotlabs/Module/Settings/Oauth.php:43
+#: ../../Zotlabs/Module/Settings/Oauth.php:114
+#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:799
#: ../../Zotlabs/Lib/Apps.php:393
msgid "Update"
msgstr "Aktualisieren"
@@ -827,7 +836,7 @@ msgid "ZIP Code"
msgstr "Postleitzahl"
#: ../../Zotlabs/Module/Cdav.php:1195 ../../Zotlabs/Module/Connedit.php:931
-#: ../../Zotlabs/Module/Profiles.php:760
+#: ../../Zotlabs/Module/Profiles.php:757
msgid "Country"
msgstr "Land"
@@ -843,8 +852,8 @@ msgstr "Standardadressbuch"
msgid "This site is not a directory server"
msgstr "Diese Webseite ist kein Verzeichnisserver"
-#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Chat.php:25
-#: ../../addon/gitwiki/Mod_Gitwiki.php:28 ../../addon/chess/chess.php:508
+#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Chat.php:25 ../../addon/chess/chess.php:508
msgid "You must be logged in to see this page."
msgstr "Du musst angemeldet sein, um diese Seite betrachten zu können."
@@ -935,24 +944,24 @@ msgstr "Du hast keine ungelesenen Beiträge..."
msgid "Public access denied."
msgstr "Öffentlichen Zugriff verweigert."
-#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:335
#: ../../Zotlabs/Lib/Apps.php:256 ../../Zotlabs/Widget/Sitesearch.php:31
#: ../../include/text.php:1051 ../../include/text.php:1063
#: ../../include/acl_selectors.php:118 ../../include/nav.php:179
msgid "Search"
msgstr "Suche"
-#: ../../Zotlabs/Module/Search.php:226
+#: ../../Zotlabs/Module/Search.php:230
#, php-format
msgid "Items tagged with: %s"
msgstr "Beiträge mit Schlagwort: %s"
-#: ../../Zotlabs/Module/Search.php:228
+#: ../../Zotlabs/Module/Search.php:232
#, php-format
msgid "Search results for: %s"
msgstr "Suchergebnisse für: %s"
-#: ../../Zotlabs/Module/Pubstream.php:93
+#: ../../Zotlabs/Module/Pubstream.php:95
#: ../../Zotlabs/Widget/Notifications.php:131
msgid "Public Stream"
msgstr "Öffentlicher Beitrags-Stream"
@@ -1053,7 +1062,7 @@ msgid "Menu Item Permissions"
msgstr "Zugriffsrechte des Menü-Elements"
#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231
-#: ../../Zotlabs/Module/Settings/Channel.php:521
+#: ../../Zotlabs/Module/Settings/Channel.php:528
msgid "(click to open/close)"
msgstr "(zum öffnen/schließen anklicken)"
@@ -1077,8 +1086,8 @@ msgstr "Magic-Auth verwenden, falls verfügbar"
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
#: ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Admin/Site.php:252
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:99 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1087,7 +1096,7 @@ msgstr "Magic-Auth verwenden, falls verfügbar"
#: ../../Zotlabs/Module/Defperms.php:180 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1096,9 +1105,9 @@ msgstr "Magic-Auth verwenden, falls verfügbar"
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/fuzzloc/fuzzloc.php:178 ../../addon/rtof/rtof.php:81
#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
@@ -1116,11 +1125,12 @@ msgstr "Magic-Auth verwenden, falls verfügbar"
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
#: ../../addon/smileybutton/smileybutton.php:215
-#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
-#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
-#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145
+#: ../../addon/cart/cart.php:1075 ../../addon/cart/cart.php:1082
+#: ../../addon/cart/cart.php:1090 ../../addon/authchoose/authchoose.php:67
+#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
+#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "No"
msgstr "Nein"
@@ -1128,8 +1138,8 @@ msgstr "Nein"
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
#: ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Admin/Site.php:254
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:98 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1138,7 +1148,7 @@ msgstr "Nein"
#: ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1147,9 +1157,9 @@ msgstr "Nein"
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/fuzzloc/fuzzloc.php:178 ../../addon/rtof/rtof.php:81
#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
@@ -1167,11 +1177,12 @@ msgstr "Nein"
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
#: ../../addon/smileybutton/smileybutton.php:215
-#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
-#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
-#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145
+#: ../../addon/cart/cart.php:1075 ../../addon/cart/cart.php:1082
+#: ../../addon/cart/cart.php:1090 ../../addon/authchoose/authchoose.php:67
+#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
+#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "Yes"
msgstr "Ja"
@@ -1281,8 +1292,8 @@ msgid "Event not found."
msgstr "Termin nicht gefunden."
#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73
-#: ../../Zotlabs/Module/Like.php:385 ../../include/conversation.php:119
-#: ../../include/text.php:2007 ../../include/event.php:1153
+#: ../../Zotlabs/Module/Like.php:386 ../../include/conversation.php:119
+#: ../../include/text.php:2008 ../../include/event.php:1153
msgid "event"
msgstr "Termin"
@@ -1291,9 +1302,9 @@ msgid "Edit event title"
msgstr "Termintitel bearbeiten"
#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:465
-#: ../../Zotlabs/Module/Appman.php:140 ../../Zotlabs/Module/Appman.php:141
-#: ../../Zotlabs/Module/Profiles.php:748 ../../Zotlabs/Module/Profiles.php:752
-#: ../../include/datetime.php:205
+#: ../../Zotlabs/Module/Appman.php:141 ../../Zotlabs/Module/Appman.php:142
+#: ../../Zotlabs/Module/Profiles.php:745 ../../Zotlabs/Module/Profiles.php:749
+#: ../../include/datetime.php:211
msgid "Required"
msgstr "Benötigt"
@@ -1344,12 +1355,12 @@ msgid "Edit Location"
msgstr "Ort bearbeiten"
#: ../../Zotlabs/Module/Events.php:478 ../../Zotlabs/Module/Photos.php:1123
-#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:760
-#: ../../include/conversation.php:1330
+#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:762
+#: ../../include/conversation.php:1333
msgid "Preview"
msgstr "Vorschau"
-#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1402
+#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1405
msgid "Permission settings"
msgstr "Berechtigungs-Einstellungen"
@@ -1374,7 +1385,7 @@ msgid "Delete event"
msgstr "Termin löschen"
#: ../../Zotlabs/Module/Events.php:660 ../../Zotlabs/Module/Cal.php:315
-#: ../../include/text.php:1826
+#: ../../include/text.php:1827
msgid "Link to Source"
msgstr "Link zur Quelle"
@@ -1391,7 +1402,7 @@ msgid "Create Event"
msgstr "Termin anlegen"
#: ../../Zotlabs/Module/Events.php:691 ../../Zotlabs/Module/Cal.php:341
-#: ../../include/channel.php:1637
+#: ../../include/channel.php:1647
msgid "Export"
msgstr "Exportieren"
@@ -1403,55 +1414,55 @@ msgstr "Termin gelöscht"
msgid "Failed to remove event"
msgstr "Termin konnte nicht gelöscht werden"
-#: ../../Zotlabs/Module/Appman.php:38 ../../Zotlabs/Module/Appman.php:55
+#: ../../Zotlabs/Module/Appman.php:39 ../../Zotlabs/Module/Appman.php:56
msgid "App installed."
msgstr "App installiert."
-#: ../../Zotlabs/Module/Appman.php:48
+#: ../../Zotlabs/Module/Appman.php:49
msgid "Malformed app."
msgstr "Fehlerhafte App."
-#: ../../Zotlabs/Module/Appman.php:129
+#: ../../Zotlabs/Module/Appman.php:130
msgid "Embed code"
msgstr "Code einbetten"
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Edit App"
msgstr "App bearbeiten"
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Create App"
msgstr "App erstellen"
-#: ../../Zotlabs/Module/Appman.php:140
+#: ../../Zotlabs/Module/Appman.php:141
msgid "Name of app"
msgstr "Name der App"
-#: ../../Zotlabs/Module/Appman.php:141
+#: ../../Zotlabs/Module/Appman.php:142
msgid "Location (URL) of app"
msgstr "Ort (URL) der App"
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "Photo icon URL"
msgstr "URL zum Icon"
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "80 x 80 pixels - optional"
msgstr "80 x 80 Pixel – optional"
-#: ../../Zotlabs/Module/Appman.php:144
+#: ../../Zotlabs/Module/Appman.php:145
msgid "Categories (optional, comma separated list)"
msgstr "Kategorien (optional, kommagetrennte Liste)"
-#: ../../Zotlabs/Module/Appman.php:145
+#: ../../Zotlabs/Module/Appman.php:146
msgid "Version ID"
msgstr "Versions-ID"
-#: ../../Zotlabs/Module/Appman.php:146
+#: ../../Zotlabs/Module/Appman.php:147
msgid "Price of app"
msgstr "Preis der App"
-#: ../../Zotlabs/Module/Appman.php:147
+#: ../../Zotlabs/Module/Appman.php:148
msgid "Location (URL) to purchase app"
msgstr "Ort (URL), um die App zu kaufen"
@@ -1464,16 +1475,16 @@ msgid "Hub not found."
msgstr "Server nicht gefunden."
#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69
-#: ../../Zotlabs/Module/Like.php:383
+#: ../../Zotlabs/Module/Like.php:384
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:116 ../../include/text.php:2004
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1405
+#: ../../include/conversation.php:116 ../../include/text.php:2005
msgid "photo"
msgstr "Foto"
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:383
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:144 ../../include/text.php:2010
+#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1405
+#: ../../include/conversation.php:144 ../../include/text.php:2011
msgid "status"
msgstr "Status"
@@ -1503,8 +1514,9 @@ msgid "Insert web link"
msgstr "Link einfügen"
#: ../../Zotlabs/Module/Article_edit.php:117
-#: ../../Zotlabs/Module/Editblock.php:129
-#: ../../Zotlabs/Module/Card_edit.php:117 ../../include/conversation.php:1398
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:698
+#: ../../Zotlabs/Module/Photos.php:1068 ../../Zotlabs/Module/Card_edit.php:117
+#: ../../include/conversation.php:1401
msgid "Title (optional)"
msgstr "Titel (optional)"
@@ -1527,7 +1539,6 @@ msgid "Imported file is empty."
msgstr "Die importierte Datei ist leer."
#: ../../Zotlabs/Module/Import_items.php:93
-#: ../../Zotlabs/Module/Import.php:121
#, php-format
msgid "Warning: Database versions differ by %1$d updates."
msgstr "Achtung: Datenbankversionen unterscheiden sich um %1$d Aktualisierungen."
@@ -1546,32 +1557,32 @@ msgid ""
msgstr "Mit diesem Formular kannst Du existierende Beiträge und Inhalte aus einer Sicherungsdatei importieren."
#: ../../Zotlabs/Module/Import_items.php:127
-#: ../../Zotlabs/Module/Import.php:516
+#: ../../Zotlabs/Module/Import.php:517
msgid "File to Upload"
msgstr "Hochzuladende Datei:"
-#: ../../Zotlabs/Module/New_channel.php:119
+#: ../../Zotlabs/Module/New_channel.php:133
#: ../../Zotlabs/Module/Manage.php:138
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet."
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Name or caption"
msgstr "Name oder Titel"
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""
msgstr "Beispiele: „Horst Weidinger“, „Lisa und ihr Meerschweinchen“, „Fußball“, „Segelflieger-Forum“ "
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
msgid "Choose a short nickname"
msgstr "Wähle einen kurzen Spitznamen"
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
#, php-format
msgid ""
@@ -1579,38 +1590,47 @@ msgid ""
"e.g. nickname%s"
msgstr "Dein Spitzname wird verwendet, um eine leicht zu merkende Kanal-Adresse (ähnlich einer E-Mail-Adresse) zu erzeugen, die Du mit anderen austauschen kannst, z.B. nickname%s"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
+#: ../../Zotlabs/Module/Settings/Channel.php:539
#: ../../Zotlabs/Module/Register.php:257
msgid "Channel role and privacy"
msgstr "Kanaltyp und Privatspäre-Einstellungen"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Select a channel role with your privacy requirements."
msgstr "Wähle einen passenden Kanaltyp mit den zugehörigen Voreinstellungen zur Privatsphäre."
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Read more about roles"
msgstr "Mehr Informationen über Rollen"
-#: ../../Zotlabs/Module/New_channel.php:138
+#: ../../Zotlabs/Module/New_channel.php:152
msgid "Create Channel"
msgstr "Einen neuen Kanal anlegen"
-#: ../../Zotlabs/Module/New_channel.php:139
+#: ../../Zotlabs/Module/New_channel.php:153
+msgid ""
+"A channel is a unique network identity. It can represent a person (social "
+"network profile), a forum (group), a business or celebrity page, a newsfeed,"
+" and many other things. Channels can make connections with other channels to"
+" share information with each other."
+msgstr "Ein Kanal ist eine eindeutige Identität. Er kann eine Person (Soziales Netzwerk-Profil), ein Forum (Gruppe), eine Unternehmens- oder Prominenten-Seite, einen Newsfeed oder viele andere Dinge repräsentieren. Kanäle können Verbindungen mit anderen Kanälen eingehen, um Informationen miteinander auszutauschen."
+
+#: ../../Zotlabs/Module/New_channel.php:153
msgid ""
-"A channel is your identity on this network. It can represent a person, a "
-"blog, or a forum to name a few. Channels can make connections with other "
-"channels to share information with highly detailed permissions."
-msgstr "Ein Kanal ist Deine Identität in diesem Netzwerk. Er kann eine Person, ein Blog oder ein Forum repräsentieren, nur um ein paar Beispiele zu nennen. Kanäle können Verbindungen miteinander eingehen, um Informationen zu teilen, jeweils basierend auf sehr detaillierten Berechtigungseinstellungen."
+"The type of channel you create affects the basic privacy settings, the "
+"permissions that are granted to connections/friends, and also the channel's "
+"visibility across the network."
+msgstr "Die Art des Kanals, den Du erzeugst, beeinflusst die grundlegenden Privatsphäre-Einstellungen, die Rechte, die Verbindungen/Freunden gewährt werden, und auch die Sichtbarkeit des Kanals im gesamten Netzwerk."
-#: ../../Zotlabs/Module/New_channel.php:140
+#: ../../Zotlabs/Module/New_channel.php:154
msgid ""
"or <a href=\"import\">import an existing channel</a> from another location."
msgstr "oder <a href=\"import\">importiere einen bestehenden Kanal</a> von einem anderen Server."
-#: ../../Zotlabs/Module/New_channel.php:145
+#: ../../Zotlabs/Module/New_channel.php:159
msgid "Validate"
msgstr "Überprüfe"
@@ -1656,7 +1676,7 @@ msgid ""
msgstr "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk"
#: ../../Zotlabs/Module/Removeme.php:64
-#: ../../Zotlabs/Module/Settings/Channel.php:592
+#: ../../Zotlabs/Module/Settings/Channel.php:600
msgid "Remove Channel"
msgstr "Kanal löschen"
@@ -1715,7 +1735,7 @@ msgid ""
msgstr "Möglicherweise musst Du die Datei install/schema_xxx.sql manuell mit Hilfe eines Datenkbank-Clients importieren."
#: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262
-#: ../../Zotlabs/Module/Setup.php:745
+#: ../../Zotlabs/Module/Setup.php:749
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr "Lies die Datei \"install/INSTALL.txt\"."
@@ -1976,115 +1996,107 @@ msgstr "Fehler: Das xml-PHP-Modul wird für DAV benötigt, ist aber nicht instal
msgid "Error: zip PHP module required but not installed."
msgstr "Fehler: Das zip PHP Modul ist erforderlich, ist aber nicht installiert."
-#: ../../Zotlabs/Module/Setup.php:569
+#: ../../Zotlabs/Module/Setup.php:570 ../../Zotlabs/Module/Setup.php:579
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php ist beschreibbar"
+
+#: ../../Zotlabs/Module/Setup.php:575
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\""
" in the top folder of your web server and it is unable to do so."
msgstr "Der Installations-Assistent muss in der Lage sein, die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist er aber nicht."
-#: ../../Zotlabs/Module/Setup.php:570
+#: ../../Zotlabs/Module/Setup.php:576
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr "Meist liegt das daran, dass der Nutzer, unter dem der Web-Server läuft, keine Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst."
-#: ../../Zotlabs/Module/Setup.php:571
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
-msgstr "Am Schluss dieses Vorgangs wird ein Text generiert, den Du unter dem Dateinamen .htconfig.php im Stammverzeichnis Deiner Hubzilla-Installation speichern musst."
-
-#: ../../Zotlabs/Module/Setup.php:572
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Alternativ kannst Du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt."
-
-#: ../../Zotlabs/Module/Setup.php:575
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php ist beschreibbar"
+#: ../../Zotlabs/Module/Setup.php:577
+msgid "Please see install/INSTALL.txt for additional information."
+msgstr "Lies die Datei \"install/INSTALL.txt\"."
-#: ../../Zotlabs/Module/Setup.php:589
+#: ../../Zotlabs/Module/Setup.php:593
msgid ""
"This software uses the Smarty3 template engine to render its web views. "
"Smarty3 compiles templates to PHP to speed up rendering."
msgstr "Diese Software verwendet die Smarty3 Template Engine, um Vorlagen für die Webdarstellung zu verarbeiten. Smarty3 übersetzt diese Vorlagen nach PHP, um die Darstellung zu beschleunigen."
-#: ../../Zotlabs/Module/Setup.php:590
+#: ../../Zotlabs/Module/Setup.php:594
#, php-format
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory %s under the top level web folder."
msgstr "Um diese kompilierten Vorlagen speichern zu können, braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Hubzilla-Stammverzeichnisses."
-#: ../../Zotlabs/Module/Setup.php:591 ../../Zotlabs/Module/Setup.php:612
+#: ../../Zotlabs/Module/Setup.php:595 ../../Zotlabs/Module/Setup.php:616
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has"
" write access to this folder."
msgstr "Bitte stelle sicher, dass der Nutzer, unter dem der Web-Server läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat."
-#: ../../Zotlabs/Module/Setup.php:592
+#: ../../Zotlabs/Module/Setup.php:596
#, php-format
msgid ""
"Note: as a security measure, you should give the web server write access to "
"%s only--not the template files (.tpl) that it contains."
msgstr "Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht auf die Template-Dateien (.tpl), die das Verzeichnis enthält."
-#: ../../Zotlabs/Module/Setup.php:595
+#: ../../Zotlabs/Module/Setup.php:599
#, php-format
msgid "%s is writable"
msgstr "%s ist beschreibbar"
-#: ../../Zotlabs/Module/Setup.php:611
+#: ../../Zotlabs/Module/Setup.php:615
msgid ""
"This software uses the store directory to save uploaded files. The web "
"server needs to have write access to the store directory under the top level"
" web folder"
msgstr "Diese Software benutzt das Verzeichnis store, um hochgeladene Dateien zu speichern. Der Webserver benötigt Schreibrechte für dieses Verzeichnis direkt unterhalb des Web-Stammverzeichnisses."
-#: ../../Zotlabs/Module/Setup.php:615
+#: ../../Zotlabs/Module/Setup.php:619
msgid "store is writable"
msgstr "store ist schreibbar"
-#: ../../Zotlabs/Module/Setup.php:647
+#: ../../Zotlabs/Module/Setup.php:651
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access"
" to this site."
msgstr "Das SSL-Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder deaktiviere den HTTPS-Zugriff auf diesen Server."
-#: ../../Zotlabs/Module/Setup.php:648
+#: ../../Zotlabs/Module/Setup.php:652
msgid ""
"If you have https access to your website or allow connections to TCP port "
"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
"NOT use self-signed certificates!"
msgstr "Wenn Du via HTTPS auf Deinen Server zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, das von den Browsern ohne Sicherheitsabfrage akzeptiert wird. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich."
-#: ../../Zotlabs/Module/Setup.php:649
+#: ../../Zotlabs/Module/Setup.php:653
msgid ""
"This restriction is incorporated because public posts from you may for "
"example contain references to images on your own hub."
msgstr "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder auf Deinem eigenen Hub enthalten können."
-#: ../../Zotlabs/Module/Setup.php:650
+#: ../../Zotlabs/Module/Setup.php:654
msgid ""
"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
msgstr "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer $Projectname-Hubs (die mit korrekten Zertifikaten ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird)."
-#: ../../Zotlabs/Module/Setup.php:651
+#: ../../Zotlabs/Module/Setup.php:655
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
msgstr "Dies kann Probleme für andere Nutzer (nicht nur auf Deinem eigenen Server) verursachen, so dass wir auf dieser Forderung bestehen müssen."
-#: ../../Zotlabs/Module/Setup.php:652
+#: ../../Zotlabs/Module/Setup.php:656
msgid ""
"Providers are available that issue free certificates which are browser-"
"valid."
msgstr "Es gibt einige Zertifizierungsstellen (CAs), bei denen solche Zertifikate kostenlos zu haben sind."
-#: ../../Zotlabs/Module/Setup.php:654
+#: ../../Zotlabs/Module/Setup.php:658
msgid ""
"If you are confident that the certificate is valid and signed by a trusted "
"authority, check to see if you have failed to install an intermediate cert. "
@@ -2092,37 +2104,37 @@ msgid ""
"server communications."
msgstr "Wenn Du sicher bist, dass das Zertifikat gültig und von einer vertrauenswürdigen Zertifizierungsstelle signiert ist, prüfe auf ggf. noch zu installierende Zwischenzertifikate (intermediate). Diese werden nicht unbedingt von Browsern benötigt, aber sehr wohl für die Kommunikation zwischen Servern."
-#: ../../Zotlabs/Module/Setup.php:656
+#: ../../Zotlabs/Module/Setup.php:660
msgid "SSL certificate validation"
msgstr "SSL Zertifikatverifizierung"
-#: ../../Zotlabs/Module/Setup.php:662
+#: ../../Zotlabs/Module/Setup.php:666
msgid ""
"Url rewrite in .htaccess is not working. Check your server "
"configuration.Test: "
msgstr "Das Umschreiben von URLs (rewrite) per .htaccess funktioniert nicht. Bitte prüfe die Server-Konfiguration. Test:"
-#: ../../Zotlabs/Module/Setup.php:665
+#: ../../Zotlabs/Module/Setup.php:669
msgid "Url rewrite is working"
msgstr "Url rewrite funktioniert"
-#: ../../Zotlabs/Module/Setup.php:679
+#: ../../Zotlabs/Module/Setup.php:683
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr "Die Datenbank-Konfigurationsdatei „.htconfig.php“ konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text, um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen."
-#: ../../Zotlabs/Module/Setup.php:703
+#: ../../Zotlabs/Module/Setup.php:707
#: ../../addon/rendezvous/rendezvous.php:401
msgid "Errors encountered creating database tables."
msgstr "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten."
-#: ../../Zotlabs/Module/Setup.php:743
+#: ../../Zotlabs/Module/Setup.php:747
msgid "<h1>What next?</h1>"
msgstr "<h1>Wie geht es jetzt weiter?</h1>"
-#: ../../Zotlabs/Module/Setup.php:744
+#: ../../Zotlabs/Module/Setup.php:748
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the "
"poller."
@@ -2201,13 +2213,13 @@ msgstr "Letzter Kontakt"
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "Off"
msgstr "Aus"
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "On"
msgstr "An"
@@ -2261,11 +2273,11 @@ msgid "No failed updates."
msgstr "Keine fehlgeschlagenen Aktualisierungen."
#: ../../Zotlabs/Module/Admin/Plugins.php:259
-#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:89
+#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:94
#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:46
-#: ../../Zotlabs/Module/Display.php:410
+#: ../../Zotlabs/Module/Display.php:453
#: ../../Zotlabs/Module/Filestorage.php:24 ../../Zotlabs/Module/Admin.php:62
-#: ../../include/items.php:3569
+#: ../../include/items.php:3619
msgid "Item not found."
msgstr "Element nicht gefunden."
@@ -2291,12 +2303,12 @@ msgstr "Aktivieren"
#: ../../Zotlabs/Module/Admin/Plugins.php:341
#: ../../Zotlabs/Module/Admin/Plugins.php:436
-#: ../../Zotlabs/Module/Admin/Accounts.php:165
+#: ../../Zotlabs/Module/Admin/Accounts.php:166
#: ../../Zotlabs/Module/Admin/Logs.php:82
#: ../../Zotlabs/Module/Admin/Channels.php:145
#: ../../Zotlabs/Module/Admin/Themes.php:122
#: ../../Zotlabs/Module/Admin/Themes.php:156
-#: ../../Zotlabs/Module/Admin/Site.php:287
+#: ../../Zotlabs/Module/Admin/Site.php:294
#: ../../Zotlabs/Module/Admin/Security.php:86
#: ../../Zotlabs/Module/Admin.php:136
msgid "Administration"
@@ -2315,8 +2327,8 @@ msgstr "Umschalten"
#: ../../Zotlabs/Module/Admin/Plugins.php:344
#: ../../Zotlabs/Module/Admin/Themes.php:125 ../../Zotlabs/Lib/Apps.php:242
-#: ../../Zotlabs/Widget/Newmember.php:55
-#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/nav.php:105
+#: ../../Zotlabs/Widget/Newmember.php:46
+#: ../../Zotlabs/Widget/Settings_menu.php:141 ../../include/nav.php:105
#: ../../include/nav.php:192
msgid "Settings"
msgstr "Einstellungen"
@@ -2424,7 +2436,7 @@ msgstr[1] "%s Konten gelöscht"
msgid "Account not found"
msgstr "Konto nicht gefunden"
-#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2462
+#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2473
#, php-format
msgid "Account '%s' deleted"
msgstr "Konto '%s' gelöscht"
@@ -2439,79 +2451,80 @@ msgstr "Konto '%s' blockiert"
msgid "Account '%s' unblocked"
msgstr "Konto '%s' freigegeben"
-#: ../../Zotlabs/Module/Admin/Accounts.php:166
-#: ../../Zotlabs/Module/Admin/Accounts.php:179
+#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:180
#: ../../Zotlabs/Module/Admin.php:96 ../../Zotlabs/Widget/Admin.php:23
msgid "Accounts"
msgstr "Konten"
-#: ../../Zotlabs/Module/Admin/Accounts.php:168
+#: ../../Zotlabs/Module/Admin/Accounts.php:169
#: ../../Zotlabs/Module/Admin/Channels.php:148
msgid "select all"
msgstr "Alle auswählen"
-#: ../../Zotlabs/Module/Admin/Accounts.php:169
+#: ../../Zotlabs/Module/Admin/Accounts.php:170
msgid "Registrations waiting for confirm"
msgstr "Registrierungen warten auf Bestätigung"
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
msgid "Request date"
msgstr "Antragsdatum"
-#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:172
msgid "No registrations."
msgstr "Keine Registrierungen."
-#: ../../Zotlabs/Module/Admin/Accounts.php:172
-#: ../../Zotlabs/Module/Connections.php:287 ../../include/conversation.php:732
+#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Connections.php:303 ../../include/conversation.php:732
msgid "Approve"
msgstr "Genehmigen"
-#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Authorize.php:26
msgid "Deny"
msgstr "Verweigern"
-#: ../../Zotlabs/Module/Admin/Accounts.php:175
+#: ../../Zotlabs/Module/Admin/Accounts.php:176
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Block"
msgstr "Blockieren"
-#: ../../Zotlabs/Module/Admin/Accounts.php:176
+#: ../../Zotlabs/Module/Admin/Accounts.php:177
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Unblock"
msgstr "Freigeben"
-#: ../../Zotlabs/Module/Admin/Accounts.php:181
+#: ../../Zotlabs/Module/Admin/Accounts.php:182
msgid "ID"
msgstr "ID"
-#: ../../Zotlabs/Module/Admin/Accounts.php:183 ../../include/group.php:284
+#: ../../Zotlabs/Module/Admin/Accounts.php:184 ../../include/group.php:284
msgid "All Channels"
msgstr "Alle Kanäle"
-#: ../../Zotlabs/Module/Admin/Accounts.php:184
+#: ../../Zotlabs/Module/Admin/Accounts.php:185
msgid "Register date"
msgstr "Registrierungs-Datum"
-#: ../../Zotlabs/Module/Admin/Accounts.php:185
+#: ../../Zotlabs/Module/Admin/Accounts.php:186
msgid "Last login"
msgstr "Letzte Anmeldung"
-#: ../../Zotlabs/Module/Admin/Accounts.php:186
+#: ../../Zotlabs/Module/Admin/Accounts.php:187
msgid "Expires"
msgstr "Verfällt"
-#: ../../Zotlabs/Module/Admin/Accounts.php:187
+#: ../../Zotlabs/Module/Admin/Accounts.php:188
msgid "Service Class"
msgstr "Service-Klasse"
-#: ../../Zotlabs/Module/Admin/Accounts.php:189
+#: ../../Zotlabs/Module/Admin/Accounts.php:190
msgid ""
"Selected accounts will be deleted!\\n\\nEverything these accounts had posted"
" on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Die ausgewählten Konten werden gelöscht!\\n\\nAlles, was diese Konten auf diesem Hub veröffentlicht haben, wird endgültig gelöscht werden!\\n\\nBist du dir sicher?"
-#: ../../Zotlabs/Module/Admin/Accounts.php:190
+#: ../../Zotlabs/Module/Admin/Accounts.php:191
msgid ""
"The account {0} will be deleted!\\n\\nEverything this account has posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
@@ -2620,7 +2633,7 @@ msgid "Disallow Code"
msgstr "Code sperren"
#: ../../Zotlabs/Module/Admin/Channels.php:154
-#: ../../include/conversation.php:1808 ../../include/nav.php:378
+#: ../../include/conversation.php:1811 ../../include/nav.php:378
msgid "Channel"
msgstr "Kanal"
@@ -2665,552 +2678,549 @@ msgstr "[Experimentell]"
msgid "[Unsupported]"
msgstr "[Nicht unterstützt]"
-#: ../../Zotlabs/Module/Admin/Site.php:158
+#: ../../Zotlabs/Module/Admin/Site.php:165
msgid "Site settings updated."
msgstr "Site-Einstellungen aktualisiert."
-#: ../../Zotlabs/Module/Admin/Site.php:184
+#: ../../Zotlabs/Module/Admin/Site.php:191
#: ../../view/theme/redbasic_c/php/config.php:15
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3082
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3106
msgid "Default"
msgstr "Standard"
-#: ../../Zotlabs/Module/Admin/Site.php:195
+#: ../../Zotlabs/Module/Admin/Site.php:202
#: ../../Zotlabs/Module/Settings/Display.php:130
#, php-format
msgid "%s - (Incompatible)"
msgstr "%s - (Inkompatibel)"
-#: ../../Zotlabs/Module/Admin/Site.php:202
+#: ../../Zotlabs/Module/Admin/Site.php:209
msgid "mobile"
msgstr "mobil"
-#: ../../Zotlabs/Module/Admin/Site.php:204
+#: ../../Zotlabs/Module/Admin/Site.php:211
msgid "experimental"
msgstr "experimentell"
-#: ../../Zotlabs/Module/Admin/Site.php:206
+#: ../../Zotlabs/Module/Admin/Site.php:213
msgid "unsupported"
msgstr "nicht unterstützt"
-#: ../../Zotlabs/Module/Admin/Site.php:253
+#: ../../Zotlabs/Module/Admin/Site.php:260
msgid "Yes - with approval"
msgstr "Ja - mit Zustimmung"
-#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Admin/Site.php:266
msgid "My site is not a public server"
msgstr "Mein Server ist kein öffentlicher Server"
-#: ../../Zotlabs/Module/Admin/Site.php:260
+#: ../../Zotlabs/Module/Admin/Site.php:267
msgid "My site has paid access only"
msgstr "Meine Seite hat nur bezahlten Zugriff"
-#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Admin/Site.php:268
msgid "My site has free access only"
msgstr "Meine Seite hat nur freien Zugriff"
-#: ../../Zotlabs/Module/Admin/Site.php:262
+#: ../../Zotlabs/Module/Admin/Site.php:269
msgid "My site offers free accounts with optional paid upgrades"
msgstr "Mein Server bietet kostenlose Konten mit der Möglichkeit zu bezahlten Upgrades"
-#: ../../Zotlabs/Module/Admin/Site.php:274
+#: ../../Zotlabs/Module/Admin/Site.php:281
msgid "Beginner/Basic"
msgstr "Anfänger/Basis"
-#: ../../Zotlabs/Module/Admin/Site.php:275
+#: ../../Zotlabs/Module/Admin/Site.php:282
msgid "Novice - not skilled but willing to learn"
msgstr "Anfänger - unerfahren, aber bereit zu lernen"
-#: ../../Zotlabs/Module/Admin/Site.php:276
+#: ../../Zotlabs/Module/Admin/Site.php:283
msgid "Intermediate - somewhat comfortable"
msgstr "Fortgeschritten - relativ komfortabel"
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:284
msgid "Advanced - very comfortable"
msgstr "Fortgeschritten - sehr komfortabel"
-#: ../../Zotlabs/Module/Admin/Site.php:278
+#: ../../Zotlabs/Module/Admin/Site.php:285
msgid "Expert - I can write computer code"
msgstr "Experte - Ich kann Computercode schreiben"
-#: ../../Zotlabs/Module/Admin/Site.php:279
+#: ../../Zotlabs/Module/Admin/Site.php:286
msgid "Wizard - I probably know more than you do"
msgstr "Zauberer - ich kann wahrscheinlich mehr als Du"
-#: ../../Zotlabs/Module/Admin/Site.php:288 ../../Zotlabs/Widget/Admin.php:22
+#: ../../Zotlabs/Module/Admin/Site.php:295 ../../Zotlabs/Widget/Admin.php:22
msgid "Site"
msgstr "Seite"
-#: ../../Zotlabs/Module/Admin/Site.php:290
+#: ../../Zotlabs/Module/Admin/Site.php:297
#: ../../Zotlabs/Module/Register.php:269
msgid "Registration"
msgstr "Registrierung"
-#: ../../Zotlabs/Module/Admin/Site.php:291
+#: ../../Zotlabs/Module/Admin/Site.php:298
msgid "File upload"
msgstr "Dateiupload"
-#: ../../Zotlabs/Module/Admin/Site.php:292
+#: ../../Zotlabs/Module/Admin/Site.php:299
msgid "Policies"
msgstr "Richtlinien"
-#: ../../Zotlabs/Module/Admin/Site.php:293
+#: ../../Zotlabs/Module/Admin/Site.php:300
#: ../../include/contact_widgets.php:16
msgid "Advanced"
msgstr "Fortgeschritten"
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:304
#: ../../addon/statusnet/statusnet.php:891
msgid "Site name"
msgstr "Seitenname"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Site default technical skill level"
msgstr "Standard-Qualifikationsstufe der Website"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Used to provide a member experience matched to technical comfort level"
msgstr "Dies wird verwendet, um eine Benutzererfahrung passend zur technischen Qualifikationsstufe zu bieten."
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Lock the technical skill level setting"
msgstr "Sperre die technische Qualifikationsstufe"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Members can set their own technical comfort level by default"
msgstr "Benutzer können standardmäßig ihre eigene technische Qualifikationsstufe einstellen"
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Banner/Logo"
msgstr "Banner/Logo"
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Unfiltered HTML/CSS/JS is allowed"
msgstr "Ungefiltertes HTML/CSS/JS ist erlaubt"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid "Administrator Information"
msgstr "Administrator-Informationen"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Kontaktinformationen für Administratoren des Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann verwendet werden."
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
#: ../../Zotlabs/Module/Siteinfo.php:21
msgid "Site Information"
msgstr "Seiteninformationen"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
msgid ""
"Publicly visible description of this site. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Öffentlich sichtbare Beschreibung dieses Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann hier verwendet werden."
-#: ../../Zotlabs/Module/Admin/Site.php:306
+#: ../../Zotlabs/Module/Admin/Site.php:313
msgid "System language"
msgstr "System-Sprache"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid "System theme"
msgstr "System-Design"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Standard-System-Design – kann durch Nutzerprofile überschieben werden – <a href='#' id='cnftheme'>Design-Einstellungen ändern</a>"
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Mobile system theme"
-msgstr "System-Design für mobile Geräte:"
-
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Theme for mobile devices"
-msgstr "Theme für mobile Geräte"
-
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "Allow Feeds as Connections"
msgstr "Feeds als Verbindungen erlauben"
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "(Heavy system resource usage)"
msgstr "(führt zu hoher Systemlast)"
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid "Maximum image size"
msgstr "Maximale Bildgröße"
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Maximale Größe hochgeladener Bilder in Bytes. Standard ist 0 (keine Einschränkung)."
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid "Does this site allow new member registration?"
msgstr "Erlaubt dieser Server die Registrierung neuer Nutzer?"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid "Invitation only"
msgstr "Nur mit Einladung"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr "Erlaube die Neuregistrierung von Mitglieder nur mit einem Einladungscode. Die Registrierungs-Politik muss oben auf Ja gesetzt werden."
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age"
msgstr "Mindestalter"
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age (in years) for who may register on this site."
msgstr "Mindestalter (in Jahren) für alle, die sich auf dieser Website anmelden möchten."
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid "Which best describes the types of account offered by this hub?"
msgstr "Was ist die passendste Beschreibung der Konten auf diesem Hub?"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Register text"
msgstr "Registrierungstext"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Will be displayed prominently on the registration page."
msgstr "Wird gut sichtbar auf der Registrierungs-Seite angezeigt."
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid "Site homepage to show visitors (default: login box)"
msgstr "Homepage des Hubs, die Besuchern angezeigt wird (Voreinstellung: Anmeldemaske)"
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid ""
"example: 'public' to show public stream, 'page/sys/home' to show a system "
"webpage called 'home' or 'include:home.html' to include a file."
msgstr "Beispiele: 'public', um den Stream aller öffentlichen Beiträge anzuzeigen, 'page/sys/home', um eine System-Webseite namens 'home' anzuzeigen, 'include:home.html', um eine Datei einzufügen."
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid "Preserve site homepage URL"
msgstr "Homepage-URL schützen"
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr "Zeigt die Homepage an der Original-URL in einem Frame an, statt auf die eigentliche Adresse der Seite umzuleiten."
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid "Accounts abandoned after x days"
msgstr "Konten gelten nach X Tagen als unbenutzt"
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Verschwende keine Systemressourcen auf das Pollen von externen Seiten, wenn das Konto nicht mehr benutzt wird. Trage hier 0 für kein zeitliches Limit."
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid "Allowed friend domains"
msgstr "Erlaubte Domains für Kontakte"
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben."
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid "Verify Email Addresses"
msgstr "E-Mail-Adressen überprüfen"
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr "Aktivieren, um die Überprüfung von E-Mail-Adressen bei der Registrierung von Benutzerkonten zu aktivieren (empfohlen)."
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid "Force publish"
msgstr "Veröffentlichung erzwingen"
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Die Veröffentlichung aller Profile dieses Servers im Verzeichnis erzwingen."
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid "Import Public Streams"
msgstr "Öffentliche Beiträge importieren"
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr "Öffentliche Beiträge von anderen Servern importieren und zur Verfügung stellen. Warnung: Diese Inhalte sind nicht moderiert."
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid "Site only Public Streams"
msgstr "Öffentlichen Beitragsstrom auf diesen Server beschränken"
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid ""
"Allow access to public content originating only from this site if Imported "
"Public Streams are disabled."
msgstr "Erlaubt den Zugriff auf öffentliche Beiträge von ausschließlich dieser Website (diesem Server), wenn \"Öffentliche Beiträge importieren\" ausgeschaltet ist."
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid "Allow anybody on the internet to access the Public streams"
msgstr "Allen im Internet Zugriff auf den öffentlichen Beitragsstrom erlauben"
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid ""
"Disable to require authentication before viewing. Warning: this content is "
"unmoderated."
msgstr "Deaktiviert die erforderliche Authentifizierung vor dem Ansehen. Warnung: Diese Inhalte sind nicht moderiert."
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid "Login on Homepage"
msgstr "Log-in auf der Startseite"
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr "Zeigt Besuchern der Homepage eine Anmeldemaske, falls keine anderen Inhalte konfiguriert wurden."
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid "Enable context help"
msgstr "Kontext-Hilfe aktivieren"
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid ""
"Display contextual help for the current page when the help button is "
"pressed."
msgstr "Zeigt Kontext-sensitive Hilfe für die aktuelle Seite an, wenn der Hilfe-Knopf geklickt wird."
-#: ../../Zotlabs/Module/Admin/Site.php:329
+#: ../../Zotlabs/Module/Admin/Site.php:336
msgid "Reply-to email address for system generated email."
msgstr "Antwortadresse (reply-to) für Emails, die vom System generiert wurden."
-#: ../../Zotlabs/Module/Admin/Site.php:330
+#: ../../Zotlabs/Module/Admin/Site.php:337
msgid "Sender (From) email address for system generated email."
msgstr "Absenderadresse (from) für Emails, die vom System generiert wurden."
-#: ../../Zotlabs/Module/Admin/Site.php:331
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Name of email sender for system generated email."
msgstr "Name des Versenders von Emails, die vom System generiert wurden."
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Directory Server URL"
msgstr "Verzeichnisserver-URL"
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Default directory server"
msgstr "Standard-Verzeichnisserver"
-#: ../../Zotlabs/Module/Admin/Site.php:335
+#: ../../Zotlabs/Module/Admin/Site.php:342
msgid "Proxy user"
msgstr "Proxy Benutzer"
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:343
msgid "Proxy URL"
msgstr "Proxy URL"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Network timeout"
msgstr "Netzwerk-Timeout"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Wert in Sekunden. 0 für unbegrenzt (nicht empfohlen)."
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid "Delivery interval"
msgstr "Auslieferung Intervall"
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl Sekunden, um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared Hosts, 2-3 für VPS, 0-1 für große dedizierte Server."
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid "Deliveries per process"
msgstr "Zustellungen pro Prozess"
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust"
" if necessary to tune system performance. Recommend: 1-5."
msgstr "Anzahl der Zustellungen, die innerhalb eines einzelnen Betriebssystemprozesses versucht werden. Anpassen, falls nötig, um die System-Performance zu verbessern. Empfehlung: 1-5."
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid "Queue Threshold"
msgstr "Warteschlangen-Grenzwert"
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid ""
"Always defer immediate delivery if queue contains more than this number of "
"entries."
msgstr "Unmittelbare Zustellung immer verzögern, wenn die Warteschlange mehr als diese Anzahl von Einträgen enthält."
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid "Poll interval"
msgstr "Abfrageintervall"
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Verzögere Hintergrundprozesse um diese Anzahl Sekunden, um die Systemlast zu reduzieren. Bei 0 wird das Auslieferungsintervall verwendet."
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid "Path to ImageMagick convert program"
msgstr "Pfad zum ImageMagick-Programm convert"
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid ""
"If set, use this program to generate photo thumbnails for huge images ( > "
"4000 pixels in either dimension), otherwise memory exhaustion may occur. "
"Example: /usr/bin/convert"
msgstr "Wenn gesetzt, dann verwende dieses Programm zum Erzeugen von Vorschaubildern großer Fotos (>4000 Pixel in beiden Richtungen), anderenfalls kann Speicherüberlauf auftreten. Beispiel: /usr/bin/convert"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "Allow SVG thumbnails in file browser"
msgstr "Erlaube SVG-Vorschaubilder im Dateibrowser"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "WARNING: SVG images may contain malicious code."
msgstr "Warnung: SVG-Grafiken können Schadcode enthalten."
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid "Maximum Load Average"
msgstr "Maximales Load Average"
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Maximale Systemlast, bevor Verteil- und Empfangsprozesse verschoben werden – Standard 50"
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "Expiration period in days for imported (grid/network) content"
msgstr "Setze den Zeitraum (in Tagen), ab wann importierte (aus dem Netzwerk) Inhalte ablaufen sollen"
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "0 for no expiration of imported content"
msgstr "0 = keine Löschung importierter Inhalte"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:353
+msgid ""
+"Do not expire any posts which have comments less than this many days ago"
+msgstr "Lass keine Beiträge verfallen die Kommentare haben, die jünger als diese Anzahl von Tagen sind."
+
+#: ../../Zotlabs/Module/Admin/Site.php:355
msgid ""
"Public servers: Optional landing (marketing) webpage for new registrants"
msgstr "Öffentliche Server: Optionale Einstiegsseite (landing page) für neue Mitglieder vor deren Anmeldung"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:355
#, php-format
msgid "Create this page first. Default is %s/register"
msgstr "Erstelle zunächst die entsprechende Seite. Standard ist %s/register"
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Page to display after creating a new channel"
msgstr "Seite, die nach Erstellung eines neuen Kanals angezeigt werden soll"
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Recommend: profiles, go, or settings"
msgstr "Empfohlen: profiles, go oder settings"
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Optional: site location"
msgstr "Optional: Standort der Website"
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Region or country"
msgstr "Region oder Land"
-#: ../../Zotlabs/Module/Admin/Profs.php:69
+#: ../../Zotlabs/Module/Admin/Profs.php:89
msgid "New Profile Field"
msgstr "Neues Profilfeld"
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "Field nickname"
msgstr "Kurzname für das Feld"
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "System name of field"
msgstr "Systemname des Feldes"
-#: ../../Zotlabs/Module/Admin/Profs.php:71
#: ../../Zotlabs/Module/Admin/Profs.php:91
+#: ../../Zotlabs/Module/Admin/Profs.php:111
msgid "Input type"
msgstr "Art des Inhalts"
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Field Name"
msgstr "Feldname"
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Label on profile pages"
msgstr "Bezeichnung auf Profilseiten"
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Help text"
msgstr "Hilfetext"
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Additional info (optional)"
msgstr "Zusätzliche Informationen (optional)"
-#: ../../Zotlabs/Module/Admin/Profs.php:74
-#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32
+#: ../../Zotlabs/Module/Admin/Profs.php:94
+#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
#: ../../Zotlabs/Widget/Notes.php:18 ../../include/text.php:1052
#: ../../include/text.php:1064
msgid "Save"
msgstr "Speichern"
-#: ../../Zotlabs/Module/Admin/Profs.php:83
+#: ../../Zotlabs/Module/Admin/Profs.php:103
msgid "Field definition not found"
msgstr "Feld-Definition nicht gefunden"
-#: ../../Zotlabs/Module/Admin/Profs.php:89
+#: ../../Zotlabs/Module/Admin/Profs.php:109
msgid "Edit Profile Field"
msgstr "Profilfeld bearbeiten"
-#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../Zotlabs/Widget/Admin.php:30
+#: ../../Zotlabs/Module/Admin/Profs.php:168 ../../Zotlabs/Widget/Admin.php:30
msgid "Profile Fields"
msgstr "Profil Felder"
-#: ../../Zotlabs/Module/Admin/Profs.php:148
+#: ../../Zotlabs/Module/Admin/Profs.php:169
msgid "Basic Profile Fields"
msgstr "Notwendige Profil Felder"
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "Advanced Profile Fields"
msgstr "Erweiterte Profil Felder"
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "(In addition to basic fields)"
msgstr "(zusätzlich zu notwendige Felder)"
-#: ../../Zotlabs/Module/Admin/Profs.php:151
+#: ../../Zotlabs/Module/Admin/Profs.php:172
msgid "All available fields"
msgstr "Alle verfügbaren Felder"
-#: ../../Zotlabs/Module/Admin/Profs.php:152
+#: ../../Zotlabs/Module/Admin/Profs.php:173
msgid "Custom Fields"
msgstr "Benutzerdefinierte Felder"
-#: ../../Zotlabs/Module/Admin/Profs.php:156
+#: ../../Zotlabs/Module/Admin/Profs.php:177
msgid "Create Custom Field"
msgstr "Erstelle benutzerdefiniertes Feld"
@@ -3378,51 +3388,55 @@ msgctxt "acl"
msgid "Profile"
msgstr "Profil"
-#: ../../Zotlabs/Module/Moderate.php:55
+#: ../../Zotlabs/Module/Moderate.php:65
msgid "Comment approved"
msgstr "Kommentar bestätigt"
-#: ../../Zotlabs/Module/Moderate.php:59
+#: ../../Zotlabs/Module/Moderate.php:69
msgid "Comment deleted"
msgstr "Kommentar gelöscht"
-#: ../../Zotlabs/Module/Settings/Permcats.php:37
+#: ../../Zotlabs/Module/Settings/Permcats.php:23
+msgid "Permission Name is required."
+msgstr "Der Name der Berechtigung wird benötigt."
+
+#: ../../Zotlabs/Module/Settings/Permcats.php:42
msgid "Permission category saved."
msgstr "Berechtigungsrolle gespeichert."
-#: ../../Zotlabs/Module/Settings/Permcats.php:61
+#: ../../Zotlabs/Module/Settings/Permcats.php:66
msgid ""
"Use this form to create permission rules for various classes of people or "
"connections."
msgstr "Verwende dieses Formular, um Berechtigungsrollen für verschiedene Gruppen von Personen oder Verbindungen zu erstellen."
-#: ../../Zotlabs/Module/Settings/Permcats.php:94
+#: ../../Zotlabs/Module/Settings/Permcats.php:99
msgid "Permission Categories"
msgstr "Berechtigungsrollen"
-#: ../../Zotlabs/Module/Settings/Permcats.php:102
+#: ../../Zotlabs/Module/Settings/Permcats.php:107
msgid "Permission Name"
msgstr "Name der Berechtigungsrolle"
-#: ../../Zotlabs/Module/Settings/Permcats.php:103
+#: ../../Zotlabs/Module/Settings/Permcats.php:108
#: ../../Zotlabs/Module/Settings/Tokens.php:161
#: ../../Zotlabs/Module/Connedit.php:891 ../../Zotlabs/Module/Defperms.php:250
msgid "My Settings"
msgstr "Meine Einstellungen"
-#: ../../Zotlabs/Module/Settings/Permcats.php:105
+#: ../../Zotlabs/Module/Settings/Permcats.php:110
#: ../../Zotlabs/Module/Settings/Tokens.php:163
#: ../../Zotlabs/Module/Connedit.php:886 ../../Zotlabs/Module/Defperms.php:248
msgid "inherited"
msgstr "geerbt"
-#: ../../Zotlabs/Module/Settings/Permcats.php:108
+#: ../../Zotlabs/Module/Settings/Permcats.php:113
#: ../../Zotlabs/Module/Settings/Tokens.php:166
#: ../../Zotlabs/Module/Connedit.php:893 ../../Zotlabs/Module/Defperms.php:253
msgid "Individual Permissions"
msgstr "Individuelle Zugriffsrechte"
-#: ../../Zotlabs/Module/Settings/Permcats.php:109
+#: ../../Zotlabs/Module/Settings/Permcats.php:114
#: ../../Zotlabs/Module/Settings/Tokens.php:167
#: ../../Zotlabs/Module/Connedit.php:894
msgid ""
@@ -3443,7 +3457,7 @@ msgstr "Einige Berechtigungen werden möglicherweise von den globalen <a href=\"
msgid "Friends"
msgstr "Freunde"
-#: ../../Zotlabs/Module/Settings/Channel.php:262
+#: ../../Zotlabs/Module/Settings/Channel.php:264
#: ../../Zotlabs/Module/Defperms.php:103
#: ../../addon/rendezvous/rendezvous.php:82
#: ../../addon/openstreetmap/openstreetmap.php:184
@@ -3453,409 +3467,420 @@ msgstr "Freunde"
msgid "Settings updated."
msgstr "Einstellungen aktualisiert."
-#: ../../Zotlabs/Module/Settings/Channel.php:323
+#: ../../Zotlabs/Module/Settings/Channel.php:325
msgid "Nobody except yourself"
msgstr "Niemand außer Dir selbst"
-#: ../../Zotlabs/Module/Settings/Channel.php:324
+#: ../../Zotlabs/Module/Settings/Channel.php:326
msgid "Only those you specifically allow"
msgstr "Nur die, denen Du es explizit erlaubst"
-#: ../../Zotlabs/Module/Settings/Channel.php:325
+#: ../../Zotlabs/Module/Settings/Channel.php:327
msgid "Approved connections"
msgstr "Angenommene Verbindungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:326
+#: ../../Zotlabs/Module/Settings/Channel.php:328
msgid "Any connections"
msgstr "Beliebige Verbindungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:327
+#: ../../Zotlabs/Module/Settings/Channel.php:329
msgid "Anybody on this website"
msgstr "Jeder auf dieser Website"
-#: ../../Zotlabs/Module/Settings/Channel.php:328
+#: ../../Zotlabs/Module/Settings/Channel.php:330
msgid "Anybody in this network"
msgstr "Alle $Projectname-Mitglieder"
-#: ../../Zotlabs/Module/Settings/Channel.php:329
+#: ../../Zotlabs/Module/Settings/Channel.php:331
msgid "Anybody authenticated"
msgstr "Jeder authentifizierte"
-#: ../../Zotlabs/Module/Settings/Channel.php:330
+#: ../../Zotlabs/Module/Settings/Channel.php:332
msgid "Anybody on the internet"
msgstr "Jeder im Internet"
-#: ../../Zotlabs/Module/Settings/Channel.php:405
+#: ../../Zotlabs/Module/Settings/Channel.php:407
msgid "Publish your default profile in the network directory"
msgstr "Standard-Profil im Netzwerk-Verzeichnis veröffentlichen"
-#: ../../Zotlabs/Module/Settings/Channel.php:410
+#: ../../Zotlabs/Module/Settings/Channel.php:412
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "Dürfen wir Dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?"
-#: ../../Zotlabs/Module/Settings/Channel.php:414
+#: ../../Zotlabs/Module/Settings/Channel.php:416
msgid "or"
msgstr "oder"
-#: ../../Zotlabs/Module/Settings/Channel.php:419
+#: ../../Zotlabs/Module/Settings/Channel.php:425
msgid "Your channel address is"
msgstr "Deine Kanal-Adresse lautet"
-#: ../../Zotlabs/Module/Settings/Channel.php:422
+#: ../../Zotlabs/Module/Settings/Channel.php:428
msgid "Your files/photos are accessible via WebDAV at"
msgstr "Deine Dateien/Fotos sind via WebDAV verfügbar auf"
-#: ../../Zotlabs/Module/Settings/Channel.php:486
+#: ../../Zotlabs/Module/Settings/Channel.php:493
msgid "Channel Settings"
msgstr "Kanal-Einstellungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:493
+#: ../../Zotlabs/Module/Settings/Channel.php:500
msgid "Basic Settings"
msgstr "Grundeinstellungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:494
-#: ../../include/channel.php:1522
+#: ../../Zotlabs/Module/Settings/Channel.php:501
+#: ../../include/channel.php:1521
msgid "Full Name:"
msgstr "Voller Name:"
-#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Channel.php:502
#: ../../Zotlabs/Module/Settings/Account.php:119
msgid "Email Address:"
msgstr "Email Adresse:"
-#: ../../Zotlabs/Module/Settings/Channel.php:496
+#: ../../Zotlabs/Module/Settings/Channel.php:503
msgid "Your Timezone:"
msgstr "Ihre Zeitzone:"
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Default Post Location:"
msgstr "Standardstandort:"
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Geographical location to display on your posts"
msgstr "Geografischer Ort, der bei Deinen Beiträgen angezeigt werden soll"
-#: ../../Zotlabs/Module/Settings/Channel.php:498
+#: ../../Zotlabs/Module/Settings/Channel.php:505
msgid "Use Browser Location:"
msgstr "Standort des Browsers verwenden:"
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid "Adult Content"
msgstr "Nicht jugendfreie Inhalte"
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr "Dieser Kanal veröffentlicht regelmäßig Inhalte, die für Minderjährige ungeeignet sind. (Bitte markiere solche Inhalte mit dem Schlagwort #NSFW)"
-#: ../../Zotlabs/Module/Settings/Channel.php:502
+#: ../../Zotlabs/Module/Settings/Channel.php:509
msgid "Security and Privacy Settings"
msgstr "Sicherheits- und Datenschutz-Einstellungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:504
+#: ../../Zotlabs/Module/Settings/Channel.php:511
msgid "Your permissions are already configured. Click to view/adjust"
msgstr "Deine Zugriffsrechte sind schon konfiguriert. Klicke hier, um sie zu betrachten oder zu ändern"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Hide my online presence"
msgstr "Meine Online-Präsenz verbergen"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Prevents displaying in your profile that you are online"
msgstr "Verhindert die Anzeige Deines Online-Status in deinem Profil"
-#: ../../Zotlabs/Module/Settings/Channel.php:508
+#: ../../Zotlabs/Module/Settings/Channel.php:515
msgid "Simple Privacy Settings:"
msgstr "Einfache Privatsphäre-Einstellungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:509
+#: ../../Zotlabs/Module/Settings/Channel.php:516
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr "Komplett offen – <em>extrem ungeschützt (mit großer Vorsicht verwenden!)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:510
+#: ../../Zotlabs/Module/Settings/Channel.php:517
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr "Typisch – <em>Standard öffentlich, Privatsphäre, wo sie erwünscht ist (ähnlich den Einstellungen in sozialen Netzwerken, aber mit besser geschützter Privatsphäre)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:511
+#: ../../Zotlabs/Module/Settings/Channel.php:518
msgid "Private - <em>default private, never open or public</em>"
msgstr "Privat – <em>Standard privat, nie offen oder öffentlich</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:512
+#: ../../Zotlabs/Module/Settings/Channel.php:519
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr "Blockiert – <em>Alle standardmäßig blockiert</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid "Allow others to tag your posts"
msgstr "Erlaube anderen, Deine Beiträge zu verschlagworten"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "Wird oft von der Community genutzt um rückwirkend anstößigen Inhalt zu markieren"
-#: ../../Zotlabs/Module/Settings/Channel.php:516
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "Channel Permission Limits"
msgstr "Kanal-Berechtigungslimits"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "Expire other channel content after this many days"
msgstr "Den Inhalt anderer Kanäle nach dieser Anzahl Tage verfallen lassen"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "0 or blank to use the website limit."
msgstr "0 oder leer lassen, um den voreingestellten Wert der Webseite zu verwenden."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
#, php-format
msgid "This website expires after %d days."
msgstr "Diese Webseite läuft nach %d Tagen ab."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "This website does not expire imported content."
msgstr "Diese Webseite lässt importierte Inhalte nicht verfallen."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "The website limit takes precedence if lower than your limit."
msgstr "Das Verfallslimit der Webseite hat Vorrang, wenn es niedriger als Deines hier ist."
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "Maximum Friend Requests/Day:"
msgstr "Maximale Kontaktanfragen pro Tag:"
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "May reduce spam activity"
msgstr "Kann die Spam-Aktivität verringern"
-#: ../../Zotlabs/Module/Settings/Channel.php:520
+#: ../../Zotlabs/Module/Settings/Channel.php:527
msgid "Default Privacy Group"
msgstr "Standard-Gruppe"
-#: ../../Zotlabs/Module/Settings/Channel.php:522
+#: ../../Zotlabs/Module/Settings/Channel.php:529
msgid "Use my default audience setting for the type of object published"
msgstr "Verwende Deine eingestellte Standard-Zielgruppe des jeweiligen Inhaltstyps"
-#: ../../Zotlabs/Module/Settings/Channel.php:523
+#: ../../Zotlabs/Module/Settings/Channel.php:530
msgid "Profile to assign new connections"
msgstr "Profil, welches neuen Verbindungen zugewiesen wird"
-#: ../../Zotlabs/Module/Settings/Channel.php:532
-msgid "Channel permissions category:"
-msgstr "Zugriffsrechte-Kategorie des Kanals:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:533
+#: ../../Zotlabs/Module/Settings/Channel.php:540
msgid "Default Permissions Group"
msgstr "Standard-Berechtigungsgruppe"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Maximum private messages per day from unknown people:"
msgstr "Maximale Anzahl privater Nachrichten pro Tag von unbekannten Leuten:"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Useful to reduce spamming"
msgstr "Nützlich, um Spam zu verringern"
-#: ../../Zotlabs/Module/Settings/Channel.php:542
+#: ../../Zotlabs/Module/Settings/Channel.php:549
#: ../../Zotlabs/Lib/Enotify.php:68
msgid "Notification Settings"
msgstr "Benachrichtigungs-Einstellungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:543
+#: ../../Zotlabs/Module/Settings/Channel.php:550
msgid "By default post a status message when:"
msgstr "Sende standardmäßig Status-Nachrichten, wenn:"
-#: ../../Zotlabs/Module/Settings/Channel.php:544
+#: ../../Zotlabs/Module/Settings/Channel.php:551
msgid "accepting a friend request"
msgstr "Du eine Verbindungsanfrage annimmst"
-#: ../../Zotlabs/Module/Settings/Channel.php:545
+#: ../../Zotlabs/Module/Settings/Channel.php:552
msgid "joining a forum/community"
msgstr "Du einem Forum beitrittst"
-#: ../../Zotlabs/Module/Settings/Channel.php:546
+#: ../../Zotlabs/Module/Settings/Channel.php:553
msgid "making an <em>interesting</em> profile change"
msgstr "Du eine <em>interessante</em> Änderung an Deinem Profil vornimmst"
-#: ../../Zotlabs/Module/Settings/Channel.php:547
+#: ../../Zotlabs/Module/Settings/Channel.php:554
msgid "Send a notification email when:"
msgstr "Eine E-Mail-Benachrichtigung senden, wenn:"
-#: ../../Zotlabs/Module/Settings/Channel.php:548
+#: ../../Zotlabs/Module/Settings/Channel.php:555
msgid "You receive a connection request"
msgstr "Du eine Verbindungsanfrage erhältst"
-#: ../../Zotlabs/Module/Settings/Channel.php:549
+#: ../../Zotlabs/Module/Settings/Channel.php:556
msgid "Your connections are confirmed"
msgstr "Eine Verbindung bestätigt wurde"
-#: ../../Zotlabs/Module/Settings/Channel.php:550
+#: ../../Zotlabs/Module/Settings/Channel.php:557
msgid "Someone writes on your profile wall"
msgstr "Jemand auf Deine Pinnwand schreibt"
-#: ../../Zotlabs/Module/Settings/Channel.php:551
+#: ../../Zotlabs/Module/Settings/Channel.php:558
msgid "Someone writes a followup comment"
msgstr "Jemand einen Beitrag kommentiert"
-#: ../../Zotlabs/Module/Settings/Channel.php:552
+#: ../../Zotlabs/Module/Settings/Channel.php:559
msgid "You receive a private message"
msgstr "Du eine private Nachricht erhältst"
-#: ../../Zotlabs/Module/Settings/Channel.php:553
+#: ../../Zotlabs/Module/Settings/Channel.php:560
msgid "You receive a friend suggestion"
msgstr "Du einen Kontaktvorschlag erhältst"
-#: ../../Zotlabs/Module/Settings/Channel.php:554
+#: ../../Zotlabs/Module/Settings/Channel.php:561
msgid "You are tagged in a post"
msgstr "Du in einem Beitrag erwähnt wurdest"
-#: ../../Zotlabs/Module/Settings/Channel.php:555
+#: ../../Zotlabs/Module/Settings/Channel.php:562
msgid "You are poked/prodded/etc. in a post"
msgstr "Du in einem Beitrag angestupst/geknufft/o.ä. wurdest"
-#: ../../Zotlabs/Module/Settings/Channel.php:557
+#: ../../Zotlabs/Module/Settings/Channel.php:564
msgid "Someone likes your post/comment"
msgstr "Jemand mag Ihren Beitrag/Kommentar"
-#: ../../Zotlabs/Module/Settings/Channel.php:560
+#: ../../Zotlabs/Module/Settings/Channel.php:567
msgid "Show visual notifications including:"
msgstr "Visuelle Benachrichtigungen anzeigen für:"
-#: ../../Zotlabs/Module/Settings/Channel.php:562
+#: ../../Zotlabs/Module/Settings/Channel.php:569
msgid "Unseen grid activity"
msgstr "Ungesehene Netzwerk-Aktivität"
-#: ../../Zotlabs/Module/Settings/Channel.php:563
+#: ../../Zotlabs/Module/Settings/Channel.php:570
msgid "Unseen channel activity"
msgstr "Ungesehene Kanal-Aktivität"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
+#: ../../Zotlabs/Module/Settings/Channel.php:571
msgid "Unseen private messages"
msgstr "Ungelesene persönliche Nachrichten"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
-#: ../../Zotlabs/Module/Settings/Channel.php:569
-#: ../../Zotlabs/Module/Settings/Channel.php:570
#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:576
+#: ../../Zotlabs/Module/Settings/Channel.php:577
+#: ../../Zotlabs/Module/Settings/Channel.php:578
#: ../../addon/jappixmini/jappixmini.php:343
msgid "Recommended"
msgstr "Empfohlen"
-#: ../../Zotlabs/Module/Settings/Channel.php:565
+#: ../../Zotlabs/Module/Settings/Channel.php:572
msgid "Upcoming events"
msgstr "Baldige Termine"
-#: ../../Zotlabs/Module/Settings/Channel.php:566
+#: ../../Zotlabs/Module/Settings/Channel.php:573
msgid "Events today"
msgstr "Heutige Termine"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Upcoming birthdays"
msgstr "Baldige Geburtstage"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Not available in all themes"
msgstr "Nicht in allen Designs verfügbar"
-#: ../../Zotlabs/Module/Settings/Channel.php:568
+#: ../../Zotlabs/Module/Settings/Channel.php:575
msgid "System (personal) notifications"
msgstr "System – (persönliche) Benachrichtigungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:569
+#: ../../Zotlabs/Module/Settings/Channel.php:576
msgid "System info messages"
msgstr "System – Info-Nachrichten"
-#: ../../Zotlabs/Module/Settings/Channel.php:570
+#: ../../Zotlabs/Module/Settings/Channel.php:577
msgid "System critical alerts"
msgstr "System – kritische Warnungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:578
msgid "New connections"
msgstr "Neue Verbindungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:572
+#: ../../Zotlabs/Module/Settings/Channel.php:579
msgid "System Registrations"
msgstr "System – Registrierungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:573
+#: ../../Zotlabs/Module/Settings/Channel.php:580
msgid "Unseen shared files"
msgstr "Ungesehene geteilte Dateien"
-#: ../../Zotlabs/Module/Settings/Channel.php:574
+#: ../../Zotlabs/Module/Settings/Channel.php:581
msgid "Unseen public activity"
msgstr "Ungesehene öffentliche Aktivität"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:582
+msgid "Unseen likes and dislikes"
+msgstr "Ungesehene Likes und Dislikes"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:583
msgid "Email notification hub (hostname)"
msgstr "Hub für E-Mail-Benachrichtigungen (Hostname)"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:583
#, php-format
msgid ""
"If your channel is mirrored to multiple hubs, set this to your preferred "
"location. This will prevent duplicate email notifications. Example: %s"
msgstr "Wenn Dein Kanal auf mehreren Hubs geklont ist, setze die Einstellung auf deinen bevorzugten Hub. Dies verhindert Mehrfachzustellung von E-Mail-Benachrichtigungen. Beispiel: %s"
-#: ../../Zotlabs/Module/Settings/Channel.php:576
-msgid ""
-"Also show new wall posts, private messages and connections under Notices"
-msgstr "Neue Pinnwand-Nachrichten, private Nachrichten und Verbindungen unter Benachrichtigungen anzeigen"
+#: ../../Zotlabs/Module/Settings/Channel.php:584
+msgid "Show new wall posts, private messages and connections under Notices"
+msgstr "Zeige neue Pinnwand Beiträge, private Nachrichten und Verbindungen unter den Notizen an."
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Notify me of events this many days in advance"
msgstr "Benachrichtige mich zu Terminen so viele Tage im Voraus"
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Must be greater than 0"
msgstr "Muss größer als 0 sein"
-#: ../../Zotlabs/Module/Settings/Channel.php:584
+#: ../../Zotlabs/Module/Settings/Channel.php:592
msgid "Advanced Account/Page Type Settings"
msgstr "Erweiterte Konten- und Seitenart-Einstellungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:585
+#: ../../Zotlabs/Module/Settings/Channel.php:593
msgid "Change the behaviour of this account for special situations"
msgstr "Ändere das Verhalten dieses Kontos unter speziellen Umständen"
-#: ../../Zotlabs/Module/Settings/Channel.php:587
+#: ../../Zotlabs/Module/Settings/Channel.php:595
msgid "Miscellaneous Settings"
msgstr "Sonstige Einstellungen"
-#: ../../Zotlabs/Module/Settings/Channel.php:588
+#: ../../Zotlabs/Module/Settings/Channel.php:596
msgid "Default photo upload folder"
msgstr "Voreingestellter Ordner für hochgeladene Fotos"
-#: ../../Zotlabs/Module/Settings/Channel.php:588
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:596
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "%Y - current year, %m - current month"
msgstr "%Y - aktuelles Jahr, %m - aktueller Monat"
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "Default file upload folder"
msgstr "Voreingestellter Ordner für hochgeladene Dateien"
-#: ../../Zotlabs/Module/Settings/Channel.php:591
+#: ../../Zotlabs/Module/Settings/Channel.php:599
msgid "Personal menu to display in your channel pages"
msgstr "Eigenes Menü zur Anzeige auf den Seiten deines Kanals"
-#: ../../Zotlabs/Module/Settings/Channel.php:593
+#: ../../Zotlabs/Module/Settings/Channel.php:601
msgid "Remove this channel."
msgstr "Diesen Kanal löschen"
-#: ../../Zotlabs/Module/Settings/Channel.php:594
+#: ../../Zotlabs/Module/Settings/Channel.php:602
msgid "Firefox Share $Projectname provider"
msgstr "$Projectname-Provider für Firefox Share"
-#: ../../Zotlabs/Module/Settings/Channel.php:595
+#: ../../Zotlabs/Module/Settings/Channel.php:603
msgid "Start calendar week on Monday"
msgstr "Beginne die kalendarische Woche am Montag"
-#: ../../Zotlabs/Module/Settings/Features.php:45
+#: ../../Zotlabs/Module/Settings/Features.php:73
msgid "Additional Features"
msgstr "Zusätzliche Funktionen"
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid "Your technical skill level"
+msgstr "Deine technische Qualifikationsstufe"
+
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid ""
+"Used to provide a member experience and additional features consistent with "
+"your comfort level"
+msgstr "Dies wird verwendet, um Dir eine Benutzererfahrung sowie zusätzliche Funktionen passend zu Deiner technischen Qualifikationsstufe zu bieten (Bedienkomfort beim Umgang mit Anwendungen)."
+
#: ../../Zotlabs/Module/Settings/Tokens.php:31
#, php-format
msgid "This channel is limited to %d tokens"
@@ -3884,7 +3909,7 @@ msgid ""
msgstr "Du kannst auch <em>Dropbox</em>-ähnliche Zugriffslinks an Andere weitergeben, indem du das Login-Passwort an eine entsprechende URL anhängst wie nachfolgend gezeigt. Beispiele:"
#: ../../Zotlabs/Module/Settings/Tokens.php:150
-#: ../../Zotlabs/Widget/Settings_menu.php:92
+#: ../../Zotlabs/Widget/Settings_menu.php:100
msgid "Guest Access Tokens"
msgstr "Gastzugangstoken"
@@ -3905,6 +3930,98 @@ msgstr "Läuft ab (jjjj-mm-tt)"
msgid "Their Settings"
msgstr "Deren Einstellungen"
+#: ../../Zotlabs/Module/Settings/Oauth2.php:35
+msgid "Name and Secret are required"
+msgstr "Name und Geheimnis werden benötigt"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:83
+msgid "Add OAuth2 application"
+msgstr "OAuth2 Anwendung hinzufügen"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+msgid "Name of application"
+msgstr "Name der Anwendung"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+#: ../../Zotlabs/Module/Settings/Oauth.php:118
+#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
+msgid "Consumer Secret"
+msgstr "Consumer Secret"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:119
+msgid "Redirect"
+msgstr "Umleitung"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "Umleitungs-URl – lasse das leer, solange Deine Anwendung es nicht explizit erfordert"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+msgid "Grant Types"
+msgstr "Genehmigungsarten"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "leave blank unless your application sepcifically requires this"
+msgstr "Frei lassen, es sei denn die Anwendung verlangt dies."
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "Authorization scope"
+msgstr "Rahmen der Berechtigungen"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:102
+msgid "OAuth2 Application not found."
+msgstr "OAuth2 Anwendung konnte nicht gefunden werden"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:111
+#: ../../Zotlabs/Module/Settings/Oauth2.php:148
+#: ../../Zotlabs/Module/Settings/Oauth.php:87
+#: ../../Zotlabs/Module/Settings/Oauth.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:149
+msgid "Add application"
+msgstr "Anwendung hinzufügen"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:147
+msgid "Connected OAuth2 Apps"
+msgstr "Verbundene OAuth2 Anwendungen"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:151
+#: ../../Zotlabs/Module/Settings/Oauth.php:152
+msgid "Client key starts with"
+msgstr "Client Key beginnt mit"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:152
+#: ../../Zotlabs/Module/Settings/Oauth.php:153
+msgid "No name"
+msgstr "Kein Name"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:153
+#: ../../Zotlabs/Module/Settings/Oauth.php:154
+msgid "Remove authorization"
+msgstr "Authorisierung aufheben"
+
#: ../../Zotlabs/Module/Settings/Account.php:20
msgid "Not valid email."
msgstr "Keine gültige E-Mail Adresse."
@@ -3961,16 +4078,6 @@ msgstr "Bestätige das neue Passwort"
msgid "Leave password fields blank unless changing"
msgstr "Lasse die Passwort-Felder leer, außer Du möchtest das Passwort ändern"
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid "Your technical skill level"
-msgstr "Deine technische Qualifikationsstufe"
-
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid ""
-"Used to provide a member experience and additional features consistent with "
-"your comfort level"
-msgstr "Dies wird verwendet, um Dir eine Benutzererfahrung sowie zusätzliche Funktionen passend zu Deiner technischen Qualifikationsstufe zu bieten (Bedienkomfort beim Umgang mit Anwendungen)."
-
#: ../../Zotlabs/Module/Settings/Account.php:120
#: ../../Zotlabs/Module/Removeaccount.php:61
msgid "Remove Account"
@@ -4008,11 +4115,11 @@ msgstr "0-99 - Standard 0"
msgid "Affinity Slider Settings"
msgstr "Beziehungsgrad-Schieberegler-Einstellungen"
-#: ../../Zotlabs/Module/Settings/Featured.php:64
+#: ../../Zotlabs/Module/Settings/Featured.php:67
msgid "Addon Settings"
msgstr "Addon-Einstellungen"
-#: ../../Zotlabs/Module/Settings/Featured.php:65
+#: ../../Zotlabs/Module/Settings/Featured.php:68
msgid "Please save/submit changes to any panel before opening another."
msgstr "Bitte speichere alle Änderungen in diesem Bereich, bevor Du einen anderen öffnest."
@@ -4129,82 +4236,38 @@ msgstr "Blöcke, deren Inhalt diese Höhe überschreitet, können per Klick verg
msgid "Grid page max height of content (in pixels)"
msgstr "Maximale Höhe (in Pixel) des Inhalts der Netzwerkseite"
-#: ../../Zotlabs/Module/Settings/Oauth.php:34
+#: ../../Zotlabs/Module/Settings/Oauth.php:35
msgid "Name is required"
msgstr "Name ist erforderlich"
-#: ../../Zotlabs/Module/Settings/Oauth.php:38
+#: ../../Zotlabs/Module/Settings/Oauth.php:39
msgid "Key and Secret are required"
msgstr "Schlüssel und Geheimnis werden benötigt"
-#: ../../Zotlabs/Module/Settings/Oauth.php:86
-#: ../../Zotlabs/Module/Settings/Oauth.php:112
-#: ../../Zotlabs/Module/Settings/Oauth.php:148
-msgid "Add application"
-msgstr "Anwendung hinzufügen"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-msgid "Name of application"
-msgstr "Name der Anwendung"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:117
#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:781
msgid "Consumer Key"
msgstr "Consumer Key"
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-#: ../../Zotlabs/Module/Settings/Oauth.php:117
-#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
-msgid "Consumer Secret"
-msgstr "Consumer Secret"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-#: ../../Zotlabs/Module/Settings/Oauth.php:118
-msgid "Redirect"
-msgstr "Umleitung"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires "
-"this"
-msgstr "Umleitungs-URl – lasse das leer, solange Deine Anwendung es nicht explizit erfordert"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
-#: ../../Zotlabs/Module/Settings/Oauth.php:119
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
+#: ../../Zotlabs/Module/Settings/Oauth.php:120
msgid "Icon url"
msgstr "Symbol-URL"
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147
msgid "Optional"
msgstr "Optional"
-#: ../../Zotlabs/Module/Settings/Oauth.php:104
+#: ../../Zotlabs/Module/Settings/Oauth.php:105
msgid "Application not found."
msgstr "Die Anwendung wurde nicht gefunden."
-#: ../../Zotlabs/Module/Settings/Oauth.php:147
+#: ../../Zotlabs/Module/Settings/Oauth.php:148
msgid "Connected Apps"
msgstr "Verbundene Apps"
-#: ../../Zotlabs/Module/Settings/Oauth.php:151
-msgid "Client key starts with"
-msgstr "Client Key beginnt mit"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:152
-msgid "No name"
-msgstr "Kein Name"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:153
-msgid "Remove authorization"
-msgstr "Authorisierung aufheben"
-
#: ../../Zotlabs/Module/Embedphotos.php:140
#: ../../Zotlabs/Module/Photos.php:811 ../../Zotlabs/Module/Photos.php:1350
#: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78
@@ -4218,13 +4281,12 @@ msgid "Edit Album"
msgstr "Album bearbeiten"
#: ../../Zotlabs/Module/Embedphotos.php:158
-#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Photos.php:844
-#: ../../Zotlabs/Module/Photos.php:1381
+#: ../../Zotlabs/Module/Photos.php:712
#: ../../Zotlabs/Module/Profile_photo.php:458
-#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Storage/Browser.php:277 ../../Zotlabs/Storage/Browser.php:384
-#: ../../Zotlabs/Widget/Cdav.php:133 ../../Zotlabs/Widget/Cdav.php:169
-#: ../../Zotlabs/Widget/Portfolio.php:110 ../../Zotlabs/Widget/Album.php:97
+#: ../../Zotlabs/Module/Cover_photo.php:362
+#: ../../Zotlabs/Storage/Browser.php:384 ../../Zotlabs/Widget/Cdav.php:133
+#: ../../Zotlabs/Widget/Cdav.php:169 ../../Zotlabs/Widget/Portfolio.php:110
+#: ../../Zotlabs/Widget/Album.php:97
msgid "Upload"
msgstr "Hochladen"
@@ -4232,60 +4294,60 @@ msgstr "Hochladen"
msgid "Some blurb about what to do when you're new here"
msgstr "Ein Hinweis, was man tun kann, wenn man neu hier ist"
-#: ../../Zotlabs/Module/Thing.php:115
+#: ../../Zotlabs/Module/Thing.php:120
msgid "Thing updated"
msgstr "Sache aktualisiert"
-#: ../../Zotlabs/Module/Thing.php:167
+#: ../../Zotlabs/Module/Thing.php:172
msgid "Object store: failed"
msgstr "Speichern des Objekts fehlgeschlagen"
-#: ../../Zotlabs/Module/Thing.php:171
+#: ../../Zotlabs/Module/Thing.php:176
msgid "Thing added"
msgstr "Sache hinzugefügt"
-#: ../../Zotlabs/Module/Thing.php:197
+#: ../../Zotlabs/Module/Thing.php:202
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../Zotlabs/Module/Thing.php:260
+#: ../../Zotlabs/Module/Thing.php:265
msgid "Show Thing"
msgstr "Sache anzeigen"
-#: ../../Zotlabs/Module/Thing.php:267
+#: ../../Zotlabs/Module/Thing.php:272
msgid "item not found."
msgstr "Eintrag nicht gefunden"
-#: ../../Zotlabs/Module/Thing.php:300
+#: ../../Zotlabs/Module/Thing.php:305
msgid "Edit Thing"
msgstr "Sache bearbeiten"
-#: ../../Zotlabs/Module/Thing.php:302 ../../Zotlabs/Module/Thing.php:359
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:364
msgid "Select a profile"
msgstr "Wähle ein Profil"
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Post an activity"
msgstr "Aktivitätsnachricht senden"
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Only sends to viewers of the applicable profile"
msgstr "Nur an Betrachter des ausgewählten Profils senden"
-#: ../../Zotlabs/Module/Thing.php:308 ../../Zotlabs/Module/Thing.php:364
+#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:369
msgid "Name of thing e.g. something"
msgstr "Name der Sache, z. B. irgendwas"
-#: ../../Zotlabs/Module/Thing.php:310 ../../Zotlabs/Module/Thing.php:365
+#: ../../Zotlabs/Module/Thing.php:315 ../../Zotlabs/Module/Thing.php:370
msgid "URL of thing (optional)"
msgstr "URL der Sache (optional)"
-#: ../../Zotlabs/Module/Thing.php:312 ../../Zotlabs/Module/Thing.php:366
+#: ../../Zotlabs/Module/Thing.php:317 ../../Zotlabs/Module/Thing.php:371
msgid "URL for photo of thing (optional)"
msgstr "URL eines Fotos der Sache (optional)"
-#: ../../Zotlabs/Module/Thing.php:314 ../../Zotlabs/Module/Thing.php:367
+#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
#: ../../Zotlabs/Module/Photos.php:702 ../../Zotlabs/Module/Photos.php:1071
#: ../../Zotlabs/Module/Connedit.php:676 ../../Zotlabs/Module/Chat.php:235
#: ../../Zotlabs/Module/Filestorage.php:147
@@ -4293,7 +4355,7 @@ msgstr "URL eines Fotos der Sache (optional)"
msgid "Permissions"
msgstr "Berechtigungen"
-#: ../../Zotlabs/Module/Thing.php:357
+#: ../../Zotlabs/Module/Thing.php:362
msgid "Add Thing to your Profile"
msgstr "Die Sache Deinem Profil hinzufügen"
@@ -4307,56 +4369,56 @@ msgstr "Keine System-Benachrichtigungen mehr."
msgid "System Notifications"
msgstr "System-Benachrichtigungen"
-#: ../../Zotlabs/Module/Follow.php:31
-msgid "Channel added."
-msgstr "Kanal hinzugefügt."
+#: ../../Zotlabs/Module/Follow.php:36
+msgid "Connection added."
+msgstr "Verbindung hinzugefügt"
-#: ../../Zotlabs/Module/Import.php:143
+#: ../../Zotlabs/Module/Import.php:144
#, php-format
msgid "Your service plan only allows %d channels."
msgstr "Dein Vertrag erlaubt nur %d Kanäle."
-#: ../../Zotlabs/Module/Import.php:157
+#: ../../Zotlabs/Module/Import.php:158
msgid "No channel. Import failed."
msgstr "Kein Kanal. Import fehlgeschlagen."
-#: ../../Zotlabs/Module/Import.php:481
+#: ../../Zotlabs/Module/Import.php:482
#: ../../addon/diaspora/import_diaspora.php:139
msgid "Import completed."
msgstr "Import abgeschlossen."
-#: ../../Zotlabs/Module/Import.php:509
+#: ../../Zotlabs/Module/Import.php:510
msgid "You must be logged in to use this feature."
msgstr "Du musst angemeldet sein um diese Funktion zu nutzen."
-#: ../../Zotlabs/Module/Import.php:514
+#: ../../Zotlabs/Module/Import.php:515
msgid "Import Channel"
msgstr "Kanal importieren"
-#: ../../Zotlabs/Module/Import.php:515
+#: ../../Zotlabs/Module/Import.php:516
msgid ""
"Use this form to import an existing channel from a different server/hub. You"
" may retrieve the channel identity from the old server/hub via the network "
"or provide an export file."
msgstr "Verwende dieses Formular, um einen existierenden Kanal von einem anderen Hub zu importieren. Du kannst den Kanal direkt vom bisherigen Hub über das Netzwerk oder aus einer exportierten Sicherheitskopie importieren."
-#: ../../Zotlabs/Module/Import.php:517
+#: ../../Zotlabs/Module/Import.php:518
msgid "Or provide the old server/hub details"
msgstr "Oder gib die Details Deines bisherigen $Projectname-Hubs ein"
-#: ../../Zotlabs/Module/Import.php:518
+#: ../../Zotlabs/Module/Import.php:519
msgid "Your old identity address (xyz@example.com)"
msgstr "Bisherige Kanal-Adresse (xyz@example.com)"
-#: ../../Zotlabs/Module/Import.php:519
+#: ../../Zotlabs/Module/Import.php:520
msgid "Your old login email address"
msgstr "Deine alte Login-E-Mail-Adresse"
-#: ../../Zotlabs/Module/Import.php:520
+#: ../../Zotlabs/Module/Import.php:521
msgid "Your old login password"
msgstr "Dein altes Passwort"
-#: ../../Zotlabs/Module/Import.php:521
+#: ../../Zotlabs/Module/Import.php:522
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be"
@@ -4364,19 +4426,19 @@ msgid ""
"primary location for files, photos, and media."
msgstr "Egal, welche Option Du wählst – bitte lege fest, ob dieser Server die neue primäre Adresse dieses Kanals sein soll, oder ob der bisherige $Projectname-Hub diese Rolle weiterhin wahrnimmt. Du kannst von beiden Servern aus posten, aber nur einer kann der primäre Ort Deiner Dateien, Fotos und Medien sein."
-#: ../../Zotlabs/Module/Import.php:522
+#: ../../Zotlabs/Module/Import.php:523
msgid "Make this hub my primary location"
msgstr "Dieser $Pojectname-Hub ist mein primärer Hub."
-#: ../../Zotlabs/Module/Import.php:523
+#: ../../Zotlabs/Module/Import.php:524
msgid "Move this channel (disable all previous locations)"
msgstr "Verschiebe diesen Kanal (deaktiviere alle vorherigen Adressen/Klone)"
-#: ../../Zotlabs/Module/Import.php:524
+#: ../../Zotlabs/Module/Import.php:525
msgid "Import a few months of posts if possible (limited by available memory"
msgstr "Importiere die Beiträge einiger Monate, sofern möglich (beschränkt durch verfügbaren Speicher)"
-#: ../../Zotlabs/Module/Import.php:525
+#: ../../Zotlabs/Module/Import.php:526
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
@@ -4386,16 +4448,16 @@ msgstr "Dieser Vorgang kann einige Minuten dauern. Bitte sende das Formular nur
msgid "Authentication failed."
msgstr "Authentifizierung fehlgeschlagen."
-#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1583
-#: ../../include/channel.php:2307
+#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1590
+#: ../../include/channel.php:2318
msgid "Remote Authentication"
msgstr "Entfernte Authentifizierung"
-#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2308
+#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2319
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Deine Kanal-Adresse (z. B. channel@example.com)"
-#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2309
+#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2320
msgid "Authenticate"
msgstr "Authentifizieren"
@@ -4403,7 +4465,7 @@ msgstr "Authentifizieren"
msgid "Permissions denied."
msgstr "Berechtigung verweigert."
-#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2426
+#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2446
msgid "Import"
msgstr "Import"
@@ -4463,149 +4525,163 @@ msgstr "Laune"
msgid "Set your current mood and tell your friends"
msgstr "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden"
-#: ../../Zotlabs/Module/Connections.php:54
-#: ../../Zotlabs/Module/Connections.php:156
-#: ../../Zotlabs/Module/Connections.php:245
+#: ../../Zotlabs/Module/Connections.php:55
+#: ../../Zotlabs/Module/Connections.php:112
+#: ../../Zotlabs/Module/Connections.php:256
+msgid "Active"
+msgstr "Aktiv"
+
+#: ../../Zotlabs/Module/Connections.php:60
+#: ../../Zotlabs/Module/Connections.php:164
+#: ../../Zotlabs/Module/Connections.php:261
msgid "Blocked"
msgstr "Blockiert"
-#: ../../Zotlabs/Module/Connections.php:59
-#: ../../Zotlabs/Module/Connections.php:163
-#: ../../Zotlabs/Module/Connections.php:244
+#: ../../Zotlabs/Module/Connections.php:65
+#: ../../Zotlabs/Module/Connections.php:171
+#: ../../Zotlabs/Module/Connections.php:260
msgid "Ignored"
msgstr "Ignoriert"
-#: ../../Zotlabs/Module/Connections.php:64
-#: ../../Zotlabs/Module/Connections.php:177
-#: ../../Zotlabs/Module/Connections.php:243
+#: ../../Zotlabs/Module/Connections.php:70
+#: ../../Zotlabs/Module/Connections.php:185
+#: ../../Zotlabs/Module/Connections.php:259
msgid "Hidden"
msgstr "Versteckt"
-#: ../../Zotlabs/Module/Connections.php:69
-#: ../../Zotlabs/Module/Connections.php:170
+#: ../../Zotlabs/Module/Connections.php:75
+#: ../../Zotlabs/Module/Connections.php:178
msgid "Archived/Unreachable"
msgstr "Archiviert/Unerreichbar"
-#: ../../Zotlabs/Module/Connections.php:74
-#: ../../Zotlabs/Module/Connections.php:83 ../../Zotlabs/Module/Menu.php:116
+#: ../../Zotlabs/Module/Connections.php:80
+#: ../../Zotlabs/Module/Connections.php:89 ../../Zotlabs/Module/Menu.php:116
#: ../../Zotlabs/Module/Notifications.php:52
-#: ../../include/conversation.php:1714
+#: ../../include/conversation.php:1717
msgid "New"
msgstr "Neu"
-#: ../../Zotlabs/Module/Connections.php:88
-#: ../../Zotlabs/Module/Connections.php:102
+#: ../../Zotlabs/Module/Connections.php:94
+#: ../../Zotlabs/Module/Connections.php:108
#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:26
msgid "All"
msgstr "Alle"
-#: ../../Zotlabs/Module/Connections.php:133
+#: ../../Zotlabs/Module/Connections.php:140
+msgid "Active Connections"
+msgstr "Aktive Verbindungen"
+
+#: ../../Zotlabs/Module/Connections.php:143
+msgid "Show active connections"
+msgstr "Zeige die aktiven Verbindungen an"
+
+#: ../../Zotlabs/Module/Connections.php:147
#: ../../Zotlabs/Widget/Notifications.php:84
msgid "New Connections"
msgstr "Neue Verbindungen"
-#: ../../Zotlabs/Module/Connections.php:136
+#: ../../Zotlabs/Module/Connections.php:150
msgid "Show pending (new) connections"
msgstr "Ausstehende (neue) Verbindungsanfragen anzeigen"
-#: ../../Zotlabs/Module/Connections.php:143
-msgid "Show all connections"
-msgstr "Alle Verbindungen anzeigen"
-
-#: ../../Zotlabs/Module/Connections.php:159
+#: ../../Zotlabs/Module/Connections.php:167
msgid "Only show blocked connections"
msgstr "Nur blockierte Verbindungen anzeigen"
-#: ../../Zotlabs/Module/Connections.php:166
+#: ../../Zotlabs/Module/Connections.php:174
msgid "Only show ignored connections"
msgstr "Nur ignorierte Verbindungen anzeigen"
-#: ../../Zotlabs/Module/Connections.php:173
+#: ../../Zotlabs/Module/Connections.php:181
msgid "Only show archived/unreachable connections"
msgstr "Nur archivierte/unerreichbare Verbindungen anzeigen"
-#: ../../Zotlabs/Module/Connections.php:180
+#: ../../Zotlabs/Module/Connections.php:188
msgid "Only show hidden connections"
msgstr "Nur versteckte Verbindungen anzeigen"
-#: ../../Zotlabs/Module/Connections.php:241
+#: ../../Zotlabs/Module/Connections.php:203
+msgid "Show all connections"
+msgstr "Alle Verbindungen anzeigen"
+
+#: ../../Zotlabs/Module/Connections.php:257
msgid "Pending approval"
msgstr "Wartet auf Genehmigung"
-#: ../../Zotlabs/Module/Connections.php:242
+#: ../../Zotlabs/Module/Connections.php:258
msgid "Archived"
msgstr "Archiviert"
-#: ../../Zotlabs/Module/Connections.php:246
+#: ../../Zotlabs/Module/Connections.php:262
msgid "Not connected at this location"
msgstr "An diesem Ort nicht verbunden"
-#: ../../Zotlabs/Module/Connections.php:263
+#: ../../Zotlabs/Module/Connections.php:279
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../Zotlabs/Module/Connections.php:264
+#: ../../Zotlabs/Module/Connections.php:280
msgid "Edit connection"
msgstr "Verbindung bearbeiten"
-#: ../../Zotlabs/Module/Connections.php:266
+#: ../../Zotlabs/Module/Connections.php:282
msgid "Delete connection"
msgstr "Verbindung löschen"
-#: ../../Zotlabs/Module/Connections.php:275
+#: ../../Zotlabs/Module/Connections.php:291
msgid "Channel address"
msgstr "Kanaladresse"
-#: ../../Zotlabs/Module/Connections.php:277
+#: ../../Zotlabs/Module/Connections.php:293
msgid "Network"
msgstr "Netzwerk"
-#: ../../Zotlabs/Module/Connections.php:280
+#: ../../Zotlabs/Module/Connections.php:296
msgid "Call"
msgstr "Anruf"
-#: ../../Zotlabs/Module/Connections.php:282
+#: ../../Zotlabs/Module/Connections.php:298
msgid "Status"
msgstr "Status"
-#: ../../Zotlabs/Module/Connections.php:284
+#: ../../Zotlabs/Module/Connections.php:300
msgid "Connected"
msgstr "Verbunden"
-#: ../../Zotlabs/Module/Connections.php:286
+#: ../../Zotlabs/Module/Connections.php:302
msgid "Approve connection"
msgstr "Verbindung genehmigen"
-#: ../../Zotlabs/Module/Connections.php:288
+#: ../../Zotlabs/Module/Connections.php:304
msgid "Ignore connection"
msgstr "Verbindung ignorieren"
-#: ../../Zotlabs/Module/Connections.php:289
+#: ../../Zotlabs/Module/Connections.php:305
#: ../../Zotlabs/Module/Connedit.php:630
msgid "Ignore"
msgstr "Ignorieren"
-#: ../../Zotlabs/Module/Connections.php:290
+#: ../../Zotlabs/Module/Connections.php:306
msgid "Recent activity"
msgstr "Kürzliche Aktivitäten"
-#: ../../Zotlabs/Module/Connections.php:315 ../../Zotlabs/Lib/Apps.php:235
+#: ../../Zotlabs/Module/Connections.php:331 ../../Zotlabs/Lib/Apps.php:235
#: ../../include/text.php:973
msgid "Connections"
msgstr "Verbindungen"
-#: ../../Zotlabs/Module/Connections.php:320
+#: ../../Zotlabs/Module/Connections.php:336
msgid "Search your connections"
msgstr "Verbindungen durchsuchen"
-#: ../../Zotlabs/Module/Connections.php:321
+#: ../../Zotlabs/Module/Connections.php:337
msgid "Connections search"
msgstr "Verbindung suchen"
-#: ../../Zotlabs/Module/Connections.php:322
-#: ../../Zotlabs/Module/Directory.php:396
-#: ../../Zotlabs/Module/Directory.php:401 ../../include/contact_widgets.php:23
+#: ../../Zotlabs/Module/Connections.php:338
+#: ../../Zotlabs/Module/Directory.php:401
+#: ../../Zotlabs/Module/Directory.php:406 ../../include/contact_widgets.php:23
msgid "Find"
msgstr "Finde"
@@ -4707,13 +4783,9 @@ msgstr "oder ein bereits vorhandenes auswählen (Doppelklick)"
msgid "Create a status post for this upload"
msgstr "Einen Statusbeitrag für diesen Upload erzeugen"
-#: ../../Zotlabs/Module/Photos.php:698
-msgid "Caption (optional):"
-msgstr "Beschriftung (optional):"
-
#: ../../Zotlabs/Module/Photos.php:699
-msgid "Description (optional):"
-msgstr "Beschreibung (optional):"
+msgid "Description (optional)"
+msgstr "Beschreibung (optional)"
#: ../../Zotlabs/Module/Photos.php:785
msgid "Show Newest First"
@@ -4723,6 +4795,10 @@ msgstr "Neueste zuerst anzeigen"
msgid "Show Oldest First"
msgstr "Älteste zuerst anzeigen"
+#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Module/Photos.php:1381
+msgid "Add Photos"
+msgstr "Fotos hinzufügen"
+
#: ../../Zotlabs/Module/Photos.php:892
msgid "Permission denied. Access to this item may be restricted."
msgstr "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden."
@@ -4771,10 +4847,6 @@ msgstr "Gib einen Namen für ein neues Album ein"
msgid "or select an existing one (doubleclick)"
msgstr "oder wähle ein bereits vorhandenes aus (Doppelklick)"
-#: ../../Zotlabs/Module/Photos.php:1068
-msgid "Caption"
-msgstr "Bildunterschrift"
-
#: ../../Zotlabs/Module/Photos.php:1070
msgid "Add a Tag"
msgstr "Schlagwort hinzufügen"
@@ -4801,12 +4873,12 @@ msgid "Please wait"
msgstr "Bitte warten"
#: ../../Zotlabs/Module/Photos.php:1119 ../../Zotlabs/Module/Photos.php:1237
-#: ../../Zotlabs/Lib/ThreadItem.php:747
+#: ../../Zotlabs/Lib/ThreadItem.php:749
msgid "This is you"
msgstr "Das bist Du"
#: ../../Zotlabs/Module/Photos.php:1121 ../../Zotlabs/Module/Photos.php:1239
-#: ../../Zotlabs/Lib/ThreadItem.php:749 ../../include/js_strings.php:6
+#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/js_strings.php:6
msgid "Comment"
msgstr "Kommentar"
@@ -4856,8 +4928,8 @@ msgid "View all"
msgstr "Alles anzeigen"
#: ../../Zotlabs/Module/Photos.php:1160 ../../Zotlabs/Lib/ThreadItem.php:205
-#: ../../include/conversation.php:1978 ../../include/channel.php:1540
-#: ../../include/taxonomy.php:597
+#: ../../include/conversation.php:1981 ../../include/channel.php:1539
+#: ../../include/taxonomy.php:661
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
@@ -4865,7 +4937,7 @@ msgstr[0] "Gefällt mir"
msgstr[1] "Gefällt mir"
#: ../../Zotlabs/Module/Photos.php:1165 ../../Zotlabs/Lib/ThreadItem.php:210
-#: ../../include/conversation.php:1981
+#: ../../include/conversation.php:1984
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
@@ -4900,78 +4972,76 @@ msgid "Close"
msgstr "Schließen"
#: ../../Zotlabs/Module/Photos.php:1365 ../../Zotlabs/Module/Photos.php:1378
-#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:656
+#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:667
msgid "Recent Photos"
msgstr "Neueste Fotos"
-#: ../../Zotlabs/Module/Wiki.php:30
+#: ../../Zotlabs/Module/Wiki.php:30 ../../addon/cart/cart.php:1135
msgid "Profile Unavailable."
msgstr "Profil nicht verfügbar."
-#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:108
-#: ../../addon/gitwiki/Mod_Gitwiki.php:42
+#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:114
msgid "Not found"
msgstr "Nicht gefunden"
-#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/gitwiki/Mod_Gitwiki.php:62
+#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/cart/myshop.php:114
+#: ../../addon/cart/cart.php:1204 ../../addon/cart/manual_payments.php:58
msgid "Invalid channel"
msgstr "Ungültiger Kanal"
-#: ../../Zotlabs/Module/Wiki.php:124 ../../addon/gitwiki/Mod_Gitwiki.php:107
+#: ../../Zotlabs/Module/Wiki.php:124
msgid "Error retrieving wiki"
msgstr "Fehler beim Abrufen des Wiki"
-#: ../../Zotlabs/Module/Wiki.php:131 ../../addon/gitwiki/Mod_Gitwiki.php:114
+#: ../../Zotlabs/Module/Wiki.php:131
msgid "Error creating zip file export folder"
msgstr "Fehler bei der Erzeugung des Zip-Datei Export-Verzeichnisses "
-#: ../../Zotlabs/Module/Wiki.php:182 ../../addon/gitwiki/Mod_Gitwiki.php:132
+#: ../../Zotlabs/Module/Wiki.php:182
msgid "Error downloading wiki: "
msgstr "Fehler beim Herunterladen des Wiki:"
-#: ../../Zotlabs/Module/Wiki.php:197 ../../addon/gitwiki/Mod_Gitwiki.php:146
-#: ../../include/conversation.php:1925 ../../include/nav.php:494
+#: ../../Zotlabs/Module/Wiki.php:197 ../../include/conversation.php:1928
+#: ../../include/nav.php:494
msgid "Wikis"
msgstr "Wikis"
-#: ../../Zotlabs/Module/Wiki.php:203 ../../addon/gitwiki/Mod_Gitwiki.php:152
+#: ../../Zotlabs/Module/Wiki.php:203
msgid "Download"
msgstr "Herunterladen"
#: ../../Zotlabs/Module/Wiki.php:205 ../../Zotlabs/Module/Chat.php:256
-#: ../../Zotlabs/Module/Profiles.php:834 ../../Zotlabs/Module/Manage.php:145
-#: ../../addon/gitwiki/Mod_Gitwiki.php:154
+#: ../../Zotlabs/Module/Profiles.php:831 ../../Zotlabs/Module/Manage.php:145
msgid "Create New"
msgstr "Neu anlegen"
-#: ../../Zotlabs/Module/Wiki.php:207 ../../addon/gitwiki/Mod_Gitwiki.php:156
+#: ../../Zotlabs/Module/Wiki.php:207
msgid "Wiki name"
msgstr "Name des Wiki"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../addon/gitwiki/Mod_Gitwiki.php:157
+#: ../../Zotlabs/Module/Wiki.php:208
msgid "Content type"
msgstr "Inhaltstyp"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../addon/mdpost/mdpost.php:40
-#: ../../include/text.php:1868
+#: ../../include/text.php:1869
msgid "Markdown"
msgstr "Markdown"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1866
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1867
msgid "BBcode"
msgstr "BBcode"
#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1869
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1870
msgid "Text"
msgstr "Text"
#: ../../Zotlabs/Module/Wiki.php:210 ../../Zotlabs/Storage/Browser.php:284
-#: ../../addon/gitwiki/Mod_Gitwiki.php:159
msgid "Type"
msgstr "Typ"
@@ -4983,7 +5053,7 @@ msgstr "Alle&nbsp;Arten"
msgid "Lock content type"
msgstr "Inhaltstyp sperren"
-#: ../../Zotlabs/Module/Wiki.php:219 ../../addon/gitwiki/Mod_Gitwiki.php:166
+#: ../../Zotlabs/Module/Wiki.php:219
msgid "Create a status post for this wiki"
msgstr "Erzeuge einen Statusbeitrag für dieses Wiki"
@@ -4991,138 +5061,147 @@ msgstr "Erzeuge einen Statusbeitrag für dieses Wiki"
msgid "Edit Wiki Name"
msgstr "Wiki-Namen bearbeiten"
-#: ../../Zotlabs/Module/Wiki.php:262 ../../addon/gitwiki/Mod_Gitwiki.php:185
+#: ../../Zotlabs/Module/Wiki.php:262
msgid "Wiki not found"
msgstr "Wiki nicht gefunden"
-#: ../../Zotlabs/Module/Wiki.php:286 ../../addon/gitwiki/Mod_Gitwiki.php:210
+#: ../../Zotlabs/Module/Wiki.php:286
msgid "Rename page"
msgstr "Seite umbenennen"
-#: ../../Zotlabs/Module/Wiki.php:305 ../../addon/gitwiki/Mod_Gitwiki.php:214
+#: ../../Zotlabs/Module/Wiki.php:307
msgid "Error retrieving page content"
msgstr "Fehler beim Abrufen des Seiteninhalts"
-#: ../../Zotlabs/Module/Wiki.php:313 ../../Zotlabs/Module/Wiki.php:315
+#: ../../Zotlabs/Module/Wiki.php:315 ../../Zotlabs/Module/Wiki.php:317
msgid "New page"
msgstr "Neue Seite"
-#: ../../Zotlabs/Module/Wiki.php:343 ../../addon/gitwiki/Mod_Gitwiki.php:242
+#: ../../Zotlabs/Module/Wiki.php:345
msgid "Revision Comparison"
msgstr "Revisionsvergleich"
-#: ../../Zotlabs/Module/Wiki.php:344 ../../addon/gitwiki/Mod_Gitwiki.php:243
+#: ../../Zotlabs/Module/Wiki.php:346
msgid "Revert"
msgstr "Rückgängig machen"
-#: ../../Zotlabs/Module/Wiki.php:351
+#: ../../Zotlabs/Module/Wiki.php:353
msgid "Short description of your changes (optional)"
msgstr "Kurze Beschreibung Ihrer Änderungen (optional)"
-#: ../../Zotlabs/Module/Wiki.php:358 ../../addon/gitwiki/Mod_Gitwiki.php:252
+#: ../../Zotlabs/Module/Wiki.php:362
msgid "Source"
msgstr "Quelle"
-#: ../../Zotlabs/Module/Wiki.php:368 ../../addon/gitwiki/Mod_Gitwiki.php:260
+#: ../../Zotlabs/Module/Wiki.php:372
msgid "New page name"
msgstr "Neuer Seitenname"
-#: ../../Zotlabs/Module/Wiki.php:373 ../../addon/gitwiki/Mod_Gitwiki.php:265
-#: ../../include/conversation.php:1282
+#: ../../Zotlabs/Module/Wiki.php:377 ../../include/conversation.php:1282
msgid "Embed image from photo albums"
msgstr "Bild aus Fotoalben einbetten"
-#: ../../Zotlabs/Module/Wiki.php:374 ../../addon/gitwiki/Mod_Gitwiki.php:266
-#: ../../include/conversation.php:1385
+#: ../../Zotlabs/Module/Wiki.php:378 ../../include/conversation.php:1388
msgid "Embed an image from your albums"
msgstr "Betten Sie ein Bild aus Ihren Alben ein"
-#: ../../Zotlabs/Module/Wiki.php:376
+#: ../../Zotlabs/Module/Wiki.php:380
#: ../../Zotlabs/Module/Profile_photo.php:465
-#: ../../Zotlabs/Module/Cover_photo.php:366
-#: ../../addon/gitwiki/Mod_Gitwiki.php:268 ../../include/conversation.php:1387
-#: ../../include/conversation.php:1434
+#: ../../Zotlabs/Module/Cover_photo.php:367
+#: ../../include/conversation.php:1390 ../../include/conversation.php:1437
msgid "OK"
msgstr "Ok"
-#: ../../Zotlabs/Module/Wiki.php:377 ../../addon/gitwiki/Mod_Gitwiki.php:269
-#: ../../include/conversation.php:1318
+#: ../../Zotlabs/Module/Wiki.php:381
+#: ../../Zotlabs/Module/Profile_photo.php:466
+#: ../../Zotlabs/Module/Cover_photo.php:368
+#: ../../include/conversation.php:1320
msgid "Choose images to embed"
msgstr "Wählen Sie Bilder zum Einbetten aus"
-#: ../../Zotlabs/Module/Wiki.php:378 ../../addon/gitwiki/Mod_Gitwiki.php:270
-#: ../../include/conversation.php:1319
+#: ../../Zotlabs/Module/Wiki.php:382
+#: ../../Zotlabs/Module/Profile_photo.php:467
+#: ../../Zotlabs/Module/Cover_photo.php:369
+#: ../../include/conversation.php:1321
msgid "Choose an album"
msgstr "Wählen Sie ein Album aus"
-#: ../../Zotlabs/Module/Wiki.php:379 ../../addon/gitwiki/Mod_Gitwiki.php:271
+#: ../../Zotlabs/Module/Wiki.php:383
+#: ../../Zotlabs/Module/Profile_photo.php:468
+#: ../../Zotlabs/Module/Cover_photo.php:370
msgid "Choose a different album"
msgstr "Wählen Sie ein anderes Album aus"
-#: ../../Zotlabs/Module/Wiki.php:380 ../../addon/gitwiki/Mod_Gitwiki.php:272
-#: ../../include/conversation.php:1321
+#: ../../Zotlabs/Module/Wiki.php:384
+#: ../../Zotlabs/Module/Profile_photo.php:469
+#: ../../Zotlabs/Module/Cover_photo.php:371
+#: ../../include/conversation.php:1323
msgid "Error getting album list"
msgstr "Fehler beim Holen der Albenliste"
-#: ../../Zotlabs/Module/Wiki.php:381 ../../addon/gitwiki/Mod_Gitwiki.php:273
-#: ../../include/conversation.php:1322
+#: ../../Zotlabs/Module/Wiki.php:385
+#: ../../Zotlabs/Module/Profile_photo.php:470
+#: ../../Zotlabs/Module/Cover_photo.php:372
+#: ../../include/conversation.php:1324
msgid "Error getting photo link"
msgstr "Fehler beim Holen des Fotolinks"
-#: ../../Zotlabs/Module/Wiki.php:382 ../../addon/gitwiki/Mod_Gitwiki.php:274
-#: ../../include/conversation.php:1323
+#: ../../Zotlabs/Module/Wiki.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:471
+#: ../../Zotlabs/Module/Cover_photo.php:373
+#: ../../include/conversation.php:1325
msgid "Error getting album"
msgstr "Fehler beim Holen des Albums"
-#: ../../Zotlabs/Module/Wiki.php:458 ../../addon/gitwiki/Mod_Gitwiki.php:337
+#: ../../Zotlabs/Module/Wiki.php:462
msgid "Error creating wiki. Invalid name."
msgstr "Fehler beim Erstellen des Wiki. Ungültiger Name."
-#: ../../Zotlabs/Module/Wiki.php:465
+#: ../../Zotlabs/Module/Wiki.php:469
msgid "A wiki with this name already exists."
msgstr "Es existiert bereits ein Wiki mit diesem Namen."
-#: ../../Zotlabs/Module/Wiki.php:478 ../../addon/gitwiki/Mod_Gitwiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:482
msgid "Wiki created, but error creating Home page."
msgstr "Das Wiki wurde erzeugt, aber es gab einen Fehler bei der Erstellung der Startseite"
-#: ../../Zotlabs/Module/Wiki.php:485 ../../addon/gitwiki/Mod_Gitwiki.php:353
+#: ../../Zotlabs/Module/Wiki.php:489
msgid "Error creating wiki"
msgstr "Fehler beim Erstellen des Wiki"
-#: ../../Zotlabs/Module/Wiki.php:508
+#: ../../Zotlabs/Module/Wiki.php:512
msgid "Error updating wiki. Invalid name."
msgstr "Fehler beim Aktualisieren des Wikis. Ungültiger Name."
-#: ../../Zotlabs/Module/Wiki.php:528
+#: ../../Zotlabs/Module/Wiki.php:532
msgid "Error updating wiki"
msgstr "Fehler beim Aktualisieren des Wikis"
-#: ../../Zotlabs/Module/Wiki.php:543
+#: ../../Zotlabs/Module/Wiki.php:547
msgid "Wiki delete permission denied."
msgstr "Wiki-Löschberechtigung verweigert."
-#: ../../Zotlabs/Module/Wiki.php:553
+#: ../../Zotlabs/Module/Wiki.php:557
msgid "Error deleting wiki"
msgstr "Fehler beim Löschen des Wiki"
-#: ../../Zotlabs/Module/Wiki.php:586 ../../addon/gitwiki/Mod_Gitwiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:590
msgid "New page created"
msgstr "Neue Seite erstellt"
-#: ../../Zotlabs/Module/Wiki.php:707
+#: ../../Zotlabs/Module/Wiki.php:711
msgid "Cannot delete Home"
msgstr "Kann die Startseite nicht löschen"
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Current Revision"
msgstr "Aktuelle Revision"
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Selected Revision"
msgstr "Ausgewählte Revision"
-#: ../../Zotlabs/Module/Wiki.php:821
+#: ../../Zotlabs/Module/Wiki.php:825
msgid "You must be authenticated."
msgstr "Sie müssen authenzifiziert sein."
@@ -5206,7 +5285,7 @@ msgstr "Bild hochgeladen, aber das Zurechtschneiden schlug fehl."
#: ../../Zotlabs/Module/Profile_photo.php:120
#: ../../Zotlabs/Module/Profile_photo.php:248
-#: ../../include/photo/photo_driver.php:740
+#: ../../include/photo/photo_driver.php:741
msgid "Profile Photos"
msgstr "Profilfotos"
@@ -5245,12 +5324,12 @@ msgid "Photo not available."
msgstr "Foto nicht verfügbar."
#: ../../Zotlabs/Module/Profile_photo.php:455
-#: ../../Zotlabs/Module/Cover_photo.php:358
+#: ../../Zotlabs/Module/Cover_photo.php:359
msgid "Upload File:"
msgstr "Datei hochladen:"
#: ../../Zotlabs/Module/Profile_photo.php:456
-#: ../../Zotlabs/Module/Cover_photo.php:359
+#: ../../Zotlabs/Module/Cover_photo.php:360
msgid "Select a profile:"
msgstr "Wähle ein Profil:"
@@ -5268,28 +5347,28 @@ msgstr "Verwenden"
#: ../../Zotlabs/Module/Profile_photo.php:462
#: ../../Zotlabs/Module/Profile_photo.php:463
-#: ../../Zotlabs/Module/Cover_photo.php:363
#: ../../Zotlabs/Module/Cover_photo.php:364
+#: ../../Zotlabs/Module/Cover_photo.php:365
msgid "Use a photo from your albums"
msgstr "Ein Foto aus meinen Alben verwenden"
-#: ../../Zotlabs/Module/Profile_photo.php:467
-#: ../../Zotlabs/Module/Cover_photo.php:369
+#: ../../Zotlabs/Module/Profile_photo.php:473
+#: ../../Zotlabs/Module/Cover_photo.php:376
msgid "Select existing photo"
msgstr "Wähle ein vorhandenes Foto aus"
-#: ../../Zotlabs/Module/Profile_photo.php:486
-#: ../../Zotlabs/Module/Cover_photo.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:492
+#: ../../Zotlabs/Module/Cover_photo.php:393
msgid "Crop Image"
msgstr "Bild zuschneiden"
-#: ../../Zotlabs/Module/Profile_photo.php:487
-#: ../../Zotlabs/Module/Cover_photo.php:387
+#: ../../Zotlabs/Module/Profile_photo.php:493
+#: ../../Zotlabs/Module/Cover_photo.php:394
msgid "Please adjust the image cropping for optimum viewing."
msgstr "Bitte schneide das Bild für eine optimale Anzeige passend zu."
-#: ../../Zotlabs/Module/Profile_photo.php:489
-#: ../../Zotlabs/Module/Cover_photo.php:389
+#: ../../Zotlabs/Module/Profile_photo.php:495
+#: ../../Zotlabs/Module/Cover_photo.php:396
msgid "Done Editing"
msgstr "Bearbeitung fertigstellen"
@@ -5305,61 +5384,61 @@ msgstr "Online"
msgid "Unable to locate original post."
msgstr "Originalbeitrag nicht gefunden."
-#: ../../Zotlabs/Module/Item.php:476
+#: ../../Zotlabs/Module/Item.php:477
msgid "Empty post discarded."
msgstr "Leeren Beitrag verworfen."
-#: ../../Zotlabs/Module/Item.php:867
+#: ../../Zotlabs/Module/Item.php:874
msgid "Duplicate post suppressed."
msgstr "Doppelter Beitrag unterdrückt."
-#: ../../Zotlabs/Module/Item.php:1012
+#: ../../Zotlabs/Module/Item.php:1019
msgid "System error. Post not saved."
msgstr "Systemfehler. Beitrag nicht gespeichert."
-#: ../../Zotlabs/Module/Item.php:1048
+#: ../../Zotlabs/Module/Item.php:1055
msgid "Your comment is awaiting approval."
msgstr "Dein Kommentar muss noch bestätigt werden."
-#: ../../Zotlabs/Module/Item.php:1153
+#: ../../Zotlabs/Module/Item.php:1160
msgid "Unable to obtain post information from database."
msgstr "Beitragsinformationen können nicht aus der Datenbank abgerufen werden."
-#: ../../Zotlabs/Module/Item.php:1182
+#: ../../Zotlabs/Module/Item.php:1189
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht."
-#: ../../Zotlabs/Module/Item.php:1189
+#: ../../Zotlabs/Module/Item.php:1196
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht."
-#: ../../Zotlabs/Module/Ping.php:320
+#: ../../Zotlabs/Module/Ping.php:330
msgid "sent you a private message"
msgstr "hat Dir eine private Nachricht geschickt"
-#: ../../Zotlabs/Module/Ping.php:372
+#: ../../Zotlabs/Module/Ping.php:383
msgid "added your channel"
msgstr "hat deinen Kanal hinzugefügt"
-#: ../../Zotlabs/Module/Ping.php:396
+#: ../../Zotlabs/Module/Ping.php:407
msgid "requires approval"
msgstr "Zustimmung erforderlich"
-#: ../../Zotlabs/Module/Ping.php:406
+#: ../../Zotlabs/Module/Ping.php:417
msgid "g A l F d"
msgstr "l, d. F, G:i \\U\\h\\r"
-#: ../../Zotlabs/Module/Ping.php:424
+#: ../../Zotlabs/Module/Ping.php:435
msgid "[today]"
msgstr "[Heute]"
-#: ../../Zotlabs/Module/Ping.php:433
+#: ../../Zotlabs/Module/Ping.php:444
msgid "posted an event"
msgstr "hat einen Termin veröffentlicht"
-#: ../../Zotlabs/Module/Ping.php:466
+#: ../../Zotlabs/Module/Ping.php:477
msgid "shared a file with you"
msgstr "hat eine Datei mit Dir geteilt"
@@ -5368,7 +5447,8 @@ msgid "Invalid item."
msgstr "Ungültiges Element."
#: ../../Zotlabs/Module/Page.php:136 ../../Zotlabs/Module/Block.php:77
-#: ../../Zotlabs/Module/Display.php:133
+#: ../../Zotlabs/Module/Display.php:141 ../../Zotlabs/Module/Display.php:158
+#: ../../Zotlabs/Module/Display.php:175
#: ../../Zotlabs/Lib/NativeWikiPage.php:519 ../../Zotlabs/Web/Router.php:167
#: ../../include/help.php:81
msgid "Page not found."
@@ -5449,7 +5529,7 @@ msgstr "Foto aktualisieren"
msgid "Fetch updated photo"
msgstr "Aktualisiertes Profilfoto abrufen"
-#: ../../Zotlabs/Module/Connedit.php:615
+#: ../../Zotlabs/Module/Connedit.php:615 ../../include/conversation.php:1042
msgid "Recent Activity"
msgstr "Kürzliche Aktivitäten"
@@ -5593,11 +5673,11 @@ msgid ""
msgstr "Diese Verbindung ist von diesem Standort aus unerreichbar. Standort Unabhängigkeit wird vom anderen Netzwerk nicht unterstützt."
#: ../../Zotlabs/Module/Connedit.php:850 ../../Zotlabs/Module/Defperms.php:238
-#: ../../Zotlabs/Widget/Settings_menu.php:109
+#: ../../Zotlabs/Widget/Settings_menu.php:117
msgid "Connection Default Permissions"
msgstr "Standardzugriffsrechte für neue Verbindungen:"
-#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4164
+#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4214
#, php-format
msgid "Connection: %s"
msgstr "Verbindung: %s"
@@ -5732,13 +5812,13 @@ msgid "Bookmark this room"
msgstr "Lesezeichen für diesen Raum setzen"
#: ../../Zotlabs/Module/Chat.php:205 ../../Zotlabs/Module/Mail.php:241
-#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1313
+#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1315
msgid "Please enter a link URL:"
msgstr "Gib eine URL ein:"
#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Module/Mail.php:294
-#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:764
-#: ../../include/conversation.php:1432
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:766
+#: ../../include/conversation.php:1435
msgid "Encrypt text"
msgstr "Text verschlüsseln"
@@ -5772,12 +5852,12 @@ msgid "min"
msgstr "min"
#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:248
-#: ../../include/conversation.php:1831 ../../include/nav.php:401
+#: ../../include/conversation.php:1834 ../../include/nav.php:401
msgid "Photos"
msgstr "Fotos"
#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:243
-#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1839
+#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1842
#: ../../include/nav.php:409
msgid "Files"
msgstr "Dateien"
@@ -5818,7 +5898,7 @@ msgstr "Im Menü können gespeicherte Lesezeichen abgelegt werden"
msgid "Submit and proceed"
msgstr "Absenden und fortfahren"
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2403
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2423
msgid "Menus"
msgstr "Menüs"
@@ -5870,7 +5950,7 @@ msgstr "Menü Titel wie er von anderen gesehen wird"
msgid "Allow bookmarks"
msgstr "Erlaube Lesezeichen"
-#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2404
+#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2424
msgid "Layouts"
msgstr "Layouts"
@@ -5892,11 +5972,11 @@ msgstr "Layout-Beschreibung"
msgid "Download PDL file"
msgstr "PDL-Datei herunterladen"
-#: ../../Zotlabs/Module/Cloud.php:114
+#: ../../Zotlabs/Module/Cloud.php:120
msgid "Please refresh page"
msgstr "Bitte die Seite neu laden"
-#: ../../Zotlabs/Module/Cloud.php:117
+#: ../../Zotlabs/Module/Cloud.php:123
msgid "Unknown error"
msgstr "Unbekannter Fehler"
@@ -5930,16 +6010,16 @@ msgid "Post not found."
msgstr "Beitrag nicht gefunden."
#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:160
-#: ../../include/bbcode.php:339
+#: ../../include/bbcode.php:352
msgid "post"
msgstr "Beitrag"
#: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146
-#: ../../include/text.php:2012
+#: ../../include/text.php:2013
msgid "comment"
msgstr "Kommentar"
-#: ../../Zotlabs/Module/Tagger.php:117
+#: ../../Zotlabs/Module/Tagger.php:119
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s hat %2$ss %3$s mit %4$s verschlagwortet"
@@ -5974,6 +6054,23 @@ msgid ""
"channel type and privacy settings."
msgstr "Einige individuelle Berechtigungen können basierend auf Deinen Kanal- und Privatsphäre-Einstellungen vorbelegt oder gesperrt sein."
+#: ../../Zotlabs/Module/Authorize.php:17
+msgid "Unknown App"
+msgstr "Unbekannte Anwendung"
+
+#: ../../Zotlabs/Module/Authorize.php:22
+msgid "Authorize"
+msgstr "Berechtigen"
+
+#: ../../Zotlabs/Module/Authorize.php:23
+#, php-format
+msgid "Do you authorize the app %s to access your channel data?"
+msgstr "Willst du die Anwendung %s dazu berechtigen auf die Daten deines Kanals zuzugreifen?"
+
+#: ../../Zotlabs/Module/Authorize.php:25
+msgid "Allow"
+msgstr "Erlauben"
+
#: ../../Zotlabs/Module/Group.php:24
msgid "Privacy group created."
msgstr "Gruppe wurde erstellt."
@@ -5983,7 +6080,7 @@ msgid "Could not create privacy group."
msgstr "Gruppe konnte nicht erstellt werden."
#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:143
-#: ../../include/items.php:4131
+#: ../../include/items.php:4181
msgid "Privacy group not found."
msgstr "Gruppe nicht gefunden."
@@ -6064,15 +6161,15 @@ msgstr "Familienstand"
msgid "Romantic Partner"
msgstr "Romantische Partner"
-#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:775
+#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:772
msgid "Likes"
msgstr "Gefällt"
-#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:776
+#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:773
msgid "Dislikes"
msgstr "Gefällt nicht"
-#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:783
+#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:780
msgid "Work/Employment"
msgstr "Arbeit/Anstellung"
@@ -6109,198 +6206,198 @@ msgstr "Profil aktualisiert."
msgid "Hide your connections list from viewers of this profile"
msgstr "Deine Verbindungen vor Betrachtern dieses Profils verbergen"
-#: ../../Zotlabs/Module/Profiles.php:725
+#: ../../Zotlabs/Module/Profiles.php:722
msgid "Edit Profile Details"
msgstr "Bearbeite Profil-Details"
-#: ../../Zotlabs/Module/Profiles.php:727
+#: ../../Zotlabs/Module/Profiles.php:724
msgid "View this profile"
msgstr "Dieses Profil ansehen"
-#: ../../Zotlabs/Module/Profiles.php:728 ../../Zotlabs/Module/Profiles.php:827
-#: ../../include/channel.php:1320
+#: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824
+#: ../../include/channel.php:1319
msgid "Edit visibility"
msgstr "Sichtbarkeit bearbeiten"
-#: ../../Zotlabs/Module/Profiles.php:729
+#: ../../Zotlabs/Module/Profiles.php:726
msgid "Profile Tools"
msgstr "Profilwerkzeuge"
-#: ../../Zotlabs/Module/Profiles.php:730
+#: ../../Zotlabs/Module/Profiles.php:727
msgid "Change cover photo"
msgstr "Titelbild ändern"
-#: ../../Zotlabs/Module/Profiles.php:731 ../../include/channel.php:1290
+#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1289
msgid "Change profile photo"
msgstr "Profilfoto ändern"
-#: ../../Zotlabs/Module/Profiles.php:732
+#: ../../Zotlabs/Module/Profiles.php:729
msgid "Create a new profile using these settings"
msgstr "Neues Profil anlegen und diese Einstellungen übernehmen"
-#: ../../Zotlabs/Module/Profiles.php:733
+#: ../../Zotlabs/Module/Profiles.php:730
msgid "Clone this profile"
msgstr "Dieses Profil klonen"
-#: ../../Zotlabs/Module/Profiles.php:734
+#: ../../Zotlabs/Module/Profiles.php:731
msgid "Delete this profile"
msgstr "Dieses Profil löschen"
-#: ../../Zotlabs/Module/Profiles.php:735
+#: ../../Zotlabs/Module/Profiles.php:732
msgid "Add profile things"
msgstr "Sachen zum Profil hinzufügen"
-#: ../../Zotlabs/Module/Profiles.php:736 ../../include/conversation.php:1705
+#: ../../Zotlabs/Module/Profiles.php:733 ../../include/conversation.php:1708
msgid "Personal"
msgstr "Persönlich"
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Relation"
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Relationship"
msgstr "Beziehung"
-#: ../../Zotlabs/Module/Profiles.php:739 ../../Zotlabs/Widget/Newmember.php:53
+#: ../../Zotlabs/Module/Profiles.php:736 ../../Zotlabs/Widget/Newmember.php:44
#: ../../include/datetime.php:58
msgid "Miscellaneous"
msgstr "Verschiedenes"
-#: ../../Zotlabs/Module/Profiles.php:741
+#: ../../Zotlabs/Module/Profiles.php:738
msgid "Import profile from file"
msgstr "Profil aus einer Datei importieren"
-#: ../../Zotlabs/Module/Profiles.php:742
+#: ../../Zotlabs/Module/Profiles.php:739
msgid "Export profile to file"
msgstr "Profil in eine Datei exportieren"
-#: ../../Zotlabs/Module/Profiles.php:743
+#: ../../Zotlabs/Module/Profiles.php:740
msgid "Your gender"
msgstr "Dein Geschlecht"
-#: ../../Zotlabs/Module/Profiles.php:744
+#: ../../Zotlabs/Module/Profiles.php:741
msgid "Marital status"
msgstr "Familienstand"
-#: ../../Zotlabs/Module/Profiles.php:745
+#: ../../Zotlabs/Module/Profiles.php:742
msgid "Sexual preference"
msgstr "Sexuelle Orientierung"
-#: ../../Zotlabs/Module/Profiles.php:748
+#: ../../Zotlabs/Module/Profiles.php:745
msgid "Profile name"
msgstr "Profilname"
-#: ../../Zotlabs/Module/Profiles.php:750
+#: ../../Zotlabs/Module/Profiles.php:747
msgid "This is your default profile."
msgstr "Das ist Dein Standardprofil."
-#: ../../Zotlabs/Module/Profiles.php:752
+#: ../../Zotlabs/Module/Profiles.php:749
msgid "Your full name"
msgstr "Dein voller Name"
-#: ../../Zotlabs/Module/Profiles.php:753
+#: ../../Zotlabs/Module/Profiles.php:750
msgid "Title/Description"
msgstr "Titel/Beschreibung"
-#: ../../Zotlabs/Module/Profiles.php:756
+#: ../../Zotlabs/Module/Profiles.php:753
msgid "Street address"
msgstr "Straße und Hausnummer"
-#: ../../Zotlabs/Module/Profiles.php:757
+#: ../../Zotlabs/Module/Profiles.php:754
msgid "Locality/City"
msgstr "Wohnort"
-#: ../../Zotlabs/Module/Profiles.php:758
+#: ../../Zotlabs/Module/Profiles.php:755
msgid "Region/State"
msgstr "Region/Bundesstaat"
-#: ../../Zotlabs/Module/Profiles.php:759
+#: ../../Zotlabs/Module/Profiles.php:756
msgid "Postal/Zip code"
msgstr "Postleitzahl"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Who (if applicable)"
msgstr "Wer (falls anwendbar)"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com"
-#: ../../Zotlabs/Module/Profiles.php:766
+#: ../../Zotlabs/Module/Profiles.php:763
msgid "Since (date)"
msgstr "Seit (Datum)"
-#: ../../Zotlabs/Module/Profiles.php:769
+#: ../../Zotlabs/Module/Profiles.php:766
msgid "Tell us about yourself"
msgstr "Erzähle uns ein wenig von Dir"
-#: ../../Zotlabs/Module/Profiles.php:770
+#: ../../Zotlabs/Module/Profiles.php:767
#: ../../addon/openid/MysqlProvider.php:68
msgid "Homepage URL"
msgstr "Homepage-URL"
-#: ../../Zotlabs/Module/Profiles.php:771
+#: ../../Zotlabs/Module/Profiles.php:768
msgid "Hometown"
msgstr "Heimatort"
-#: ../../Zotlabs/Module/Profiles.php:772
+#: ../../Zotlabs/Module/Profiles.php:769
msgid "Political views"
msgstr "Politische Ansichten"
-#: ../../Zotlabs/Module/Profiles.php:773
+#: ../../Zotlabs/Module/Profiles.php:770
msgid "Religious views"
msgstr "Religiöse Ansichten"
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Keywords used in directory listings"
msgstr "Schlüsselwörter, die in Verzeichnis-Auflistungen verwendet werden"
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Example: fishing photography software"
msgstr "Beispiel: Angeln Fotografie Software"
-#: ../../Zotlabs/Module/Profiles.php:777
+#: ../../Zotlabs/Module/Profiles.php:774
msgid "Musical interests"
msgstr "Musikalische Interessen"
-#: ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Profiles.php:775
msgid "Books, literature"
msgstr "Bücher, Literatur"
-#: ../../Zotlabs/Module/Profiles.php:779
+#: ../../Zotlabs/Module/Profiles.php:776
msgid "Television"
msgstr "Fernsehen"
-#: ../../Zotlabs/Module/Profiles.php:780
+#: ../../Zotlabs/Module/Profiles.php:777
msgid "Film/Dance/Culture/Entertainment"
msgstr "Film/Tanz/Kultur/Unterhaltung"
-#: ../../Zotlabs/Module/Profiles.php:781
+#: ../../Zotlabs/Module/Profiles.php:778
msgid "Hobbies/Interests"
msgstr "Hobbys/Interessen"
-#: ../../Zotlabs/Module/Profiles.php:782
+#: ../../Zotlabs/Module/Profiles.php:779
msgid "Love/Romance"
msgstr "Liebe/Romantik"
-#: ../../Zotlabs/Module/Profiles.php:784
+#: ../../Zotlabs/Module/Profiles.php:781
msgid "School/Education"
msgstr "Schule/Ausbildung"
-#: ../../Zotlabs/Module/Profiles.php:785
+#: ../../Zotlabs/Module/Profiles.php:782
msgid "Contact information and social networks"
msgstr "Kontaktinformation und soziale Netzwerke"
-#: ../../Zotlabs/Module/Profiles.php:786
+#: ../../Zotlabs/Module/Profiles.php:783
msgid "My other channels"
msgstr "Meine anderen Kanäle"
-#: ../../Zotlabs/Module/Profiles.php:788
+#: ../../Zotlabs/Module/Profiles.php:785
msgid "Communications"
msgstr "Kommunikation"
-#: ../../Zotlabs/Module/Profiles.php:823 ../../include/channel.php:1316
+#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1315
msgid "Profile Image"
msgstr "Profilfoto:"
-#: ../../Zotlabs/Module/Profiles.php:833 ../../include/channel.php:1297
+#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1296
#: ../../include/nav.php:117
msgid "Edit Profiles"
msgstr "Profile bearbeiten"
@@ -6334,11 +6431,11 @@ msgstr "Ein Titelbild hochladen"
msgid "Edit your default profile"
msgstr "Dein Standardprofil bearbeiten"
-#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:43
+#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:34
msgid "View friend suggestions"
msgstr "Freundschafts- und Verbindungsvorschläge ansehen"
-#: ../../Zotlabs/Module/Go.php:39 ../../Zotlabs/Widget/Newmember.php:42
+#: ../../Zotlabs/Module/Go.php:39
msgid "View the channel directory"
msgstr "Das Kanalverzeichnis ansehen"
@@ -6415,9 +6512,9 @@ msgstr "%d neue Vorstellungen"
msgid "Delegated Channel"
msgstr "Delegierte Kanäle"
-#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:181
-#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1890
-#: ../../include/features.php:114 ../../include/nav.php:458
+#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:194
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1893
+#: ../../include/features.php:123 ../../include/nav.php:458
msgid "Cards"
msgstr "Karten"
@@ -6509,7 +6606,7 @@ msgid "Export selected"
msgstr "Exportieren ausgewählt"
#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:244
-#: ../../include/conversation.php:1912 ../../include/nav.php:481
+#: ../../include/conversation.php:1915 ../../include/nav.php:481
msgid "Webpages"
msgstr "Webseiten"
@@ -6582,7 +6679,7 @@ msgstr "Kanal umbenennen"
msgid "Item is not editable"
msgstr "Element kann nicht bearbeitet werden."
-#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:178
+#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:144
msgid "Edit post"
msgstr "Bearbeite Beitrag"
@@ -6669,7 +6766,7 @@ msgid "*"
msgstr "*"
#: ../../Zotlabs/Module/Sources.php:96
-#: ../../Zotlabs/Widget/Settings_menu.php:125 ../../include/features.php:274
+#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/features.php:292
msgid "Channel Sources"
msgstr "Kanal-Quellen"
@@ -6760,165 +6857,169 @@ msgstr "Kanal nicht vorhanden."
msgid "Previous action reversed."
msgstr "Die vorherige Aktion wurde rückgängig gemacht."
-#: ../../Zotlabs/Module/Like.php:436 ../../addon/diaspora/Receiver.php:1547
-#: ../../addon/pubcrawl/as.php:1394 ../../include/conversation.php:160
+#: ../../Zotlabs/Module/Like.php:438 ../../addon/diaspora/Receiver.php:1529
+#: ../../addon/pubcrawl/as.php:1440 ../../include/conversation.php:160
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "%1$s gefällt %2$ss %3$s"
-#: ../../Zotlabs/Module/Like.php:438 ../../addon/pubcrawl/as.php:1396
+#: ../../Zotlabs/Module/Like.php:440 ../../addon/pubcrawl/as.php:1442
#: ../../include/conversation.php:163
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s gefällt %2$ss %3$s nicht"
-#: ../../Zotlabs/Module/Like.php:440
+#: ../../Zotlabs/Module/Like.php:442
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr "%1$s stimmt %2$ss %3$s zu"
-#: ../../Zotlabs/Module/Like.php:442
+#: ../../Zotlabs/Module/Like.php:444
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr "%1$s lehnt %2$ss %3$s ab"
-#: ../../Zotlabs/Module/Like.php:444
+#: ../../Zotlabs/Module/Like.php:446
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr "%1$s enthält sich zu %2$ss %3$s"
-#: ../../Zotlabs/Module/Like.php:446 ../../addon/diaspora/Receiver.php:2031
+#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2072
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%1$s nimmt an %2$ss %3$s teil"
-#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2033
+#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2074
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%1$s nimmt an %2$ss %3$s nicht teil"
-#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2035
+#: ../../Zotlabs/Module/Like.php:452 ../../addon/diaspora/Receiver.php:2076
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%1$s nimmt vielleicht an %2$ss %3$s teil"
-#: ../../Zotlabs/Module/Like.php:562
+#: ../../Zotlabs/Module/Like.php:564
msgid "Action completed."
msgstr "Aktion durchgeführt."
-#: ../../Zotlabs/Module/Like.php:563
+#: ../../Zotlabs/Module/Like.php:565
msgid "Thank you."
msgstr "Vielen Dank."
-#: ../../Zotlabs/Module/Directory.php:250
+#: ../../Zotlabs/Module/Directory.php:106
+msgid "No default suggestions were found."
+msgstr "Es wurden keine Standard Vorschläge gefunden."
+
+#: ../../Zotlabs/Module/Directory.php:255
#, php-format
msgid "%d rating"
msgid_plural "%d ratings"
msgstr[0] "%d Bewertung"
msgstr[1] "%d Bewertungen"
-#: ../../Zotlabs/Module/Directory.php:261
+#: ../../Zotlabs/Module/Directory.php:266
msgid "Gender: "
msgstr "Geschlecht:"
-#: ../../Zotlabs/Module/Directory.php:263
+#: ../../Zotlabs/Module/Directory.php:268
msgid "Status: "
msgstr "Status:"
-#: ../../Zotlabs/Module/Directory.php:265
+#: ../../Zotlabs/Module/Directory.php:270
msgid "Homepage: "
msgstr "Webseite:"
-#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1565
+#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1564
msgid "Age:"
msgstr "Alter:"
-#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1392
+#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1391
#: ../../include/event.php:54 ../../include/event.php:86
msgid "Location:"
msgstr "Ort:"
-#: ../../Zotlabs/Module/Directory.php:325
+#: ../../Zotlabs/Module/Directory.php:330
msgid "Description:"
msgstr "Beschreibung:"
-#: ../../Zotlabs/Module/Directory.php:330 ../../include/channel.php:1581
+#: ../../Zotlabs/Module/Directory.php:335 ../../include/channel.php:1593
msgid "Hometown:"
msgstr "Heimatstadt:"
-#: ../../Zotlabs/Module/Directory.php:332 ../../include/channel.php:1589
+#: ../../Zotlabs/Module/Directory.php:337 ../../include/channel.php:1599
msgid "About:"
msgstr "Über:"
-#: ../../Zotlabs/Module/Directory.php:333 ../../Zotlabs/Module/Suggest.php:56
+#: ../../Zotlabs/Module/Directory.php:338 ../../Zotlabs/Module/Suggest.php:56
#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44
-#: ../../include/conversation.php:1052 ../../include/channel.php:1377
-#: ../../include/connections.php:111
+#: ../../include/conversation.php:1052 ../../include/channel.php:1376
+#: ../../include/connections.php:110
msgid "Connect"
msgstr "Verbinden"
-#: ../../Zotlabs/Module/Directory.php:334
+#: ../../Zotlabs/Module/Directory.php:339
msgid "Public Forum:"
msgstr "Öffentliches Forum:"
-#: ../../Zotlabs/Module/Directory.php:337
+#: ../../Zotlabs/Module/Directory.php:342
msgid "Keywords: "
msgstr "Schlüsselwörter:"
-#: ../../Zotlabs/Module/Directory.php:340
+#: ../../Zotlabs/Module/Directory.php:345
msgid "Don't suggest"
msgstr "Nicht vorschlagen"
-#: ../../Zotlabs/Module/Directory.php:342
+#: ../../Zotlabs/Module/Directory.php:347
msgid "Common connections (estimated):"
msgstr "Gemeinsame Verbindungen (geschätzt):"
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Global Directory"
msgstr "Globales Verzeichnis"
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Local Directory"
msgstr "Lokales Verzeichnis"
-#: ../../Zotlabs/Module/Directory.php:397
+#: ../../Zotlabs/Module/Directory.php:402
msgid "Finding:"
msgstr "Ergebnisse:"
-#: ../../Zotlabs/Module/Directory.php:400 ../../Zotlabs/Module/Suggest.php:64
+#: ../../Zotlabs/Module/Directory.php:405 ../../Zotlabs/Module/Suggest.php:64
#: ../../include/contact_widgets.php:24
msgid "Channel Suggestions"
msgstr "Kanal-Vorschläge"
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "next page"
msgstr "nächste Seite"
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "previous page"
msgstr "vorherige Seite"
-#: ../../Zotlabs/Module/Directory.php:403
+#: ../../Zotlabs/Module/Directory.php:408
msgid "Sort options"
msgstr "Sortieroptionen"
-#: ../../Zotlabs/Module/Directory.php:404
+#: ../../Zotlabs/Module/Directory.php:409
msgid "Alphabetic"
msgstr "alphabetisch"
-#: ../../Zotlabs/Module/Directory.php:405
+#: ../../Zotlabs/Module/Directory.php:410
msgid "Reverse Alphabetic"
msgstr "Entgegengesetzt alphabetisch"
-#: ../../Zotlabs/Module/Directory.php:406
+#: ../../Zotlabs/Module/Directory.php:411
msgid "Newest to Oldest"
msgstr "Neueste zuerst"
-#: ../../Zotlabs/Module/Directory.php:407
+#: ../../Zotlabs/Module/Directory.php:412
msgid "Oldest to Newest"
msgstr "Älteste zuerst"
-#: ../../Zotlabs/Module/Directory.php:424
+#: ../../Zotlabs/Module/Directory.php:429
msgid "No entries (some entries may be hidden)."
msgstr "Keine Einträge gefunden (einige könnten versteckt sein)."
@@ -7001,7 +7102,7 @@ msgid "Subject:"
msgstr "Betreff:"
#: ../../Zotlabs/Module/Mail.php:287 ../../Zotlabs/Module/Mail.php:429
-#: ../../include/conversation.php:1382
+#: ../../include/conversation.php:1385
msgid "Attach file"
msgstr "Datei anhängen"
@@ -7010,7 +7111,7 @@ msgid "Send"
msgstr "Absenden"
#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1430
msgid "Set expiration date"
msgstr "Verfallsdatum"
@@ -7232,7 +7333,7 @@ msgstr "ja"
msgid "Membership on this site is by invitation only."
msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."
-#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1563
+#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1570
#: ../../include/nav.php:164
msgid "Register"
msgstr "Registrieren"
@@ -7248,34 +7349,34 @@ msgstr "Diese Website erfordert eine Email-Bestätigung. Bitte prüfe Deine Emai
msgid "Cover Photos"
msgstr "Cover Foto"
-#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4508
+#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4558
msgid "female"
msgstr "weiblich"
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4509
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4559
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s hat ihr %2$s aktualisiert"
-#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4510
+#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4560
msgid "male"
msgstr "männlich"
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4511
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4561
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s hat sein %2$s aktualisiert"
-#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4513
+#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4563
#, php-format
msgid "%1$s updated their %2$s"
msgstr "%1$s hat sein/ihr %2$s aktualisiert"
-#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2059
+#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2070
msgid "cover photo"
msgstr "Cover Foto"
-#: ../../Zotlabs/Module/Cover_photo.php:360
+#: ../../Zotlabs/Module/Cover_photo.php:361
msgid "Change Cover Photo"
msgstr "Titelbild ändern"
@@ -7283,7 +7384,7 @@ msgstr "Titelbild ändern"
msgid "Documentation Search"
msgstr "Suche in der Dokumentation"
-#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1821
+#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1824
#: ../../include/nav.php:391
msgid "About"
msgstr "Über"
@@ -7308,11 +7409,11 @@ msgstr "$Projectname-Dokumentation"
msgid "Contents"
msgstr "Inhalt"
-#: ../../Zotlabs/Module/Display.php:351
+#: ../../Zotlabs/Module/Display.php:394
msgid "Article"
msgstr "Artikel"
-#: ../../Zotlabs/Module/Display.php:403
+#: ../../Zotlabs/Module/Display.php:446
msgid "Item has been removed."
msgstr "Der Beitrag wurde entfernt."
@@ -7344,19 +7445,19 @@ msgstr "Forum"
msgid "Search Results For:"
msgstr "Suchergebnisse für:"
-#: ../../Zotlabs/Module/Network.php:230
+#: ../../Zotlabs/Module/Network.php:229
msgid "Privacy group is empty"
msgstr "Gruppe ist leer"
-#: ../../Zotlabs/Module/Network.php:240
+#: ../../Zotlabs/Module/Network.php:238
msgid "Privacy group: "
msgstr "Gruppe:"
-#: ../../Zotlabs/Module/Network.php:268
+#: ../../Zotlabs/Module/Network.php:265
msgid "Invalid connection."
msgstr "Ungültige Verbindung."
-#: ../../Zotlabs/Module/Network.php:289 ../../addon/redred/redred.php:65
+#: ../../Zotlabs/Module/Network.php:285 ../../addon/redred/redred.php:65
msgid "Invalid channel."
msgstr "Ungültiger Kanal."
@@ -7557,7 +7658,7 @@ msgid ""
"Password reset failed."
msgstr "Die Anfrage konnte nicht verifiziert werden. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen."
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1591
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1598
msgid "Password Reset"
msgstr "Zurücksetzen des Kennworts"
@@ -7655,11 +7756,11 @@ msgstr "Teilen-Knopf für Firefox"
msgid "Remote Diagnostics"
msgstr "Ferndiagnose"
-#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:390
+#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:417
msgid "Suggest Channels"
msgstr "Kanäle vorschlagen"
-#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1582
+#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1589
#: ../../include/nav.php:126 ../../include/nav.php:130
msgid "Login"
msgstr "Anmelden"
@@ -7668,8 +7769,8 @@ msgstr "Anmelden"
msgid "Activity"
msgstr "Aktivität"
-#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1928
-#: ../../include/features.php:87 ../../include/nav.php:497
+#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1931
+#: ../../include/features.php:96 ../../include/nav.php:497
msgid "Wiki"
msgstr "Wiki"
@@ -7677,8 +7778,8 @@ msgstr "Wiki"
msgid "Channel Home"
msgstr "Mein Kanal"
-#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1850
-#: ../../include/conversation.php:1853
+#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1853
+#: ../../include/conversation.php:1856
msgid "Events"
msgstr "Termine"
@@ -7835,9 +7936,8 @@ msgctxt "wiki_history"
msgid "Message"
msgstr "Nachricht"
-#: ../../Zotlabs/Lib/NativeWikiPage.php:597
-#: ../../addon/gitwiki/gitwiki_backend.php:579 ../../include/bbcode.php:706
-#: ../../include/bbcode.php:865
+#: ../../Zotlabs/Lib/NativeWikiPage.php:597 ../../include/bbcode.php:744
+#: ../../include/bbcode.php:914
msgid "Different viewers will see this text differently"
msgstr "Verschiedene Betrachter werden diesen Text unterschiedlich sehen"
@@ -7959,61 +8059,78 @@ msgstr "Um diese Nachrichten nicht mehr zu erhalten, passe bitte Deine Benachric
msgid "To stop receiving these messages, please adjust your %s."
msgstr "Um diese Nachrichten nicht mehr zu erhalten, passe bitte Deine %s an."
-#: ../../Zotlabs/Lib/Enotify.php:120
+#: ../../Zotlabs/Lib/Enotify.php:66
+#, php-format
+msgid "This email was sent by %1$s at %2$s."
+msgstr "Diese Email wurde von %1$s auf %2$s gesendet."
+
+#: ../../Zotlabs/Lib/Enotify.php:67
+#, php-format
+msgid ""
+"To stop receiving these messages, please adjust your Notification Settings "
+"at %s"
+msgstr "Um diese Nachrichten nicht mehr zu erhalten, passe bitte Deine Benachrichtigungseinstellungen unter folgendem Link an: %s"
+
+#: ../../Zotlabs/Lib/Enotify.php:68
+#, php-format
+msgid "To stop receiving these messages, please adjust your %s."
+msgstr "Um diese Nachrichten nicht mehr zu erhalten, passe bitte Deine %s an."
+
+#: ../../Zotlabs/Lib/Enotify.php:123
#, php-format
msgid "%s <!item_type!>"
msgstr "%s <!item_type!>"
-#: ../../Zotlabs/Lib/Enotify.php:124
+#: ../../Zotlabs/Lib/Enotify.php:127
#, php-format
msgid "[$Projectname:Notify] New mail received at %s"
msgstr "[$Projectname:Benachrichtigung] Neue Mail empfangen auf %s"
-#: ../../Zotlabs/Lib/Enotify.php:126
+#: ../../Zotlabs/Lib/Enotify.php:129
#, php-format
-msgid "%1$s, %2$s sent you a new private message at %3$s."
-msgstr "%1$s, %2$s hat Dir eine private Nachricht auf %3$s gesendet."
+msgid "%1$s sent you a new private message at %2$s."
+msgstr "%1$shat dir auf %2$seine private Nachricht geschickt."
-#: ../../Zotlabs/Lib/Enotify.php:127
+#: ../../Zotlabs/Lib/Enotify.php:130
#, php-format
msgid "%1$s sent you %2$s."
msgstr "%1$s hat Dir %2$s geschickt."
-#: ../../Zotlabs/Lib/Enotify.php:127
+#: ../../Zotlabs/Lib/Enotify.php:130
msgid "a private message"
msgstr "eine private Nachricht"
-#: ../../Zotlabs/Lib/Enotify.php:128
+#: ../../Zotlabs/Lib/Enotify.php:131
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
msgstr "Bitte besuche %s, um die private Nachricht anzusehen und/oder darauf zu antworten."
-#: ../../Zotlabs/Lib/Enotify.php:141
+#: ../../Zotlabs/Lib/Enotify.php:144
msgid "commented on"
msgstr "kommentierte"
-#: ../../Zotlabs/Lib/Enotify.php:152
+#: ../../Zotlabs/Lib/Enotify.php:155
msgid "liked"
msgstr "gefiel"
-#: ../../Zotlabs/Lib/Enotify.php:155
+#: ../../Zotlabs/Lib/Enotify.php:158
msgid "disliked"
msgstr "missfiel"
-#: ../../Zotlabs/Lib/Enotify.php:198
+#: ../../Zotlabs/Lib/Enotify.php:201
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]a %5$s[/zrl]"
-msgstr "%1$s, %2$s %3$s [zrl=%4$s]ein %5$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]a %4$s[/zrl]"
+msgstr "%1$s %2$s [zrl=%3$s]ein %4$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:207
+#: ../../Zotlabs/Lib/Enotify.php:209
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]%5$s's %6$s[/zrl]"
-msgstr "%1$s, %2$s %3$s [zrl=%4$s]%5$s's %6$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]%4$s's %5$s[/zrl]"
+msgstr "%1$s %2$s [zrl=%3$s]%4$s's %5$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:217
+#: ../../Zotlabs/Lib/Enotify.php:218
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]your %5$s[/zrl]"
-msgstr "%1$s, %2$s %3$s [zrl=%4$s]Dein %5$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]your %4$s[/zrl]"
+msgstr "%1$s %2$s [zrl=%3$s]dein %4$s[/zrl]"
#: ../../Zotlabs/Lib/Enotify.php:230
#, php-format
@@ -8027,12 +8144,12 @@ msgstr "[$Projectname:Benachrichtigung] Kommentar in Unterhaltung #%1$d von %2$s
#: ../../Zotlabs/Lib/Enotify.php:233
#, php-format
-msgid "%1$s, %2$s commented on an item/conversation you have been following."
-msgstr "%1$s, %2$s hat eine Unterhaltung kommentiert, der Du folgst."
+msgid "%1$s commented on an item/conversation you have been following."
+msgstr "%1$shat einen Beitrag/eine Konversation kommentiert dem/der du folgst."
-#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:318
-#: ../../Zotlabs/Lib/Enotify.php:335 ../../Zotlabs/Lib/Enotify.php:361
-#: ../../Zotlabs/Lib/Enotify.php:379 ../../Zotlabs/Lib/Enotify.php:393
+#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:317
+#: ../../Zotlabs/Lib/Enotify.php:333 ../../Zotlabs/Lib/Enotify.php:358
+#: ../../Zotlabs/Lib/Enotify.php:375 ../../Zotlabs/Lib/Enotify.php:388
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Bitte besuche %s, um die Unterhaltung anzusehen und/oder zu kommentieren."
@@ -8044,152 +8161,150 @@ msgstr "Bitte besuche %s, um diesen Kommentar anzunehmen oder abzulehnen."
#: ../../Zotlabs/Lib/Enotify.php:299
#, php-format
-msgid "%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]"
-msgstr "%1$s, %2$s gefällt [zrl=%3$s]dein %4$s[/zrl]"
+msgid "%1$s liked [zrl=%2$s]your %3$s[/zrl]"
+msgstr "%1$s mag [zrl=%2$s]dein %3$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:314
+#: ../../Zotlabs/Lib/Enotify.php:313
#, php-format
msgid "[$Projectname:Notify] Like received to conversation #%1$d by %2$s"
msgstr "[$Projectname:Benachrichtigung] Gefällt mir in Unterhaltung #%1$d von %2$s erhalten"
-#: ../../Zotlabs/Lib/Enotify.php:315
+#: ../../Zotlabs/Lib/Enotify.php:314
#, php-format
-msgid "%1$s, %2$s liked an item/conversation you created."
-msgstr "%1$s, %2$s gefällt ein Beitrag oder eine Unterhaltung von Dir"
+msgid "%1$s liked an item/conversation you created."
+msgstr "%1$sgefällt ein Beitrag/eine Unterhaltung von dir."
-#: ../../Zotlabs/Lib/Enotify.php:326
+#: ../../Zotlabs/Lib/Enotify.php:325
#, php-format
msgid "[$Projectname:Notify] %s posted to your profile wall"
msgstr "[$Projectname:Benachrichtigung] %s schrieb auf Deine Pinnwand"
-#: ../../Zotlabs/Lib/Enotify.php:328
+#: ../../Zotlabs/Lib/Enotify.php:327
#, php-format
-msgid "%1$s, %2$s posted to your profile wall at %3$s"
-msgstr "%1$s, %2$s hat auf Deine Pinnwand auf %3$s geschrieben"
+msgid "%1$s posted to your profile wall at %2$s"
+msgstr "%1$shat etwas auf deiner Profilwand auf %2$sveröffentlicht"
-#: ../../Zotlabs/Lib/Enotify.php:330
+#: ../../Zotlabs/Lib/Enotify.php:329
#, php-format
-msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
-msgstr "%1$s, %2$s hat auf [zrl=%3$s]Deine Pinnwand[/zrl] geschrieben"
+msgid "%1$s posted to [zrl=%2$s]your wall[/zrl]"
+msgstr "%1$s schrieb auf [zrl=%2$s]Deine Pinnwand[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:354
+#: ../../Zotlabs/Lib/Enotify.php:352
#, php-format
msgid "[$Projectname:Notify] %s tagged you"
msgstr "[$Projectname:Benachrichtigung] %s hat Dich erwähnt"
-#: ../../Zotlabs/Lib/Enotify.php:355
+#: ../../Zotlabs/Lib/Enotify.php:353
#, php-format
-msgid "%1$s, %2$s tagged you at %3$s"
-msgstr "%1$s, %2$s hat Dich auf %3$s erwähnt"
+msgid "%1$s tagged you at %2$s"
+msgstr "%1$s hat dich auf %2$s getaggt"
-#: ../../Zotlabs/Lib/Enotify.php:356
+#: ../../Zotlabs/Lib/Enotify.php:354
#, php-format
-msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%3$s]hat Dich erwähnt[/zrl]."
+msgid "%1$s [zrl=%2$s]tagged you[/zrl]."
+msgstr "%1$s hat [zrl=%2$s]Dich getagged[/zrl]."
-#: ../../Zotlabs/Lib/Enotify.php:368
+#: ../../Zotlabs/Lib/Enotify.php:365
#, php-format
msgid "[$Projectname:Notify] %1$s poked you"
msgstr "[$Projectname:Benachrichtigung] %1$s hat Dich angestupst"
-#: ../../Zotlabs/Lib/Enotify.php:369
+#: ../../Zotlabs/Lib/Enotify.php:366
#, php-format
-msgid "%1$s, %2$s poked you at %3$s"
-msgstr "%1$s, %2$s hat Dich auf %3$s angestupst"
+msgid "%1$s poked you at %2$s"
+msgstr "%1$s hat dich auf %2$s angestupst"
-#: ../../Zotlabs/Lib/Enotify.php:370
+#: ../../Zotlabs/Lib/Enotify.php:367
#, php-format
-msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%2$s]hat Dich angestupst[/zrl]."
+msgid "%1$s [zrl=%2$s]poked you[/zrl]."
+msgstr "%1$s [zrl=%2$s]hat dich angestupst.[/zrl]."
-#: ../../Zotlabs/Lib/Enotify.php:386
+#: ../../Zotlabs/Lib/Enotify.php:382
#, php-format
msgid "[$Projectname:Notify] %s tagged your post"
msgstr "[$Projectname:Benachrichtigung] %s hat Deinen Beitrag verschlagwortet"
-#: ../../Zotlabs/Lib/Enotify.php:387
+#: ../../Zotlabs/Lib/Enotify.php:383
#, php-format
-msgid "%1$s, %2$s tagged your post at %3$s"
-msgstr "%1$s, %2$s hat Deinen Beitrag auf %3$s verschlagwortet"
+msgid "%1$s tagged your post at %2$s"
+msgstr "%1$s hat Deinen Beitrag auf %2$s getagged"
-#: ../../Zotlabs/Lib/Enotify.php:388
+#: ../../Zotlabs/Lib/Enotify.php:384
#, php-format
-msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
-msgstr "%1$s, %2$s hat [zrl=%3$s]Deinen Beitrag[/zrl] verschlagwortet"
+msgid "%1$s tagged [zrl=%2$s]your post[/zrl]"
+msgstr "%1$s hat [zrl=%2$s]Deinen Beitrag[/zrl] getagged"
-#: ../../Zotlabs/Lib/Enotify.php:400
+#: ../../Zotlabs/Lib/Enotify.php:395
msgid "[$Projectname:Notify] Introduction received"
msgstr "[$Projectname:Benachrichtigung] Verbindungsanfrage erhalten"
-#: ../../Zotlabs/Lib/Enotify.php:401
+#: ../../Zotlabs/Lib/Enotify.php:396
#, php-format
-msgid "%1$s, you've received an new connection request from '%2$s' at %3$s"
-msgstr "%1$s, Du hast eine neue Verbindungsanfrage von '%2$s' auf %3$s erhalten"
+msgid "You've received an new connection request from '%1$s' at %2$s"
+msgstr "Du hast auf %2$s eine neue Verbindung von %1$s erhalten."
-#: ../../Zotlabs/Lib/Enotify.php:402
+#: ../../Zotlabs/Lib/Enotify.php:397
#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s."
-msgstr "%1$s, Du hast [zrl=%2$s]eine neue Verbindungsanfrage[/zrl] von %3$s erhalten."
+msgid "You've received [zrl=%1$s]a new connection request[/zrl] from %2$s."
+msgstr "Du hast [zrl=%1$s]eine neue Verbindungsanfrage[/zrl] von %2$s erhalten."
-#: ../../Zotlabs/Lib/Enotify.php:406 ../../Zotlabs/Lib/Enotify.php:425
+#: ../../Zotlabs/Lib/Enotify.php:400 ../../Zotlabs/Lib/Enotify.php:418
#, php-format
msgid "You may visit their profile at %s"
msgstr "Du kannst Dir das Profil unter %s ansehen"
-#: ../../Zotlabs/Lib/Enotify.php:408
+#: ../../Zotlabs/Lib/Enotify.php:402
#, php-format
msgid "Please visit %s to approve or reject the connection request."
msgstr "Bitte besuche %s , um die Verbindungsanfrage anzunehmen oder abzulehnen."
-#: ../../Zotlabs/Lib/Enotify.php:415
+#: ../../Zotlabs/Lib/Enotify.php:409
msgid "[$Projectname:Notify] Friend suggestion received"
msgstr "[$Projectname:Benachrichtigung] Freundschaftsvorschlag erhalten"
-#: ../../Zotlabs/Lib/Enotify.php:416
+#: ../../Zotlabs/Lib/Enotify.php:410
#, php-format
-msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
-msgstr "%1$s, Du hast einen Kontaktvorschlag von „%2$s“ auf %3$s erhalten"
+msgid "You've received a friend suggestion from '%1$s' at %2$s"
+msgstr "Du hast einen Freundschaftsvorschlag von %1$s auf %2$s erhalten"
-#: ../../Zotlabs/Lib/Enotify.php:417
+#: ../../Zotlabs/Lib/Enotify.php:411
#, php-format
msgid ""
-"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from "
-"%4$s."
-msgstr "%1$s, Du hast [zrl=%2$s]einen Kontaktvorschlag[/zrl] für %3$s von %4$s erhalten."
+"You've received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s."
+msgstr "Du hast einen [zrl=%1$s]Freundschaftsvorschlag[/zrl] für %2$s von %3$s erhalten."
-#: ../../Zotlabs/Lib/Enotify.php:423
+#: ../../Zotlabs/Lib/Enotify.php:416
msgid "Name:"
msgstr "Name:"
-#: ../../Zotlabs/Lib/Enotify.php:424
+#: ../../Zotlabs/Lib/Enotify.php:417
msgid "Photo:"
msgstr "Foto:"
-#: ../../Zotlabs/Lib/Enotify.php:427
+#: ../../Zotlabs/Lib/Enotify.php:420
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen."
-#: ../../Zotlabs/Lib/Enotify.php:647
+#: ../../Zotlabs/Lib/Enotify.php:640
msgid "[$Projectname:Notify]"
msgstr "[$Projectname:Benachrichtigung]"
-#: ../../Zotlabs/Lib/Enotify.php:815
+#: ../../Zotlabs/Lib/Enotify.php:808
msgid "created a new post"
msgstr "Neuer Beitrag wurde erzeugt"
-#: ../../Zotlabs/Lib/Enotify.php:816
+#: ../../Zotlabs/Lib/Enotify.php:809
#, php-format
msgid "commented on %s's post"
msgstr "hat %s's Beitrag kommentiert"
-#: ../../Zotlabs/Lib/Enotify.php:823
+#: ../../Zotlabs/Lib/Enotify.php:816
#, php-format
msgid "edited a post dated %s"
msgstr "hat einen Beitrag vom %s bearbeitet"
-#: ../../Zotlabs/Lib/Enotify.php:827
+#: ../../Zotlabs/Lib/Enotify.php:820
#, php-format
msgid "edited a comment dated %s"
msgstr "hat einen Kommentar vom %s bearbeitet"
@@ -8198,7 +8313,7 @@ msgstr "hat einen Kommentar vom %s bearbeitet"
msgid "Wiki updated successfully"
msgstr "Wiki erfolgreich aktualisiert"
-#: ../../Zotlabs/Lib/NativeWiki.php:198
+#: ../../Zotlabs/Lib/NativeWiki.php:205
msgid "Wiki files deleted successfully"
msgstr "Wiki-Dateien erfolgreich gelöscht"
@@ -8272,11 +8387,11 @@ msgstr "Signatur nicht korrekt"
msgid "Add Tag"
msgstr "Tag hinzufügen"
-#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:510
+#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:575
msgid "like"
msgstr "mag"
-#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:511
+#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:576
msgid "dislike"
msgstr "verurteile"
@@ -8369,51 +8484,51 @@ msgstr "Dies ist eine nicht gespeicherte Vorschau"
msgid "%s show all"
msgstr "%s mehr anzeigen"
-#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/conversation.php:1377
+#: ../../Zotlabs/Lib/ThreadItem.php:753 ../../include/conversation.php:1380
msgid "Bold"
msgstr "Fett"
-#: ../../Zotlabs/Lib/ThreadItem.php:752 ../../include/conversation.php:1378
+#: ../../Zotlabs/Lib/ThreadItem.php:754 ../../include/conversation.php:1381
msgid "Italic"
msgstr "Kursiv"
-#: ../../Zotlabs/Lib/ThreadItem.php:753 ../../include/conversation.php:1379
+#: ../../Zotlabs/Lib/ThreadItem.php:755 ../../include/conversation.php:1382
msgid "Underline"
msgstr "Unterstrichen"
-#: ../../Zotlabs/Lib/ThreadItem.php:754 ../../include/conversation.php:1380
+#: ../../Zotlabs/Lib/ThreadItem.php:756 ../../include/conversation.php:1383
msgid "Quote"
msgstr "Zitat"
-#: ../../Zotlabs/Lib/ThreadItem.php:755 ../../include/conversation.php:1381
+#: ../../Zotlabs/Lib/ThreadItem.php:757 ../../include/conversation.php:1384
msgid "Code"
msgstr "Code"
-#: ../../Zotlabs/Lib/ThreadItem.php:756
+#: ../../Zotlabs/Lib/ThreadItem.php:758
msgid "Image"
msgstr "Bild"
-#: ../../Zotlabs/Lib/ThreadItem.php:757
+#: ../../Zotlabs/Lib/ThreadItem.php:759
msgid "Attach File"
msgstr "Datei anhängen"
-#: ../../Zotlabs/Lib/ThreadItem.php:758
+#: ../../Zotlabs/Lib/ThreadItem.php:760
msgid "Insert Link"
msgstr "Link einfügen"
-#: ../../Zotlabs/Lib/ThreadItem.php:759
+#: ../../Zotlabs/Lib/ThreadItem.php:761
msgid "Video"
msgstr "Video"
-#: ../../Zotlabs/Lib/ThreadItem.php:769
+#: ../../Zotlabs/Lib/ThreadItem.php:771
msgid "Your full name (required)"
msgstr "Ihr vollständiger Name (erforderlich)"
-#: ../../Zotlabs/Lib/ThreadItem.php:770
+#: ../../Zotlabs/Lib/ThreadItem.php:772
msgid "Your email address (required)"
msgstr "Ihre E-Mail-Adresse (erforderlich)"
-#: ../../Zotlabs/Lib/ThreadItem.php:771
+#: ../../Zotlabs/Lib/ThreadItem.php:773
msgid "Your website URL (optional)"
msgstr "Ihre Webseiten-URL (optional)"
@@ -8433,7 +8548,7 @@ msgstr "Willkommen %s. Entfernte Authentifizierung erfolgreich."
msgid "parent"
msgstr "Übergeordnetes Verzeichnis"
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2821
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2845
msgid "Collection"
msgstr "Sammlung"
@@ -8466,6 +8581,10 @@ msgstr "Summe"
msgid "Shared"
msgstr "Geteilt"
+#: ../../Zotlabs/Storage/Browser.php:277
+msgid "Add Files"
+msgstr "Dateien hinzufügen"
+
#: ../../Zotlabs/Storage/Browser.php:353
#, php-format
msgid "You are using %1$s of your available file storage."
@@ -8573,10 +8692,10 @@ msgid "Select an addressbook to import to"
msgstr "Adressbuch zum Hineinimportieren auswählen"
#: ../../Zotlabs/Widget/Appcategories.php:40
-#: ../../Zotlabs/Widget/Tagcloud.php:25 ../../include/contact_widgets.php:97
-#: ../../include/contact_widgets.php:141 ../../include/contact_widgets.php:186
-#: ../../include/taxonomy.php:344 ../../include/taxonomy.php:426
-#: ../../include/taxonomy.php:446 ../../include/taxonomy.php:467
+#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
+#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409
+#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:532
msgid "Categories"
msgstr "Kategorien"
@@ -8631,7 +8750,7 @@ msgid "New Message"
msgstr "Neue Nachricht"
#: ../../Zotlabs/Widget/Chatroom_list.php:16
-#: ../../include/conversation.php:1864 ../../include/conversation.php:1867
+#: ../../include/conversation.php:1867 ../../include/conversation.php:1870
#: ../../include/nav.php:434 ../../include/nav.php:437
msgid "Chatrooms"
msgstr "Chaträume"
@@ -8674,7 +8793,7 @@ msgstr "Adresse des Kanals eingeben"
msgid "Examples: bob@example.com, https://example.com/barbara"
msgstr "Beispiele: bob@beispiel.com, http://beispiel.com/barbara"
-#: ../../Zotlabs/Widget/Wiki_list.php:15 ../../addon/gitwiki/gitwiki.php:95
+#: ../../Zotlabs/Widget/Wiki_list.php:15
msgid "Wiki List"
msgstr "Wikiliste"
@@ -8714,7 +8833,7 @@ msgstr "Foto/Bild"
msgid "Remove term"
msgstr "Eintrag löschen"
-#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:354
+#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:381
msgid "Saved Searches"
msgstr "Gespeicherte Suchanfragen"
@@ -8727,15 +8846,15 @@ msgid "Notes"
msgstr "Notizen"
#: ../../Zotlabs/Widget/Wiki_pages.php:32
-#: ../../Zotlabs/Widget/Wiki_pages.php:89 ../../addon/gitwiki/gitwiki.php:81
+#: ../../Zotlabs/Widget/Wiki_pages.php:89
msgid "Add new page"
msgstr "Neue Seite hinzufügen"
-#: ../../Zotlabs/Widget/Wiki_pages.php:83 ../../addon/gitwiki/gitwiki.php:76
+#: ../../Zotlabs/Widget/Wiki_pages.php:83
msgid "Wiki Pages"
msgstr "Wikiseiten"
-#: ../../Zotlabs/Widget/Wiki_pages.php:94 ../../addon/gitwiki/gitwiki.php:82
+#: ../../Zotlabs/Widget/Wiki_pages.php:94
msgid "Page name"
msgstr "Seitenname"
@@ -8756,7 +8875,7 @@ msgid "See more..."
msgstr "Mehr anzeigen …"
#: ../../Zotlabs/Widget/Filer.php:28 ../../include/contact_widgets.php:53
-#: ../../include/features.php:443
+#: ../../include/features.php:470
msgid "Saved Folders"
msgstr "Gespeicherte Ordner"
@@ -8764,51 +8883,60 @@ msgstr "Gespeicherte Ordner"
msgid "Click to show more"
msgstr "Klick, um mehr anzuzeigen"
-#: ../../Zotlabs/Widget/Newmember.php:33
+#: ../../Zotlabs/Widget/Tagcloud.php:22 ../../include/taxonomy.php:320
+#: ../../include/taxonomy.php:449 ../../include/taxonomy.php:470
+msgid "Tags"
+msgstr "Schlagwörter"
+
+#: ../../Zotlabs/Widget/Newmember.php:24
msgid "Profile Creation"
msgstr "Profilerstellung"
-#: ../../Zotlabs/Widget/Newmember.php:35
+#: ../../Zotlabs/Widget/Newmember.php:26
msgid "Upload profile photo"
msgstr "Profilfoto hochladen"
-#: ../../Zotlabs/Widget/Newmember.php:36
+#: ../../Zotlabs/Widget/Newmember.php:27
msgid "Upload cover photo"
msgstr "Titelbild hochladen"
-#: ../../Zotlabs/Widget/Newmember.php:37 ../../include/nav.php:119
+#: ../../Zotlabs/Widget/Newmember.php:28 ../../include/nav.php:119
msgid "Edit your profile"
msgstr "Profil bearbeiten"
-#: ../../Zotlabs/Widget/Newmember.php:40
+#: ../../Zotlabs/Widget/Newmember.php:31
msgid "Find and Connect with others"
msgstr "Finden und Verbinden von/mit Anderen"
-#: ../../Zotlabs/Widget/Newmember.php:44
+#: ../../Zotlabs/Widget/Newmember.php:33
+msgid "View the directory"
+msgstr "Verzeichnis anzeigen"
+
+#: ../../Zotlabs/Widget/Newmember.php:35
msgid "Manage your connections"
msgstr "Deine Verbindungen verwalten"
-#: ../../Zotlabs/Widget/Newmember.php:47
+#: ../../Zotlabs/Widget/Newmember.php:38
msgid "Communicate"
msgstr "Kommunizieren"
-#: ../../Zotlabs/Widget/Newmember.php:49
+#: ../../Zotlabs/Widget/Newmember.php:40
msgid "View your channel homepage"
msgstr "Deine Kanal-Startseite ansehen"
-#: ../../Zotlabs/Widget/Newmember.php:50
+#: ../../Zotlabs/Widget/Newmember.php:41
msgid "View your network stream"
msgstr "Deine Netzwerk-Aktivitäten ansehen"
-#: ../../Zotlabs/Widget/Newmember.php:56
+#: ../../Zotlabs/Widget/Newmember.php:47
msgid "Documentation"
msgstr "Dokumentation"
-#: ../../Zotlabs/Widget/Newmember.php:67
-msgid "View public stream. Warning: not moderated"
-msgstr "Öffentliche Beitragsaktivitäten ansehen. Warnung: Diese Inhalte sind nicht moderiert."
+#: ../../Zotlabs/Widget/Newmember.php:58
+msgid "View public stream"
+msgstr "Zeige öffentlichen Beitrags-Stream"
-#: ../../Zotlabs/Widget/Newmember.php:71
+#: ../../Zotlabs/Widget/Newmember.php:62 ../../include/features.php:60
msgid "New Member Links"
msgstr "Links für neue Mitglieder"
@@ -8861,14 +8989,18 @@ msgid "Export channel"
msgstr "Kanal exportieren"
#: ../../Zotlabs/Widget/Settings_menu.php:84
-msgid "Connected apps"
-msgstr "Verbundene Apps"
+msgid "OAuth1 apps"
+msgstr "OAuth1 Anwendungen"
+
+#: ../../Zotlabs/Widget/Settings_menu.php:92
+msgid "OAuth2 apps"
+msgstr "OAuth2 Anwendungen"
-#: ../../Zotlabs/Widget/Settings_menu.php:100 ../../include/features.php:231
+#: ../../Zotlabs/Widget/Settings_menu.php:108 ../../include/features.php:240
msgid "Permission Groups"
msgstr "Berechtigungsrollen"
-#: ../../Zotlabs/Widget/Settings_menu.php:117
+#: ../../Zotlabs/Widget/Settings_menu.php:125
msgid "Premium Channel Settings"
msgstr "Premium-Kanal-Einstellungen"
@@ -9006,53 +9138,57 @@ msgstr "Du hast momentan keine Benachrichtigungen"
msgid "Source channel not found."
msgstr "Quellkanal nicht gefunden."
-#: ../../boot.php:1562
+#: ../../boot.php:1569
msgid "Create an account to access services and applications"
msgstr "Erstelle ein Konto, um auf Dienste und Anwendungen zugreifen zu können."
-#: ../../boot.php:1581 ../../include/nav.php:111 ../../include/nav.php:140
+#: ../../boot.php:1588 ../../include/nav.php:111 ../../include/nav.php:140
#: ../../include/nav.php:159
msgid "Logout"
msgstr "Abmelden"
-#: ../../boot.php:1585
+#: ../../boot.php:1592
msgid "Login/Email"
msgstr "Anmelden/E-Mail"
-#: ../../boot.php:1586
+#: ../../boot.php:1593
msgid "Password"
msgstr "Kennwort"
-#: ../../boot.php:1587
+#: ../../boot.php:1594
msgid "Remember me"
msgstr "Angaben speichern"
-#: ../../boot.php:1590
+#: ../../boot.php:1597
msgid "Forgot your password?"
msgstr "Passwort vergessen?"
-#: ../../boot.php:2347
+#: ../../boot.php:2354
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr "[$Projectname] Webseiten-SSL-Fehler für %s"
-#: ../../boot.php:2352
+#: ../../boot.php:2359
msgid "Website SSL certificate is not valid. Please correct."
msgstr "Das SSL-Zertifikat der Website ist nicht gültig. Bitte beheben."
-#: ../../boot.php:2540
+#: ../../boot.php:2475
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr "[$Projectname] Cron-Jobs laufen nicht auf %s"
-#: ../../boot.php:2545
+#: ../../boot.php:2480
msgid "Cron/Scheduled tasks not running."
msgstr "Cron-Aufgaben laufen nicht."
-#: ../../boot.php:2474 ../../include/datetime.php:232
+#: ../../boot.php:2481 ../../include/datetime.php:238
msgid "never"
msgstr "Nie"
+#: ../../store/[data]/smarty3/compiled/a0a1289f91f53b2c12e4e0b45ffe8291540ba895_0.file.cover_photo.tpl.php:123
+msgid "Cover Photo"
+msgstr "Cover Foto"
+
#: ../../view/theme/redbasic_c/php/config.php:16
#: ../../view/theme/redbasic_c/php/config.php:19
#: ../../view/theme/redbasic/php/config.php:16
@@ -9295,6 +9431,10 @@ msgid ""
" share their own locations with the group."
msgstr "Erstelle ein neues Rendezvous und teile den Zugriffslink mit allen, die Du in die Gruppe einladen möchtest. Die, die den Link öffnen, werden Mitglieder des Rendezvous. Sie können die Standorte der anderen Mitglieder sehen, Marker zur Karte hinzufügen oder ihre eigenen Standorte mit der Gruppe teilen."
+#: ../../addon/rendezvous/rendezvous.php:232
+msgid "You have no rendezvous. Press the button above to create a rendezvous!"
+msgstr "Du hast kein Rendezvous. Drücke den Knopf oben, um ein Rendezvous zu erstellen!"
+
#: ../../addon/skeleton/skeleton.php:59
msgid "Some setting"
msgstr "Einige Einstellungen"
@@ -9307,30 +9447,30 @@ msgstr "Eine Einstellung"
msgid "Skeleton Settings"
msgstr "Skeleton Einstellungen"
-#: ../../addon/gnusoc/gnusoc.php:247
+#: ../../addon/gnusoc/gnusoc.php:249
msgid "GNU-Social Protocol Settings updated."
msgstr "GNU social Protokoll Einstellungen aktualisiert"
-#: ../../addon/gnusoc/gnusoc.php:266
+#: ../../addon/gnusoc/gnusoc.php:268
msgid ""
"The GNU-Social protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr "Das GNU-Social-Protokoll unterstützt keine Server-unabhängigen Identitäten. Verbindungen, die Du mit diesem Netzwerk eingehst, können von anderen Orten (Klonen) dieses Kanals aus unerreichbar sein."
-#: ../../addon/gnusoc/gnusoc.php:269
+#: ../../addon/gnusoc/gnusoc.php:271
msgid "Enable the GNU-Social protocol for this channel"
msgstr "Aktiviere das GNU social Protokoll für diesen Kanal"
-#: ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/gnusoc/gnusoc.php:275
msgid "GNU-Social Protocol Settings"
msgstr "GNU social Protokoll Einstellungen"
-#: ../../addon/gnusoc/gnusoc.php:464
+#: ../../addon/gnusoc/gnusoc.php:471
msgid "Follow"
msgstr "Folgen"
-#: ../../addon/gnusoc/gnusoc.php:467
+#: ../../addon/gnusoc/gnusoc.php:474
#, php-format
msgid "%1$s is now following %2$s"
msgstr "%1$s folgt nun %2$s"
@@ -9376,7 +9516,7 @@ msgstr "Zurückkehren nach"
msgid "Page to load after image selection."
msgstr "Die Seite, die nach Auswahl eines Bildes geladen werden soll."
-#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1301
+#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1300
#: ../../include/nav.php:119
msgid "Edit Profile"
msgstr "Profil bearbeiten"
@@ -9437,7 +9577,7 @@ msgstr "Gezeichnet von: "
#: ../../addon/openclipatar/openclipatar.php:182
#: ../../addon/openclipatar/openclipatar.php:194
msgid "Use this image"
-msgstr ""
+msgstr "Dieses Bild verwenden"
#: ../../addon/openclipatar/openclipatar.php:192
msgid "Or select from a free OpenClipart.org image:"
@@ -9610,7 +9750,7 @@ msgstr "Dreamwidth-Beitragseinstellungen"
#: ../../addon/notifyadmin/notifyadmin.php:34
msgid "New registration"
-msgstr ""
+msgstr "Neue Registrierung"
#: ../../addon/notifyadmin/notifyadmin.php:42
#, php-format
@@ -9865,7 +10005,7 @@ msgstr "Geburtsdatum"
msgid "OpenID protocol error. No ID returned."
msgstr "OpenID-Protokollfehler. Keine Kennung zurückgegeben."
-#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:290
+#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:300
msgid "Login failed."
msgstr "Login fehlgeschlagen."
@@ -10062,39 +10202,39 @@ msgstr "erkläre unsterbliche Liebe"
msgid "declared undying love for"
msgstr "erklärte unsterbliche Liebe"
-#: ../../addon/diaspora/diaspora.php:778
+#: ../../addon/diaspora/diaspora.php:781
msgid "Diaspora Protocol Settings updated."
msgstr "Diaspora Protokoll Einstellungen aktualisiert"
-#: ../../addon/diaspora/diaspora.php:797
+#: ../../addon/diaspora/diaspora.php:800
msgid ""
"The Diaspora protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr "Das Diaspora-Protokoll unterstützt keine Server-unabhängigen Identitäten. Verbindungen, die Du mit diesem Netzwerk eingehst, können von anderen Orten (Klonen) dieses Kanals aus unerreichbar sein."
-#: ../../addon/diaspora/diaspora.php:800
+#: ../../addon/diaspora/diaspora.php:803
msgid "Enable the Diaspora protocol for this channel"
msgstr "Das Diaspora Protokoll für diesen Kanal aktivieren"
-#: ../../addon/diaspora/diaspora.php:804
+#: ../../addon/diaspora/diaspora.php:807
msgid "Allow any Diaspora member to comment on your public posts"
msgstr "Erlaube jedem Diaspora Nutzer deine öffentlichen Beiträge zu kommentieren"
-#: ../../addon/diaspora/diaspora.php:808
+#: ../../addon/diaspora/diaspora.php:811
msgid "Prevent your hashtags from being redirected to other sites"
msgstr "Verhindern, dass Deine Hashtags zu anderen Seiten umgeleitet werden"
-#: ../../addon/diaspora/diaspora.php:812
+#: ../../addon/diaspora/diaspora.php:815
msgid ""
"Sign and forward posts and comments with no existing Diaspora signature"
msgstr "Signieren und Weiterleiten von Beiträgen und Kommentaren ohne vorhandene Diaspora-Signatur"
-#: ../../addon/diaspora/diaspora.php:817
+#: ../../addon/diaspora/diaspora.php:820
msgid "Followed hashtags (comma separated, do not include the #)"
msgstr "Verfolgte Hashtags (Komma separierte Liste, ohne die #)"
-#: ../../addon/diaspora/diaspora.php:822
+#: ../../addon/diaspora/diaspora.php:825
msgid "Diaspora Protocol Settings"
msgstr "Diaspora Protokoll Einstellungen"
@@ -10102,7 +10242,7 @@ msgstr "Diaspora Protokoll Einstellungen"
msgid "No username found in import file."
msgstr "Es wurde kein Nutzername in der importierten Datei gefunden."
-#: ../../addon/diaspora/import_diaspora.php:41 ../../include/import.php:62
+#: ../../addon/diaspora/import_diaspora.php:41 ../../include/import.php:67
msgid "Unable to create a unique channel address. Import failed."
msgstr "Es war nicht möglich, eine eindeutige Kanal-Adresse zu erzeugen. Der Import ist fehlgeschlagen."
@@ -10161,7 +10301,7 @@ msgstr "computergeneriertes Gesicht"
#: ../../addon/gravatar/gravatar.php:127
msgid "retro arcade style face"
-msgstr ""
+msgstr "Gesicht im Retro-Arcade Stil"
#: ../../addon/gravatar/gravatar.php:128
msgid "Hub default profile photo"
@@ -10176,7 +10316,7 @@ msgid ""
"Libravatar addon is installed, too. Please disable Libravatar addon or this "
"Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if "
"nothing was found at Libravatar."
-msgstr ""
+msgstr "Das Libravatar Addon ist ebenfalls installiert. Bitte deaktiviere entweder das Libreavatar oder das Gravatar Addon.<br>Das Libravatar Addon verwendet als Notfalllösung Gravatar, sollte bei Libravatar kein Profilbild gefunden werden."
#: ../../addon/gravatar/gravatar.php:150
#: ../../addon/msgfooter/msgfooter.php:46 ../../addon/xmpp/xmpp.php:91
@@ -10189,7 +10329,7 @@ msgstr "Standard-Avatarbild"
#: ../../addon/gravatar/gravatar.php:151
msgid "Select default avatar image if none was found at Gravatar. See README"
-msgstr ""
+msgstr "Wähle das Standardprofilbild aus, sollte bei Gravatar keines gefunden werden. Beachte auch die README."
#: ../../addon/gravatar/gravatar.php:152
msgid "Rating of images"
@@ -10197,7 +10337,7 @@ msgstr "Bewertungen der Bilder"
#: ../../addon/gravatar/gravatar.php:152
msgid "Select the appropriate avatar rating for your site. See README"
-msgstr ""
+msgstr "Wähle die für deine Seite angemessene Profilbildeinstufung. Beachte auch die README."
#: ../../addon/gravatar/gravatar.php:165
msgid "Gravatar settings updated."
@@ -10217,11 +10357,11 @@ msgstr "Basis-URL des Habzilla-Servers"
#: ../../addon/hzfiles/hzfiles.php:82
msgid "Since modified date yyyy-mm-dd"
-msgstr ""
+msgstr "Seit Modifizierungsdatum yyyy-mm-dd"
#: ../../addon/hzfiles/hzfiles.php:83
msgid "Until modified date yyyy-mm-dd"
-msgstr ""
+msgstr "Bis Modifizierungsdatum yyyy-mm-dd"
#: ../../addon/visage/visage.php:93
msgid "Recent Channel/Profile Viewers"
@@ -10337,6 +10477,32 @@ msgstr "Binde eine Markierung auf der Karte ein."
msgid "text to include in all outgoing posts from this site"
msgstr "Test der in alle Beiträge angefügt werden soll, die von dieser Seite ausgehen"
+#: ../../addon/fuzzloc/fuzzloc.php:148
+msgid "Fuzzloc Settings updated."
+msgstr "Fuzzloc-Einstellungen aktualisiert."
+
+#: ../../addon/fuzzloc/fuzzloc.php:175
+msgid ""
+"Fuzzloc allows you to blur your precise location if your channel uses "
+"browser location mapping."
+msgstr "Fuzzloc erlaubt es Dir, deinen genauen Standort etwas diffuser zu machen (nicht so exakt wie ermittelt), wenn Dein Kanal die Lokalisierungsfunktion des Browsers verwendet."
+
+#: ../../addon/fuzzloc/fuzzloc.php:178
+msgid "Enable Fuzzloc Plugin"
+msgstr "Aktiviere das Fuzzloc-Plugin"
+
+#: ../../addon/fuzzloc/fuzzloc.php:182
+msgid "Minimum offset in meters"
+msgstr "Minimale Verschiebung in Metern"
+
+#: ../../addon/fuzzloc/fuzzloc.php:186
+msgid "Maximum offset in meters"
+msgstr "Maximale Verschiebung in Metern"
+
+#: ../../addon/fuzzloc/fuzzloc.php:191
+msgid "Fuzzloc Settings"
+msgstr "Fuzzloc-Einstellungen"
+
#: ../../addon/rtof/rtof.php:45
msgid "Post to Friendica"
msgstr "Bei Friendica veröffentlichen"
@@ -10373,8 +10539,8 @@ msgstr "Friendica-Passwort"
msgid "Hubzilla to Friendica Post Settings"
msgstr "Hubzilla-zu-Friendica Beitragseinstellungen"
-#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1397
-#: ../../include/channel.php:1568
+#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1396
+#: ../../include/channel.php:1567
msgid "Status:"
msgstr "Status:"
@@ -10436,8 +10602,8 @@ msgid "No channels currently blocked"
msgstr "Momentan sind keine Kanäle blockiert"
#: ../../addon/superblock/superblock.php:120
-msgid "\"Superblock\" Settings"
-msgstr "\"Superblock\"-Einstellungen"
+msgid "Superblock Settings"
+msgstr "Superblock Einstellungen"
#: ../../addon/superblock/superblock.php:345
msgid "Block Completely"
@@ -10469,7 +10635,7 @@ msgstr "NoFed-Einstellungen"
#: ../../addon/redred/redred.php:45
msgid "Post to Red"
-msgstr ""
+msgstr "Beitrag bei Red veröffentlichen"
#: ../../addon/redred/redred.php:60
msgid "Channel is required."
@@ -10485,7 +10651,7 @@ msgstr "Erlaube die Veröffentlichung in anderen Hubzilla Kanälen"
#: ../../addon/redred/redred.php:99
msgid "Send public postings to Hubzilla channel by default"
-msgstr ""
+msgstr "Sende öffentliche Beiträge standardmäßig an den Hubzilla Kanal"
#: ../../addon/redred/redred.php:103
msgid "Hubzilla API Path"
@@ -10519,55 +10685,55 @@ msgstr "zu erreichende Logdateigröße in Bytes, bevor rotiert wird"
msgid "Number of logfiles to retain"
msgstr "Anzahl aufzubewahrender rotierter Logdateien"
-#: ../../addon/frphotos/frphotos.php:91
+#: ../../addon/frphotos/frphotos.php:92
msgid "Friendica Photo Album Import"
msgstr "Friendica-Fotoalbumimport"
-#: ../../addon/frphotos/frphotos.php:92
+#: ../../addon/frphotos/frphotos.php:93
msgid "This will import all your Friendica photo albums to this Red channel."
msgstr "Hiermit werden all deine Fotoalben von Friendica in diesen Hubzilla Kanal importiert."
-#: ../../addon/frphotos/frphotos.php:93
+#: ../../addon/frphotos/frphotos.php:94
msgid "Friendica Server base URL"
msgstr "BasisURL des Friendica Servers"
-#: ../../addon/frphotos/frphotos.php:94
+#: ../../addon/frphotos/frphotos.php:95
msgid "Friendica Login Username"
msgstr "Friendica-Anmeldebenutzername"
-#: ../../addon/frphotos/frphotos.php:95
+#: ../../addon/frphotos/frphotos.php:96
msgid "Friendica Login Password"
msgstr "Friendica-Anmeldepasswort"
-#: ../../addon/pubcrawl/as.php:1101 ../../addon/pubcrawl/as.php:1228
-#: ../../addon/pubcrawl/as.php:1403 ../../include/network.php:1774
+#: ../../addon/pubcrawl/as.php:1146 ../../addon/pubcrawl/as.php:1273
+#: ../../addon/pubcrawl/as.php:1449 ../../include/network.php:1769
msgid "ActivityPub"
msgstr "ActivityPub"
-#: ../../addon/pubcrawl/pubcrawl.php:1034
+#: ../../addon/pubcrawl/pubcrawl.php:1053
msgid "ActivityPub Protocol Settings updated."
msgstr "ActivityPub Protokoll Einstellungen aktualisiert"
-#: ../../addon/pubcrawl/pubcrawl.php:1043
+#: ../../addon/pubcrawl/pubcrawl.php:1062
msgid ""
"The ActivityPub protocol does not support location independence. Connections"
" you make within that network may be unreachable from alternate channel "
"locations."
-msgstr ""
+msgstr "Das ActivityPub-Protokoll unterstützt keine Server-unabhängigen Identitäten. Verbindungen, die Du mit diesem Netzwerk eingehst, können von anderen Orten (Klonen) dieses Kanals aus unerreichbar sein."
-#: ../../addon/pubcrawl/pubcrawl.php:1046
+#: ../../addon/pubcrawl/pubcrawl.php:1065
msgid "Enable the ActivityPub protocol for this channel"
msgstr "Aktiviere das ActivityPub Protokoll für diesen Kanal"
-#: ../../addon/pubcrawl/pubcrawl.php:1049
+#: ../../addon/pubcrawl/pubcrawl.php:1068
msgid "Send multi-media HTML articles"
msgstr "Multimedia HTML Artikel versenden"
-#: ../../addon/pubcrawl/pubcrawl.php:1049
+#: ../../addon/pubcrawl/pubcrawl.php:1068
msgid "Not supported by some microblog services such as Mastodon"
msgstr "Wird von einigen Microblogging-Plattformen wie Mastodon nicht unterstützt"
-#: ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/pubcrawl/pubcrawl.php:1072
msgid "ActivityPub Protocol Settings"
msgstr "ActivityPub Protokoll Einstellungen"
@@ -10810,11 +10976,11 @@ msgid ""
"There are preconfigured OAuth key pairs for some GNU social servers "
"available. If you are using one of them, please use these credentials.<br "
"/>If not feel free to connect to any other GNU social instance (see below)."
-msgstr ""
+msgstr "Für einige GNU social Server sind voreingestellte OAuth Schlüsselpaare verfügbar. Solltest du einen dieser Server benutzen, dann verwende bitte diese Schlüssel. <br />Falls nicht, stelle stattdessen eine Verbindung zu irgend einem anderen GNU social Server her (siehe unten)."
#: ../../addon/statusnet/statusnet.php:327
msgid "Provide your own OAuth Credentials"
-msgstr ""
+msgstr "Stelle deine eigenen OAuth Credentials zur Verfügung"
#: ../../addon/statusnet/statusnet.php:329
msgid ""
@@ -10823,7 +10989,7 @@ msgid ""
"here and enter the API base root.<br />Before you register your own OAuth "
"key pair ask the administrator if there is already a key pair for this "
"Hubzilla installation at your favourite GNU social installation."
-msgstr ""
+msgstr "Kein Consumer-Schlüsselpaar für GNU social gefunden. Registriere deinen Hubzilla-Account als Desktop-Client bei deinem GNU social Account, kopiere das Consumer-Schlüsselpaar hierher und gib die API-URL ein.<br />Bevor du dein eigenes Consumer-Schlüsselpaar registrierst, frage den Administrator dieses Hubzilla-Servers, ob schon ein Schlüsselpaar für diesen Hubzilla-Server auf diesem GNU social-Server existiert."
#: ../../addon/statusnet/statusnet.php:333
msgid "OAuth Consumer Key"
@@ -10851,7 +11017,7 @@ msgid ""
"security code from GNU social which you have to copy into the input box "
"below and submit the form. Only your <strong>public</strong> posts will be "
"posted to GNU social."
-msgstr ""
+msgstr "Um dich mit deinem GNU social Konto zu verbinden, klicke den Button unten und kopiere dann den Sicherheitscode von GNU social in das Formular weiter unten. Es werden ausschließlich deine <strong>öffentlichen</strong> Beiträge auf GNU social veröffentlicht."
#: ../../addon/statusnet/statusnet.php:370
msgid "Log in with GNU social"
@@ -10883,7 +11049,7 @@ msgid ""
"details from unknown viewers?</em>) the link potentially included in public "
"postings relayed to GNU social will lead the visitor to a blank page "
"informing the visitor that the access to your profile has been restricted."
-msgstr ""
+msgstr "<strong>Hinweis:</strong> Entsprechend Deiner Privatsphären-Einstellungen (<em>Profil-Details vor nicht angemeldeten Besuchern verbergen?</em>) kann ein ggf. zu GNU social geteilter Link in öffentlichen Beiträgen Besucher auf eine leere Seite führen, die darüber informiert, dass der Zugriff zu Deinem Profil eingeschränkt ist."
#: ../../addon/statusnet/statusnet.php:411
msgid "Allow posting to GNU social"
@@ -10951,13 +11117,13 @@ msgstr "Du musst einen Gegner wählen, der nicht du selbst ist"
#: ../../addon/chess/chess.php:444
msgid "Random color chosen."
-msgstr ""
+msgstr "Zufällige Farbe gewählt."
#: ../../addon/chess/chess.php:452
msgid "Error creating new game."
msgstr "Fehler beim Erstellen eines neuen Spiels."
-#: ../../addon/chess/chess.php:486 ../../include/channel.php:1152
+#: ../../addon/chess/chess.php:486 ../../include/channel.php:1151
msgid "Requested channel is not available."
msgstr "Angeforderter Kanal nicht verfügbar."
@@ -11020,11 +11186,11 @@ msgstr "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen Twi
#: ../../addon/twitter/twitter.php:247
msgid "Twitter post length"
-msgstr ""
+msgstr "Länge von Twitter Beiträgen"
#: ../../addon/twitter/twitter.php:247
msgid "Maximum tweet length"
-msgstr ""
+msgstr "Maximale Länge eines Tweets"
#: ../../addon/twitter/twitter.php:252
msgid "Send public postings to Twitter by default"
@@ -11052,6 +11218,78 @@ msgstr "Verstecke die Schaltfläche und zeige die Smilies direkt an."
msgid "Smileybutton Settings"
msgstr "Smileyknopf-Einstellungen"
+#: ../../addon/cart/myshop.php:138
+msgid "Order Not Found"
+msgstr "Bestellung nicht gefunden"
+
+#: ../../addon/cart/cart.php:810
+msgid "Order cannot be checked out."
+msgstr "Bestellvorgang kann nicht fortgesetzt werden."
+
+#: ../../addon/cart/cart.php:1073
+msgid "Enable Shopping Cart"
+msgstr "Aktiviere die Warenkorb-Funktion."
+
+#: ../../addon/cart/cart.php:1080
+msgid "Enable Test Catalog"
+msgstr "Aktiviere den Test-Warenbestand"
+
+#: ../../addon/cart/cart.php:1088
+msgid "Enable Manual Payments"
+msgstr "Aktiviere manuelle Zahlungen"
+
+#: ../../addon/cart/cart.php:1103
+msgid "Base Cart Settings"
+msgstr "Warenkorb-Grundeinstellungen"
+
+#: ../../addon/cart/cart.php:1151
+msgid "Add Item"
+msgstr "Füge den Artikel hinzu"
+
+#: ../../addon/cart/cart.php:1165
+msgid "Call cart_post_"
+msgstr ""
+
+#: ../../addon/cart/cart.php:1195
+msgid "Cart Not Enabled (profile: "
+msgstr ""
+
+#: ../../addon/cart/cart.php:1226 ../../addon/cart/manual_payments.php:36
+msgid "Order not found."
+msgstr "Bestellung nicht gefunden."
+
+#: ../../addon/cart/cart.php:1262 ../../addon/cart/cart.php:1389
+msgid "No Order Found"
+msgstr "Keine Bestellung gefunden"
+
+#: ../../addon/cart/cart.php:1270
+msgid "call: "
+msgstr ""
+
+#: ../../addon/cart/cart.php:1273
+msgid "An unknown error has occurred Please start again."
+msgstr "Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal."
+
+#: ../../addon/cart/cart.php:1414
+msgid "Invalid Payment Type. Please start again."
+msgstr "Unbekannte Zahlungsmethode. Bitte versuche es noch einmal."
+
+#: ../../addon/cart/cart.php:1421
+msgid "Order not found"
+msgstr "Bestellung nicht gefunden"
+
+#: ../../addon/cart/manual_payments.php:9
+msgid "Error: order mismatch. Please try again."
+msgstr "Fehler: Bestellungen stimmen nicht überein. Bitte versuche es noch einmal."
+
+#: ../../addon/cart/manual_payments.php:29
+msgid "Manual payments are not enabled."
+msgstr "Manuelle Zahlungen sind nicht aktiviert."
+
+#: ../../addon/cart/manual_payments.php:44
+msgid "Finished"
+msgstr "Fertig"
+
#: ../../addon/piwik/piwik.php:85
msgid ""
"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
@@ -11096,156 +11334,156 @@ msgstr "Ermögliche Frontend-JavaScript-Fehlertracking"
msgid "This feature requires Piwik >= 2.2.0"
msgstr "Diese Funktion erfordert Piwik >= 2.2.0"
-#: ../../addon/tour/tour.php:75
+#: ../../addon/tour/tour.php:76
msgid "Edit your profile and change settings."
msgstr "Bearbeite dein Profil und ändere die Einstellungen."
-#: ../../addon/tour/tour.php:76
+#: ../../addon/tour/tour.php:77
msgid "Click here to see activity from your connections."
msgstr "Klicke hier, um die Aktivitäten Deiner Verbindungen zu sehen."
-#: ../../addon/tour/tour.php:77
+#: ../../addon/tour/tour.php:78
msgid "Click here to see your channel home."
msgstr "Klicke hier, um Deine Kanal-Hauptseite zu sehen."
-#: ../../addon/tour/tour.php:78
+#: ../../addon/tour/tour.php:79
msgid "You can access your private messages from here."
msgstr "Hierüber kannst Du auf Deine privaten Nachrichten zugreifen."
-#: ../../addon/tour/tour.php:79
+#: ../../addon/tour/tour.php:80
msgid "Create new events here."
msgstr "Neue Termine hier erstellen"
-#: ../../addon/tour/tour.php:80
+#: ../../addon/tour/tour.php:81
msgid ""
"You can accept new connections and change permissions for existing ones "
"here. You can also e.g. create groups of contacts."
msgstr "Du kannst hier neue Verbindungen akzeptieren sowie die Einstellungen bereits vorhandener Vebindungen bearbeiten. Außerdem kannst Du Verbindungen in Gruppen zusammenfassen."
-#: ../../addon/tour/tour.php:81
+#: ../../addon/tour/tour.php:82
msgid "System notifications will arrive here"
msgstr "Systembenachrichtigungen werden hier eintreffen"
-#: ../../addon/tour/tour.php:82
+#: ../../addon/tour/tour.php:83
msgid "Search for content and users"
msgstr "Nach Inhalt von Benutzern suchen"
-#: ../../addon/tour/tour.php:83
+#: ../../addon/tour/tour.php:84
msgid "Browse for new contacts"
msgstr "Schaue nach möglichen neuen Verbindungen."
-#: ../../addon/tour/tour.php:84
+#: ../../addon/tour/tour.php:85
msgid "Launch installed apps"
msgstr "Installierte Apps starten"
-#: ../../addon/tour/tour.php:85
+#: ../../addon/tour/tour.php:86
msgid "Looking for help? Click here."
msgstr "Du benötigst Hilfe? Klicke hier."
-#: ../../addon/tour/tour.php:86
+#: ../../addon/tour/tour.php:87
msgid ""
"New events have occurred in your network. Click here to see what has "
"happened!"
msgstr "In Deinem Netzwerk gibt es neue Ereignisse. Klicke hier, um zu sehen, was passiert ist!"
-#: ../../addon/tour/tour.php:87
+#: ../../addon/tour/tour.php:88
msgid "You have received a new private message. Click here to see from who!"
msgstr "Du hast eine neue private Nachricht erhalten. Klicke hier, um zu sehen, von wem!"
-#: ../../addon/tour/tour.php:88
+#: ../../addon/tour/tour.php:89
msgid "There are events this week. Click here too see which!"
msgstr "Es gibt neue Termine diese Woche. Klicke hier, um zu sehen, welche!"
-#: ../../addon/tour/tour.php:89
+#: ../../addon/tour/tour.php:90
msgid "You have received a new introduction. Click here to see who!"
msgstr "Du hast eine neue Verbindungsanfrage erhalten. Klicke hier, um zu sehen, wer es ist!"
-#: ../../addon/tour/tour.php:90
+#: ../../addon/tour/tour.php:91
msgid ""
"There is a new system notification. Click here to see what has happened!"
msgstr "Es gibt eine neue Systembenachrichtigung. Klicke hier, um zu sehen, was passiert ist!"
-#: ../../addon/tour/tour.php:93
+#: ../../addon/tour/tour.php:94
msgid "Click here to share text, images, videos and sound."
msgstr "Klicke hier, um Texte, Bilder, Videos und Klänge zu teilen."
-#: ../../addon/tour/tour.php:94
+#: ../../addon/tour/tour.php:95
msgid "You can write an optional title for your update (good for long posts)."
msgstr "Du kannst Deinem Beitrag einen optionalen Titel geben (gut für lange Beiträge)."
-#: ../../addon/tour/tour.php:95
+#: ../../addon/tour/tour.php:96
msgid "Entering some categories here makes it easier to find your post later."
msgstr "Ein paar Kategorien hier einzugeben, macht es leichter, Deinen Beitrag später wiederzufinden."
-#: ../../addon/tour/tour.php:96
+#: ../../addon/tour/tour.php:97
msgid "Share photos, links, location, etc."
msgstr "Teile Photos, Links, Standort, usw."
-#: ../../addon/tour/tour.php:97
+#: ../../addon/tour/tour.php:98
msgid ""
"Only want to share content for a while? Make it expire at a certain date."
msgstr "Du möchtest diesen Inhalt nur für eine Weile teilen? Dann lass ihn zu einem bestimmten Datum ablaufen."
-#: ../../addon/tour/tour.php:98
+#: ../../addon/tour/tour.php:99
msgid "You can password protect content."
msgstr "Du kannst Inhalte mit einem Passwort schützen."
-#: ../../addon/tour/tour.php:99
+#: ../../addon/tour/tour.php:100
msgid "Choose who you share with."
msgstr "Wähle aus, mit wem Du teilen möchtest."
-#: ../../addon/tour/tour.php:101
+#: ../../addon/tour/tour.php:102
msgid "Click here when you are done."
msgstr "Klicke hier, wenn Du fertig bist."
-#: ../../addon/tour/tour.php:104
+#: ../../addon/tour/tour.php:105
msgid "Adjust from which channels posts should be displayed."
msgstr "Lege fest, von welchen Kanälen Beiträge angezeigt werden sollen."
-#: ../../addon/tour/tour.php:105
+#: ../../addon/tour/tour.php:106
msgid "Only show posts from channels in the specified privacy group."
msgstr "Zeige nur Beträge von Kanälen, die in einer bestimmten Gruppe sind."
-#: ../../addon/tour/tour.php:109
+#: ../../addon/tour/tour.php:110
msgid "Easily find posts containing tags (keywords preceded by the \"#\" symbol)."
msgstr "Finde Beiträge, die bestimmte Tags enthalten (Stichworte, die mit dem \"#\"-Symbol beginnen)."
-#: ../../addon/tour/tour.php:110
+#: ../../addon/tour/tour.php:111
msgid "Easily find posts in given category."
msgstr "Finde Beiträge in bestimmten Kategorien."
-#: ../../addon/tour/tour.php:111
+#: ../../addon/tour/tour.php:112
msgid "Easily find posts by date."
msgstr "Finde Beiträge anhand des Datums."
-#: ../../addon/tour/tour.php:112
+#: ../../addon/tour/tour.php:113
msgid ""
"Suggested users who have volounteered to be shown as suggestions, and who we"
" think you might find interesting."
msgstr "Vorgeschlagene Kanäle, die in ihren Einstellungen zugestimmt haben, als Vorschläge angezeigt zu werden, und die Du eventuell interessant finden könntest."
-#: ../../addon/tour/tour.php:113
+#: ../../addon/tour/tour.php:114
msgid "Here you see channels you have connected to."
msgstr "Hier siehst du die Kanäle, mit denen Du verbunden bist."
-#: ../../addon/tour/tour.php:114
+#: ../../addon/tour/tour.php:115
msgid "Save your search so you can repeat it at a later date."
msgstr "Speichere Deine Suche, so dass Du sie später leicht erneut durchführen kannst."
-#: ../../addon/tour/tour.php:117
+#: ../../addon/tour/tour.php:118
msgid ""
"If you see this icon you can be sure that the sender is who it say it is. It"
" is normal that it is not always possible to verify the sender, so the icon "
"will be missing sometimes. There is usually no need to worry about that."
msgstr "Wenn Du dieses Symbol siehst, kannst Du weitgehend sicher sein, dass der Ansender dem angegebenen entspricht. Nicht immer ist es möglich, den Absender zu verifizieren, daher fehlt das Symbol mitunter. Das ist aber in der Regel kein Grund zur Sorge."
-#: ../../addon/tour/tour.php:118
+#: ../../addon/tour/tour.php:119
msgid ""
"Danger! It seems someone tried to forge a message! This message is not "
"necessarily from who it says it is from!"
msgstr "Vorsicht! Es kann sein, dass jemand versucht, eine Nachricht zu fälschen! Diese Nachricht muss nicht unbedingt vom angegebenen Absender stammen!"
-#: ../../addon/tour/tour.php:125
+#: ../../addon/tour/tour.php:126
msgid ""
"Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can "
"pause it at any time and continue where you left off by reloading the page, "
@@ -11466,7 +11704,7 @@ msgid ""
"If enabled, members will automatically login to an ejabberd server that has "
"to be installed on this machine with synchronized credentials via the "
"\"auth_ejabberd.php\" script."
-msgstr ""
+msgstr "Wenn aktiviert, werden die Mitglieder automatisch auf dem EJabber Server, der auf dieser Maschine installiert ist, angemeldet und die Zugangsdaten werden über das \"auth_ejabberd.php\"-Script synchronisiert."
#: ../../addon/wholikesme/wholikesme.php:29
msgid "Who likes me?"
@@ -11478,7 +11716,7 @@ msgstr "Du bist nun bei pumpio authenzifiziert."
#: ../../addon/pumpio/pumpio.php:149
msgid "return to the featured settings page"
-msgstr ""
+msgstr "Zur Funktions-Einstellungsseite zurückkehren"
#: ../../addon/pumpio/pumpio.php:163
msgid "Post to Pump.io"
@@ -11557,7 +11795,7 @@ msgstr "$Projectname suchen"
#: ../../addon/redfiles/redfiles.php:119
msgid "Redmatrix File Storage Import"
-msgstr ""
+msgstr "Import des Redmatrix Datei Speichers"
#: ../../addon/redfiles/redfiles.php:120
msgid "This will import all your Redmatrix cloud files to this channel."
@@ -11894,10 +12132,6 @@ msgstr "Unterhaltung folgen"
msgid "Unfollow Thread"
msgstr "Unterhaltung nicht mehr folgen"
-#: ../../include/conversation.php:1042
-msgid "Activity/Posts"
-msgstr "Aktivitäten/Beiträge"
-
#: ../../include/conversation.php:1062
msgid "Edit Connection"
msgstr "Verbindung bearbeiten"
@@ -11959,175 +12193,175 @@ msgstr "Standort"
msgid "Clear browser location"
msgstr "Browser-Standort löschen"
-#: ../../include/conversation.php:1314
+#: ../../include/conversation.php:1316
msgid "Tag term:"
msgstr "Schlagwort:"
-#: ../../include/conversation.php:1315
+#: ../../include/conversation.php:1317
msgid "Where are you right now?"
msgstr "Wo bist Du jetzt grade?"
-#: ../../include/conversation.php:1320
+#: ../../include/conversation.php:1322
msgid "Choose a different album..."
msgstr "Wählen Sie ein anderes Album aus..."
-#: ../../include/conversation.php:1324
+#: ../../include/conversation.php:1326
msgid "Comments enabled"
msgstr "Kommentare aktiviert"
-#: ../../include/conversation.php:1325
+#: ../../include/conversation.php:1327
msgid "Comments disabled"
msgstr "Kommentare deaktiviert"
-#: ../../include/conversation.php:1372
+#: ../../include/conversation.php:1375
msgid "Page link name"
msgstr "Link zur Seite"
-#: ../../include/conversation.php:1375
+#: ../../include/conversation.php:1378
msgid "Post as"
msgstr "Veröffentlichen als"
-#: ../../include/conversation.php:1389
+#: ../../include/conversation.php:1392
msgid "Toggle voting"
msgstr "Umfragewerkzeug aktivieren"
-#: ../../include/conversation.php:1392
+#: ../../include/conversation.php:1395
msgid "Disable comments"
msgstr "Kommentare deaktivieren"
-#: ../../include/conversation.php:1393
+#: ../../include/conversation.php:1396
msgid "Toggle comments"
msgstr "Kommentare umschalten"
-#: ../../include/conversation.php:1401
+#: ../../include/conversation.php:1404
msgid "Categories (optional, comma-separated list)"
msgstr "Kategorien (optional, kommagetrennte Liste)"
-#: ../../include/conversation.php:1424
+#: ../../include/conversation.php:1427
msgid "Other networks and post services"
msgstr "Andere Netzwerke und Platformen"
-#: ../../include/conversation.php:1430
+#: ../../include/conversation.php:1433
msgid "Set publish date"
msgstr "Veröffentlichungsdatum festlegen"
-#: ../../include/conversation.php:1690
+#: ../../include/conversation.php:1693
msgid "Commented Order"
msgstr "Neueste Kommentare"
-#: ../../include/conversation.php:1693
+#: ../../include/conversation.php:1696
msgid "Sort by Comment Date"
msgstr "Nach Kommentardatum sortiert"
-#: ../../include/conversation.php:1697
+#: ../../include/conversation.php:1700
msgid "Posted Order"
msgstr "Neueste Beiträge"
-#: ../../include/conversation.php:1700
+#: ../../include/conversation.php:1703
msgid "Sort by Post Date"
msgstr "Nach Beitragsdatum sortiert"
-#: ../../include/conversation.php:1708
+#: ../../include/conversation.php:1711
msgid "Posts that mention or involve you"
msgstr "Beiträge mit Beteiligung Deinerseits"
-#: ../../include/conversation.php:1717
+#: ../../include/conversation.php:1720
msgid "Activity Stream - by date"
msgstr "Activity Stream – nach Datum sortiert"
-#: ../../include/conversation.php:1723
+#: ../../include/conversation.php:1726
msgid "Starred"
msgstr "Markiert"
-#: ../../include/conversation.php:1726
+#: ../../include/conversation.php:1729
msgid "Favourite Posts"
msgstr "Markierte Beiträge"
-#: ../../include/conversation.php:1733
+#: ../../include/conversation.php:1736
msgid "Spam"
msgstr "Spam"
-#: ../../include/conversation.php:1736
+#: ../../include/conversation.php:1739
msgid "Posts flagged as SPAM"
msgstr "Nachrichten, die als SPAM markiert wurden"
-#: ../../include/conversation.php:1811 ../../include/nav.php:381
+#: ../../include/conversation.php:1814 ../../include/nav.php:381
msgid "Status Messages and Posts"
msgstr "Statusnachrichten und Beiträge"
-#: ../../include/conversation.php:1824 ../../include/nav.php:394
+#: ../../include/conversation.php:1827 ../../include/nav.php:394
msgid "Profile Details"
msgstr "Profil-Details"
-#: ../../include/conversation.php:1834 ../../include/nav.php:404
-#: ../../include/photos.php:655
+#: ../../include/conversation.php:1837 ../../include/nav.php:404
+#: ../../include/photos.php:666
msgid "Photo Albums"
msgstr "Fotoalben"
-#: ../../include/conversation.php:1842 ../../include/nav.php:412
+#: ../../include/conversation.php:1845 ../../include/nav.php:412
msgid "Files and Storage"
msgstr "Dateien und Speicher"
-#: ../../include/conversation.php:1879 ../../include/nav.php:447
+#: ../../include/conversation.php:1882 ../../include/nav.php:447
msgid "Bookmarks"
msgstr "Lesezeichen"
-#: ../../include/conversation.php:1882 ../../include/nav.php:450
+#: ../../include/conversation.php:1885 ../../include/nav.php:450
msgid "Saved Bookmarks"
msgstr "Gespeicherte Lesezeichen"
-#: ../../include/conversation.php:1893 ../../include/nav.php:461
+#: ../../include/conversation.php:1896 ../../include/nav.php:461
msgid "View Cards"
msgstr "Karten anzeigen"
-#: ../../include/conversation.php:1901
+#: ../../include/conversation.php:1904
msgid "articles"
msgstr "Artikel"
-#: ../../include/conversation.php:1904 ../../include/nav.php:472
+#: ../../include/conversation.php:1907 ../../include/nav.php:472
msgid "View Articles"
msgstr "Artikel anzeigen"
-#: ../../include/conversation.php:1915 ../../include/nav.php:484
+#: ../../include/conversation.php:1918 ../../include/nav.php:484
msgid "View Webpages"
msgstr "Webseiten anzeigen"
-#: ../../include/conversation.php:1984
+#: ../../include/conversation.php:1987
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] "Zusage"
msgstr[1] "Zusagen"
-#: ../../include/conversation.php:1987
+#: ../../include/conversation.php:1990
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] "Absage"
msgstr[1] "Absagen"
-#: ../../include/conversation.php:1990
+#: ../../include/conversation.php:1993
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] " Unentschlossen"
msgstr[1] "Unentschlossene"
-#: ../../include/conversation.php:1993
+#: ../../include/conversation.php:1996
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] "Zustimmung"
msgstr[1] "Zustimmungen"
-#: ../../include/conversation.php:1996
+#: ../../include/conversation.php:1999
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] "Ablehnung"
msgstr[1] "Ablehnungen"
-#: ../../include/conversation.php:1999
+#: ../../include/conversation.php:2002
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -12155,12 +12389,16 @@ msgstr "Nur dieser Hub"
msgid "%1$s's bookmarks"
msgstr "%1$ss Lesezeichen"
-#: ../../include/import.php:41
+#: ../../include/import.php:25
+msgid "Unable to import a removed channel."
+msgstr "Nicht möglich, einen gelöschten Kanal zu importieren."
+
+#: ../../include/import.php:46
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen."
-#: ../../include/import.php:106
+#: ../../include/import.php:111
msgid "Cloned channel not found. Import failed."
msgstr "Geklonter Kanal nicht gefunden. Import fehlgeschlagen."
@@ -12405,7 +12643,7 @@ msgstr "Dezember"
msgid "Unknown Attachment"
msgstr "Unbekannter Anhang"
-#: ../../include/text.php:1434 ../../include/feedutils.php:852
+#: ../../include/text.php:1434 ../../include/feedutils.php:860
msgid "unknown"
msgstr "unbekannt"
@@ -12421,107 +12659,107 @@ msgstr "aus der Datei entfernen"
msgid "Download binary/encrypted content"
msgstr "Binären/verschlüsselten Inhalt herunterladen"
-#: ../../include/text.php:1848 ../../include/language.php:397
+#: ../../include/text.php:1849 ../../include/language.php:397
msgid "default"
msgstr "Standard"
-#: ../../include/text.php:1856
+#: ../../include/text.php:1857
msgid "Page layout"
msgstr "Seiten-Layout"
-#: ../../include/text.php:1856
+#: ../../include/text.php:1857
msgid "You can create your own with the layouts tool"
msgstr "Mit dem Gestaltungswerkzeug kannst Du Deine eigenen Layouts erstellen"
-#: ../../include/text.php:1867
+#: ../../include/text.php:1868
msgid "HTML"
msgstr "HTML"
-#: ../../include/text.php:1870
+#: ../../include/text.php:1871
msgid "Comanche Layout"
msgstr "Comanche-Layout"
-#: ../../include/text.php:1875
+#: ../../include/text.php:1876
msgid "PHP"
msgstr "PHP"
-#: ../../include/text.php:1884
+#: ../../include/text.php:1885
msgid "Page content type"
msgstr "Art des Seiteninhalts"
-#: ../../include/text.php:2017
+#: ../../include/text.php:2018
msgid "activity"
msgstr "Aktivität"
-#: ../../include/text.php:2099
+#: ../../include/text.php:2100
msgid "a-z, 0-9, -, and _ only"
msgstr "nur a-z, 0-9, - und _"
-#: ../../include/text.php:2399
+#: ../../include/text.php:2419
msgid "Design Tools"
msgstr "Gestaltungswerkzeuge"
-#: ../../include/text.php:2405
+#: ../../include/text.php:2425
msgid "Pages"
msgstr "Seiten"
-#: ../../include/text.php:2427
+#: ../../include/text.php:2447
msgid "Import website..."
msgstr "Webseite importieren..."
-#: ../../include/text.php:2428
+#: ../../include/text.php:2448
msgid "Select folder to import"
msgstr "Ordner zum Importieren auswählen"
-#: ../../include/text.php:2429
+#: ../../include/text.php:2449
msgid "Import from a zipped folder:"
msgstr "Aus einem gezippten Ordner importieren:"
-#: ../../include/text.php:2430
+#: ../../include/text.php:2450
msgid "Import from cloud files:"
msgstr "Aus Cloud-Dateien importieren:"
-#: ../../include/text.php:2431
+#: ../../include/text.php:2451
msgid "/cloud/channel/path/to/folder"
msgstr "/Cloud/Kanal/Pfad/zum/Ordner"
-#: ../../include/text.php:2432
+#: ../../include/text.php:2452
msgid "Enter path to website files"
msgstr "Pfad zu Webseitendateien eingeben"
-#: ../../include/text.php:2433
+#: ../../include/text.php:2453
msgid "Select folder"
msgstr "Ordner auswählen"
-#: ../../include/text.php:2434
+#: ../../include/text.php:2454
msgid "Export website..."
msgstr "Webseite exportieren..."
-#: ../../include/text.php:2435
+#: ../../include/text.php:2455
msgid "Export to a zip file"
msgstr "In eine ZIP-Datei exportieren"
-#: ../../include/text.php:2436
+#: ../../include/text.php:2456
msgid "website.zip"
msgstr "website.zip"
-#: ../../include/text.php:2437
+#: ../../include/text.php:2457
msgid "Enter a name for the zip file."
msgstr "Geben Sie einen für die ZIP-Datei ein."
-#: ../../include/text.php:2438
+#: ../../include/text.php:2458
msgid "Export to cloud files"
msgstr "In Cloud-Dateien exportieren"
-#: ../../include/text.php:2439
+#: ../../include/text.php:2459
msgid "/path/to/export/folder"
msgstr "/Pfad/zum/exportierenden/Ordner"
-#: ../../include/text.php:2440
+#: ../../include/text.php:2460
msgid "Enter a path to a cloud files destination."
msgstr "Gib den Pfad zu einem Datei-Speicherort in der Cloud ein."
-#: ../../include/text.php:2441
+#: ../../include/text.php:2461
msgid "Specify folder"
msgstr "Ordner angeben"
@@ -12569,7 +12807,7 @@ msgstr "Gemeinsame Verbindungen"
msgid "View all %d common connections"
msgstr "Zeige alle %d gemeinsamen Verbindungen"
-#: ../../include/markdown.php:158 ../../include/bbcode.php:343
+#: ../../include/markdown.php:158 ../../include/bbcode.php:356
#, php-format
msgid "%1$s wrote the following %2$s %3$s"
msgstr "%1$s schrieb den folgenden %2$s %3$s"
@@ -12586,23 +12824,27 @@ msgstr "Adresse des Kanals fehlt."
msgid "Response from remote channel was incomplete."
msgstr "Antwort des entfernten Kanals war unvollständig."
-#: ../../include/follow.php:101
+#: ../../include/follow.php:96
+msgid "Premium channel - please visit:"
+msgstr "Premium-Kanal - bitte gehe zu:"
+
+#: ../../include/follow.php:110
msgid "Channel was deleted and no longer exists."
msgstr "Kanal wurde gelöscht und existiert nicht mehr."
-#: ../../include/follow.php:156
+#: ../../include/follow.php:165
msgid "Remote channel or protocol unavailable."
msgstr "Externer Kanal oder Protokoll nicht verfügbar."
-#: ../../include/follow.php:179
+#: ../../include/follow.php:188
msgid "Channel discovery failed."
msgstr "Kanalsuche fehlgeschlagen"
-#: ../../include/follow.php:191
+#: ../../include/follow.php:200
msgid "Protocol disabled."
msgstr "Protokoll deaktiviert."
-#: ../../include/follow.php:202
+#: ../../include/follow.php:211
msgid "Cannot connect to yourself."
msgstr "Du kannst Dich nicht mit Dir selbst verbinden."
@@ -12922,39 +13164,39 @@ msgstr "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte errei
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess."
-#: ../../include/attach.php:959
+#: ../../include/attach.php:969
msgid "Stored file could not be verified. Upload failed."
msgstr "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen."
-#: ../../include/attach.php:1033 ../../include/attach.php:1049
+#: ../../include/attach.php:1043 ../../include/attach.php:1059
msgid "Path not available."
msgstr "Pfad nicht verfügbar."
-#: ../../include/attach.php:1098 ../../include/attach.php:1263
+#: ../../include/attach.php:1108 ../../include/attach.php:1273
msgid "Empty pathname"
msgstr "Leere Pfadangabe"
-#: ../../include/attach.php:1124
+#: ../../include/attach.php:1134
msgid "duplicate filename or path"
msgstr "doppelter Dateiname oder Pfad"
-#: ../../include/attach.php:1149
+#: ../../include/attach.php:1159
msgid "Path not found."
msgstr "Pfad nicht gefunden."
-#: ../../include/attach.php:1217
+#: ../../include/attach.php:1227
msgid "mkdir failed."
msgstr "mkdir fehlgeschlagen."
-#: ../../include/attach.php:1221
+#: ../../include/attach.php:1231
msgid "database storage failed."
msgstr "Speichern in der Datenbank fehlgeschlagen."
-#: ../../include/attach.php:1269
+#: ../../include/attach.php:1279
msgid "Empty path"
msgstr "Leere Pfadangabe"
-#: ../../include/security.php:532
+#: ../../include/security.php:541
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
@@ -12964,67 +13206,67 @@ msgstr "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinli
msgid "(Unknown)"
msgstr "(Unbekannt)"
-#: ../../include/items.php:1129
+#: ../../include/items.php:1133
msgid "Visible to anybody on the internet."
msgstr "Für jeden im Internet sichtbar."
-#: ../../include/items.php:1131
+#: ../../include/items.php:1135
msgid "Visible to you only."
msgstr "Nur für Dich sichtbar."
-#: ../../include/items.php:1133
+#: ../../include/items.php:1137
msgid "Visible to anybody in this network."
msgstr "Für jedes $Projectname-Mitglied sichtbar."
-#: ../../include/items.php:1135
+#: ../../include/items.php:1139
msgid "Visible to anybody authenticated."
msgstr "Für jeden sichtbar, der angemeldet ist."
-#: ../../include/items.php:1137
+#: ../../include/items.php:1141
#, php-format
msgid "Visible to anybody on %s."
msgstr "Für jeden auf %s sichtbar."
-#: ../../include/items.php:1139
+#: ../../include/items.php:1143
msgid "Visible to all connections."
msgstr "Für alle Verbindungen sichtbar."
-#: ../../include/items.php:1141
+#: ../../include/items.php:1145
msgid "Visible to approved connections."
msgstr "Nur für akzeptierte Verbindungen sichtbar."
-#: ../../include/items.php:1143
+#: ../../include/items.php:1147
msgid "Visible to specific connections."
msgstr "Sichtbar für bestimmte Verbindungen."
-#: ../../include/items.php:4147
+#: ../../include/items.php:4197
msgid "Privacy group is empty."
msgstr "Gruppe ist leer."
-#: ../../include/items.php:4154
+#: ../../include/items.php:4204
#, php-format
msgid "Privacy group: %s"
msgstr "Gruppe: %s"
-#: ../../include/items.php:4166
+#: ../../include/items.php:4216
msgid "Connection not found."
msgstr "Die Verbindung wurde nicht gefunden."
-#: ../../include/items.php:4515
+#: ../../include/items.php:4565
msgid "profile photo"
msgstr "Profilfoto"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
#, php-format
msgid "[Edited %s]"
msgstr "[%s wurde bearbeitet]"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
msgctxt "edit_activity"
msgid "Post"
msgstr "Beitrag"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
msgctxt "edit_activity"
msgid "Comment"
msgstr "Kommentar"
@@ -13061,31 +13303,31 @@ msgstr "Standard-Profil"
msgid "Unable to retrieve modified identity"
msgstr "Geänderte Identität kann nicht empfangen werden"
-#: ../../include/channel.php:1298
+#: ../../include/channel.php:1297
msgid "Create New Profile"
msgstr "Neues Profil erstellen"
-#: ../../include/channel.php:1319
+#: ../../include/channel.php:1318
msgid "Visible to everybody"
msgstr "Für jeden sichtbar"
-#: ../../include/channel.php:1396 ../../include/channel.php:1524
+#: ../../include/channel.php:1395 ../../include/channel.php:1523
msgid "Gender:"
msgstr "Geschlecht:"
-#: ../../include/channel.php:1398 ../../include/channel.php:1579
+#: ../../include/channel.php:1397 ../../include/channel.php:1591
msgid "Homepage:"
msgstr "Homepage:"
-#: ../../include/channel.php:1399
+#: ../../include/channel.php:1398
msgid "Online Now"
msgstr "gerade online"
-#: ../../include/channel.php:1452
+#: ../../include/channel.php:1451
msgid "Change your profile photo"
msgstr "Dein Profilfoto ändern"
-#: ../../include/channel.php:1483
+#: ../../include/channel.php:1482
msgid "Trans"
msgstr "Trans"
@@ -13110,71 +13352,71 @@ msgstr "Geburtstag:"
msgid "for %1$d %2$s"
msgstr "seit %1$d %2$s"
-#: ../../include/channel.php:1577
-msgid "Sexual Preference:"
-msgstr "Sexuelle Orientierung:"
-
-#: ../../include/channel.php:1583
+#: ../../include/channel.php:1585
msgid "Tags:"
msgstr "Schlagworte:"
-#: ../../include/channel.php:1585
+#: ../../include/channel.php:1589
+msgid "Sexual Preference:"
+msgstr "Sexuelle Orientierung:"
+
+#: ../../include/channel.php:1595
msgid "Political Views:"
msgstr "Politische Ansichten:"
-#: ../../include/channel.php:1587
+#: ../../include/channel.php:1597
msgid "Religion:"
msgstr "Religion:"
-#: ../../include/channel.php:1591
+#: ../../include/channel.php:1601
msgid "Hobbies/Interests:"
msgstr "Hobbys/Interessen:"
-#: ../../include/channel.php:1593
+#: ../../include/channel.php:1603
msgid "Likes:"
msgstr "Gefällt:"
-#: ../../include/channel.php:1595
+#: ../../include/channel.php:1605
msgid "Dislikes:"
msgstr "Gefällt nicht:"
-#: ../../include/channel.php:1597
+#: ../../include/channel.php:1607
msgid "Contact information and Social Networks:"
msgstr "Kontaktinformation und soziale Netzwerke:"
-#: ../../include/channel.php:1599
+#: ../../include/channel.php:1609
msgid "My other channels:"
msgstr "Meine anderen Kanäle:"
-#: ../../include/channel.php:1601
+#: ../../include/channel.php:1611
msgid "Musical interests:"
msgstr "Musikalische Interessen:"
-#: ../../include/channel.php:1603
+#: ../../include/channel.php:1613
msgid "Books, literature:"
msgstr "Bücher, Literatur:"
-#: ../../include/channel.php:1605
+#: ../../include/channel.php:1615
msgid "Television:"
msgstr "Fernsehen:"
-#: ../../include/channel.php:1607
+#: ../../include/channel.php:1617
msgid "Film/dance/culture/entertainment:"
msgstr "Film/Tanz/Kultur/Unterhaltung:"
-#: ../../include/channel.php:1609
+#: ../../include/channel.php:1619
msgid "Love/Romance:"
msgstr "Liebe/Romantik:"
-#: ../../include/channel.php:1611
+#: ../../include/channel.php:1621
msgid "Work/employment:"
msgstr "Arbeit/Anstellung:"
-#: ../../include/channel.php:1613
+#: ../../include/channel.php:1623
msgid "School/education:"
msgstr "Schule/Ausbildung:"
-#: ../../include/channel.php:1636
+#: ../../include/channel.php:1646
msgid "Like this thing"
msgstr "Gefällt mir"
@@ -13214,19 +13456,19 @@ msgstr "In Bearbeitung"
msgid "Cancelled"
msgstr "gestrichen"
-#: ../../include/event.php:1310 ../../include/connections.php:684
+#: ../../include/event.php:1310 ../../include/connections.php:692
msgid "Home, Voice"
msgstr "Zuhause, Sprache"
-#: ../../include/event.php:1311 ../../include/connections.php:685
+#: ../../include/event.php:1311 ../../include/connections.php:693
msgid "Home, Fax"
msgstr "Zuhause, Fax"
-#: ../../include/event.php:1313 ../../include/connections.php:687
+#: ../../include/event.php:1313 ../../include/connections.php:695
msgid "Work, Voice"
msgstr "Arbeit, Sprache"
-#: ../../include/event.php:1314 ../../include/connections.php:688
+#: ../../include/event.php:1314 ../../include/connections.php:696
msgid "Work, Fax"
msgstr "Arbeit, Fax"
@@ -13234,43 +13476,43 @@ msgstr "Arbeit, Fax"
msgid "view full size"
msgstr "In Vollbildansicht anschauen"
-#: ../../include/network.php:1769 ../../include/network.php:1770
+#: ../../include/network.php:1764 ../../include/network.php:1765
msgid "Friendica"
msgstr "Friendica"
-#: ../../include/network.php:1771
+#: ../../include/network.php:1766
msgid "OStatus"
msgstr "OStatus"
-#: ../../include/network.php:1772
+#: ../../include/network.php:1767
msgid "GNU-Social"
msgstr "GNU-Social"
-#: ../../include/network.php:1773
+#: ../../include/network.php:1768
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/network.php:1776
+#: ../../include/network.php:1771
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../include/network.php:1777
+#: ../../include/network.php:1772
msgid "Facebook"
msgstr "Facebook"
-#: ../../include/network.php:1778
+#: ../../include/network.php:1773
msgid "Zot"
msgstr "Zot"
-#: ../../include/network.php:1779
+#: ../../include/network.php:1774
msgid "LinkedIn"
msgstr "LinkedIn"
-#: ../../include/network.php:1780
+#: ../../include/network.php:1775
msgid "XMPP/IM"
msgstr "XMPP/IM"
-#: ../../include/network.php:1781
+#: ../../include/network.php:1776
msgid "MySpace"
msgstr "MySpace"
@@ -13312,17 +13554,17 @@ msgstr "Beitragsberechtigungen %s können nicht geändert werden %s, nachdem der
msgid "Cannot locate DNS info for database server '%s'"
msgstr "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden"
-#: ../../include/bbcode.php:198 ../../include/bbcode.php:1151
-#: ../../include/bbcode.php:1154 ../../include/bbcode.php:1159
-#: ../../include/bbcode.php:1162 ../../include/bbcode.php:1165
-#: ../../include/bbcode.php:1168 ../../include/bbcode.php:1173
-#: ../../include/bbcode.php:1176 ../../include/bbcode.php:1181
-#: ../../include/bbcode.php:1184 ../../include/bbcode.php:1187
-#: ../../include/bbcode.php:1190
+#: ../../include/bbcode.php:198 ../../include/bbcode.php:1200
+#: ../../include/bbcode.php:1203 ../../include/bbcode.php:1208
+#: ../../include/bbcode.php:1211 ../../include/bbcode.php:1214
+#: ../../include/bbcode.php:1217 ../../include/bbcode.php:1222
+#: ../../include/bbcode.php:1225 ../../include/bbcode.php:1230
+#: ../../include/bbcode.php:1233 ../../include/bbcode.php:1236
+#: ../../include/bbcode.php:1239
msgid "Image/photo"
msgstr "Bild/Foto"
-#: ../../include/bbcode.php:237 ../../include/bbcode.php:1201
+#: ../../include/bbcode.php:237 ../../include/bbcode.php:1250
msgid "Encrypted content"
msgstr "Verschlüsselter Inhalt"
@@ -13338,565 +13580,587 @@ msgid ""
"to install it on this site."
msgstr "Dieser Beitrag beinhaltet ein installierbares %s Element, aber Du hast nicht die nötigen Rechte, um es auf diesem Hub zu installieren."
-#: ../../include/bbcode.php:335
+#: ../../include/bbcode.php:348
msgid "card"
msgstr "Karte"
-#: ../../include/bbcode.php:337
+#: ../../include/bbcode.php:350
msgid "article"
msgstr "Artikel"
-#: ../../include/bbcode.php:420 ../../include/bbcode.php:428
+#: ../../include/bbcode.php:433 ../../include/bbcode.php:441
msgid "Click to open/close"
msgstr "Klicke zum Öffnen/Schließen"
-#: ../../include/bbcode.php:428
+#: ../../include/bbcode.php:441
msgid "spoiler"
msgstr "Spoiler"
-#: ../../include/bbcode.php:441
+#: ../../include/bbcode.php:454
msgid "View article"
msgstr "Artikel ansehen"
-#: ../../include/bbcode.php:441
+#: ../../include/bbcode.php:454
msgid "View summary"
msgstr "Zusammenfassung ansehen"
-#: ../../include/bbcode.php:1139
+#: ../../include/bbcode.php:1188
msgid "$1 wrote:"
msgstr "$1 schrieb:"
-#: ../../include/oembed.php:328
+#: ../../include/oembed.php:329
msgid " by "
msgstr "von"
-#: ../../include/oembed.php:329
+#: ../../include/oembed.php:330
msgid " on "
msgstr "am"
-#: ../../include/oembed.php:358
+#: ../../include/oembed.php:359
msgid "Embedded content"
msgstr "Eingebetteter Inhalt"
-#: ../../include/oembed.php:367
+#: ../../include/oembed.php:368
msgid "Embedding disabled"
msgstr "Einbetten deaktiviert"
-#: ../../include/zid.php:346
+#: ../../include/zid.php:347
#, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr "OpenWebAuth: %1$s heißt %2$s willkommen"
-#: ../../include/features.php:54
+#: ../../include/features.php:56
msgid "General Features"
msgstr "Allgemeine Funktionen"
-#: ../../include/features.php:60
+#: ../../include/features.php:61
+msgid "Display new member quick links menu"
+msgstr "Zeigt neuen Mitgliedern ein Menü mit Schnell-Links zu wichtigen Funktionen"
+
+#: ../../include/features.php:69
msgid "Advanced Profiles"
msgstr "Erweiterte Profile"
-#: ../../include/features.php:61
+#: ../../include/features.php:70
msgid "Additional profile sections and selections"
msgstr "Stellt zusätzliche Bereiche und Felder im Profil zur Verfügung"
-#: ../../include/features.php:69
+#: ../../include/features.php:78
msgid "Profile Import/Export"
msgstr "Profil-Import/Export"
-#: ../../include/features.php:70
+#: ../../include/features.php:79
msgid "Save and load profile details across sites/channels"
msgstr "Ermöglicht das Speichern von Profilen, um sie in einen anderen Kanal zu importieren"
-#: ../../include/features.php:78
+#: ../../include/features.php:87
msgid "Web Pages"
msgstr "Webseiten"
-#: ../../include/features.php:79
+#: ../../include/features.php:88
msgid "Provide managed web pages on your channel"
msgstr "Ermöglicht das Erstellen von Webseiten in Deinem Kanal"
-#: ../../include/features.php:88
+#: ../../include/features.php:97
msgid "Provide a wiki for your channel"
msgstr "Stelle ein Wiki in Deinem Kanal zur Verfügung"
-#: ../../include/features.php:105
+#: ../../include/features.php:114
msgid "Private Notes"
msgstr "Private Notizen"
-#: ../../include/features.php:106
+#: ../../include/features.php:115
msgid "Enables a tool to store notes and reminders (note: not encrypted)"
msgstr "Aktiviert ein Werkzeug mit dem Notizen und Erinnerungen gespeichert werden können (Hinweis: nicht verschlüsselt)"
-#: ../../include/features.php:115
+#: ../../include/features.php:124
msgid "Create personal planning cards"
msgstr "Erstelle persönliche (Notiz-)Karten zur Planung/Koordination oder ähnlichen Zwecken"
-#: ../../include/features.php:125
+#: ../../include/features.php:134
msgid "Create interactive articles"
msgstr "Erstelle interaktive Artikel"
-#: ../../include/features.php:133
+#: ../../include/features.php:142
msgid "Navigation Channel Select"
msgstr "Kanal-Auswahl in der Navigationsleiste"
-#: ../../include/features.php:134
+#: ../../include/features.php:143
msgid "Change channels directly from within the navigation dropdown menu"
msgstr "Ermöglicht den direkten Wechsel zu anderen Kanälen über das Navigationsmenü"
-#: ../../include/features.php:142
+#: ../../include/features.php:151
msgid "Photo Location"
msgstr "Aufnahmeort"
-#: ../../include/features.php:143
+#: ../../include/features.php:152
msgid "If location data is available on uploaded photos, link this to a map."
msgstr "Verlinkt den Aufnahmeort von Fotos (falls verfügbar) auf einer Karte"
-#: ../../include/features.php:151
+#: ../../include/features.php:160
msgid "Access Controlled Chatrooms"
msgstr "Zugriffskontrollierte Chaträume"
-#: ../../include/features.php:152
+#: ../../include/features.php:161
msgid "Provide chatrooms and chat services with access control."
msgstr "Bieten Sie Chaträume und Chatdienste mit Zugriffskontrolle an."
-#: ../../include/features.php:161
+#: ../../include/features.php:170
msgid "Smart Birthdays"
msgstr "Smarte Geburtstage"
-#: ../../include/features.php:162
+#: ../../include/features.php:171
msgid ""
"Make birthday events timezone aware in case your friends are scattered "
"across the planet."
msgstr "Stellt für Geburtstage einen Zeitzonenbezug her, falls deine Freunde über den ganzen Planeten verstreut sind."
-#: ../../include/features.php:170
+#: ../../include/features.php:179
msgid "Event Timezone Selection"
msgstr "Termin-Zeitzonenauswahl"
-#: ../../include/features.php:171
+#: ../../include/features.php:180
msgid "Allow event creation in timezones other than your own."
msgstr "Ermögliche das Erstellen von Terminen in anderen Zeitzonen als Deiner eigenen."
-#: ../../include/features.php:180
+#: ../../include/features.php:189
msgid "Premium Channel"
msgstr "Premium-Kanal"
-#: ../../include/features.php:181
+#: ../../include/features.php:190
msgid ""
"Allows you to set restrictions and terms on those that connect with your "
"channel"
msgstr "Ermöglicht es, Einschränkungen und Bedingungen für Verbindungen dieses Kanals festzulegen"
-#: ../../include/features.php:189
+#: ../../include/features.php:198
msgid "Advanced Directory Search"
msgstr "Erweiterte Verzeichnissuche"
-#: ../../include/features.php:190
+#: ../../include/features.php:199
msgid "Allows creation of complex directory search queries"
msgstr "Ermöglicht die Erstellung komplexer Verzeichnis-Suchabfragen"
-#: ../../include/features.php:198
+#: ../../include/features.php:207
msgid "Advanced Theme and Layout Settings"
msgstr "Erweiterte Design- und Layout-Einstellungen"
-#: ../../include/features.php:199
+#: ../../include/features.php:208
msgid "Allows fine tuning of themes and page layouts"
msgstr "Erlaubt die Feineinstellung von Designs und Seitenlayouts"
-#: ../../include/features.php:208
+#: ../../include/features.php:217
msgid "Access Control and Permissions"
msgstr "Zugriffskontrolle und Berechtigungen"
-#: ../../include/features.php:212 ../../include/group.php:328
+#: ../../include/features.php:221 ../../include/group.php:328
msgid "Privacy Groups"
msgstr "Gruppen"
-#: ../../include/features.php:213
+#: ../../include/features.php:222
msgid "Enable management and selection of privacy groups"
msgstr "Auswahl und Verwaltung von Gruppen für Kanäle aktivieren"
-#: ../../include/features.php:221
+#: ../../include/features.php:230
msgid "Multiple Profiles"
msgstr "Mehrfachprofile"
-#: ../../include/features.php:222
+#: ../../include/features.php:231
msgid "Ability to create multiple profiles"
msgstr "Ermöglicht das Anlegen mehrerer Profile pro Kanal"
-#: ../../include/features.php:232
+#: ../../include/features.php:241
msgid "Provide alternate connection permission roles."
msgstr "Stelle benutzerdefinierte Berechtigungsrollen für Verbindungen zur Verfügung."
-#: ../../include/features.php:240
-msgid "OAuth Clients"
-msgstr "OAuth Clients"
+#: ../../include/features.php:249
+msgid "OAuth1 Clients"
+msgstr "OAuth1 Clients"
-#: ../../include/features.php:241
-msgid "Manage authenticatication tokens for mobile and remote apps."
-msgstr "Verwalte Tokens für den Zugriff von mobilen bzw. externen Anwendungen."
+#: ../../include/features.php:250
+msgid "Manage OAuth1 authenticatication tokens for mobile and remote apps."
+msgstr "Verwalte OAuth1-Tokens für den Zugriff von mobilen bzw. externen Anwendungen."
-#: ../../include/features.php:249
+#: ../../include/features.php:258
+msgid "OAuth2 Clients"
+msgstr "OAuth2 Clients"
+
+#: ../../include/features.php:259
+msgid "Manage OAuth2 authenticatication tokens for mobile and remote apps."
+msgstr "Verwalte OAuth2-Tokens für den Zugriff von mobilen bzw. externen Anwendungen."
+
+#: ../../include/features.php:267
msgid "Access Tokens"
msgstr "Zugangstokens"
-#: ../../include/features.php:250
+#: ../../include/features.php:268
msgid "Create access tokens so that non-members can access private content."
msgstr "Erzeuge Tokens für den Zugriff von Nicht-Mitgliedern auf private Inhalte."
-#: ../../include/features.php:261
+#: ../../include/features.php:279
msgid "Post Composition Features"
msgstr "Nachbearbeitungsfunktionen"
-#: ../../include/features.php:265
+#: ../../include/features.php:283
msgid "Large Photos"
msgstr "Große Fotos"
-#: ../../include/features.php:266
+#: ../../include/features.php:284
msgid ""
"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
"(640px) photo thumbnails"
msgstr "Große Vorschaubilder (1024px) in Beiträgen anzeigen. Falls nicht aktiviert, werden kleine Vorschaubilder (640px) verwendet."
-#: ../../include/features.php:275
+#: ../../include/features.php:293
msgid "Automatically import channel content from other channels or feeds"
msgstr "Ermöglicht den automatischen Import von Inhalten für diesen Kanal von anderen Kanälen oder Feeds"
-#: ../../include/features.php:283
+#: ../../include/features.php:301
msgid "Even More Encryption"
msgstr "Noch mehr Verschlüsselung"
-#: ../../include/features.php:284
+#: ../../include/features.php:302
msgid ""
"Allow optional encryption of content end-to-end with a shared secret key"
msgstr "Ermöglicht optional die zusätzliche Verschlüsselung von Inhalten (Ende-zu-Ende mit geteiltem Schlüssel)"
-#: ../../include/features.php:292
+#: ../../include/features.php:310
msgid "Enable Voting Tools"
msgstr "Umfragewerkzeuge aktivieren"
-#: ../../include/features.php:293
+#: ../../include/features.php:311
msgid "Provide a class of post which others can vote on"
msgstr "Aktiviert die Umfragewerkzeuge, um anderen die Möglichkeit zu geben, einem Beitrag zuzustimmen, ihn abzulehnen oder sich zu enthalten. (Muss im Beitrag selbst noch aktiviert werden.)"
-#: ../../include/features.php:301
+#: ../../include/features.php:319
msgid "Disable Comments"
msgstr "Kommentare deaktivieren"
-#: ../../include/features.php:302
+#: ../../include/features.php:320
msgid "Provide the option to disable comments for a post"
msgstr "Ermöglicht, die Kommentarfunktion für einzelne Beiträge abzuschalten"
-#: ../../include/features.php:310
+#: ../../include/features.php:328
msgid "Delayed Posting"
msgstr "Verzögertes Senden"
-#: ../../include/features.php:311
+#: ../../include/features.php:329
msgid "Allow posts to be published at a later date"
msgstr "Ermöglicht es, Beiträge zu einem späteren Zeitpunkt zu veröffentlichen"
-#: ../../include/features.php:319
+#: ../../include/features.php:337
msgid "Content Expiration"
msgstr "Verfall von Inhalten"
-#: ../../include/features.php:320
+#: ../../include/features.php:338
msgid "Remove posts/comments and/or private messages at a future time"
msgstr "Ermöglicht das automatische Löschen von Beiträgen, Kommentaren und/oder privaten Nachrichten zu einem zukünftigen Datum."
-#: ../../include/features.php:328
+#: ../../include/features.php:346
msgid "Suppress Duplicate Posts/Comments"
msgstr "Doppelte Beiträge unterdrücken"
-#: ../../include/features.php:329
+#: ../../include/features.php:347
msgid ""
"Prevent posts with identical content to be published with less than two "
"minutes in between submissions."
msgstr "Verhindert, dass innerhalb von zwei Minuten Beiträge mit identischem Inhalt veröffentlicht werden."
-#: ../../include/features.php:340
+#: ../../include/features.php:355
+msgid "Auto-save drafts of posts and comments"
+msgstr "Auto-Speicherung von Beitrags- und Kommentarentwürfen"
+
+#: ../../include/features.php:356
+msgid ""
+"Automatically saves post and comment drafts in local browser storage to help"
+" prevent accidental loss of compositions"
+msgstr "Speichert Deine Beitrags- und Kommentarentwürfe automatisch im lokalen Browserspeicher und hilft so, versehentlichem Verlust dieser Inhalte vorzubeugen"
+
+#: ../../include/features.php:367
msgid "Network and Stream Filtering"
msgstr "Netzwerk- und Stream-Filter"
-#: ../../include/features.php:344
+#: ../../include/features.php:371
msgid "Search by Date"
msgstr "Suche nach Datum"
-#: ../../include/features.php:345
+#: ../../include/features.php:372
msgid "Ability to select posts by date ranges"
msgstr "Möglichkeit, Beiträge nach Zeiträumen auszuwählen"
-#: ../../include/features.php:355
+#: ../../include/features.php:382
msgid "Save search terms for re-use"
msgstr "Ermöglicht das Abspeichern von Suchbegriffen zur Wiederverwendung"
-#: ../../include/features.php:363
+#: ../../include/features.php:390
msgid "Network Personal Tab"
msgstr "Persönlicher Netzwerkreiter"
-#: ../../include/features.php:364
+#: ../../include/features.php:391
msgid "Enable tab to display only Network posts that you've interacted on"
msgstr "Aktiviert einen Reiter in der Grid-Ansicht, der nur Netzwerk-Beiträge anzeigt, mit denen Du interagiert hast"
-#: ../../include/features.php:372
+#: ../../include/features.php:399
msgid "Network New Tab"
msgstr "Netzwerkreiter Neu"
-#: ../../include/features.php:373
+#: ../../include/features.php:400
msgid "Enable tab to display all new Network activity"
msgstr "Aktiviert einen Reiter in der Grid-Ansicht, der alle neuen Netzwerkaktivitäten anzeigt"
-#: ../../include/features.php:381
+#: ../../include/features.php:408
msgid "Affinity Tool"
msgstr "Beziehungs-Tool"
-#: ../../include/features.php:382
+#: ../../include/features.php:409
msgid "Filter stream activity by depth of relationships"
msgstr "Aktiviert ein Werkzeug in der Grid-Ansicht, das den Stream nach Grad der Beziehung filtern kann"
-#: ../../include/features.php:391
+#: ../../include/features.php:418
msgid "Show friend and connection suggestions"
msgstr "Freund- und Verbindungsvorschläge anzeigen"
-#: ../../include/features.php:399
+#: ../../include/features.php:426
msgid "Connection Filtering"
msgstr "Filter für Verbindungen"
-#: ../../include/features.php:400
+#: ../../include/features.php:427
msgid "Filter incoming posts from connections based on keywords/content"
msgstr "Ermöglicht die Filterung eingehender Beiträge anhand von Schlüsselwörtern (muss an der Verbindung konfiguriert werden)"
-#: ../../include/features.php:412
+#: ../../include/features.php:439
msgid "Post/Comment Tools"
msgstr "Beitrag-/Kommentar-Tools"
-#: ../../include/features.php:416
+#: ../../include/features.php:443
msgid "Community Tagging"
msgstr "Gemeinschaftliches Verschlagworten"
-#: ../../include/features.php:417
+#: ../../include/features.php:444
msgid "Ability to tag existing posts"
msgstr "Ermöglicht das Verschlagworten existierender Beiträge"
-#: ../../include/features.php:425
+#: ../../include/features.php:452
msgid "Post Categories"
msgstr "Beitrags-Kategorien"
-#: ../../include/features.php:426
+#: ../../include/features.php:453
msgid "Add categories to your posts"
msgstr "Aktiviert Kategorien für Beiträge"
-#: ../../include/features.php:434
+#: ../../include/features.php:461
msgid "Emoji Reactions"
msgstr "Emoji Reaktionen"
-#: ../../include/features.php:435
+#: ../../include/features.php:462
msgid "Add emoji reaction ability to posts"
msgstr "Aktiviert Emoji-Reaktionen für Beiträge"
-#: ../../include/features.php:444
+#: ../../include/features.php:471
msgid "Ability to file posts under folders"
msgstr "Möglichkeit, Beiträge in Verzeichnissen zu sammeln"
-#: ../../include/features.php:452
+#: ../../include/features.php:479
msgid "Dislike Posts"
msgstr "Gefällt-mir-nicht-Beiträge"
-#: ../../include/features.php:453
+#: ../../include/features.php:480
msgid "Ability to dislike posts/comments"
msgstr "Aktiviert die „Gefällt mir nicht“-Schaltfläche"
-#: ../../include/features.php:461
+#: ../../include/features.php:488
msgid "Star Posts"
msgstr "Beiträge mit Sternchen versehen"
-#: ../../include/features.php:462
+#: ../../include/features.php:489
msgid "Ability to mark special posts with a star indicator"
msgstr "Ermöglicht die lokale Markierung spezieller Beiträge mit einem Sternchen-Symbol"
-#: ../../include/features.php:470
+#: ../../include/features.php:497
msgid "Tag Cloud"
msgstr "Schlagwort-Wolke"
-#: ../../include/features.php:471
+#: ../../include/features.php:498
msgid "Provide a personal tag cloud on your channel page"
msgstr "Aktiviert die Anzeige einer Schlagwort-Wolke (Tag Cloud) auf Deiner Kanal-Seite"
-#: ../../include/taxonomy.php:384 ../../include/taxonomy.php:405
-msgid "Tags"
-msgstr "Schlagwörter"
+#: ../../include/taxonomy.php:320
+msgid "Trending"
+msgstr "Meistbeachtet"
-#: ../../include/taxonomy.php:487
+#: ../../include/taxonomy.php:552
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: ../../include/taxonomy.php:508
+#: ../../include/taxonomy.php:573
msgid "have"
msgstr "habe"
-#: ../../include/taxonomy.php:508
+#: ../../include/taxonomy.php:573
msgid "has"
msgstr "hat"
-#: ../../include/taxonomy.php:509
+#: ../../include/taxonomy.php:574
msgid "want"
msgstr "will"
-#: ../../include/taxonomy.php:509
+#: ../../include/taxonomy.php:574
msgid "wants"
msgstr "will"
-#: ../../include/taxonomy.php:510
+#: ../../include/taxonomy.php:575
msgid "likes"
msgstr "gefällt"
-#: ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:576
msgid "dislikes"
msgstr "missfällt"
-#: ../../include/account.php:35
+#: ../../include/account.php:36
msgid "Not a valid email address"
msgstr "Ungültige E-Mail-Adresse"
-#: ../../include/account.php:37
+#: ../../include/account.php:38
msgid "Your email domain is not among those allowed on this site"
msgstr "Deine E-Mail-Adresse ist auf dieser Seite nicht erlaubt"
-#: ../../include/account.php:43
+#: ../../include/account.php:44
msgid "Your email address is already registered at this site."
msgstr "Deine E-Mail-Adresse ist auf dieser Seite bereits registriert."
-#: ../../include/account.php:75
+#: ../../include/account.php:76
msgid "An invitation is required."
msgstr "Eine Einladung wird benötigt."
-#: ../../include/account.php:79
+#: ../../include/account.php:80
msgid "Invitation could not be verified."
msgstr "Die Einladung konnte nicht bestätigt werden."
-#: ../../include/account.php:157
+#: ../../include/account.php:158
msgid "Please enter the required information."
msgstr "Bitte gib die benötigten Informationen ein."
-#: ../../include/account.php:224
+#: ../../include/account.php:225
msgid "Failed to store account information."
msgstr "Speichern der Nutzerkontodaten fehlgeschlagen."
-#: ../../include/account.php:313
+#: ../../include/account.php:314
#, php-format
msgid "Registration confirmation for %s"
msgstr "Registrierungsbestätigung für %s"
-#: ../../include/account.php:382
+#: ../../include/account.php:383
#, php-format
msgid "Registration request at %s"
msgstr "Registrierungsanfrage auf %s"
-#: ../../include/account.php:404
+#: ../../include/account.php:405
msgid "your registration password"
msgstr "Dein Registrierungspasswort"
-#: ../../include/account.php:410 ../../include/account.php:472
+#: ../../include/account.php:411 ../../include/account.php:473
#, php-format
msgid "Registration details for %s"
msgstr "Registrierungsdetails für %s"
-#: ../../include/account.php:483
+#: ../../include/account.php:484
msgid "Account approved."
msgstr "Nutzerkonto bestätigt."
-#: ../../include/account.php:523
+#: ../../include/account.php:524
#, php-format
msgid "Registration revoked for %s"
msgstr "Registrierung für %s wurde widerrufen"
-#: ../../include/account.php:802 ../../include/account.php:804
+#: ../../include/account.php:803 ../../include/account.php:805
msgid "Click here to upgrade."
msgstr "Klicke hier, um das Upgrade durchzuführen."
-#: ../../include/account.php:810
+#: ../../include/account.php:811
msgid "This action exceeds the limits set by your subscription plan."
msgstr "Diese Aktion überschreitet die Grenzen Ihres Abonnements."
-#: ../../include/account.php:815
+#: ../../include/account.php:816
msgid "This action is not available under your subscription plan."
msgstr "Diese Aktion ist in Ihrem Abonnement nicht verfügbar."
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "Birthday"
msgstr "Geburtstag"
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "Age: "
msgstr "Alter:"
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "YYYY-MM-DD or MM-DD"
msgstr "JJJJ-MM-TT oder MM-TT"
-#: ../../include/datetime.php:238
+#: ../../include/datetime.php:244
msgid "less than a second ago"
msgstr "Vor weniger als einer Sekunde"
-#: ../../include/datetime.php:256
+#: ../../include/datetime.php:262
#, php-format
msgctxt "e.g. 22 hours ago, 1 minute ago"
msgid "%1$d %2$s ago"
msgstr "vor %1$d %2$s"
-#: ../../include/datetime.php:267
+#: ../../include/datetime.php:273
msgctxt "relative_date"
msgid "year"
msgid_plural "years"
msgstr[0] "Jahr"
msgstr[1] "Jahre"
-#: ../../include/datetime.php:270
+#: ../../include/datetime.php:276
msgctxt "relative_date"
msgid "month"
msgid_plural "months"
msgstr[0] "Monat"
msgstr[1] "Monate"
-#: ../../include/datetime.php:273
+#: ../../include/datetime.php:279
msgctxt "relative_date"
msgid "week"
msgid_plural "weeks"
msgstr[0] "Woche"
msgstr[1] "Wochen"
-#: ../../include/datetime.php:276
+#: ../../include/datetime.php:282
msgctxt "relative_date"
msgid "day"
msgid_plural "days"
msgstr[0] "Tag"
msgstr[1] "Tage"
-#: ../../include/datetime.php:279
+#: ../../include/datetime.php:285
msgctxt "relative_date"
msgid "hour"
msgid_plural "hours"
msgstr[0] "Stunde"
msgstr[1] "Stunden"
-#: ../../include/datetime.php:282
+#: ../../include/datetime.php:288
msgctxt "relative_date"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "Minute"
msgstr[1] "Minuten"
-#: ../../include/datetime.php:285
+#: ../../include/datetime.php:291
msgctxt "relative_date"
msgid "second"
msgid_plural "seconds"
msgstr[0] "Sekunde"
msgstr[1] "Sekunden"
-#: ../../include/datetime.php:514
+#: ../../include/datetime.php:520
#, php-format
msgid "%1$s's birthday"
msgstr "%1$ss Geburtstag"
-#: ../../include/datetime.php:515
+#: ../../include/datetime.php:521
#, php-format
msgid "Happy Birthday %1$s"
msgstr "Alles Gute zum Geburtstag, %1$s"
@@ -13950,16 +14214,16 @@ msgid "Help and documentation"
msgstr "Hilfe und Dokumentation"
#: ../../include/nav.php:179
-msgid "Search site @name, #tag, ?docs, content"
-msgstr "Hub durchsuchen: @Name. #Schlagwort, ?Dokumentation, Inhalt"
+msgid "Search site @name, !forum, #tag, ?docs, content"
+msgstr "Hub durchsuchen: @Name, !Forum, #Schlagwort, ?Dokumentation, Inhalt"
#: ../../include/nav.php:199
msgid "Site Setup and Configuration"
msgstr "Seiten-Einrichtung und -Konfiguration"
#: ../../include/nav.php:290
-msgid "@name, #tag, ?doc, content"
-msgstr "@Name, #Schlagwort, ?Dokumentation, Inhalt"
+msgid "@name, !forum, #tag, ?doc, content"
+msgstr "@Name, !Forum, #Schlagwort, ?Dokumentation, Inhalt"
#: ../../include/nav.php:291
msgid "Please wait..."
@@ -13986,38 +14250,38 @@ msgstr "Bild überschreitet das Webseitenlimit von %lu Bytes"
msgid "Image file is empty."
msgstr "Bilddatei ist leer."
-#: ../../include/photos.php:322
+#: ../../include/photos.php:326
msgid "Photo storage failed."
msgstr "Fotospeicherung fehlgeschlagen."
-#: ../../include/photos.php:364
+#: ../../include/photos.php:375
msgid "a new photo"
msgstr "ein neues Foto"
-#: ../../include/photos.php:368
+#: ../../include/photos.php:379
#, php-format
msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr "%1$s hat %2$s auf %3$s veröffentlicht"
-#: ../../include/photos.php:660
+#: ../../include/photos.php:671
msgid "Upload New Photos"
msgstr "Neue Fotos hochladen"
-#: ../../include/zot.php:767
+#: ../../include/zot.php:772
msgid "Invalid data packet"
msgstr "Ungültiges Datenpaket"
-#: ../../include/zot.php:794
+#: ../../include/zot.php:799
msgid "Unable to verify channel signature"
msgstr "Konnte die Signatur des Kanals nicht verifizieren"
-#: ../../include/zot.php:2529
+#: ../../include/zot.php:2552
#, php-format
msgid "Unable to verify site signature for %s"
msgstr "Kann die Signatur der Seite von %s nicht verifizieren"
-#: ../../include/zot.php:4180
+#: ../../include/zot.php:4219
msgid "invalid target signature"
msgstr "Ungültige Signatur des Ziels"
@@ -14048,23 +14312,27 @@ msgstr "Gruppe hinzufügen"
msgid "Channels not in any privacy group"
msgstr "Kanäle, die in keiner Gruppe sind"
-#: ../../include/connections.php:128
+#: ../../include/connections.php:133
msgid "New window"
msgstr "Neues Fenster"
-#: ../../include/connections.php:129
+#: ../../include/connections.php:134
msgid "Open the selected location in a different window or browser tab"
msgstr "Öffne die markierte Adresse in einem neuen Browserfenster oder Tab"
-#: ../../include/auth.php:148
+#: ../../include/auth.php:152
+msgid "Delegation session ended."
+msgstr ""
+
+#: ../../include/auth.php:156
msgid "Logged out."
msgstr "Ausgeloggt."
-#: ../../include/auth.php:263
+#: ../../include/auth.php:273
msgid "Email validation is incomplete. Please check your email."
msgstr "E-Mail-Bestätigung nicht abgeschlossen. Bitte prüfe Deine E-Mails (ggf. Spam-Filterung mit berücksichtigen)."
-#: ../../include/auth.php:279
+#: ../../include/auth.php:289
msgid "Failed authentication"
msgstr "Authentifizierung fehlgeschlagen"
diff --git a/view/de-de/hstrings.php b/view/de-de/hstrings.php
index c4c3c9091..749afef5d 100644
--- a/view/de-de/hstrings.php
+++ b/view/de-de/hstrings.php
@@ -24,6 +24,7 @@ App::$strings["Can chat with me"] = "Kann mit mir chatten";
App::$strings["Can source my public posts in derived channels"] = "Kann meine öffentlichen Beiträge als Quellen für Kanäle verwenden";
App::$strings["Can administer my channel"] = "Kann meinen Kanal administrieren";
App::$strings["Social Networking"] = "Soziales Netzwerk";
+App::$strings["Social - Federation"] = "Soziales Netzwerk - Föderation (verbundene Netze)";
App::$strings["Social - Mostly Public"] = "Soziales Netzwerk - Weitgehend öffentlich";
App::$strings["Social - Restricted"] = "Soziales Netzwerk - Beschränkt";
App::$strings["Social - Private"] = "Soziales Netzwerk - Privat";
@@ -280,7 +281,8 @@ App::$strings["Channel role and privacy"] = "Kanaltyp und Privatspäre-Einstellu
App::$strings["Select a channel role with your privacy requirements."] = "Wähle einen passenden Kanaltyp mit den zugehörigen Voreinstellungen zur Privatsphäre.";
App::$strings["Read more about roles"] = "Mehr Informationen über Rollen";
App::$strings["Create Channel"] = "Einen neuen Kanal anlegen";
-App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Ein Kanal ist Deine Identität in diesem Netzwerk. Er kann eine Person, ein Blog oder ein Forum repräsentieren, nur um ein paar Beispiele zu nennen. Kanäle können Verbindungen miteinander eingehen, um Informationen zu teilen, jeweils basierend auf sehr detaillierten Berechtigungseinstellungen.";
+App::$strings["A channel is a unique network identity. It can represent a person (social network profile), a forum (group), a business or celebrity page, a newsfeed, and many other things. Channels can make connections with other channels to share information with each other."] = "Ein Kanal ist eine eindeutige Identität. Er kann eine Person (Soziales Netzwerk-Profil), ein Forum (Gruppe), eine Unternehmens- oder Prominenten-Seite, einen Newsfeed oder viele andere Dinge repräsentieren. Kanäle können Verbindungen mit anderen Kanälen eingehen, um Informationen miteinander auszutauschen.";
+App::$strings["The type of channel you create affects the basic privacy settings, the permissions that are granted to connections/friends, and also the channel's visibility across the network."] = "Die Art des Kanals, den Du erzeugst, beeinflusst die grundlegenden Privatsphäre-Einstellungen, die Rechte, die Verbindungen/Freunden gewährt werden, und auch die Sichtbarkeit des Kanals im gesamten Netzwerk.";
App::$strings["or <a href=\"import\">import an existing channel</a> from another location."] = "oder <a href=\"import\">importiere einen bestehenden Kanal</a> von einem anderen Server.";
App::$strings["Validate"] = "Überprüfe";
App::$strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden.";
@@ -362,11 +364,10 @@ App::$strings["Error: PDO database PHP module required but not installed."] = "F
App::$strings["Error: mb_string PHP module required but not installed."] = "Fehler: Das PHP-Modul mb_string wird benötigt, ist aber nicht installiert.";
App::$strings["Error: xml PHP module required for DAV but not installed."] = "Fehler: Das xml-PHP-Modul wird für DAV benötigt, ist aber nicht installiert.";
App::$strings["Error: zip PHP module required but not installed."] = "Fehler: Das zip PHP Modul ist erforderlich, ist aber nicht installiert.";
+App::$strings[".htconfig.php is writable"] = ".htconfig.php ist beschreibbar";
App::$strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "Der Installations-Assistent muss in der Lage sein, die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist er aber nicht.";
App::$strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Meist liegt das daran, dass der Nutzer, unter dem der Web-Server läuft, keine Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst.";
-App::$strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Am Schluss dieses Vorgangs wird ein Text generiert, den Du unter dem Dateinamen .htconfig.php im Stammverzeichnis Deiner Hubzilla-Installation speichern musst.";
-App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativ kannst Du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt.";
-App::$strings[".htconfig.php is writable"] = ".htconfig.php ist beschreibbar";
+App::$strings["Please see install/INSTALL.txt for additional information."] = "Lies die Datei \"install/INSTALL.txt\".";
App::$strings["This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Diese Software verwendet die Smarty3 Template Engine, um Vorlagen für die Webdarstellung zu verarbeiten. Smarty3 übersetzt diese Vorlagen nach PHP, um die Darstellung zu beschleunigen.";
App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Um diese kompilierten Vorlagen speichern zu können, braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Hubzilla-Stammverzeichnisses.";
App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Bitte stelle sicher, dass der Nutzer, unter dem der Web-Server läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat.";
@@ -551,8 +552,6 @@ App::$strings["Publicly visible description of this site. Displayed on siteinfo
App::$strings["System language"] = "System-Sprache";
App::$strings["System theme"] = "System-Design";
App::$strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Standard-System-Design – kann durch Nutzerprofile überschieben werden – <a href='#' id='cnftheme'>Design-Einstellungen ändern</a>";
-App::$strings["Mobile system theme"] = "System-Design für mobile Geräte:";
-App::$strings["Theme for mobile devices"] = "Theme für mobile Geräte";
App::$strings["Allow Feeds as Connections"] = "Feeds als Verbindungen erlauben";
App::$strings["(Heavy system resource usage)"] = "(führt zu hoher Systemlast)";
App::$strings["Maximum image size"] = "Maximale Bildgröße";
@@ -612,6 +611,7 @@ App::$strings["Maximum Load Average"] = "Maximales Load Average";
App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximale Systemlast, bevor Verteil- und Empfangsprozesse verschoben werden – Standard 50";
App::$strings["Expiration period in days for imported (grid/network) content"] = "Setze den Zeitraum (in Tagen), ab wann importierte (aus dem Netzwerk) Inhalte ablaufen sollen";
App::$strings["0 for no expiration of imported content"] = "0 = keine Löschung importierter Inhalte";
+App::$strings["Do not expire any posts which have comments less than this many days ago"] = "Lass keine Beiträge verfallen die Kommentare haben, die jünger als diese Anzahl von Tagen sind.";
App::$strings["Public servers: Optional landing (marketing) webpage for new registrants"] = "Öffentliche Server: Optionale Einstiegsseite (landing page) für neue Mitglieder vor deren Anmeldung";
App::$strings["Create this page first. Default is %s/register"] = "Erstelle zunächst die entsprechende Seite. Standard ist %s/register";
App::$strings["Page to display after creating a new channel"] = "Seite, die nach Erstellung eines neuen Kanals angezeigt werden soll";
@@ -673,6 +673,7 @@ App::$strings["Visible to:"] = "Sichtbar für:";
App::$strings["__ctx:acl__ Profile"] = "Profil";
App::$strings["Comment approved"] = "Kommentar bestätigt";
App::$strings["Comment deleted"] = "Kommentar gelöscht";
+App::$strings["Permission Name is required."] = "Der Name der Berechtigung wird benötigt.";
App::$strings["Permission category saved."] = "Berechtigungsrolle gespeichert.";
App::$strings["Use this form to create permission rules for various classes of people or connections."] = "Verwende dieses Formular, um Berechtigungsrollen für verschiedene Gruppen von Personen oder Verbindungen zu erstellen.";
App::$strings["Permission Categories"] = "Berechtigungsrollen";
@@ -728,7 +729,6 @@ App::$strings["May reduce spam activity"] = "Kann die Spam-Aktivität verringern
App::$strings["Default Privacy Group"] = "Standard-Gruppe";
App::$strings["Use my default audience setting for the type of object published"] = "Verwende Deine eingestellte Standard-Zielgruppe des jeweiligen Inhaltstyps";
App::$strings["Profile to assign new connections"] = "Profil, welches neuen Verbindungen zugewiesen wird";
-App::$strings["Channel permissions category:"] = "Zugriffsrechte-Kategorie des Kanals:";
App::$strings["Default Permissions Group"] = "Standard-Berechtigungsgruppe";
App::$strings["Maximum private messages per day from unknown people:"] = "Maximale Anzahl privater Nachrichten pro Tag von unbekannten Leuten:";
App::$strings["Useful to reduce spamming"] = "Nützlich, um Spam zu verringern";
@@ -763,9 +763,10 @@ App::$strings["New connections"] = "Neue Verbindungen";
App::$strings["System Registrations"] = "System – Registrierungen";
App::$strings["Unseen shared files"] = "Ungesehene geteilte Dateien";
App::$strings["Unseen public activity"] = "Ungesehene öffentliche Aktivität";
+App::$strings["Unseen likes and dislikes"] = "Ungesehene Likes und Dislikes";
App::$strings["Email notification hub (hostname)"] = "Hub für E-Mail-Benachrichtigungen (Hostname)";
App::$strings["If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s"] = "Wenn Dein Kanal auf mehreren Hubs geklont ist, setze die Einstellung auf deinen bevorzugten Hub. Dies verhindert Mehrfachzustellung von E-Mail-Benachrichtigungen. Beispiel: %s";
-App::$strings["Also show new wall posts, private messages and connections under Notices"] = "Neue Pinnwand-Nachrichten, private Nachrichten und Verbindungen unter Benachrichtigungen anzeigen";
+App::$strings["Show new wall posts, private messages and connections under Notices"] = "Zeige neue Pinnwand Beiträge, private Nachrichten und Verbindungen unter den Notizen an.";
App::$strings["Notify me of events this many days in advance"] = "Benachrichtige mich zu Terminen so viele Tage im Voraus";
App::$strings["Must be greater than 0"] = "Muss größer als 0 sein";
App::$strings["Advanced Account/Page Type Settings"] = "Erweiterte Konten- und Seitenart-Einstellungen";
@@ -779,6 +780,8 @@ App::$strings["Remove this channel."] = "Diesen Kanal löschen";
App::$strings["Firefox Share \$Projectname provider"] = "\$Projectname-Provider für Firefox Share";
App::$strings["Start calendar week on Monday"] = "Beginne die kalendarische Woche am Montag";
App::$strings["Additional Features"] = "Zusätzliche Funktionen";
+App::$strings["Your technical skill level"] = "Deine technische Qualifikationsstufe";
+App::$strings["Used to provide a member experience and additional features consistent with your comfort level"] = "Dies wird verwendet, um Dir eine Benutzererfahrung sowie zusätzliche Funktionen passend zu Deiner technischen Qualifikationsstufe zu bieten (Bedienkomfort beim Umgang mit Anwendungen).";
App::$strings["This channel is limited to %d tokens"] = "Dieser Kanal ist auf %d Token begrenzt";
App::$strings["Name and Password are required."] = "Name und Passwort sind erforderlich.";
App::$strings["Token saved."] = "Token gespeichert.";
@@ -789,6 +792,22 @@ App::$strings["Login Name"] = "Anmeldename";
App::$strings["Login Password"] = "Anmeldepasswort";
App::$strings["Expires (yyyy-mm-dd)"] = "Läuft ab (jjjj-mm-tt)";
App::$strings["Their Settings"] = "Deren Einstellungen";
+App::$strings["Name and Secret are required"] = "Name und Geheimnis werden benötigt";
+App::$strings["Add OAuth2 application"] = "OAuth2 Anwendung hinzufügen";
+App::$strings["Name of application"] = "Name der Anwendung";
+App::$strings["Consumer Secret"] = "Consumer Secret";
+App::$strings["Automatically generated - change if desired. Max length 20"] = "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20";
+App::$strings["Redirect"] = "Umleitung";
+App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "Umleitungs-URl – lasse das leer, solange Deine Anwendung es nicht explizit erfordert";
+App::$strings["Grant Types"] = "Genehmigungsarten";
+App::$strings["leave blank unless your application sepcifically requires this"] = "Frei lassen, es sei denn die Anwendung verlangt dies.";
+App::$strings["Authorization scope"] = "Rahmen der Berechtigungen";
+App::$strings["OAuth2 Application not found."] = "OAuth2 Anwendung konnte nicht gefunden werden";
+App::$strings["Add application"] = "Anwendung hinzufügen";
+App::$strings["Connected OAuth2 Apps"] = "Verbundene OAuth2 Anwendungen";
+App::$strings["Client key starts with"] = "Client Key beginnt mit";
+App::$strings["No name"] = "Kein Name";
+App::$strings["Remove authorization"] = "Authorisierung aufheben";
App::$strings["Not valid email."] = "Keine gültige E-Mail Adresse.";
App::$strings["Protected email address. Cannot change to that email."] = "Geschützte E-Mail Adresse. Diese kann nicht verändert werden.";
App::$strings["System failure storing new email. Please try again."] = "Systemfehler während des Speicherns der neuen Mail. Bitte versuche es noch einmal.";
@@ -803,8 +822,6 @@ App::$strings["Current Password"] = "Aktuelles Passwort";
App::$strings["Enter New Password"] = "Gib ein neues Passwort ein";
App::$strings["Confirm New Password"] = "Bestätige das neue Passwort";
App::$strings["Leave password fields blank unless changing"] = "Lasse die Passwort-Felder leer, außer Du möchtest das Passwort ändern";
-App::$strings["Your technical skill level"] = "Deine technische Qualifikationsstufe";
-App::$strings["Used to provide a member experience and additional features consistent with your comfort level"] = "Dies wird verwendet, um Dir eine Benutzererfahrung sowie zusätzliche Funktionen passend zu Deiner technischen Qualifikationsstufe zu bieten (Bedienkomfort beim Umgang mit Anwendungen).";
App::$strings["Remove Account"] = "Konto entfernen";
App::$strings["Remove this account including all its channels"] = "Dieses Konto inklusive all seiner Kanäle löschen";
App::$strings["Affinity Slider settings updated."] = "Die Beziehungsgrad-Schieberegler-Einstellungen wurden aktualisiert.";
@@ -845,20 +862,11 @@ App::$strings["click to expand content exceeding this height"] = "Blöcke, deren
App::$strings["Grid page max height of content (in pixels)"] = "Maximale Höhe (in Pixel) des Inhalts der Netzwerkseite";
App::$strings["Name is required"] = "Name ist erforderlich";
App::$strings["Key and Secret are required"] = "Schlüssel und Geheimnis werden benötigt";
-App::$strings["Add application"] = "Anwendung hinzufügen";
-App::$strings["Name of application"] = "Name der Anwendung";
App::$strings["Consumer Key"] = "Consumer Key";
-App::$strings["Automatically generated - change if desired. Max length 20"] = "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20";
-App::$strings["Consumer Secret"] = "Consumer Secret";
-App::$strings["Redirect"] = "Umleitung";
-App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "Umleitungs-URl – lasse das leer, solange Deine Anwendung es nicht explizit erfordert";
App::$strings["Icon url"] = "Symbol-URL";
App::$strings["Optional"] = "Optional";
App::$strings["Application not found."] = "Die Anwendung wurde nicht gefunden.";
App::$strings["Connected Apps"] = "Verbundene Apps";
-App::$strings["Client key starts with"] = "Client Key beginnt mit";
-App::$strings["No name"] = "Kein Name";
-App::$strings["Remove authorization"] = "Authorisierung aufheben";
App::$strings["View Photo"] = "Foto ansehen";
App::$strings["Edit Album"] = "Album bearbeiten";
App::$strings["Upload"] = "Hochladen";
@@ -880,7 +888,7 @@ App::$strings["Permissions"] = "Berechtigungen";
App::$strings["Add Thing to your Profile"] = "Die Sache Deinem Profil hinzufügen";
App::$strings["No more system notifications."] = "Keine System-Benachrichtigungen mehr.";
App::$strings["System Notifications"] = "System-Benachrichtigungen";
-App::$strings["Channel added."] = "Kanal hinzugefügt.";
+App::$strings["Connection added."] = "Verbindung hinzugefügt";
App::$strings["Your service plan only allows %d channels."] = "Dein Vertrag erlaubt nur %d Kanäle.";
App::$strings["No channel. Import failed."] = "Kein Kanal. Import fehlgeschlagen.";
App::$strings["Import completed."] = "Import abgeschlossen.";
@@ -915,19 +923,22 @@ App::$strings["Create new app"] = "Neue App erstellen";
App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s ist %2\$s";
App::$strings["Mood"] = "Laune";
App::$strings["Set your current mood and tell your friends"] = "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden";
+App::$strings["Active"] = "Aktiv";
App::$strings["Blocked"] = "Blockiert";
App::$strings["Ignored"] = "Ignoriert";
App::$strings["Hidden"] = "Versteckt";
App::$strings["Archived/Unreachable"] = "Archiviert/Unerreichbar";
App::$strings["New"] = "Neu";
App::$strings["All"] = "Alle";
+App::$strings["Active Connections"] = "Aktive Verbindungen";
+App::$strings["Show active connections"] = "Zeige die aktiven Verbindungen an";
App::$strings["New Connections"] = "Neue Verbindungen";
App::$strings["Show pending (new) connections"] = "Ausstehende (neue) Verbindungsanfragen anzeigen";
-App::$strings["Show all connections"] = "Alle Verbindungen anzeigen";
App::$strings["Only show blocked connections"] = "Nur blockierte Verbindungen anzeigen";
App::$strings["Only show ignored connections"] = "Nur ignorierte Verbindungen anzeigen";
App::$strings["Only show archived/unreachable connections"] = "Nur archivierte/unerreichbare Verbindungen anzeigen";
App::$strings["Only show hidden connections"] = "Nur versteckte Verbindungen anzeigen";
+App::$strings["Show all connections"] = "Alle Verbindungen anzeigen";
App::$strings["Pending approval"] = "Wartet auf Genehmigung";
App::$strings["Archived"] = "Archiviert";
App::$strings["Not connected at this location"] = "An diesem Ort nicht verbunden";
@@ -969,10 +980,10 @@ App::$strings["Upload Photos"] = "Fotos hochladen";
App::$strings["Enter an album name"] = "Namen für ein neues Album eingeben";
App::$strings["or select an existing album (doubleclick)"] = "oder ein bereits vorhandenes auswählen (Doppelklick)";
App::$strings["Create a status post for this upload"] = "Einen Statusbeitrag für diesen Upload erzeugen";
-App::$strings["Caption (optional):"] = "Beschriftung (optional):";
-App::$strings["Description (optional):"] = "Beschreibung (optional):";
+App::$strings["Description (optional)"] = "Beschreibung (optional)";
App::$strings["Show Newest First"] = "Neueste zuerst anzeigen";
App::$strings["Show Oldest First"] = "Älteste zuerst anzeigen";
+App::$strings["Add Photos"] = "Fotos hinzufügen";
App::$strings["Permission denied. Access to this item may be restricted."] = "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden.";
App::$strings["Photo not available"] = "Foto nicht verfügbar";
App::$strings["Use as profile photo"] = "Als Profilfoto verwenden";
@@ -985,7 +996,6 @@ App::$strings["Rotate CCW (left)"] = "Drehen gegen UZS (links)";
App::$strings["Move photo to album"] = "Foto in Album verschieben";
App::$strings["Enter a new album name"] = "Gib einen Namen für ein neues Album ein";
App::$strings["or select an existing one (doubleclick)"] = "oder wähle ein bereits vorhandenes aus (Doppelklick)";
-App::$strings["Caption"] = "Bildunterschrift";
App::$strings["Add a Tag"] = "Schlagwort hinzufügen";
App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Beispiele: @ben, @Karl_Prester, @lieschen@example.com";
App::$strings["Flag as adult in album view"] = "In der Albumansicht als nicht jugendfrei markieren";
@@ -1260,6 +1270,10 @@ App::$strings["Warning: Changing some settings could render your channel inopera
App::$strings["If enabled, connection requests will be approved without your interaction"] = "Ist dies aktiviert, werden Verbindungsanfragen ohne Deine aktive Zustimmung bestätigt.";
App::$strings["Automatic approval settings"] = "Einstellungen für automatische Bestätigung";
App::$strings["Some individual permissions may have been preset or locked based on your channel type and privacy settings."] = "Einige individuelle Berechtigungen können basierend auf Deinen Kanal- und Privatsphäre-Einstellungen vorbelegt oder gesperrt sein.";
+App::$strings["Unknown App"] = "Unbekannte Anwendung";
+App::$strings["Authorize"] = "Berechtigen";
+App::$strings["Do you authorize the app %s to access your channel data?"] = "Willst du die Anwendung %s dazu berechtigen auf die Daten deines Kanals zuzugreifen?";
+App::$strings["Allow"] = "Erlauben";
App::$strings["Privacy group created."] = "Gruppe wurde erstellt.";
App::$strings["Could not create privacy group."] = "Gruppe konnte nicht erstellt werden.";
App::$strings["Privacy group not found."] = "Gruppe nicht gefunden.";
@@ -1304,7 +1318,7 @@ App::$strings["Clone this profile"] = "Dieses Profil klonen";
App::$strings["Delete this profile"] = "Dieses Profil löschen";
App::$strings["Add profile things"] = "Sachen zum Profil hinzufügen";
App::$strings["Personal"] = "Persönlich";
-App::$strings["Relation"] = "Beziehung";
+App::$strings["Relationship"] = "Beziehung";
App::$strings["Miscellaneous"] = "Verschiedenes";
App::$strings["Import profile from file"] = "Profil aus einer Datei importieren";
App::$strings["Export profile to file"] = "Profil in eine Datei exportieren";
@@ -1367,6 +1381,7 @@ App::$strings["Make Default"] = "Zum Standard machen";
App::$strings["%d new messages"] = "%d neue Nachrichten";
App::$strings["%d new introductions"] = "%d neue Vorstellungen";
App::$strings["Delegated Channel"] = "Delegierte Kanäle";
+App::$strings["Cards"] = "Karten";
App::$strings["Add Card"] = "Karte hinzufügen";
App::$strings["This directory server requires an access token"] = "Dieser Verzeichnisserver benötigt einen Zugriffstoken";
App::$strings["About this site"] = "Über diese Seite";
@@ -1457,6 +1472,7 @@ App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %
App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s nimmt vielleicht an %2\$ss %3\$s teil";
App::$strings["Action completed."] = "Aktion durchgeführt.";
App::$strings["Thank you."] = "Vielen Dank.";
+App::$strings["No default suggestions were found."] = "Es wurden keine Standard Vorschläge gefunden.";
App::$strings["%d rating"] = array(
0 => "%d Bewertung",
1 => "%d Bewertungen",
@@ -1543,7 +1559,6 @@ App::$strings["Please indicate acceptance of the Terms of Service. Registration
App::$strings["Passwords do not match."] = "Passwörter stimmen nicht überein.";
App::$strings["Registration successful. Continue to create your first channel..."] = "Registrierung erfolgreich. Fahre fort, indem Du Deinen ersten Kanal anlegst...";
App::$strings["Registration successful. Please check your email for validation instructions."] = "Registrierung erfolgreich. Eine E-Mail mit weiteren Anweisungen wurde an Dich gesendet.";
-App::$strings["Registration successful. Continue to create your first channel..."] = "Registrierung erfolgreich. Fahre fort, indem Du Deinen ersten Kanal anlegst...";
App::$strings["Your registration is pending approval by the site owner."] = "Deine Registrierung muss noch vom Betreiber der Seite freigegeben werden.";
App::$strings["Your registration can not be processed."] = "Deine Registrierung konnte nicht verarbeitet werden.";
App::$strings["Registration on this hub is disabled."] = "Die Registrierung auf diesem Hub ist nicht möglich.";
@@ -1729,44 +1744,44 @@ App::$strings["To stop receiving these messages, please adjust your Notification
App::$strings["To stop receiving these messages, please adjust your %s."] = "Um diese Nachrichten nicht mehr zu erhalten, passe bitte Deine %s an.";
App::$strings["%s <!item_type!>"] = "%s <!item_type!>";
App::$strings["[\$Projectname:Notify] New mail received at %s"] = "[\$Projectname:Benachrichtigung] Neue Mail empfangen auf %s";
-App::$strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s hat Dir eine private Nachricht auf %3\$s gesendet.";
+App::$strings["%1\$s sent you a new private message at %2\$s."] = "%1\$shat dir auf %2\$seine private Nachricht geschickt.";
App::$strings["%1\$s sent you %2\$s."] = "%1\$s hat Dir %2\$s geschickt.";
App::$strings["a private message"] = "eine private Nachricht";
App::$strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um die private Nachricht anzusehen und/oder darauf zu antworten.";
App::$strings["commented on"] = "kommentierte";
App::$strings["liked"] = "gefiel";
App::$strings["disliked"] = "missfiel";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]a %5\$s[/zrl]"] = "%1\$s, %2\$s %3\$s [zrl=%4\$s]ein %5\$s[/zrl]";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]%5\$s's %6\$s[/zrl]"] = "%1\$s, %2\$s %3\$s [zrl=%4\$s]%5\$s's %6\$s[/zrl]";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]your %5\$s[/zrl]"] = "%1\$s, %2\$s %3\$s [zrl=%4\$s]Dein %5\$s[/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s %2\$s [zrl=%3\$s]ein %4\$s[/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s %2\$s [zrl=%3\$s]%4\$s's %5\$s[/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s %2\$s [zrl=%3\$s]dein %4\$s[/zrl]";
App::$strings["[\$Projectname:Notify] Moderated Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Benachrichtigung] Moderierter Kommantar in Unterhaltung #%1\$d von %2\$s";
App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Benachrichtigung] Kommentar in Unterhaltung #%1\$d von %2\$s";
-App::$strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s hat eine Unterhaltung kommentiert, der Du folgst.";
+App::$strings["%1\$s commented on an item/conversation you have been following."] = "%1\$shat einen Beitrag/eine Konversation kommentiert dem/der du folgst.";
App::$strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Unterhaltung anzusehen und/oder zu kommentieren.";
App::$strings["Please visit %s to approve or reject this comment."] = "Bitte besuche %s, um diesen Kommentar anzunehmen oder abzulehnen.";
-App::$strings["%1\$s, %2\$s liked [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s gefällt [zrl=%3\$s]dein %4\$s[/zrl]";
+App::$strings["%1\$s liked [zrl=%2\$s]your %3\$s[/zrl]"] = "%1\$s mag [zrl=%2\$s]dein %3\$s[/zrl]";
App::$strings["[\$Projectname:Notify] Like received to conversation #%1\$d by %2\$s"] = "[\$Projectname:Benachrichtigung] Gefällt mir in Unterhaltung #%1\$d von %2\$s erhalten";
-App::$strings["%1\$s, %2\$s liked an item/conversation you created."] = "%1\$s, %2\$s gefällt ein Beitrag oder eine Unterhaltung von Dir";
+App::$strings["%1\$s liked an item/conversation you created."] = "%1\$sgefällt ein Beitrag/eine Unterhaltung von dir.";
App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Benachrichtigung] %s schrieb auf Deine Pinnwand";
-App::$strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s hat auf Deine Pinnwand auf %3\$s geschrieben";
-App::$strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s hat auf [zrl=%3\$s]Deine Pinnwand[/zrl] geschrieben";
+App::$strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$shat etwas auf deiner Profilwand auf %2\$sveröffentlicht";
+App::$strings["%1\$s posted to [zrl=%2\$s]your wall[/zrl]"] = "%1\$s schrieb auf [zrl=%2\$s]Deine Pinnwand[/zrl]";
App::$strings["[\$Projectname:Notify] %s tagged you"] = "[\$Projectname:Benachrichtigung] %s hat Dich erwähnt";
-App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s hat Dich auf %3\$s erwähnt";
-App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]hat Dich erwähnt[/zrl].";
+App::$strings["%1\$s tagged you at %2\$s"] = "%1\$s hat dich auf %2\$s getaggt";
+App::$strings["%1\$s [zrl=%2\$s]tagged you[/zrl]."] = "%1\$s hat [zrl=%2\$s]Dich getagged[/zrl].";
App::$strings["[\$Projectname:Notify] %1\$s poked you"] = "[\$Projectname:Benachrichtigung] %1\$s hat Dich angestupst";
-App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s hat Dich auf %3\$s angestupst";
-App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]hat Dich angestupst[/zrl].";
+App::$strings["%1\$s poked you at %2\$s"] = "%1\$s hat dich auf %2\$s angestupst";
+App::$strings["%1\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s [zrl=%2\$s]hat dich angestupst.[/zrl].";
App::$strings["[\$Projectname:Notify] %s tagged your post"] = "[\$Projectname:Benachrichtigung] %s hat Deinen Beitrag verschlagwortet";
-App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s hat Deinen Beitrag auf %3\$s verschlagwortet";
-App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]Deinen Beitrag[/zrl] verschlagwortet";
+App::$strings["%1\$s tagged your post at %2\$s"] = "%1\$s hat Deinen Beitrag auf %2\$s getagged";
+App::$strings["%1\$s tagged [zrl=%2\$s]your post[/zrl]"] = "%1\$s hat [zrl=%2\$s]Deinen Beitrag[/zrl] getagged";
App::$strings["[\$Projectname:Notify] Introduction received"] = "[\$Projectname:Benachrichtigung] Verbindungsanfrage erhalten";
-App::$strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, Du hast eine neue Verbindungsanfrage von '%2\$s' auf %3\$s erhalten";
-App::$strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, Du hast [zrl=%2\$s]eine neue Verbindungsanfrage[/zrl] von %3\$s erhalten.";
+App::$strings["You've received an new connection request from '%1\$s' at %2\$s"] = "Du hast auf %2\$s eine neue Verbindung von %1\$s erhalten.";
+App::$strings["You've received [zrl=%1\$s]a new connection request[/zrl] from %2\$s."] = "Du hast [zrl=%1\$s]eine neue Verbindungsanfrage[/zrl] von %2\$s erhalten.";
App::$strings["You may visit their profile at %s"] = "Du kannst Dir das Profil unter %s ansehen";
App::$strings["Please visit %s to approve or reject the connection request."] = "Bitte besuche %s , um die Verbindungsanfrage anzunehmen oder abzulehnen.";
App::$strings["[\$Projectname:Notify] Friend suggestion received"] = "[\$Projectname:Benachrichtigung] Freundschaftsvorschlag erhalten";
-App::$strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, Du hast einen Kontaktvorschlag von „%2\$s“ auf %3\$s erhalten";
-App::$strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, Du hast [zrl=%2\$s]einen Kontaktvorschlag[/zrl] für %3\$s von %4\$s erhalten.";
+App::$strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Du hast einen Freundschaftsvorschlag von %1\$s auf %2\$s erhalten";
+App::$strings["You've received [zrl=%1\$s]a friend suggestion[/zrl] for %2\$s from %3\$s."] = "Du hast einen [zrl=%1\$s]Freundschaftsvorschlag[/zrl] für %2\$s von %3\$s erhalten.";
App::$strings["Name:"] = "Name:";
App::$strings["Photo:"] = "Foto:";
App::$strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen.";
@@ -1842,6 +1857,7 @@ App::$strings["Schedule Inbox"] = "Posteingang für überwachte Kalender";
App::$strings["Schedule Outbox"] = "Postausgang für überwachte Kalender";
App::$strings["Total"] = "Summe";
App::$strings["Shared"] = "Geteilt";
+App::$strings["Add Files"] = "Dateien hinzufügen";
App::$strings["You are using %1\$s of your available file storage."] = "Sie verwenden %1\$s von Ihrem verfügbaren Dateispeicher.";
App::$strings["You are using %1\$s of %2\$s available file storage. (%3\$s&#37;)"] = "Sie verwenden %1\$s von %2\$s verfügbarem Dateispeicher. (%3\$s&#37;)";
App::$strings["WARNING:"] = "WARNUNG:";
@@ -1913,17 +1929,19 @@ App::$strings["Suggestions"] = "Vorschläge";
App::$strings["See more..."] = "Mehr anzeigen …";
App::$strings["Saved Folders"] = "Gespeicherte Ordner";
App::$strings["Click to show more"] = "Klick, um mehr anzuzeigen";
+App::$strings["Tags"] = "Schlagwörter";
App::$strings["Profile Creation"] = "Profilerstellung";
App::$strings["Upload profile photo"] = "Profilfoto hochladen";
App::$strings["Upload cover photo"] = "Titelbild hochladen";
App::$strings["Edit your profile"] = "Profil bearbeiten";
App::$strings["Find and Connect with others"] = "Finden und Verbinden von/mit Anderen";
+App::$strings["View the directory"] = "Verzeichnis anzeigen";
App::$strings["Manage your connections"] = "Deine Verbindungen verwalten";
App::$strings["Communicate"] = "Kommunizieren";
App::$strings["View your channel homepage"] = "Deine Kanal-Startseite ansehen";
App::$strings["View your network stream"] = "Deine Netzwerk-Aktivitäten ansehen";
App::$strings["Documentation"] = "Dokumentation";
-App::$strings["View public stream. Warning: not moderated"] = "Öffentliche Beitragsaktivitäten ansehen. Warnung: Diese Inhalte sind nicht moderiert.";
+App::$strings["View public stream"] = "Zeige öffentlichen Beitrags-Stream";
App::$strings["New Member Links"] = "Links für neue Mitglieder";
App::$strings["Member registrations waiting for confirmation"] = "Nutzer-Anmeldungen, die auf Bestätigung warten";
App::$strings["Inspect queue"] = "Warteschlange kontrollieren";
@@ -1937,7 +1955,8 @@ App::$strings["Addon settings"] = "Addon-Einstellungen";
App::$strings["Display settings"] = "Anzeige-Einstellungen";
App::$strings["Manage locations"] = "Klon-Adressen verwalten";
App::$strings["Export channel"] = "Kanal exportieren";
-App::$strings["Connected apps"] = "Verbundene Apps";
+App::$strings["OAuth1 apps"] = "OAuth1 Anwendungen";
+App::$strings["OAuth2 apps"] = "OAuth2 Anwendungen";
App::$strings["Permission Groups"] = "Berechtigungsrollen";
App::$strings["Premium Channel Settings"] = "Premium-Kanal-Einstellungen";
App::$strings["Bookmarked Chatrooms"] = "Gespeicherte Chatrooms";
@@ -1983,6 +2002,7 @@ App::$strings["Website SSL certificate is not valid. Please correct."] = "Das SS
App::$strings["[\$Projectname] Cron tasks not running on %s"] = "[\$Projectname] Cron-Jobs laufen nicht auf %s";
App::$strings["Cron/Scheduled tasks not running."] = "Cron-Aufgaben laufen nicht.";
App::$strings["never"] = "Nie";
+App::$strings["Cover Photo"] = "Cover Foto";
App::$strings["Focus (Hubzilla default)"] = "Focus (Voreinstellung für Hubzilla)";
App::$strings["Theme settings"] = "Design-Einstellungen";
App::$strings["Narrow navbar"] = "Schmale Navigationsleiste";
@@ -2032,6 +2052,7 @@ App::$strings["Reminder note"] = "Erinnerungshinweis";
App::$strings["Enter a note to be displayed when you are within the specified proximity..."] = "Gib eine Nachricht ein, die angezeigt werden soll, wenn Du Dich in der festgelegten Nähe befindest...";
App::$strings["Add new rendezvous"] = "Neues Rendezvous hinzufügen";
App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Erstelle ein neues Rendezvous und teile den Zugriffslink mit allen, die Du in die Gruppe einladen möchtest. Die, die den Link öffnen, werden Mitglieder des Rendezvous. Sie können die Standorte der anderen Mitglieder sehen, Marker zur Karte hinzufügen oder ihre eigenen Standorte mit der Gruppe teilen.";
+App::$strings["You have no rendezvous. Press the button above to create a rendezvous!"] = "Du hast kein Rendezvous. Drücke den Knopf oben, um ein Rendezvous zu erstellen!";
App::$strings["Some setting"] = "Einige Einstellungen";
App::$strings["A setting"] = "Eine Einstellung";
App::$strings["Skeleton Settings"] = "Skeleton Einstellungen";
@@ -2065,7 +2086,7 @@ App::$strings["Preferred IDs Message"] = "Nachricht für bevorzugte IDs";
App::$strings["Message to display above preferred results."] = "Nachricht, die über den Ergebnissen mit den bevorzugten IDs angezeigt werden soll.";
App::$strings["Uploaded by: "] = "Hochgeladen von: ";
App::$strings["Drawn by: "] = "Gezeichnet von: ";
-App::$strings["Use this image"] = "";
+App::$strings["Use this image"] = "Dieses Bild verwenden";
App::$strings["Or select from a free OpenClipart.org image:"] = "Oder wähle ein freies Bild von OpenClipart.org:";
App::$strings["Search Term"] = "Suchbegriff";
App::$strings["Unknown error. Please try again later."] = "Unbekannter Fehler. Bitte versuchen Sie es später erneut.";
@@ -2106,7 +2127,7 @@ App::$strings["Dreamwidth username"] = "Dreamwidth-Benutzername";
App::$strings["Dreamwidth password"] = "Dreamwidth-Passwort";
App::$strings["Post to Dreamwidth by default"] = "Standardmäßig auf auf Dreamwidth posten";
App::$strings["Dreamwidth Post Settings"] = "Dreamwidth-Beitragseinstellungen";
-App::$strings["New registration"] = "";
+App::$strings["New registration"] = "Neue Registrierung";
App::$strings["Message sent to %s. New account registration: %s"] = "Nachricht gesendet an %s. Neue Kontoregistrierung: %s";
App::$strings["Hubzilla Directory Stats"] = "Hubzilla-Verzeichnisstatistiken";
App::$strings["Total Hubs"] = "Hubs insgesamt";
@@ -2239,21 +2260,21 @@ App::$strings["generic profile image"] = "generisches Profilbild";
App::$strings["random geometric pattern"] = "zufälliges geometrisches Muster";
App::$strings["monster face"] = "Monstergesicht";
App::$strings["computer generated face"] = "computergeneriertes Gesicht";
-App::$strings["retro arcade style face"] = "";
+App::$strings["retro arcade style face"] = "Gesicht im Retro-Arcade Stil";
App::$strings["Hub default profile photo"] = "Standard-Profilfoto für diesen Hub";
App::$strings["Information"] = "Information";
-App::$strings["Libravatar addon is installed, too. Please disable Libravatar addon or this Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar."] = "";
+App::$strings["Libravatar addon is installed, too. Please disable Libravatar addon or this Gravatar addon.<br>The Libravatar addon will fall back to Gravatar if nothing was found at Libravatar."] = "Das Libravatar Addon ist ebenfalls installiert. Bitte deaktiviere entweder das Libreavatar oder das Gravatar Addon.<br>Das Libravatar Addon verwendet als Notfalllösung Gravatar, sollte bei Libravatar kein Profilbild gefunden werden.";
App::$strings["Save Settings"] = "Einstellungen speichern";
App::$strings["Default avatar image"] = "Standard-Avatarbild";
-App::$strings["Select default avatar image if none was found at Gravatar. See README"] = "";
+App::$strings["Select default avatar image if none was found at Gravatar. See README"] = "Wähle das Standardprofilbild aus, sollte bei Gravatar keines gefunden werden. Beachte auch die README.";
App::$strings["Rating of images"] = "Bewertungen der Bilder";
-App::$strings["Select the appropriate avatar rating for your site. See README"] = "";
+App::$strings["Select the appropriate avatar rating for your site. See README"] = "Wähle die für deine Seite angemessene Profilbildeinstufung. Beachte auch die README.";
App::$strings["Gravatar settings updated."] = "Gravatar-Einstellungen aktualisiert.";
App::$strings["Hubzilla File Storage Import"] = "Hubzilla-Datenspeicher-Import";
App::$strings["This will import all your cloud files from another server."] = "Hiermit werden alle Deine Cloud-Dateien von einem anderen Server importiert.";
App::$strings["Hubzilla Server base URL"] = "Basis-URL des Habzilla-Servers";
-App::$strings["Since modified date yyyy-mm-dd"] = "";
-App::$strings["Until modified date yyyy-mm-dd"] = "";
+App::$strings["Since modified date yyyy-mm-dd"] = "Seit Modifizierungsdatum yyyy-mm-dd";
+App::$strings["Until modified date yyyy-mm-dd"] = "Bis Modifizierungsdatum yyyy-mm-dd";
App::$strings["Recent Channel/Profile Viewers"] = "Kürzliche Kanal/Profil Besucher";
App::$strings["This plugin/addon has not been configured."] = "Dieses Plugin/Addon wurde noch nicht konfiguriert.";
App::$strings["Please visit the Visage settings on %s"] = "Bitte rufe die Visage Einstellungen auf %s auf";
@@ -2281,6 +2302,12 @@ App::$strings["The default zoom level. (1:world, 18:highest, also depends on til
App::$strings["Include marker on map"] = "Markierung auf der Karte einschließen";
App::$strings["Include a marker on the map."] = "Binde eine Markierung auf der Karte ein.";
App::$strings["text to include in all outgoing posts from this site"] = "Test der in alle Beiträge angefügt werden soll, die von dieser Seite ausgehen";
+App::$strings["Fuzzloc Settings updated."] = "Fuzzloc-Einstellungen aktualisiert.";
+App::$strings["Fuzzloc allows you to blur your precise location if your channel uses browser location mapping."] = "Fuzzloc erlaubt es Dir, deinen genauen Standort etwas diffuser zu machen (nicht so exakt wie ermittelt), wenn Dein Kanal die Lokalisierungsfunktion des Browsers verwendet.";
+App::$strings["Enable Fuzzloc Plugin"] = "Aktiviere das Fuzzloc-Plugin";
+App::$strings["Minimum offset in meters"] = "Minimale Verschiebung in Metern";
+App::$strings["Maximum offset in meters"] = "Maximale Verschiebung in Metern";
+App::$strings["Fuzzloc Settings"] = "Fuzzloc-Einstellungen";
App::$strings["Post to Friendica"] = "Bei Friendica veröffentlichen";
App::$strings["rtof Settings saved."] = "rtof-Einstellungen gespeichert.";
App::$strings["Allow posting to Friendica"] = "Erlaube die Veröffentlichung bei Friendica";
@@ -2305,7 +2332,7 @@ App::$strings["Configuration Help"] = "Konfigurationshilfe";
App::$strings["Jappix Mini Settings"] = "Jappix Mini Einstellungen";
App::$strings["Currently blocked"] = "Derzeit blockiert";
App::$strings["No channels currently blocked"] = "Momentan sind keine Kanäle blockiert";
-App::$strings["\"Superblock\" Settings"] = "\"Superblock\"-Einstellungen";
+App::$strings["Superblock Settings"] = "Superblock Einstellungen";
App::$strings["Block Completely"] = "Vollständig blockieren";
App::$strings["superblock settings updated"] = "Superblock Einstellungen aktualisiert";
App::$strings["Federate"] = "Beitrag verteilen";
@@ -2313,11 +2340,11 @@ App::$strings["nofed Settings saved."] = "nofed Einstellungen gespeichert";
App::$strings["Allow Federation Toggle"] = "Umschalter zur Beitragsverteilung bereitstellen";
App::$strings["Federate posts by default"] = "Beiträge standardmäßig verteilen";
App::$strings["NoFed Settings"] = "NoFed-Einstellungen";
-App::$strings["Post to Red"] = "";
+App::$strings["Post to Red"] = "Beitrag bei Red veröffentlichen";
App::$strings["Channel is required."] = "Kanal ist erforderlich.";
App::$strings["redred Settings saved."] = "redred-Einstellungen gespeichert.";
App::$strings["Allow posting to another Hubzilla Channel"] = "Erlaube die Veröffentlichung in anderen Hubzilla Kanälen";
-App::$strings["Send public postings to Hubzilla channel by default"] = "";
+App::$strings["Send public postings to Hubzilla channel by default"] = "Sende öffentliche Beiträge standardmäßig an den Hubzilla Kanal";
App::$strings["Hubzilla API Path"] = "Hubzilla-API-Pfad";
App::$strings["Hubzilla login name"] = "Hubzilla-Anmeldename";
App::$strings["Hubzilla channel name"] = "Hubzilla-Kanalname";
@@ -2333,7 +2360,7 @@ App::$strings["Friendica Login Username"] = "Friendica-Anmeldebenutzername";
App::$strings["Friendica Login Password"] = "Friendica-Anmeldepasswort";
App::$strings["ActivityPub"] = "ActivityPub";
App::$strings["ActivityPub Protocol Settings updated."] = "ActivityPub Protokoll Einstellungen aktualisiert";
-App::$strings["The ActivityPub protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "";
+App::$strings["The ActivityPub protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "Das ActivityPub-Protokoll unterstützt keine Server-unabhängigen Identitäten. Verbindungen, die Du mit diesem Netzwerk eingehst, können von anderen Orten (Klonen) dieses Kanals aus unerreichbar sein.";
App::$strings["Enable the ActivityPub protocol for this channel"] = "Aktiviere das ActivityPub Protokoll für diesen Kanal";
App::$strings["Send multi-media HTML articles"] = "Multimedia HTML Artikel versenden";
App::$strings["Not supported by some microblog services such as Mastodon"] = "Wird von einigen Microblogging-Plattformen wie Mastodon nicht unterstützt";
@@ -2389,22 +2416,22 @@ App::$strings["Please contact your site administrator.<br />The provided API URL
App::$strings["We could not contact the GNU social API with the Path you entered."] = "Mit dem angegebenen Pfad war es uns nicht möglich, die GNU social API zu erreichen.";
App::$strings["GNU social settings updated."] = "GNU social Einstellungen aktualisiert.";
App::$strings["Globally Available GNU social OAuthKeys"] = "Global verfügbare GNU social OAuthKeys";
-App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.<br />If not feel free to connect to any other GNU social instance (see below)."] = "";
-App::$strings["Provide your own OAuth Credentials"] = "";
-App::$strings["No consumer key pair for GNU social found. Register your Hubzilla Account as an desktop client on your GNU social account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Hubzilla installation at your favourite GNU social installation."] = "";
+App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.<br />If not feel free to connect to any other GNU social instance (see below)."] = "Für einige GNU social Server sind voreingestellte OAuth Schlüsselpaare verfügbar. Solltest du einen dieser Server benutzen, dann verwende bitte diese Schlüssel. <br />Falls nicht, stelle stattdessen eine Verbindung zu irgend einem anderen GNU social Server her (siehe unten).";
+App::$strings["Provide your own OAuth Credentials"] = "Stelle deine eigenen OAuth Credentials zur Verfügung";
+App::$strings["No consumer key pair for GNU social found. Register your Hubzilla Account as an desktop client on your GNU social account, copy the consumer key pair here and enter the API base root.<br />Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Hubzilla installation at your favourite GNU social installation."] = "Kein Consumer-Schlüsselpaar für GNU social gefunden. Registriere deinen Hubzilla-Account als Desktop-Client bei deinem GNU social Account, kopiere das Consumer-Schlüsselpaar hierher und gib die API-URL ein.<br />Bevor du dein eigenes Consumer-Schlüsselpaar registrierst, frage den Administrator dieses Hubzilla-Servers, ob schon ein Schlüsselpaar für diesen Hubzilla-Server auf diesem GNU social-Server existiert.";
App::$strings["OAuth Consumer Key"] = "OAuth Consumer Key";
App::$strings["OAuth Consumer Secret"] = "OAuth Consumer Secret";
App::$strings["Base API Path"] = "Basis Pfad der API";
App::$strings["Remember the trailing /"] = "Denke an das abschließende /";
App::$strings["GNU social application name"] = "GNU social Anwendungsname";
-App::$strings["To connect to your GNU social account click the button below to get a security code from GNU social which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to GNU social."] = "";
+App::$strings["To connect to your GNU social account click the button below to get a security code from GNU social which you have to copy into the input box below and submit the form. Only your <strong>public</strong> posts will be posted to GNU social."] = "Um dich mit deinem GNU social Konto zu verbinden, klicke den Button unten und kopiere dann den Sicherheitscode von GNU social in das Formular weiter unten. Es werden ausschließlich deine <strong>öffentlichen</strong> Beiträge auf GNU social veröffentlicht.";
App::$strings["Log in with GNU social"] = "Mit GNU social anmelden";
App::$strings["Copy the security code from GNU social here"] = "Kopiere den Sicherheitscode von GNU social hier her";
App::$strings["Cancel Connection Process"] = "Verbindungsprozes abbrechen";
App::$strings["Current GNU social API is"] = "Aktuelle GNU social API ist";
App::$strings["Cancel GNU social Connection"] = "GNU social Verbindung trennen";
App::$strings["Currently connected to: "] = "Momentan verbunden mit:";
-App::$strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "";
+App::$strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Hinweis:</strong> Entsprechend Deiner Privatsphären-Einstellungen (<em>Profil-Details vor nicht angemeldeten Besuchern verbergen?</em>) kann ein ggf. zu GNU social geteilter Link in öffentlichen Beiträgen Besucher auf eine leere Seite führen, die darüber informiert, dass der Zugriff zu Deinem Profil eingeschränkt ist.";
App::$strings["Allow posting to GNU social"] = "Erlaube die Veröffentlichung bei GNU social";
App::$strings["If enabled your public postings can be posted to the associated GNU-social account"] = "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen GNU social Konto veröffentlicht werden.";
App::$strings["Post to GNU social by default"] = "Standardmäßig bei GNU social veröffentlichen";
@@ -2420,7 +2447,7 @@ App::$strings["Invalid game."] = "Ungültiges Spiel.";
App::$strings["You are not a player in this game."] = "Sie sind kein Spieler in diesem Spiel.";
App::$strings["You must be a local channel to create a game."] = "Um ein Spiel zu eröffnen, musst du ein lokaler Kanal sein";
App::$strings["You must select one opponent that is not yourself."] = "Du musst einen Gegner wählen, der nicht du selbst ist";
-App::$strings["Random color chosen."] = "";
+App::$strings["Random color chosen."] = "Zufällige Farbe gewählt.";
App::$strings["Error creating new game."] = "Fehler beim Erstellen eines neuen Spiels.";
App::$strings["Requested channel is not available."] = "Angeforderter Kanal nicht verfügbar.";
App::$strings["You must select a local channel /chess/channelname"] = "Du musst einen lokalen Kanal/Schach(Kanalnamen aufwählen";
@@ -2434,14 +2461,32 @@ App::$strings["Copy the PIN from Twitter here"] = "PIN von Twitter hier her kopi
App::$strings["<strong>Note:</strong> Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Hinweis:</strong> Entsprechend Deiner Privatsphären-Einstellungen (<em>Profil-Details vor nicht angemeldeten Besuchern verbergen?</em>) kann ein ggf. zu Twitter geteilter Link Besucher auf eine leere Seite führen, die darüber informiert, dass der Zugriff zu Deinem Profil eingeschränkt ist.";
App::$strings["Allow posting to Twitter"] = "Erlaube die Veröffentlichung bei Twitter";
App::$strings["If enabled your public postings can be posted to the associated Twitter account"] = "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen Twitter Konto veröffentlicht werden.";
-App::$strings["Twitter post length"] = "";
-App::$strings["Maximum tweet length"] = "";
+App::$strings["Twitter post length"] = "Länge von Twitter Beiträgen";
+App::$strings["Maximum tweet length"] = "Maximale Länge eines Tweets";
App::$strings["Send public postings to Twitter by default"] = "Standardmäßig öffentliche Beiträge bei Twitter veröffentlichen";
App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "Wenn aktiv werden deine öffentlichen Beiträge bei dem verbundenen Twitter Konto veröffentlicht werden.";
App::$strings["Twitter Post Settings"] = "Twitter-Beitragseinstellungen";
App::$strings["Deactivate the feature"] = "Diese Funktion abschalten";
App::$strings["Hide the button and show the smilies directly."] = "Verstecke die Schaltfläche und zeige die Smilies direkt an.";
App::$strings["Smileybutton Settings"] = "Smileyknopf-Einstellungen";
+App::$strings["Order Not Found"] = "Bestellung nicht gefunden";
+App::$strings["Order cannot be checked out."] = "Bestellvorgang kann nicht fortgesetzt werden.";
+App::$strings["Enable Shopping Cart"] = "Aktiviere die Warenkorb-Funktion.";
+App::$strings["Enable Test Catalog"] = "Aktiviere den Test-Warenbestand";
+App::$strings["Enable Manual Payments"] = "Aktiviere manuelle Zahlungen";
+App::$strings["Base Cart Settings"] = "Warenkorb-Grundeinstellungen";
+App::$strings["Add Item"] = "Füge den Artikel hinzu";
+App::$strings["Call cart_post_"] = "";
+App::$strings["Cart Not Enabled (profile: "] = "";
+App::$strings["Order not found."] = "Bestellung nicht gefunden.";
+App::$strings["No Order Found"] = "Keine Bestellung gefunden";
+App::$strings["call: "] = "";
+App::$strings["An unknown error has occurred Please start again."] = "Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal.";
+App::$strings["Invalid Payment Type. Please start again."] = "Unbekannte Zahlungsmethode. Bitte versuche es noch einmal.";
+App::$strings["Order not found"] = "Bestellung nicht gefunden";
+App::$strings["Error: order mismatch. Please try again."] = "Fehler: Bestellungen stimmen nicht überein. Bitte versuche es noch einmal.";
+App::$strings["Manual payments are not enabled."] = "Manuelle Zahlungen sind nicht aktiviert.";
+App::$strings["Finished"] = "Fertig";
App::$strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Diese Website verwendet <a href='http://www.piwik.org'>Piwik</a>, um die Besucherzugriffe auszuwerten.";
App::$strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Wenn Du nicht möchtest, dass Deine Besuche zu diesem Zweck gespeichert werden, kannst Du <a href='%s'>ein Cookie setzen, welches Piwik davon abhält, Deine weiteren Besuche auf dieser Website zu verfolgen</a> (Opt-out).";
App::$strings["Piwik Base URL"] = "Piwik Basis-URL";
@@ -2536,10 +2581,10 @@ App::$strings["Jabber BOSH server"] = "Jabber BOSH Server";
App::$strings["XMPP Settings"] = "XMPP-Einstellungen";
App::$strings["Jabber BOSH host"] = "Jabber BOSH Host";
App::$strings["Use central userbase"] = "Zentrale Benutzerbasis verwenden";
-App::$strings["If enabled, members will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the \"auth_ejabberd.php\" script."] = "";
+App::$strings["If enabled, members will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the \"auth_ejabberd.php\" script."] = "Wenn aktiviert, werden die Mitglieder automatisch auf dem EJabber Server, der auf dieser Maschine installiert ist, angemeldet und die Zugangsdaten werden über das \"auth_ejabberd.php\"-Script synchronisiert.";
App::$strings["Who likes me?"] = "Wer mag mich?";
App::$strings["You are now authenticated to pumpio."] = "Du bist nun bei pumpio authenzifiziert.";
-App::$strings["return to the featured settings page"] = "";
+App::$strings["return to the featured settings page"] = "Zur Funktions-Einstellungsseite zurückkehren";
App::$strings["Post to Pump.io"] = "Bei pumpio veröffentlichen";
App::$strings["Pump.io servername"] = "Pump.io-Servername";
App::$strings["Without \"http://\" or \"https://\""] = "Ohne \"http://\" oder \"https://\"";
@@ -2558,7 +2603,7 @@ App::$strings["Authentication successful but rejected: account creation is disab
App::$strings["__ctx:opensearch__ Search %1\$s (%2\$s)"] = "Suche %1\$s (%2\$s)";
App::$strings["__ctx:opensearch__ \$Projectname"] = "\$Projectname";
App::$strings["Search \$Projectname"] = "\$Projectname suchen";
-App::$strings["Redmatrix File Storage Import"] = "";
+App::$strings["Redmatrix File Storage Import"] = "Import des Redmatrix Datei Speichers";
App::$strings["This will import all your Redmatrix cloud files to this channel."] = "Hiermit werden alle deine Daten aus der Redmatrix Cloud in diesen Kanal importiert.";
App::$strings["file"] = "Datei";
App::$strings["Send email to all members"] = "E-Mail an alle Mitglieder senden";
@@ -2641,7 +2686,6 @@ App::$strings["Delete Selected Items"] = "Lösche die ausgewählten Elemente";
App::$strings["View Source"] = "Quelle anzeigen";
App::$strings["Follow Thread"] = "Unterhaltung folgen";
App::$strings["Unfollow Thread"] = "Unterhaltung nicht mehr folgen";
-App::$strings["Activity/Posts"] = "Aktivitäten/Beiträge";
App::$strings["Edit Connection"] = "Verbindung bearbeiten";
App::$strings["Message"] = "Nachricht";
App::$strings["%s likes this."] = "%s gefällt das.";
@@ -2725,6 +2769,7 @@ App::$strings["Safe Mode"] = "Sicherer Modus";
App::$strings["Public Forums Only"] = "Nur öffentliche Foren";
App::$strings["This Website Only"] = "Nur dieser Hub";
App::$strings["%1\$s's bookmarks"] = "%1\$ss Lesezeichen";
+App::$strings["Unable to import a removed channel."] = "Nicht möglich, einen gelöschten Kanal zu importieren.";
App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen.";
App::$strings["Cloned channel not found. Import failed."] = "Geklonter Kanal nicht gefunden. Import fehlgeschlagen.";
App::$strings["prev"] = "vorherige";
@@ -2834,6 +2879,7 @@ App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schrieb den folg
App::$strings["Channel is blocked on this site."] = "Der Kanal ist auf dieser Seite blockiert ";
App::$strings["Channel location missing."] = "Adresse des Kanals fehlt.";
App::$strings["Response from remote channel was incomplete."] = "Antwort des entfernten Kanals war unvollständig.";
+App::$strings["Premium channel - please visit:"] = "Premium-Kanal - bitte gehe zu:";
App::$strings["Channel was deleted and no longer exists."] = "Kanal wurde gelöscht und existiert nicht mehr.";
App::$strings["Remote channel or protocol unavailable."] = "Externer Kanal oder Protokoll nicht verfügbar.";
App::$strings["Channel discovery failed."] = "Kanalsuche fehlgeschlagen";
@@ -2958,8 +3004,8 @@ App::$strings["j F, Y"] = "j. F Y";
App::$strings["j F"] = "j. F";
App::$strings["Birthday:"] = "Geburtstag:";
App::$strings["for %1\$d %2\$s"] = "seit %1\$d %2\$s";
-App::$strings["Sexual Preference:"] = "Sexuelle Orientierung:";
App::$strings["Tags:"] = "Schlagworte:";
+App::$strings["Sexual Preference:"] = "Sexuelle Orientierung:";
App::$strings["Political Views:"] = "Politische Ansichten:";
App::$strings["Religion:"] = "Religion:";
App::$strings["Hobbies/Interests:"] = "Hobbys/Interessen:";
@@ -3024,6 +3070,7 @@ App::$strings["Embedded content"] = "Eingebetteter Inhalt";
App::$strings["Embedding disabled"] = "Einbetten deaktiviert";
App::$strings["OpenWebAuth: %1\$s welcomes %2\$s"] = "OpenWebAuth: %1\$s heißt %2\$s willkommen";
App::$strings["General Features"] = "Allgemeine Funktionen";
+App::$strings["Display new member quick links menu"] = "Zeigt neuen Mitgliedern ein Menü mit Schnell-Links zu wichtigen Funktionen";
App::$strings["Advanced Profiles"] = "Erweiterte Profile";
App::$strings["Additional profile sections and selections"] = "Stellt zusätzliche Bereiche und Felder im Profil zur Verfügung";
App::$strings["Profile Import/Export"] = "Profil-Import/Export";
@@ -3057,8 +3104,10 @@ App::$strings["Enable management and selection of privacy groups"] = "Auswahl un
App::$strings["Multiple Profiles"] = "Mehrfachprofile";
App::$strings["Ability to create multiple profiles"] = "Ermöglicht das Anlegen mehrerer Profile pro Kanal";
App::$strings["Provide alternate connection permission roles."] = "Stelle benutzerdefinierte Berechtigungsrollen für Verbindungen zur Verfügung.";
-App::$strings["OAuth Clients"] = "OAuth Clients";
-App::$strings["Manage authenticatication tokens for mobile and remote apps."] = "Verwalte Tokens für den Zugriff von mobilen bzw. externen Anwendungen.";
+App::$strings["OAuth1 Clients"] = "OAuth1 Clients";
+App::$strings["Manage OAuth1 authenticatication tokens for mobile and remote apps."] = "Verwalte OAuth1-Tokens für den Zugriff von mobilen bzw. externen Anwendungen.";
+App::$strings["OAuth2 Clients"] = "OAuth2 Clients";
+App::$strings["Manage OAuth2 authenticatication tokens for mobile and remote apps."] = "Verwalte OAuth2-Tokens für den Zugriff von mobilen bzw. externen Anwendungen.";
App::$strings["Access Tokens"] = "Zugangstokens";
App::$strings["Create access tokens so that non-members can access private content."] = "Erzeuge Tokens für den Zugriff von Nicht-Mitgliedern auf private Inhalte.";
App::$strings["Post Composition Features"] = "Nachbearbeitungsfunktionen";
@@ -3077,6 +3126,8 @@ App::$strings["Content Expiration"] = "Verfall von Inhalten";
App::$strings["Remove posts/comments and/or private messages at a future time"] = "Ermöglicht das automatische Löschen von Beiträgen, Kommentaren und/oder privaten Nachrichten zu einem zukünftigen Datum.";
App::$strings["Suppress Duplicate Posts/Comments"] = "Doppelte Beiträge unterdrücken";
App::$strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Verhindert, dass innerhalb von zwei Minuten Beiträge mit identischem Inhalt veröffentlicht werden.";
+App::$strings["Auto-save drafts of posts and comments"] = "Auto-Speicherung von Beitrags- und Kommentarentwürfen";
+App::$strings["Automatically saves post and comment drafts in local browser storage to help prevent accidental loss of compositions"] = "Speichert Deine Beitrags- und Kommentarentwürfe automatisch im lokalen Browserspeicher und hilft so, versehentlichem Verlust dieser Inhalte vorzubeugen";
App::$strings["Network and Stream Filtering"] = "Netzwerk- und Stream-Filter";
App::$strings["Search by Date"] = "Suche nach Datum";
App::$strings["Ability to select posts by date ranges"] = "Möglichkeit, Beiträge nach Zeiträumen auszuwählen";
@@ -3091,7 +3142,6 @@ App::$strings["Show friend and connection suggestions"] = "Freund- und Verbindun
App::$strings["Connection Filtering"] = "Filter für Verbindungen";
App::$strings["Filter incoming posts from connections based on keywords/content"] = "Ermöglicht die Filterung eingehender Beiträge anhand von Schlüsselwörtern (muss an der Verbindung konfiguriert werden)";
App::$strings["Post/Comment Tools"] = "Beitrag-/Kommentar-Tools";
-App::$strings["Use markdown for editing posts"] = "Verwende Markdown zum Bearbeiten von Beiträgen";
App::$strings["Community Tagging"] = "Gemeinschaftliches Verschlagworten";
App::$strings["Ability to tag existing posts"] = "Ermöglicht das Verschlagworten existierender Beiträge";
App::$strings["Post Categories"] = "Beitrags-Kategorien";
@@ -3105,7 +3155,7 @@ App::$strings["Star Posts"] = "Beiträge mit Sternchen versehen";
App::$strings["Ability to mark special posts with a star indicator"] = "Ermöglicht die lokale Markierung spezieller Beiträge mit einem Sternchen-Symbol";
App::$strings["Tag Cloud"] = "Schlagwort-Wolke";
App::$strings["Provide a personal tag cloud on your channel page"] = "Aktiviert die Anzeige einer Schlagwort-Wolke (Tag Cloud) auf Deiner Kanal-Seite";
-App::$strings["Tags"] = "Schlagwörter";
+App::$strings["Trending"] = "Meistbeachtet";
App::$strings["Keywords"] = "Schlüsselwörter";
App::$strings["have"] = "habe";
App::$strings["has"] = "hat";
@@ -3176,9 +3226,9 @@ App::$strings["Take me home"] = "Bringe mich nach Hause (eigener Kanal)";
App::$strings["Log me out of this site"] = "Logge mich von dieser Seite aus";
App::$strings["Create an account"] = "Erzeuge ein Konto";
App::$strings["Help and documentation"] = "Hilfe und Dokumentation";
-App::$strings["Search site @name, #tag, ?docs, content"] = "Hub durchsuchen: @Name. #Schlagwort, ?Dokumentation, Inhalt";
+App::$strings["Search site @name, !forum, #tag, ?docs, content"] = "Hub durchsuchen: @Name, !Forum, #Schlagwort, ?Dokumentation, Inhalt";
App::$strings["Site Setup and Configuration"] = "Seiten-Einrichtung und -Konfiguration";
-App::$strings["@name, #tag, ?doc, content"] = "@Name, #Schlagwort, ?Dokumentation, Inhalt";
+App::$strings["@name, !forum, #tag, ?doc, content"] = "@Name, !Forum, #Schlagwort, ?Dokumentation, Inhalt";
App::$strings["Please wait..."] = "Bitte warten...";
App::$strings["Add Apps"] = "Apps hinzufügen";
App::$strings["Arrange Apps"] = "Apps anordnen";
@@ -3201,6 +3251,7 @@ App::$strings["Add privacy group"] = "Gruppe hinzufügen";
App::$strings["Channels not in any privacy group"] = "Kanäle, die in keiner Gruppe sind";
App::$strings["New window"] = "Neues Fenster";
App::$strings["Open the selected location in a different window or browser tab"] = "Öffne die markierte Adresse in einem neuen Browserfenster oder Tab";
+App::$strings["Delegation session ended."] = "";
App::$strings["Logged out."] = "Ausgeloggt.";
App::$strings["Email validation is incomplete. Please check your email."] = "E-Mail-Bestätigung nicht abgeschlossen. Bitte prüfe Deine E-Mails (ggf. Spam-Filterung mit berücksichtigen).";
App::$strings["Failed authentication"] = "Authentifizierung fehlgeschlagen";
diff --git a/view/es-es/hmessages.po b/view/es-es/hmessages.po
index ba784abae..94cce21a4 100644
--- a/view/es-es/hmessages.po
+++ b/view/es-es/hmessages.po
@@ -14,8 +14,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-03-01 08:51+0100\n"
-"PO-Revision-Date: 2018-03-13 09:54+0000\n"
+"POT-Creation-Date: 2018-04-23 11:34+0200\n"
+"PO-Revision-Date: 2018-04-24 09:02+0000\n"
"Last-Translator: Manuel Jiménez Friaza <mjfriaza@disroot.org>\n"
"Language-Team: Spanish (Spain) (http://www.transifex.com/Friendica/red-matrix/language/es_ES/)\n"
"MIME-Version: 1.0\n"
@@ -96,75 +96,79 @@ msgstr "Pueden utilizarse mis entradas públicas como origen de contenidos en c
msgid "Can administer my channel"
msgstr "Se puede administrar mi canal"
-#: ../../Zotlabs/Access/PermissionRoles.php:265
+#: ../../Zotlabs/Access/PermissionRoles.php:283
msgid "Social Networking"
msgstr "Redes sociales"
-#: ../../Zotlabs/Access/PermissionRoles.php:266
+#: ../../Zotlabs/Access/PermissionRoles.php:284
+msgid "Social - Federation"
+msgstr "Social - Federación"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:285
msgid "Social - Mostly Public"
msgstr "Social - Público en su mayor parte"
-#: ../../Zotlabs/Access/PermissionRoles.php:267
+#: ../../Zotlabs/Access/PermissionRoles.php:286
msgid "Social - Restricted"
msgstr "Social - Restringido"
-#: ../../Zotlabs/Access/PermissionRoles.php:268
+#: ../../Zotlabs/Access/PermissionRoles.php:287
msgid "Social - Private"
msgstr "Social - Privado"
-#: ../../Zotlabs/Access/PermissionRoles.php:271
+#: ../../Zotlabs/Access/PermissionRoles.php:290
msgid "Community Forum"
msgstr "Foro de discusión"
-#: ../../Zotlabs/Access/PermissionRoles.php:272
+#: ../../Zotlabs/Access/PermissionRoles.php:291
msgid "Forum - Mostly Public"
msgstr "Foro - Público en su mayor parte"
-#: ../../Zotlabs/Access/PermissionRoles.php:273
+#: ../../Zotlabs/Access/PermissionRoles.php:292
msgid "Forum - Restricted"
msgstr "Foro - Restringido"
-#: ../../Zotlabs/Access/PermissionRoles.php:274
+#: ../../Zotlabs/Access/PermissionRoles.php:293
msgid "Forum - Private"
msgstr "Foro - Privado"
-#: ../../Zotlabs/Access/PermissionRoles.php:277
+#: ../../Zotlabs/Access/PermissionRoles.php:296
msgid "Feed Republish"
msgstr "Republicar un \"feed\""
-#: ../../Zotlabs/Access/PermissionRoles.php:278
+#: ../../Zotlabs/Access/PermissionRoles.php:297
msgid "Feed - Mostly Public"
msgstr "Feed - Público en su mayor parte"
-#: ../../Zotlabs/Access/PermissionRoles.php:279
+#: ../../Zotlabs/Access/PermissionRoles.php:298
msgid "Feed - Restricted"
msgstr "Feed - Restringido"
-#: ../../Zotlabs/Access/PermissionRoles.php:282
+#: ../../Zotlabs/Access/PermissionRoles.php:301
msgid "Special Purpose"
msgstr "Propósito especial"
-#: ../../Zotlabs/Access/PermissionRoles.php:283
+#: ../../Zotlabs/Access/PermissionRoles.php:302
msgid "Special - Celebrity/Soapbox"
msgstr "Especial - Celebridad / Tribuna improvisada"
-#: ../../Zotlabs/Access/PermissionRoles.php:284
+#: ../../Zotlabs/Access/PermissionRoles.php:303
msgid "Special - Group Repository"
msgstr "Especial - Repositorio de grupo"
-#: ../../Zotlabs/Access/PermissionRoles.php:287
-#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Settings/Channel.php:473
-#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:798
+#: ../../Zotlabs/Access/PermissionRoles.php:306
+#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:144
+#: ../../Zotlabs/Module/Settings/Channel.php:479
+#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:795
#: ../../Zotlabs/Module/Register.php:224 ../../include/selectors.php:49
#: ../../include/selectors.php:66 ../../include/selectors.php:104
#: ../../include/selectors.php:140 ../../include/event.php:1315
-#: ../../include/event.php:1322 ../../include/connections.php:689
-#: ../../include/connections.php:696
+#: ../../include/event.php:1322 ../../include/connections.php:697
+#: ../../include/connections.php:704
msgid "Other"
msgstr "Otro"
-#: ../../Zotlabs/Access/PermissionRoles.php:288
+#: ../../Zotlabs/Access/PermissionRoles.php:307
msgid "Custom/Expert Mode"
msgstr "Modo personalizado/experto"
@@ -174,7 +178,7 @@ msgstr "Modo personalizado/experto"
#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20
#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Editwebpage.php:32
#: ../../Zotlabs/Module/Cards.php:33 ../../Zotlabs/Module/Webpages.php:33
-#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1198
+#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1197
msgid "Requested profile is not available."
msgstr "El perfil solicitado no está disponible."
@@ -185,26 +189,27 @@ msgstr "El perfil solicitado no está disponible."
#: ../../Zotlabs/Module/Channel.php:248 ../../Zotlabs/Module/Channel.php:288
#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Events.php:271
-#: ../../Zotlabs/Module/Appman.php:86 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:21
#: ../../Zotlabs/Module/Article_edit.php:51
-#: ../../Zotlabs/Module/New_channel.php:77
-#: ../../Zotlabs/Module/New_channel.php:102
+#: ../../Zotlabs/Module/New_channel.php:91
+#: ../../Zotlabs/Module/New_channel.php:116
#: ../../Zotlabs/Module/Sharedwithme.php:16 ../../Zotlabs/Module/Setup.php:209
#: ../../Zotlabs/Module/Moderate.php:13
-#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:275
-#: ../../Zotlabs/Module/Thing.php:295 ../../Zotlabs/Module/Thing.php:336
+#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:280
+#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Connections.php:29
#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:64
#: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:50
-#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:404
#: ../../Zotlabs/Module/Pdledit.php:29 ../../Zotlabs/Module/Poke.php:149
#: ../../Zotlabs/Module/Profile_photo.php:302
#: ../../Zotlabs/Module/Profile_photo.php:315
#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:229
#: ../../Zotlabs/Module/Item.php:246 ../../Zotlabs/Module/Item.php:256
-#: ../../Zotlabs/Module/Item.php:1099 ../../Zotlabs/Module/Page.php:34
+#: ../../Zotlabs/Module/Item.php:1106 ../../Zotlabs/Module/Page.php:34
#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:389
#: ../../Zotlabs/Module/Chat.php:100 ../../Zotlabs/Module/Chat.php:105
#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Layouts.php:71
@@ -223,7 +228,7 @@ msgstr "El perfil solicitado no está disponible."
#: ../../Zotlabs/Module/Register.php:77
#: ../../Zotlabs/Module/Cover_photo.php:281
#: ../../Zotlabs/Module/Cover_photo.php:294
-#: ../../Zotlabs/Module/Display.php:406 ../../Zotlabs/Module/Network.php:15
+#: ../../Zotlabs/Module/Display.php:449 ../../Zotlabs/Module/Network.php:15
#: ../../Zotlabs/Module/Filestorage.php:15
#: ../../Zotlabs/Module/Filestorage.php:70
#: ../../Zotlabs/Module/Filestorage.php:85
@@ -235,15 +240,14 @@ msgstr "El perfil solicitado no está disponible."
#: ../../Zotlabs/Module/Notifications.php:11
#: ../../Zotlabs/Lib/Chatroom.php:133 ../../Zotlabs/Web/WebServer.php:123
#: ../../addon/keepout/keepout.php:36 ../../addon/openid/Mod_Id.php:53
-#: ../../addon/gitwiki/Mod_Gitwiki.php:196
-#: ../../addon/gitwiki/Mod_Gitwiki.php:292 ../../addon/pumpio/pumpio.php:40
-#: ../../include/attach.php:150 ../../include/attach.php:197
-#: ../../include/attach.php:270 ../../include/attach.php:284
-#: ../../include/attach.php:293 ../../include/attach.php:366
-#: ../../include/attach.php:380 ../../include/attach.php:387
-#: ../../include/attach.php:469 ../../include/attach.php:1019
-#: ../../include/attach.php:1093 ../../include/attach.php:1258
-#: ../../include/items.php:3656 ../../include/photos.php:27
+#: ../../addon/pumpio/pumpio.php:40 ../../include/attach.php:150
+#: ../../include/attach.php:197 ../../include/attach.php:270
+#: ../../include/attach.php:284 ../../include/attach.php:293
+#: ../../include/attach.php:366 ../../include/attach.php:380
+#: ../../include/attach.php:387 ../../include/attach.php:469
+#: ../../include/attach.php:1029 ../../include/attach.php:1103
+#: ../../include/attach.php:1268 ../../include/items.php:3706
+#: ../../include/photos.php:27
msgid "Permission denied."
msgstr "Acceso denegado."
@@ -252,7 +256,7 @@ msgstr "Acceso denegado."
msgid "Block Name"
msgstr "Nombre del bloque"
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2402
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2422
msgid "Blocks"
msgstr "Bloques"
@@ -271,9 +275,9 @@ msgid "Edited"
msgstr "Editado"
#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:96
-#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:146
+#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:160
#: ../../Zotlabs/Module/Connedit.php:921 ../../Zotlabs/Module/Menu.php:118
-#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798
#: ../../Zotlabs/Module/Cards.php:100 ../../Zotlabs/Module/Webpages.php:239
#: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:382
#: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
@@ -282,43 +286,44 @@ msgstr "Crear"
#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Editlayout.php:114
#: ../../Zotlabs/Module/Article_edit.php:99
-#: ../../Zotlabs/Module/Admin/Profs.php:154
-#: ../../Zotlabs/Module/Settings/Oauth.php:149
-#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Module/Editblock.php:114
-#: ../../Zotlabs/Module/Connections.php:265
-#: ../../Zotlabs/Module/Connections.php:303
-#: ../../Zotlabs/Module/Connections.php:323 ../../Zotlabs/Module/Wiki.php:202
-#: ../../Zotlabs/Module/Wiki.php:358 ../../Zotlabs/Module/Menu.php:112
+#: ../../Zotlabs/Module/Admin/Profs.php:175
+#: ../../Zotlabs/Module/Settings/Oauth2.php:149
+#: ../../Zotlabs/Module/Settings/Oauth.php:150
+#: ../../Zotlabs/Module/Thing.php:266 ../../Zotlabs/Module/Editblock.php:114
+#: ../../Zotlabs/Module/Connections.php:281
+#: ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Connections.php:339 ../../Zotlabs/Module/Wiki.php:202
+#: ../../Zotlabs/Module/Wiki.php:362 ../../Zotlabs/Module/Menu.php:112
#: ../../Zotlabs/Module/Layouts.php:193
#: ../../Zotlabs/Module/Editwebpage.php:142
-#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Editpost.php:85
-#: ../../Zotlabs/Module/Card_edit.php:99 ../../Zotlabs/Lib/Apps.php:409
-#: ../../Zotlabs/Lib/ThreadItem.php:121 ../../Zotlabs/Storage/Browser.php:288
-#: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162
-#: ../../addon/gitwiki/Mod_Gitwiki.php:151
-#: ../../addon/gitwiki/Mod_Gitwiki.php:252 ../../include/channel.php:1297
-#: ../../include/channel.php:1301 ../../include/menu.php:113
+#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Card_edit.php:99
+#: ../../Zotlabs/Lib/Apps.php:409 ../../Zotlabs/Lib/ThreadItem.php:121
+#: ../../Zotlabs/Storage/Browser.php:288 ../../Zotlabs/Widget/Cdav.php:126
+#: ../../Zotlabs/Widget/Cdav.php:162 ../../include/channel.php:1296
+#: ../../include/channel.php:1300 ../../include/menu.php:113
msgid "Edit"
msgstr "Editar"
#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1102
-#: ../../Zotlabs/Module/Layouts.php:194 ../../Zotlabs/Module/Webpages.php:241
-#: ../../Zotlabs/Widget/Cdav.php:124 ../../include/conversation.php:1363
+#: ../../Zotlabs/Module/Wiki.php:287 ../../Zotlabs/Module/Layouts.php:194
+#: ../../Zotlabs/Module/Webpages.php:241 ../../Zotlabs/Widget/Cdav.php:124
+#: ../../include/conversation.php:1366
msgid "Share"
msgstr "Compartir"
#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editlayout.php:138
#: ../../Zotlabs/Module/Cdav.php:897 ../../Zotlabs/Module/Cdav.php:1187
#: ../../Zotlabs/Module/Article_edit.php:129
-#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Admin/Accounts.php:175
#: ../../Zotlabs/Module/Admin/Channels.php:149
-#: ../../Zotlabs/Module/Admin/Profs.php:155
-#: ../../Zotlabs/Module/Settings/Oauth.php:150
-#: ../../Zotlabs/Module/Thing.php:262 ../../Zotlabs/Module/Editblock.php:139
-#: ../../Zotlabs/Module/Connections.php:273
+#: ../../Zotlabs/Module/Admin/Profs.php:176
+#: ../../Zotlabs/Module/Settings/Oauth2.php:150
+#: ../../Zotlabs/Module/Settings/Oauth.php:151
+#: ../../Zotlabs/Module/Thing.php:267 ../../Zotlabs/Module/Editblock.php:139
+#: ../../Zotlabs/Module/Connections.php:289
#: ../../Zotlabs/Module/Photos.php:1203 ../../Zotlabs/Module/Connedit.php:654
#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Group.php:179
-#: ../../Zotlabs/Module/Profiles.php:803
+#: ../../Zotlabs/Module/Profiles.php:800
#: ../../Zotlabs/Module/Editwebpage.php:167
#: ../../Zotlabs/Module/Webpages.php:242
#: ../../Zotlabs/Module/Card_edit.php:129 ../../Zotlabs/Lib/Apps.php:410
@@ -330,7 +335,6 @@ msgstr "Eliminar"
#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Events.php:694
#: ../../Zotlabs/Module/Wiki.php:204 ../../Zotlabs/Module/Layouts.php:198
#: ../../Zotlabs/Module/Webpages.php:246 ../../Zotlabs/Module/Pubsites.php:60
-#: ../../addon/gitwiki/Mod_Gitwiki.php:153
msgid "View"
msgstr "Ver"
@@ -407,30 +411,31 @@ msgstr "3. Pulse [conectar]"
#: ../../Zotlabs/Module/Invite.php:151 ../../Zotlabs/Module/Locs.php:121
#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Events.php:493
-#: ../../Zotlabs/Module/Appman.php:152
+#: ../../Zotlabs/Module/Appman.php:153
#: ../../Zotlabs/Module/Import_items.php:129
#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:349
#: ../../Zotlabs/Module/Connect.php:98
#: ../../Zotlabs/Module/Admin/Features.php:66
#: ../../Zotlabs/Module/Admin/Plugins.php:438
-#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:168
#: ../../Zotlabs/Module/Admin/Logs.php:84
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Themes.php:158
-#: ../../Zotlabs/Module/Admin/Site.php:289
-#: ../../Zotlabs/Module/Admin/Profs.php:157
+#: ../../Zotlabs/Module/Admin/Site.php:296
+#: ../../Zotlabs/Module/Admin/Profs.php:178
#: ../../Zotlabs/Module/Admin/Account_edit.php:74
#: ../../Zotlabs/Module/Admin/Security.php:104
-#: ../../Zotlabs/Module/Settings/Permcats.php:110
-#: ../../Zotlabs/Module/Settings/Channel.php:488
-#: ../../Zotlabs/Module/Settings/Features.php:47
+#: ../../Zotlabs/Module/Settings/Permcats.php:115
+#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Features.php:79
#: ../../Zotlabs/Module/Settings/Tokens.php:168
+#: ../../Zotlabs/Module/Settings/Oauth2.php:84
#: ../../Zotlabs/Module/Settings/Account.php:118
#: ../../Zotlabs/Module/Settings/Featured.php:54
#: ../../Zotlabs/Module/Settings/Display.php:192
-#: ../../Zotlabs/Module/Settings/Oauth.php:87
-#: ../../Zotlabs/Module/Thing.php:321 ../../Zotlabs/Module/Thing.php:374
-#: ../../Zotlabs/Module/Import.php:529 ../../Zotlabs/Module/Cal.php:345
+#: ../../Zotlabs/Module/Settings/Oauth.php:88
+#: ../../Zotlabs/Module/Thing.php:326 ../../Zotlabs/Module/Thing.php:379
+#: ../../Zotlabs/Module/Import.php:530 ../../Zotlabs/Module/Cal.php:345
#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Photos.php:1082
#: ../../Zotlabs/Module/Photos.php:1122 ../../Zotlabs/Module/Photos.php:1240
#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Module/Pdledit.php:98
@@ -438,17 +443,17 @@ msgstr "3. Pulse [conectar]"
#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:242
#: ../../Zotlabs/Module/Email_validation.php:40
#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Defperms.php:249
-#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:726
-#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149
-#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Module/Mail.php:431
-#: ../../Zotlabs/Module/Filestorage.php:160 ../../Zotlabs/Module/Rate.php:166
-#: ../../Zotlabs/Lib/ThreadItem.php:750
+#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:723
+#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:114
+#: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Lib/ThreadItem.php:752
#: ../../Zotlabs/Widget/Eventstools.php:16
#: ../../Zotlabs/Widget/Wiki_pages.php:40
#: ../../Zotlabs/Widget/Wiki_pages.php:97
#: ../../view/theme/redbasic_c/php/config.php:95
#: ../../view/theme/redbasic/php/config.php:93
-#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:275
#: ../../addon/planets/planets.php:153
#: ../../addon/openclipatar/openclipatar.php:53
#: ../../addon/wppost/wppost.php:113 ../../addon/nsfw/nsfw.php:92
@@ -456,16 +461,16 @@ msgstr "3. Pulse [conectar]"
#: ../../addon/likebanner/likebanner.php:57
#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53
#: ../../addon/ljpost/ljpost.php:86 ../../addon/startpage/startpage.php:113
-#: ../../addon/diaspora/diaspora.php:822
-#: ../../addon/gitwiki/Mod_Gitwiki.php:155
+#: ../../addon/diaspora/diaspora.php:825
#: ../../addon/rainbowtag/rainbowtag.php:85 ../../addon/hzfiles/hzfiles.php:84
#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161
#: ../../addon/mailtest/mailtest.php:100
#: ../../addon/openstreetmap/openstreetmap.php:168
-#: ../../addon/rtof/rtof.php:101 ../../addon/jappixmini/jappixmini.php:371
+#: ../../addon/fuzzloc/fuzzloc.php:191 ../../addon/rtof/rtof.php:101
+#: ../../addon/jappixmini/jappixmini.php:371
#: ../../addon/superblock/superblock.php:120 ../../addon/nofed/nofed.php:80
#: ../../addon/redred/redred.php:119 ../../addon/logrot/logrot.php:35
-#: ../../addon/frphotos/frphotos.php:96 ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/frphotos/frphotos.php:97 ../../addon/pubcrawl/pubcrawl.php:1072
#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85
#: ../../addon/flattrwidget/flattrwidget.php:124
#: ../../addon/statusnet/statusnet.php:322
@@ -474,15 +479,16 @@ msgstr "3. Pulse [conectar]"
#: ../../addon/statusnet/statusnet.php:900 ../../addon/twitter/twitter.php:218
#: ../../addon/twitter/twitter.php:265
#: ../../addon/smileybutton/smileybutton.php:219
-#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/pageheader.php:48
+#: ../../addon/cart/cart.php:1104 ../../addon/piwik/piwik.php:95
+#: ../../addon/pageheader/pageheader.php:48
#: ../../addon/authchoose/authchoose.php:71 ../../addon/xmpp/xmpp.php:69
#: ../../addon/pumpio/pumpio.php:237 ../../addon/redfiles/redfiles.php:124
#: ../../addon/hubwall/hubwall.php:95 ../../include/js_strings.php:22
msgid "Submit"
msgstr "Enviar"
-#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:179
-#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:124
+#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:191
+#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:133
#: ../../include/nav.php:469
msgid "Articles"
msgstr "Artículos"
@@ -517,11 +523,11 @@ msgstr "Modificar la plantilla"
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86
#: ../../Zotlabs/Module/Import_items.php:120
-#: ../../Zotlabs/Module/Cloud.php:111 ../../Zotlabs/Module/Group.php:74
+#: ../../Zotlabs/Module/Cloud.php:117 ../../Zotlabs/Module/Group.php:74
#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:68
#: ../../Zotlabs/Module/Like.php:296 ../../Zotlabs/Web/WebServer.php:122
#: ../../addon/redphotos/redphotos.php:119 ../../addon/hzfiles/hzfiles.php:73
-#: ../../addon/frphotos/frphotos.php:81 ../../addon/redfiles/redfiles.php:109
+#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109
#: ../../include/items.php:358
msgid "Permission denied"
msgstr "Permiso denegado"
@@ -534,7 +540,7 @@ msgstr "Identificador del perfil no válido"
msgid "Profile Visibility Editor"
msgstr "Editor de visibilidad del perfil"
-#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1634
+#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1644
msgid "Profile"
msgstr "Perfil"
@@ -547,7 +553,7 @@ msgid "Visible To"
msgstr "Visible para"
#: ../../Zotlabs/Module/Profperm.php:140
-#: ../../Zotlabs/Module/Connections.php:140
+#: ../../Zotlabs/Module/Connections.php:200
msgid "All Connections"
msgstr "Todas las conexiones"
@@ -562,9 +568,9 @@ msgstr "Resumen: "
#: ../../Zotlabs/Module/Cdav.php:786 ../../Zotlabs/Module/Cdav.php:787
#: ../../Zotlabs/Module/Cdav.php:794 ../../Zotlabs/Module/Embedphotos.php:146
#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1273
-#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:832
+#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:833
#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Widget/Portfolio.php:95
-#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:853
+#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:891
#: ../../include/conversation.php:1160
msgid "Unknown"
msgstr "Desconocido"
@@ -602,14 +608,14 @@ msgid "End date and time"
msgstr "Fecha y hora de finalización"
#: ../../Zotlabs/Module/Cdav.php:871 ../../Zotlabs/Module/Events.php:473
-#: ../../Zotlabs/Module/Appman.php:142 ../../Zotlabs/Module/Rbmark.php:101
+#: ../../Zotlabs/Module/Appman.php:143 ../../Zotlabs/Module/Rbmark.php:101
#: ../../addon/rendezvous/rendezvous.php:173
msgid "Description"
msgstr "Descripción"
#: ../../Zotlabs/Module/Cdav.php:872 ../../Zotlabs/Module/Locs.php:117
#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Profiles.php:509
-#: ../../Zotlabs/Module/Profiles.php:737 ../../Zotlabs/Module/Pubsites.php:52
+#: ../../Zotlabs/Module/Profiles.php:734 ../../Zotlabs/Module/Pubsites.php:52
#: ../../include/js_strings.php:25
msgid "Location"
msgstr "Ubicación"
@@ -674,17 +680,17 @@ msgstr "Eliminar todos"
#: ../../Zotlabs/Module/Cdav.php:899 ../../Zotlabs/Module/Cdav.php:1188
#: ../../Zotlabs/Module/Admin/Plugins.php:423
-#: ../../Zotlabs/Module/Settings/Oauth.php:88
-#: ../../Zotlabs/Module/Settings/Oauth.php:114
-#: ../../Zotlabs/Module/Wiki.php:345 ../../Zotlabs/Module/Wiki.php:375
+#: ../../Zotlabs/Module/Settings/Oauth2.php:85
+#: ../../Zotlabs/Module/Settings/Oauth2.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:89
+#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Wiki.php:347 ../../Zotlabs/Module/Wiki.php:379
#: ../../Zotlabs/Module/Profile_photo.php:464
#: ../../Zotlabs/Module/Connedit.php:924 ../../Zotlabs/Module/Fbrowser.php:66
-#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:804
-#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:365
+#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:366
#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138
-#: ../../addon/gitwiki/Mod_Gitwiki.php:244
-#: ../../addon/gitwiki/Mod_Gitwiki.php:267 ../../include/conversation.php:1386
-#: ../../include/conversation.php:1435
+#: ../../include/conversation.php:1389 ../../include/conversation.php:1438
msgid "Cancel"
msgstr "Cancelar"
@@ -695,14 +701,15 @@ msgstr "¡Disculpas! La edición de eventos recurrentes aún no se ha implementa
#: ../../Zotlabs/Module/Cdav.php:1170
#: ../../Zotlabs/Module/Sharedwithme.php:105
#: ../../Zotlabs/Module/Admin/Channels.php:159
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+#: ../../Zotlabs/Module/Settings/Oauth.php:116
#: ../../Zotlabs/Module/Wiki.php:209 ../../Zotlabs/Module/Connedit.php:906
#: ../../Zotlabs/Module/Chat.php:251 ../../Zotlabs/Lib/NativeWikiPage.php:558
#: ../../Zotlabs/Storage/Browser.php:283
#: ../../Zotlabs/Widget/Wiki_page_history.php:22
#: ../../addon/rendezvous/rendezvous.php:172
-#: ../../addon/gitwiki/Mod_Gitwiki.php:158
msgid "Name"
msgstr "Nombre"
@@ -715,76 +722,78 @@ msgid "Title"
msgstr "Título"
#: ../../Zotlabs/Module/Cdav.php:1173 ../../Zotlabs/Module/Connedit.php:909
-#: ../../Zotlabs/Module/Profiles.php:789
+#: ../../Zotlabs/Module/Profiles.php:786
msgid "Phone"
msgstr "Teléfono"
#: ../../Zotlabs/Module/Cdav.php:1174
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
-#: ../../Zotlabs/Module/Admin/Accounts.php:182
-#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:790
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:183
+#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:787
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93
-#: ../../addon/redred/redred.php:107 ../../include/network.php:1775
+#: ../../addon/redred/redred.php:107 ../../include/network.php:1770
msgid "Email"
msgstr "Correo electrónico"
#: ../../Zotlabs/Module/Cdav.php:1175 ../../Zotlabs/Module/Connedit.php:911
-#: ../../Zotlabs/Module/Profiles.php:791
+#: ../../Zotlabs/Module/Profiles.php:788
msgid "Instant messenger"
msgstr "Mensajería instantánea"
#: ../../Zotlabs/Module/Cdav.php:1176 ../../Zotlabs/Module/Connedit.php:912
-#: ../../Zotlabs/Module/Profiles.php:792
+#: ../../Zotlabs/Module/Profiles.php:789
msgid "Website"
msgstr "Sitio web"
#: ../../Zotlabs/Module/Cdav.php:1177 ../../Zotlabs/Module/Locs.php:118
#: ../../Zotlabs/Module/Admin/Channels.php:160
#: ../../Zotlabs/Module/Connedit.php:913 ../../Zotlabs/Module/Profiles.php:502
-#: ../../Zotlabs/Module/Profiles.php:793
+#: ../../Zotlabs/Module/Profiles.php:790
msgid "Address"
msgstr "Dirección"
#: ../../Zotlabs/Module/Cdav.php:1178 ../../Zotlabs/Module/Connedit.php:914
-#: ../../Zotlabs/Module/Profiles.php:794
+#: ../../Zotlabs/Module/Profiles.php:791
msgid "Note"
msgstr "Nota"
#: ../../Zotlabs/Module/Cdav.php:1179 ../../Zotlabs/Module/Connedit.php:915
-#: ../../Zotlabs/Module/Profiles.php:795 ../../include/event.php:1308
-#: ../../include/connections.php:682
+#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1308
+#: ../../include/connections.php:690
msgid "Mobile"
msgstr "Móvil"
#: ../../Zotlabs/Module/Cdav.php:1180 ../../Zotlabs/Module/Connedit.php:916
-#: ../../Zotlabs/Module/Profiles.php:796 ../../include/event.php:1309
-#: ../../include/connections.php:683
+#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1309
+#: ../../include/connections.php:691
msgid "Home"
msgstr "Inicio"
#: ../../Zotlabs/Module/Cdav.php:1181 ../../Zotlabs/Module/Connedit.php:917
-#: ../../Zotlabs/Module/Profiles.php:797 ../../include/event.php:1312
-#: ../../include/connections.php:686
+#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1312
+#: ../../include/connections.php:694
msgid "Work"
msgstr "Trabajo"
#: ../../Zotlabs/Module/Cdav.php:1183 ../../Zotlabs/Module/Connedit.php:919
-#: ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Profiles.php:796
#: ../../addon/jappixmini/jappixmini.php:368
msgid "Add Contact"
msgstr "Añadir un contacto"
#: ../../Zotlabs/Module/Cdav.php:1184 ../../Zotlabs/Module/Connedit.php:920
-#: ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Profiles.php:797
msgid "Add Field"
msgstr "Añadir un campo"
#: ../../Zotlabs/Module/Cdav.php:1186
#: ../../Zotlabs/Module/Admin/Plugins.php:453
-#: ../../Zotlabs/Module/Settings/Oauth.php:42
-#: ../../Zotlabs/Module/Settings/Oauth.php:113
-#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:802
+#: ../../Zotlabs/Module/Settings/Oauth2.php:39
+#: ../../Zotlabs/Module/Settings/Oauth2.php:112
+#: ../../Zotlabs/Module/Settings/Oauth.php:43
+#: ../../Zotlabs/Module/Settings/Oauth.php:114
+#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:799
#: ../../Zotlabs/Lib/Apps.php:393
msgid "Update"
msgstr "Actualizar"
@@ -814,7 +823,7 @@ msgid "ZIP Code"
msgstr "Código postal"
#: ../../Zotlabs/Module/Cdav.php:1195 ../../Zotlabs/Module/Connedit.php:931
-#: ../../Zotlabs/Module/Profiles.php:760
+#: ../../Zotlabs/Module/Profiles.php:757
msgid "Country"
msgstr "País"
@@ -830,8 +839,8 @@ msgstr "Agenda de direcciones por defecto"
msgid "This site is not a directory server"
msgstr "Este sitio no es un servidor de directorio"
-#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Chat.php:25
-#: ../../addon/gitwiki/Mod_Gitwiki.php:28 ../../addon/chess/chess.php:508
+#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Chat.php:25 ../../addon/chess/chess.php:508
msgid "You must be logged in to see this page."
msgstr "Debe haber iniciado sesión para poder ver esta página."
@@ -922,24 +931,24 @@ msgstr "No tiene ningún mensaje sin leer..."
msgid "Public access denied."
msgstr "Acceso público denegado."
-#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:335
#: ../../Zotlabs/Lib/Apps.php:256 ../../Zotlabs/Widget/Sitesearch.php:31
#: ../../include/text.php:1051 ../../include/text.php:1063
#: ../../include/acl_selectors.php:118 ../../include/nav.php:179
msgid "Search"
msgstr "Buscar"
-#: ../../Zotlabs/Module/Search.php:226
+#: ../../Zotlabs/Module/Search.php:230
#, php-format
msgid "Items tagged with: %s"
msgstr "elementos etiquetados con: %s"
-#: ../../Zotlabs/Module/Search.php:228
+#: ../../Zotlabs/Module/Search.php:232
#, php-format
msgid "Search results for: %s"
msgstr "Resultados de la búsqueda para: %s"
-#: ../../Zotlabs/Module/Pubstream.php:93
+#: ../../Zotlabs/Module/Pubstream.php:95
#: ../../Zotlabs/Widget/Notifications.php:131
msgid "Public Stream"
msgstr "\"Stream\" público"
@@ -1040,7 +1049,7 @@ msgid "Menu Item Permissions"
msgstr "Permisos del elemento del menú"
#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231
-#: ../../Zotlabs/Module/Settings/Channel.php:521
+#: ../../Zotlabs/Module/Settings/Channel.php:528
msgid "(click to open/close)"
msgstr "(pulsar para abrir o cerrar)"
@@ -1064,8 +1073,8 @@ msgstr "Usar la autenticación mágica si está disponible"
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
#: ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Admin/Site.php:252
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:99 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1074,7 +1083,7 @@ msgstr "Usar la autenticación mágica si está disponible"
#: ../../Zotlabs/Module/Defperms.php:180 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1083,9 +1092,9 @@ msgstr "Usar la autenticación mágica si está disponible"
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/fuzzloc/fuzzloc.php:178 ../../addon/rtof/rtof.php:81
#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
@@ -1103,11 +1112,12 @@ msgstr "Usar la autenticación mágica si está disponible"
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
#: ../../addon/smileybutton/smileybutton.php:215
-#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
-#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
-#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145
+#: ../../addon/cart/cart.php:1075 ../../addon/cart/cart.php:1082
+#: ../../addon/cart/cart.php:1090 ../../addon/authchoose/authchoose.php:67
+#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
+#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "No"
msgstr "No"
@@ -1115,8 +1125,8 @@ msgstr "No"
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
#: ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Admin/Site.php:254
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:98 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1125,7 +1135,7 @@ msgstr "No"
#: ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1134,9 +1144,9 @@ msgstr "No"
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/fuzzloc/fuzzloc.php:178 ../../addon/rtof/rtof.php:81
#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
@@ -1154,11 +1164,12 @@ msgstr "No"
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
#: ../../addon/smileybutton/smileybutton.php:215
-#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
-#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
-#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145
+#: ../../addon/cart/cart.php:1075 ../../addon/cart/cart.php:1082
+#: ../../addon/cart/cart.php:1090 ../../addon/authchoose/authchoose.php:67
+#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
+#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "Yes"
msgstr "Sí"
@@ -1268,8 +1279,8 @@ msgid "Event not found."
msgstr "Evento no encontrado."
#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73
-#: ../../Zotlabs/Module/Like.php:385 ../../include/conversation.php:119
-#: ../../include/text.php:2007 ../../include/event.php:1153
+#: ../../Zotlabs/Module/Like.php:386 ../../include/conversation.php:119
+#: ../../include/text.php:2008 ../../include/event.php:1153
msgid "event"
msgstr "evento"
@@ -1278,9 +1289,9 @@ msgid "Edit event title"
msgstr "Editar el título del evento"
#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:465
-#: ../../Zotlabs/Module/Appman.php:140 ../../Zotlabs/Module/Appman.php:141
-#: ../../Zotlabs/Module/Profiles.php:748 ../../Zotlabs/Module/Profiles.php:752
-#: ../../include/datetime.php:205
+#: ../../Zotlabs/Module/Appman.php:141 ../../Zotlabs/Module/Appman.php:142
+#: ../../Zotlabs/Module/Profiles.php:745 ../../Zotlabs/Module/Profiles.php:749
+#: ../../include/datetime.php:211
msgid "Required"
msgstr "Obligatorio"
@@ -1331,12 +1342,12 @@ msgid "Edit Location"
msgstr "Modificar la dirección"
#: ../../Zotlabs/Module/Events.php:478 ../../Zotlabs/Module/Photos.php:1123
-#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:760
-#: ../../include/conversation.php:1330
+#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:762
+#: ../../include/conversation.php:1333
msgid "Preview"
msgstr "Previsualizar"
-#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1402
+#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1405
msgid "Permission settings"
msgstr "Configuración de permisos"
@@ -1361,7 +1372,7 @@ msgid "Delete event"
msgstr "Borrar evento"
#: ../../Zotlabs/Module/Events.php:660 ../../Zotlabs/Module/Cal.php:315
-#: ../../include/text.php:1826
+#: ../../include/text.php:1827
msgid "Link to Source"
msgstr "Enlazar con la entrada en su ubicación original"
@@ -1378,7 +1389,7 @@ msgid "Create Event"
msgstr "Crear un evento"
#: ../../Zotlabs/Module/Events.php:691 ../../Zotlabs/Module/Cal.php:341
-#: ../../include/channel.php:1637
+#: ../../include/channel.php:1647
msgid "Export"
msgstr "Exportar"
@@ -1390,55 +1401,55 @@ msgstr "Evento borrado"
msgid "Failed to remove event"
msgstr "Error al eliminar el evento"
-#: ../../Zotlabs/Module/Appman.php:38 ../../Zotlabs/Module/Appman.php:55
+#: ../../Zotlabs/Module/Appman.php:39 ../../Zotlabs/Module/Appman.php:56
msgid "App installed."
msgstr "Aplicación instalada."
-#: ../../Zotlabs/Module/Appman.php:48
+#: ../../Zotlabs/Module/Appman.php:49
msgid "Malformed app."
msgstr "Aplicación con errores"
-#: ../../Zotlabs/Module/Appman.php:129
+#: ../../Zotlabs/Module/Appman.php:130
msgid "Embed code"
msgstr "Código incorporado"
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Edit App"
msgstr "Modificar la aplicación"
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Create App"
msgstr "Crear una aplicación"
-#: ../../Zotlabs/Module/Appman.php:140
+#: ../../Zotlabs/Module/Appman.php:141
msgid "Name of app"
msgstr "Nombre de la aplicación"
-#: ../../Zotlabs/Module/Appman.php:141
+#: ../../Zotlabs/Module/Appman.php:142
msgid "Location (URL) of app"
msgstr "Dirección (URL) de la aplicación"
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "Photo icon URL"
msgstr "Dirección del icono"
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "80 x 80 pixels - optional"
msgstr "80 x 80 pixels - opcional"
-#: ../../Zotlabs/Module/Appman.php:144
+#: ../../Zotlabs/Module/Appman.php:145
msgid "Categories (optional, comma separated list)"
msgstr "Temas (opcional, lista separada por comas)"
-#: ../../Zotlabs/Module/Appman.php:145
+#: ../../Zotlabs/Module/Appman.php:146
msgid "Version ID"
msgstr "Versión"
-#: ../../Zotlabs/Module/Appman.php:146
+#: ../../Zotlabs/Module/Appman.php:147
msgid "Price of app"
msgstr "Precio de la aplicación"
-#: ../../Zotlabs/Module/Appman.php:147
+#: ../../Zotlabs/Module/Appman.php:148
msgid "Location (URL) to purchase app"
msgstr "Dirección (URL) donde adquirir la aplicación"
@@ -1451,16 +1462,16 @@ msgid "Hub not found."
msgstr "Servidor no encontrado"
#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69
-#: ../../Zotlabs/Module/Like.php:383
+#: ../../Zotlabs/Module/Like.php:384
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:116 ../../include/text.php:2004
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1405
+#: ../../include/conversation.php:116 ../../include/text.php:2005
msgid "photo"
msgstr "foto"
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:383
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:144 ../../include/text.php:2010
+#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1405
+#: ../../include/conversation.php:144 ../../include/text.php:2011
msgid "status"
msgstr "el mensaje de estado"
@@ -1490,8 +1501,9 @@ msgid "Insert web link"
msgstr "Insertar enlace web"
#: ../../Zotlabs/Module/Article_edit.php:117
-#: ../../Zotlabs/Module/Editblock.php:129
-#: ../../Zotlabs/Module/Card_edit.php:117 ../../include/conversation.php:1398
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:698
+#: ../../Zotlabs/Module/Photos.php:1068 ../../Zotlabs/Module/Card_edit.php:117
+#: ../../include/conversation.php:1401
msgid "Title (optional)"
msgstr "Título (opcional)"
@@ -1514,7 +1526,6 @@ msgid "Imported file is empty."
msgstr "El fichero importado está vacío."
#: ../../Zotlabs/Module/Import_items.php:93
-#: ../../Zotlabs/Module/Import.php:121
#, php-format
msgid "Warning: Database versions differ by %1$d updates."
msgstr "Atención: Las versiones de la base de datos difieren en %1$d actualizaciones."
@@ -1533,32 +1544,32 @@ msgid ""
msgstr "Utilice este formulario para importar entradas existentes y contenido desde un archivo de exportación."
#: ../../Zotlabs/Module/Import_items.php:127
-#: ../../Zotlabs/Module/Import.php:516
+#: ../../Zotlabs/Module/Import.php:517
msgid "File to Upload"
msgstr "Fichero para subir"
-#: ../../Zotlabs/Module/New_channel.php:119
+#: ../../Zotlabs/Module/New_channel.php:133
#: ../../Zotlabs/Module/Manage.php:138
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr "Ha creado %1$.0f de %2$.0f canales permitidos."
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Name or caption"
msgstr "Nombre o descripción"
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""
msgstr "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\""
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
msgid "Choose a short nickname"
msgstr "Elija un alias corto"
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
#, php-format
msgid ""
@@ -1566,38 +1577,47 @@ msgid ""
"e.g. nickname%s"
msgstr "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
+#: ../../Zotlabs/Module/Settings/Channel.php:539
#: ../../Zotlabs/Module/Register.php:257
msgid "Channel role and privacy"
msgstr "Clase de canal y privacidad"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Select a channel role with your privacy requirements."
msgstr "Seleccione un tipo de canal con sus requisitos de privacidad"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Read more about roles"
msgstr "Leer más sobre los roles"
-#: ../../Zotlabs/Module/New_channel.php:138
+#: ../../Zotlabs/Module/New_channel.php:152
msgid "Create Channel"
msgstr "Crear un canal"
-#: ../../Zotlabs/Module/New_channel.php:139
+#: ../../Zotlabs/Module/New_channel.php:153
+msgid ""
+"A channel is a unique network identity. It can represent a person (social "
+"network profile), a forum (group), a business or celebrity page, a newsfeed,"
+" and many other things. Channels can make connections with other channels to"
+" share information with each other."
+msgstr "Un canal es una identidad única en la red. Puede representar a una persona (un perfil de una red social), un foro o grupo, un negocio o una página de una celebridad, un \"feed\" de noticias, y muchas otras cosas. Los canales pueden conectarse con otros canales para compartir información unos con otros."
+
+#: ../../Zotlabs/Module/New_channel.php:153
msgid ""
-"A channel is your identity on this network. It can represent a person, a "
-"blog, or a forum to name a few. Channels can make connections with other "
-"channels to share information with highly detailed permissions."
-msgstr "Un canal es su identidad en esta red. Puede representar a una persona, un blog o un foro, por nombrar unos pocos ejemplos. Los canales se pueden conectar con otros canales para compartir información con una gama de permisos extremadamente detallada."
+"The type of channel you create affects the basic privacy settings, the "
+"permissions that are granted to connections/friends, and also the channel's "
+"visibility across the network."
+msgstr "El tipo de canal que cree afecta a la configuración básica de privacidad, a los permisos que se conceden a las conexiones/amigos y también a la visibilidad del canal en la red."
-#: ../../Zotlabs/Module/New_channel.php:140
+#: ../../Zotlabs/Module/New_channel.php:154
msgid ""
"or <a href=\"import\">import an existing channel</a> from another location."
msgstr "O <a href=\"import\">importar un canal existente</a> desde otro lugar."
-#: ../../Zotlabs/Module/New_channel.php:145
+#: ../../Zotlabs/Module/New_channel.php:159
msgid "Validate"
msgstr "Validar"
@@ -1643,7 +1663,7 @@ msgid ""
msgstr "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red"
#: ../../Zotlabs/Module/Removeme.php:64
-#: ../../Zotlabs/Module/Settings/Channel.php:592
+#: ../../Zotlabs/Module/Settings/Channel.php:600
msgid "Remove Channel"
msgstr "Eliminar el canal"
@@ -1702,7 +1722,7 @@ msgid ""
msgstr "Podría tener que importar manualmente el fichero \"install/schema_xxx.sql\" usando un cliente de base de datos."
#: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262
-#: ../../Zotlabs/Module/Setup.php:745
+#: ../../Zotlabs/Module/Setup.php:749
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"."
@@ -1963,115 +1983,107 @@ msgstr "Error: el módulo PHP xml es necesario para DAV, pero no está instalado
msgid "Error: zip PHP module required but not installed."
msgstr "Error: se requiere el módulo zip PHP pero no está instalado."
-#: ../../Zotlabs/Module/Setup.php:569
+#: ../../Zotlabs/Module/Setup.php:570 ../../Zotlabs/Module/Setup.php:579
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php tiene permisos de escritura"
+
+#: ../../Zotlabs/Module/Setup.php:575
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\""
" in the top folder of your web server and it is unable to do so."
msgstr "El instalador web no ha podido crear un fichero llamado “.htconfig.php” en la carpeta base de su servidor."
-#: ../../Zotlabs/Module/Setup.php:570
+#: ../../Zotlabs/Module/Setup.php:576
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos."
-#: ../../Zotlabs/Module/Setup.php:571
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
-msgstr "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla."
+#: ../../Zotlabs/Module/Setup.php:577
+msgid "Please see install/INSTALL.txt for additional information."
+msgstr "Por favor, consulte install/INSTALL.txt para más información."
-#: ../../Zotlabs/Module/Setup.php:572
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones."
-
-#: ../../Zotlabs/Module/Setup.php:575
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php tiene permisos de escritura"
-
-#: ../../Zotlabs/Module/Setup.php:589
+#: ../../Zotlabs/Module/Setup.php:593
msgid ""
"This software uses the Smarty3 template engine to render its web views. "
"Smarty3 compiles templates to PHP to speed up rendering."
msgstr "Este software hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 compila las plantillas a PHP para acelerar la renderización."
-#: ../../Zotlabs/Module/Setup.php:590
+#: ../../Zotlabs/Module/Setup.php:594
#, php-format
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory %s under the top level web folder."
msgstr "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal."
-#: ../../Zotlabs/Module/Setup.php:591 ../../Zotlabs/Module/Setup.php:612
+#: ../../Zotlabs/Module/Setup.php:595 ../../Zotlabs/Module/Setup.php:616
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has"
" write access to this folder."
msgstr "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data)."
-#: ../../Zotlabs/Module/Setup.php:592
+#: ../../Zotlabs/Module/Setup.php:596
#, php-format
msgid ""
"Note: as a security measure, you should give the web server write access to "
"%s only--not the template files (.tpl) that it contains."
msgstr "Nota: como medida de seguridad, debe dar al servidor web permisos de escritura solo sobre %s - no sobre el fichero de plantilla (.tpl) que contiene."
-#: ../../Zotlabs/Module/Setup.php:595
+#: ../../Zotlabs/Module/Setup.php:599
#, php-format
msgid "%s is writable"
msgstr "%s tiene permisos de escritura"
-#: ../../Zotlabs/Module/Setup.php:611
+#: ../../Zotlabs/Module/Setup.php:615
msgid ""
"This software uses the store directory to save uploaded files. The web "
"server needs to have write access to the store directory under the top level"
" web folder"
msgstr "Este software utiliza el directorio de almacenamiento para guardar los ficheros subidos. El servidor web debe tener acceso de escritura a este directorio en la carpeta de nivel superior"
-#: ../../Zotlabs/Module/Setup.php:615
+#: ../../Zotlabs/Module/Setup.php:619
msgid "store is writable"
msgstr "\"store\" tiene permisos de escritura"
-#: ../../Zotlabs/Module/Setup.php:647
+#: ../../Zotlabs/Module/Setup.php:651
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access"
" to this site."
msgstr "El certificado SSL no ha podido ser validado. Corrija este problema o desactive el acceso https a este sitio."
-#: ../../Zotlabs/Module/Setup.php:648
+#: ../../Zotlabs/Module/Setup.php:652
msgid ""
"If you have https access to your website or allow connections to TCP port "
"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
"NOT use self-signed certificates!"
msgstr "Si su servidor soporta conexiones cifradas SSL o si permite conexiones al puerto TCP 443 (el puerto usado por el protocolo https), debe utilizar un certificado válido. No debe usar un certificado firmado por usted mismo."
-#: ../../Zotlabs/Module/Setup.php:649
+#: ../../Zotlabs/Module/Setup.php:653
msgid ""
"This restriction is incorporated because public posts from you may for "
"example contain references to images on your own hub."
msgstr "Se ha incorporado esta restricción para evitar que sus entradas públicas hagan referencia a imágenes en su propio servidor."
-#: ../../Zotlabs/Module/Setup.php:650
+#: ../../Zotlabs/Module/Setup.php:654
msgid ""
"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
msgstr "Si su certificado no ha sido reconocido, los miembros de otros sitios (con certificados válidos) recibirán mensajes de aviso en sus propios sitios web."
-#: ../../Zotlabs/Module/Setup.php:651
+#: ../../Zotlabs/Module/Setup.php:655
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
msgstr "Por razones de compatibilidad (sobre el conjunto de la red, no solo sobre su propio sitio), debemos insistir en estos requisitos."
-#: ../../Zotlabs/Module/Setup.php:652
+#: ../../Zotlabs/Module/Setup.php:656
msgid ""
"Providers are available that issue free certificates which are browser-"
"valid."
msgstr "Existen varias Autoridades de Certificación que le pueden proporcionar certificados válidos."
-#: ../../Zotlabs/Module/Setup.php:654
+#: ../../Zotlabs/Module/Setup.php:658
msgid ""
"If you are confident that the certificate is valid and signed by a trusted "
"authority, check to see if you have failed to install an intermediate cert. "
@@ -2079,37 +2091,37 @@ msgid ""
"server communications."
msgstr "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor."
-#: ../../Zotlabs/Module/Setup.php:656
+#: ../../Zotlabs/Module/Setup.php:660
msgid "SSL certificate validation"
msgstr "validación del certificado SSL"
-#: ../../Zotlabs/Module/Setup.php:662
+#: ../../Zotlabs/Module/Setup.php:666
msgid ""
"Url rewrite in .htaccess is not working. Check your server "
"configuration.Test: "
msgstr "No se pueden reescribir las direcciones web en .htaccess. Compruebe la configuración de su servidor:"
-#: ../../Zotlabs/Module/Setup.php:665
+#: ../../Zotlabs/Module/Setup.php:669
msgid "Url rewrite is working"
msgstr "La reescritura de las direcciones funciona correctamente"
-#: ../../Zotlabs/Module/Setup.php:679
+#: ../../Zotlabs/Module/Setup.php:683
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr "El fichero de configuración de la base de datos .htconfig.php no se ha podido modificar. Por favor, copie el texto generado en un fichero con ese nombre en el directorio raíz de su servidor."
-#: ../../Zotlabs/Module/Setup.php:703
+#: ../../Zotlabs/Module/Setup.php:707
#: ../../addon/rendezvous/rendezvous.php:401
msgid "Errors encountered creating database tables."
msgstr "Se han encontrado errores al crear las tablas de la base de datos."
-#: ../../Zotlabs/Module/Setup.php:743
+#: ../../Zotlabs/Module/Setup.php:747
msgid "<h1>What next?</h1>"
msgstr "<h1>¿Qué sigue?</h1>"
-#: ../../Zotlabs/Module/Setup.php:744
+#: ../../Zotlabs/Module/Setup.php:748
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the "
"poller."
@@ -2188,13 +2200,13 @@ msgstr "Último contacto conocido"
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "Off"
msgstr "Desactivado"
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "On"
msgstr "Activado"
@@ -2248,11 +2260,11 @@ msgid "No failed updates."
msgstr "No ha fallado ninguna actualización."
#: ../../Zotlabs/Module/Admin/Plugins.php:259
-#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:89
+#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:94
#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:46
-#: ../../Zotlabs/Module/Display.php:410
+#: ../../Zotlabs/Module/Display.php:453
#: ../../Zotlabs/Module/Filestorage.php:24 ../../Zotlabs/Module/Admin.php:62
-#: ../../include/items.php:3569
+#: ../../include/items.php:3619
msgid "Item not found."
msgstr "Elemento no encontrado."
@@ -2278,12 +2290,12 @@ msgstr "Activar"
#: ../../Zotlabs/Module/Admin/Plugins.php:341
#: ../../Zotlabs/Module/Admin/Plugins.php:436
-#: ../../Zotlabs/Module/Admin/Accounts.php:165
+#: ../../Zotlabs/Module/Admin/Accounts.php:166
#: ../../Zotlabs/Module/Admin/Logs.php:82
#: ../../Zotlabs/Module/Admin/Channels.php:145
#: ../../Zotlabs/Module/Admin/Themes.php:122
#: ../../Zotlabs/Module/Admin/Themes.php:156
-#: ../../Zotlabs/Module/Admin/Site.php:287
+#: ../../Zotlabs/Module/Admin/Site.php:294
#: ../../Zotlabs/Module/Admin/Security.php:86
#: ../../Zotlabs/Module/Admin.php:136
msgid "Administration"
@@ -2302,8 +2314,8 @@ msgstr "Cambiar"
#: ../../Zotlabs/Module/Admin/Plugins.php:344
#: ../../Zotlabs/Module/Admin/Themes.php:125 ../../Zotlabs/Lib/Apps.php:242
-#: ../../Zotlabs/Widget/Newmember.php:55
-#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/nav.php:105
+#: ../../Zotlabs/Widget/Newmember.php:46
+#: ../../Zotlabs/Widget/Settings_menu.php:141 ../../include/nav.php:105
#: ../../include/nav.php:192
msgid "Settings"
msgstr "Ajustes"
@@ -2411,7 +2423,7 @@ msgstr[1] "%s cuentas eliminadas"
msgid "Account not found"
msgstr "Cuenta no encontrada"
-#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2462
+#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2473
#, php-format
msgid "Account '%s' deleted"
msgstr "La cuenta '%s' ha sido eliminada"
@@ -2426,79 +2438,80 @@ msgstr "La cuenta '%s' ha sido bloqueada"
msgid "Account '%s' unblocked"
msgstr "La cuenta '%s' ha sido desbloqueada"
-#: ../../Zotlabs/Module/Admin/Accounts.php:166
-#: ../../Zotlabs/Module/Admin/Accounts.php:179
+#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:180
#: ../../Zotlabs/Module/Admin.php:96 ../../Zotlabs/Widget/Admin.php:23
msgid "Accounts"
msgstr "Cuentas"
-#: ../../Zotlabs/Module/Admin/Accounts.php:168
+#: ../../Zotlabs/Module/Admin/Accounts.php:169
#: ../../Zotlabs/Module/Admin/Channels.php:148
msgid "select all"
msgstr "seleccionar todo"
-#: ../../Zotlabs/Module/Admin/Accounts.php:169
+#: ../../Zotlabs/Module/Admin/Accounts.php:170
msgid "Registrations waiting for confirm"
msgstr "Inscripciones en espera de confirmación"
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
msgid "Request date"
msgstr "Fecha de solicitud"
-#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:172
msgid "No registrations."
msgstr "Sin registros."
-#: ../../Zotlabs/Module/Admin/Accounts.php:172
-#: ../../Zotlabs/Module/Connections.php:287 ../../include/conversation.php:732
+#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Connections.php:303 ../../include/conversation.php:732
msgid "Approve"
msgstr "Aprobar"
-#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Authorize.php:26
msgid "Deny"
msgstr "Rechazar"
-#: ../../Zotlabs/Module/Admin/Accounts.php:175
+#: ../../Zotlabs/Module/Admin/Accounts.php:176
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Block"
msgstr "Bloquear"
-#: ../../Zotlabs/Module/Admin/Accounts.php:176
+#: ../../Zotlabs/Module/Admin/Accounts.php:177
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Unblock"
msgstr "Desbloquear"
-#: ../../Zotlabs/Module/Admin/Accounts.php:181
+#: ../../Zotlabs/Module/Admin/Accounts.php:182
msgid "ID"
msgstr "ID"
-#: ../../Zotlabs/Module/Admin/Accounts.php:183 ../../include/group.php:284
+#: ../../Zotlabs/Module/Admin/Accounts.php:184 ../../include/group.php:284
msgid "All Channels"
msgstr "Todos los canales"
-#: ../../Zotlabs/Module/Admin/Accounts.php:184
+#: ../../Zotlabs/Module/Admin/Accounts.php:185
msgid "Register date"
msgstr "Fecha de registro"
-#: ../../Zotlabs/Module/Admin/Accounts.php:185
+#: ../../Zotlabs/Module/Admin/Accounts.php:186
msgid "Last login"
msgstr "Último acceso"
-#: ../../Zotlabs/Module/Admin/Accounts.php:186
+#: ../../Zotlabs/Module/Admin/Accounts.php:187
msgid "Expires"
msgstr "Caduca"
-#: ../../Zotlabs/Module/Admin/Accounts.php:187
+#: ../../Zotlabs/Module/Admin/Accounts.php:188
msgid "Service Class"
msgstr "Clase de servicio"
-#: ../../Zotlabs/Module/Admin/Accounts.php:189
+#: ../../Zotlabs/Module/Admin/Accounts.php:190
msgid ""
"Selected accounts will be deleted!\\n\\nEverything these accounts had posted"
" on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "¡Las cuentas seleccionadas van a ser eliminadas!\\n\\n¡Todo lo que estas cuentas han publicado en este sitio será borrado de forma permanente!\\n\\n¿Está seguro de querer hacerlo?"
-#: ../../Zotlabs/Module/Admin/Accounts.php:190
+#: ../../Zotlabs/Module/Admin/Accounts.php:191
msgid ""
"The account {0} will be deleted!\\n\\nEverything this account has posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
@@ -2607,7 +2620,7 @@ msgid "Disallow Code"
msgstr "No permitir código"
#: ../../Zotlabs/Module/Admin/Channels.php:154
-#: ../../include/conversation.php:1808 ../../include/nav.php:378
+#: ../../include/conversation.php:1811 ../../include/nav.php:378
msgid "Channel"
msgstr "Canal"
@@ -2652,552 +2665,549 @@ msgstr "[Experimental]"
msgid "[Unsupported]"
msgstr "[No soportado]"
-#: ../../Zotlabs/Module/Admin/Site.php:158
+#: ../../Zotlabs/Module/Admin/Site.php:165
msgid "Site settings updated."
msgstr "Ajustes del sitio actualizados."
-#: ../../Zotlabs/Module/Admin/Site.php:184
+#: ../../Zotlabs/Module/Admin/Site.php:191
#: ../../view/theme/redbasic_c/php/config.php:15
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3082
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3106
msgid "Default"
msgstr "Predeterminado"
-#: ../../Zotlabs/Module/Admin/Site.php:195
+#: ../../Zotlabs/Module/Admin/Site.php:202
#: ../../Zotlabs/Module/Settings/Display.php:130
#, php-format
msgid "%s - (Incompatible)"
msgstr "%s - (Incompatible)"
-#: ../../Zotlabs/Module/Admin/Site.php:202
+#: ../../Zotlabs/Module/Admin/Site.php:209
msgid "mobile"
msgstr "móvil"
-#: ../../Zotlabs/Module/Admin/Site.php:204
+#: ../../Zotlabs/Module/Admin/Site.php:211
msgid "experimental"
msgstr "experimental"
-#: ../../Zotlabs/Module/Admin/Site.php:206
+#: ../../Zotlabs/Module/Admin/Site.php:213
msgid "unsupported"
msgstr "no soportado"
-#: ../../Zotlabs/Module/Admin/Site.php:253
+#: ../../Zotlabs/Module/Admin/Site.php:260
msgid "Yes - with approval"
msgstr "Sí - con aprobación"
-#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Admin/Site.php:266
msgid "My site is not a public server"
msgstr "Mi sitio no es un servidor público"
-#: ../../Zotlabs/Module/Admin/Site.php:260
+#: ../../Zotlabs/Module/Admin/Site.php:267
msgid "My site has paid access only"
msgstr "Mi sitio es un servicio de pago"
-#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Admin/Site.php:268
msgid "My site has free access only"
msgstr "Mi sitio es un servicio gratuito"
-#: ../../Zotlabs/Module/Admin/Site.php:262
+#: ../../Zotlabs/Module/Admin/Site.php:269
msgid "My site offers free accounts with optional paid upgrades"
msgstr "Mi sitio ofrece cuentas gratuitas con opciones extra de pago"
-#: ../../Zotlabs/Module/Admin/Site.php:274
+#: ../../Zotlabs/Module/Admin/Site.php:281
msgid "Beginner/Basic"
msgstr "Principiante / Básico"
-#: ../../Zotlabs/Module/Admin/Site.php:275
+#: ../../Zotlabs/Module/Admin/Site.php:282
msgid "Novice - not skilled but willing to learn"
msgstr "Novato: no cualificado, pero dispuesto a aprender"
-#: ../../Zotlabs/Module/Admin/Site.php:276
+#: ../../Zotlabs/Module/Admin/Site.php:283
msgid "Intermediate - somewhat comfortable"
msgstr "Intermedio: bastante cómodo"
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:284
msgid "Advanced - very comfortable"
msgstr "Avanzado: muy cómodo"
-#: ../../Zotlabs/Module/Admin/Site.php:278
+#: ../../Zotlabs/Module/Admin/Site.php:285
msgid "Expert - I can write computer code"
msgstr "Experto: puedo escribir código informático"
-#: ../../Zotlabs/Module/Admin/Site.php:279
+#: ../../Zotlabs/Module/Admin/Site.php:286
msgid "Wizard - I probably know more than you do"
msgstr "Colaborador: probablemente sé más que tú"
-#: ../../Zotlabs/Module/Admin/Site.php:288 ../../Zotlabs/Widget/Admin.php:22
+#: ../../Zotlabs/Module/Admin/Site.php:295 ../../Zotlabs/Widget/Admin.php:22
msgid "Site"
msgstr "Sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:290
+#: ../../Zotlabs/Module/Admin/Site.php:297
#: ../../Zotlabs/Module/Register.php:269
msgid "Registration"
msgstr "Registro"
-#: ../../Zotlabs/Module/Admin/Site.php:291
+#: ../../Zotlabs/Module/Admin/Site.php:298
msgid "File upload"
msgstr "Subir fichero"
-#: ../../Zotlabs/Module/Admin/Site.php:292
+#: ../../Zotlabs/Module/Admin/Site.php:299
msgid "Policies"
msgstr "Políticas"
-#: ../../Zotlabs/Module/Admin/Site.php:293
+#: ../../Zotlabs/Module/Admin/Site.php:300
#: ../../include/contact_widgets.php:16
msgid "Advanced"
msgstr "Avanzado"
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:304
#: ../../addon/statusnet/statusnet.php:891
msgid "Site name"
msgstr "Nombre del sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Site default technical skill level"
msgstr "Nivel de habilidad técnica predeterminado del sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Used to provide a member experience matched to technical comfort level"
msgstr "Se utiliza para proporcionar una experiencia a los miembros adaptada a su nivel de comodidad técnica"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Lock the technical skill level setting"
msgstr "Bloquear el ajuste del nivel de habilidad técnica"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Members can set their own technical comfort level by default"
msgstr "Los miembros pueden configurar su nivel de comodidad técnica por defecto"
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Banner/Logo"
msgstr "Banner/Logo"
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Unfiltered HTML/CSS/JS is allowed"
msgstr "Se permite HTML/CSS/JS sin filtrar"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid "Administrator Information"
msgstr "Información del Administrador"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Información de contacto de los administradores del sitio. Visible en la página \"siteinfo\". Se puede usar BBCode"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
#: ../../Zotlabs/Module/Siteinfo.php:21
msgid "Site Information"
msgstr "Información sobre el sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
msgid ""
"Publicly visible description of this site. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Descripción pública de este sitio. Visible en la página \"siteinfo\". Se puede usar BBCode"
-#: ../../Zotlabs/Module/Admin/Site.php:306
+#: ../../Zotlabs/Module/Admin/Site.php:313
msgid "System language"
msgstr "Idioma del sistema"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid "System theme"
msgstr "Tema gráfico del sistema"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - <a href='#' id='cnftheme'>modificar los ajustes del tema</a>"
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Mobile system theme"
-msgstr "Tema del sistema para móviles"
-
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Theme for mobile devices"
-msgstr "Tema para dispositivos móviles"
-
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "Allow Feeds as Connections"
msgstr "Permitir contenidos RSS como conexiones"
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "(Heavy system resource usage)"
msgstr "(Uso intenso de los recursos del sistema)"
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid "Maximum image size"
msgstr "Tamaño máximo de la imagen"
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Tamaño máximo en bytes de la imagen subida. Por defecto, es 0, lo que significa que no hay límites."
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid "Does this site allow new member registration?"
msgstr "¿Debe este sitio permitir el registro de nuevos miembros?"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid "Invitation only"
msgstr "Solo con una invitación"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr "Solo se permiten inscripciones de nuevos miembros con un código de invitación. Además, deben aceptarse los términos del registro marcando \"Sí\"."
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age"
msgstr "Edad mínima"
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age (in years) for who may register on this site."
msgstr "Edad mínima (en años) para poder registrarse en este sitio."
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid "Which best describes the types of account offered by this hub?"
msgstr "¿Cómo describiría el tipo de servicio ofrecido por este servidor?"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Register text"
msgstr "Texto del registro"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Will be displayed prominently on the registration page."
msgstr "Se mostrará de forma destacada en la página de registro."
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid "Site homepage to show visitors (default: login box)"
msgstr "Página personal que se mostrará a los visitantes (por defecto: la página de identificación)"
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid ""
"example: 'public' to show public stream, 'page/sys/home' to show a system "
"webpage called 'home' or 'include:home.html' to include a file."
msgstr "ejemplo: 'public' para mostrar contenido público, 'page/sys/home' para mostrar la página web definida como \"home\" o 'include:home.html' para mostrar el contenido de un fichero."
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid "Preserve site homepage URL"
msgstr "Preservar la dirección de la página personal"
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr "Presenta la página personal del sitio en un marco en la ubicación original, en vez de redirigirla."
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid "Accounts abandoned after x days"
msgstr "Cuentas abandonadas después de x días"
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Para evitar consumir recursos del sistema intentando poner al día las cuentas abandonadas. Introduzca 0 para no tener límite de tiempo."
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid "Allowed friend domains"
msgstr "Dominios amigos permitidos"
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Lista separada por comas de dominios a los que está permitido establecer relaciones de amistad con este sitio. Se permiten comodines. Dejar en claro para aceptar cualquier dominio."
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid "Verify Email Addresses"
msgstr "Verificar las direcciones de correo electrónico"
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr "Activar para la verificación de la dirección de correo electrónico en el registro de una cuenta (recomendado)."
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid "Force publish"
msgstr "Forzar la publicación"
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Intentar forzar todos los perfiles para que sean listados en el directorio de este sitio."
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid "Import Public Streams"
msgstr "Importar contenido público"
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr "Importar y permitir acceso al contenido público sacado de otros sitios. Advertencia: este contenido no está moderado, por lo que podría encontrar cosas inapropiadas u ofensivas."
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid "Site only Public Streams"
msgstr "Solo contenido público en este sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid ""
"Allow access to public content originating only from this site if Imported "
"Public Streams are disabled."
msgstr "Permitir el acceso al contenido público originado sólo desde este sitio si los \"streams\" públicos Importados están deshabilitados."
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid "Allow anybody on the internet to access the Public streams"
msgstr "Permitir que cualquiera en Internet pueda acceder a los \"streams\" públicos"
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid ""
"Disable to require authentication before viewing. Warning: this content is "
"unmoderated."
msgstr "Desactivar para requerir autenticación antes de la visualización. Advertencia: este contenido no está moderado."
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid "Login on Homepage"
msgstr "Iniciar sesión en la página personal"
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr "Presentar a los visitantes una casilla de identificación en la página de inicio, si no se ha configurado otro tipo de contenido."
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid "Enable context help"
msgstr "Habilitar la ayuda contextual"
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid ""
"Display contextual help for the current page when the help button is "
"pressed."
msgstr "Ver la ayuda contextual para la página actual cuando se pulse el botón de Ayuda."
-#: ../../Zotlabs/Module/Admin/Site.php:329
+#: ../../Zotlabs/Module/Admin/Site.php:336
msgid "Reply-to email address for system generated email."
msgstr "Dirección de respuesta para el correo electrónico generado por el sistema."
-#: ../../Zotlabs/Module/Admin/Site.php:330
+#: ../../Zotlabs/Module/Admin/Site.php:337
msgid "Sender (From) email address for system generated email."
msgstr "Dirección del remitente (From) para el correo electrónico generado por el sistema."
-#: ../../Zotlabs/Module/Admin/Site.php:331
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Name of email sender for system generated email."
msgstr "Nombre del remitente del correo electrónico generado por el sistema."
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Directory Server URL"
msgstr "URL del servidor de directorio"
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Default directory server"
msgstr "Servidor de directorio predeterminado"
-#: ../../Zotlabs/Module/Admin/Site.php:335
+#: ../../Zotlabs/Module/Admin/Site.php:342
msgid "Proxy user"
msgstr "Usuario del proxy"
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:343
msgid "Proxy URL"
msgstr "Dirección del proxy"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Network timeout"
msgstr "Tiempo de espera de la red"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Valor en segundos. Poner a 0 para que no haya tiempo límite (no recomendado)"
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid "Delivery interval"
msgstr "Intervalo de entrega"
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr "Retrasar los procesos de transmisión en segundo plano por esta cantidad de segundos para reducir la carga del sistema. Recomendado: 4-5 para sitios compartidos, 2-3 para servidores virtuales privados, 0-1 para grandes servidores dedicados."
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid "Deliveries per process"
msgstr "Intentos de envío por proceso"
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust"
" if necessary to tune system performance. Recommend: 1-5."
msgstr "Numero de envíos a intentar en un único proceso del sistema operativo. Ajustar si es necesario mejorar el rendimiento. Se recomienda: 1-5."
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid "Queue Threshold"
msgstr "Umbral de la cola de espera"
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid ""
"Always defer immediate delivery if queue contains more than this number of "
"entries."
msgstr "Aplazar siempre la entrega inmediata si la cola contiene más de este número de entradas."
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid "Poll interval"
msgstr "Intervalo máximo de tiempo entre dos mensajes sucesivos"
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Retrasar el intervalo de envío en segundo plano, en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, usar el intervalo de entrega."
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid "Path to ImageMagick convert program"
msgstr "Ruta al programa de conversión de ImageMagick"
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid ""
"If set, use this program to generate photo thumbnails for huge images ( > "
"4000 pixels in either dimension), otherwise memory exhaustion may occur. "
"Example: /usr/bin/convert"
msgstr "Si está configurado, utilice este programa para generar miniaturas de fotos para imágenes de gran tamaño ( > 4000 píxeles en cualquiera de las dos dimensiones), de lo contrario se puede agotar la memoria. Ejemplo: /usr/bin/convert"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "Allow SVG thumbnails in file browser"
msgstr "Permitir miniaturas SVG en el navegador de archivos"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "WARNING: SVG images may contain malicious code."
msgstr "ADVERTENCIA: Las imágenes SVG pueden contener código malicioso."
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid "Maximum Load Average"
msgstr "Carga media máxima"
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Carga máxima del sistema antes de que los procesos de entrega y envío se hayan retardado - por defecto, 50."
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "Expiration period in days for imported (grid/network) content"
msgstr "Caducidad del contenido importado de otros sitios (en días)"
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "0 for no expiration of imported content"
msgstr "0 para que no caduque el contenido importado"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:353
+msgid ""
+"Do not expire any posts which have comments less than this many days ago"
+msgstr "No caduque ningún mensaje que tenga menos comentarios que este hace muchos días"
+
+#: ../../Zotlabs/Module/Admin/Site.php:355
msgid ""
"Public servers: Optional landing (marketing) webpage for new registrants"
msgstr "Servidores públicos: Página web de acogida (marketing) opcional para nuevos registros"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:355
#, php-format
msgid "Create this page first. Default is %s/register"
msgstr "Crear esta página primero. Por defecto es %s/register"
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Page to display after creating a new channel"
msgstr "Página a mostrar después de la creación de un nuevo canal"
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Recommend: profiles, go, or settings"
msgstr "Recomendar: perfiles, ir, o ajustes"
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Optional: site location"
msgstr "Opcional: ubicación del sitio"
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Region or country"
msgstr "Región o país"
-#: ../../Zotlabs/Module/Admin/Profs.php:69
+#: ../../Zotlabs/Module/Admin/Profs.php:89
msgid "New Profile Field"
msgstr "Nuevo campo en el perfil"
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "Field nickname"
msgstr "Alias del campo"
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "System name of field"
msgstr "Nombre del campo en el sistema"
-#: ../../Zotlabs/Module/Admin/Profs.php:71
#: ../../Zotlabs/Module/Admin/Profs.php:91
+#: ../../Zotlabs/Module/Admin/Profs.php:111
msgid "Input type"
msgstr "Tipo de entrada"
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Field Name"
msgstr "Nombre del campo"
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Label on profile pages"
msgstr "Etiqueta a mostrar en la página del perfil"
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Help text"
msgstr "Texto de ayuda"
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Additional info (optional)"
msgstr "Información adicional (opcional)"
-#: ../../Zotlabs/Module/Admin/Profs.php:74
-#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32
+#: ../../Zotlabs/Module/Admin/Profs.php:94
+#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
#: ../../Zotlabs/Widget/Notes.php:18 ../../include/text.php:1052
#: ../../include/text.php:1064
msgid "Save"
msgstr "Guardar"
-#: ../../Zotlabs/Module/Admin/Profs.php:83
+#: ../../Zotlabs/Module/Admin/Profs.php:103
msgid "Field definition not found"
msgstr "Definición del campo no encontrada"
-#: ../../Zotlabs/Module/Admin/Profs.php:89
+#: ../../Zotlabs/Module/Admin/Profs.php:109
msgid "Edit Profile Field"
msgstr "Modificar el campo del perfil"
-#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../Zotlabs/Widget/Admin.php:30
+#: ../../Zotlabs/Module/Admin/Profs.php:168 ../../Zotlabs/Widget/Admin.php:30
msgid "Profile Fields"
msgstr "Campos del perfil"
-#: ../../Zotlabs/Module/Admin/Profs.php:148
+#: ../../Zotlabs/Module/Admin/Profs.php:169
msgid "Basic Profile Fields"
msgstr "Campos básicos del perfil"
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "Advanced Profile Fields"
msgstr "Campos avanzados del perfil"
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "(In addition to basic fields)"
msgstr "(Además de los campos básicos)"
-#: ../../Zotlabs/Module/Admin/Profs.php:151
+#: ../../Zotlabs/Module/Admin/Profs.php:172
msgid "All available fields"
msgstr "Todos los campos disponibles"
-#: ../../Zotlabs/Module/Admin/Profs.php:152
+#: ../../Zotlabs/Module/Admin/Profs.php:173
msgid "Custom Fields"
msgstr "Campos personalizados"
-#: ../../Zotlabs/Module/Admin/Profs.php:156
+#: ../../Zotlabs/Module/Admin/Profs.php:177
msgid "Create Custom Field"
msgstr "Crear un campo personalizado"
@@ -3367,51 +3377,55 @@ msgctxt "acl"
msgid "Profile"
msgstr "Perfil"
-#: ../../Zotlabs/Module/Moderate.php:55
+#: ../../Zotlabs/Module/Moderate.php:65
msgid "Comment approved"
msgstr "El comentario ha sido aprobado"
-#: ../../Zotlabs/Module/Moderate.php:59
+#: ../../Zotlabs/Module/Moderate.php:69
msgid "Comment deleted"
msgstr "Se ha eliminado el comentario"
-#: ../../Zotlabs/Module/Settings/Permcats.php:37
+#: ../../Zotlabs/Module/Settings/Permcats.php:23
+msgid "Permission Name is required."
+msgstr "Se requiere el nombre de la autorización"
+
+#: ../../Zotlabs/Module/Settings/Permcats.php:42
msgid "Permission category saved."
msgstr "Se ha guardado la categoría del permiso."
-#: ../../Zotlabs/Module/Settings/Permcats.php:61
+#: ../../Zotlabs/Module/Settings/Permcats.php:66
msgid ""
"Use this form to create permission rules for various classes of people or "
"connections."
msgstr "Utilice este formulario para crear reglas de permiso para varias clases de personas o conexiones."
-#: ../../Zotlabs/Module/Settings/Permcats.php:94
+#: ../../Zotlabs/Module/Settings/Permcats.php:99
msgid "Permission Categories"
msgstr "Tipos de permisos"
-#: ../../Zotlabs/Module/Settings/Permcats.php:102
+#: ../../Zotlabs/Module/Settings/Permcats.php:107
msgid "Permission Name"
msgstr "Nombre de la autorización"
-#: ../../Zotlabs/Module/Settings/Permcats.php:103
+#: ../../Zotlabs/Module/Settings/Permcats.php:108
#: ../../Zotlabs/Module/Settings/Tokens.php:161
#: ../../Zotlabs/Module/Connedit.php:891 ../../Zotlabs/Module/Defperms.php:250
msgid "My Settings"
msgstr "Mis ajustes"
-#: ../../Zotlabs/Module/Settings/Permcats.php:105
+#: ../../Zotlabs/Module/Settings/Permcats.php:110
#: ../../Zotlabs/Module/Settings/Tokens.php:163
#: ../../Zotlabs/Module/Connedit.php:886 ../../Zotlabs/Module/Defperms.php:248
msgid "inherited"
msgstr "heredado"
-#: ../../Zotlabs/Module/Settings/Permcats.php:108
+#: ../../Zotlabs/Module/Settings/Permcats.php:113
#: ../../Zotlabs/Module/Settings/Tokens.php:166
#: ../../Zotlabs/Module/Connedit.php:893 ../../Zotlabs/Module/Defperms.php:253
msgid "Individual Permissions"
msgstr "Permisos individuales"
-#: ../../Zotlabs/Module/Settings/Permcats.php:109
+#: ../../Zotlabs/Module/Settings/Permcats.php:114
#: ../../Zotlabs/Module/Settings/Tokens.php:167
#: ../../Zotlabs/Module/Connedit.php:894
msgid ""
@@ -3432,7 +3446,7 @@ msgstr "Algunos permisos pueden ser heredados de los <a href=\"settings\"><stron
msgid "Friends"
msgstr "Amigos/as"
-#: ../../Zotlabs/Module/Settings/Channel.php:262
+#: ../../Zotlabs/Module/Settings/Channel.php:264
#: ../../Zotlabs/Module/Defperms.php:103
#: ../../addon/rendezvous/rendezvous.php:82
#: ../../addon/openstreetmap/openstreetmap.php:184
@@ -3442,409 +3456,420 @@ msgstr "Amigos/as"
msgid "Settings updated."
msgstr "Ajustes actualizados."
-#: ../../Zotlabs/Module/Settings/Channel.php:323
+#: ../../Zotlabs/Module/Settings/Channel.php:325
msgid "Nobody except yourself"
msgstr "Nadie excepto usted"
-#: ../../Zotlabs/Module/Settings/Channel.php:324
+#: ../../Zotlabs/Module/Settings/Channel.php:326
msgid "Only those you specifically allow"
msgstr "Solo aquellos a los que usted permita explícitamente"
-#: ../../Zotlabs/Module/Settings/Channel.php:325
+#: ../../Zotlabs/Module/Settings/Channel.php:327
msgid "Approved connections"
msgstr "Conexiones aprobadas"
-#: ../../Zotlabs/Module/Settings/Channel.php:326
+#: ../../Zotlabs/Module/Settings/Channel.php:328
msgid "Any connections"
msgstr "Cualquier conexión"
-#: ../../Zotlabs/Module/Settings/Channel.php:327
+#: ../../Zotlabs/Module/Settings/Channel.php:329
msgid "Anybody on this website"
msgstr "Cualquiera en este sitio web"
-#: ../../Zotlabs/Module/Settings/Channel.php:328
+#: ../../Zotlabs/Module/Settings/Channel.php:330
msgid "Anybody in this network"
msgstr "Cualquiera en esta red"
-#: ../../Zotlabs/Module/Settings/Channel.php:329
+#: ../../Zotlabs/Module/Settings/Channel.php:331
msgid "Anybody authenticated"
msgstr "Cualquiera que esté autenticado"
-#: ../../Zotlabs/Module/Settings/Channel.php:330
+#: ../../Zotlabs/Module/Settings/Channel.php:332
msgid "Anybody on the internet"
msgstr "Cualquiera en internet"
-#: ../../Zotlabs/Module/Settings/Channel.php:405
+#: ../../Zotlabs/Module/Settings/Channel.php:407
msgid "Publish your default profile in the network directory"
msgstr "Publicar su perfil principal en el directorio de la red"
-#: ../../Zotlabs/Module/Settings/Channel.php:410
+#: ../../Zotlabs/Module/Settings/Channel.php:412
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?"
-#: ../../Zotlabs/Module/Settings/Channel.php:414
+#: ../../Zotlabs/Module/Settings/Channel.php:416
msgid "or"
msgstr "o"
-#: ../../Zotlabs/Module/Settings/Channel.php:419
+#: ../../Zotlabs/Module/Settings/Channel.php:425
msgid "Your channel address is"
msgstr "Su dirección de canal es"
-#: ../../Zotlabs/Module/Settings/Channel.php:422
+#: ../../Zotlabs/Module/Settings/Channel.php:428
msgid "Your files/photos are accessible via WebDAV at"
msgstr "Sus archivos y fotos son accesibles a través de WebDAV en "
-#: ../../Zotlabs/Module/Settings/Channel.php:486
+#: ../../Zotlabs/Module/Settings/Channel.php:493
msgid "Channel Settings"
msgstr "Ajustes del canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:493
+#: ../../Zotlabs/Module/Settings/Channel.php:500
msgid "Basic Settings"
msgstr "Configuración básica"
-#: ../../Zotlabs/Module/Settings/Channel.php:494
-#: ../../include/channel.php:1522
+#: ../../Zotlabs/Module/Settings/Channel.php:501
+#: ../../include/channel.php:1521
msgid "Full Name:"
msgstr "Nombre completo:"
-#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Channel.php:502
#: ../../Zotlabs/Module/Settings/Account.php:119
msgid "Email Address:"
msgstr "Dirección de correo electrónico:"
-#: ../../Zotlabs/Module/Settings/Channel.php:496
+#: ../../Zotlabs/Module/Settings/Channel.php:503
msgid "Your Timezone:"
msgstr "Su huso horario:"
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Default Post Location:"
msgstr "Localización geográfica predeterminada para sus publicaciones:"
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Geographical location to display on your posts"
msgstr "Localización geográfica que debe mostrarse en sus publicaciones"
-#: ../../Zotlabs/Module/Settings/Channel.php:498
+#: ../../Zotlabs/Module/Settings/Channel.php:505
msgid "Use Browser Location:"
msgstr "Usar la localización geográfica del navegador:"
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid "Adult Content"
msgstr "Contenido solo para adultos"
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr "Este canal publica contenido solo para adultos con frecuencia o regularmente. (Por favor etiquete cualquier material para adultos con la etiqueta #NSFW)"
-#: ../../Zotlabs/Module/Settings/Channel.php:502
+#: ../../Zotlabs/Module/Settings/Channel.php:509
msgid "Security and Privacy Settings"
msgstr "Configuración de seguridad y privacidad"
-#: ../../Zotlabs/Module/Settings/Channel.php:504
+#: ../../Zotlabs/Module/Settings/Channel.php:511
msgid "Your permissions are already configured. Click to view/adjust"
msgstr "Sus permisos ya están configurados. Pulse para ver/ajustar"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Hide my online presence"
msgstr "Ocultar mi presencia en línea"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Prevents displaying in your profile that you are online"
msgstr "Evitar mostrar en su perfil que está en línea"
-#: ../../Zotlabs/Module/Settings/Channel.php:508
+#: ../../Zotlabs/Module/Settings/Channel.php:515
msgid "Simple Privacy Settings:"
msgstr "Configuración de privacidad sencilla:"
-#: ../../Zotlabs/Module/Settings/Channel.php:509
+#: ../../Zotlabs/Module/Settings/Channel.php:516
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr "Muy Público - <em>extremadamente permisivo (debería ser usado con precaución)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:510
+#: ../../Zotlabs/Module/Settings/Channel.php:517
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr "Típico - <em>por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:511
+#: ../../Zotlabs/Module/Settings/Channel.php:518
msgid "Private - <em>default private, never open or public</em>"
msgstr "Privado - <em>por defecto, privado, nunca abierto o público</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:512
+#: ../../Zotlabs/Module/Settings/Channel.php:519
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr "Bloqueado - <em>por defecto, bloqueado/a para cualquiera</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid "Allow others to tag your posts"
msgstr "Permitir a otros etiquetar sus publicaciones"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "A menudo usado por la comunidad para marcar contenido inapropiado de forma retroactiva."
-#: ../../Zotlabs/Module/Settings/Channel.php:516
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "Channel Permission Limits"
msgstr "Límites de los permisos del canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "Expire other channel content after this many days"
msgstr "Caducar contenido de otros canales después de este número de días"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "0 or blank to use the website limit."
msgstr "0 o en blanco para usar el límite del sitio web."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
#, php-format
msgid "This website expires after %d days."
msgstr "Este sitio web caduca después de %d días."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "This website does not expire imported content."
msgstr "Este sitio web no caduca el contenido importado."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "The website limit takes precedence if lower than your limit."
msgstr "El límite del sitio web tiene prioridad si es inferior a su propio límite."
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "Maximum Friend Requests/Day:"
msgstr "Máximo de solicitudes de amistad por día:"
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "May reduce spam activity"
msgstr "Podría reducir la actividad de spam"
-#: ../../Zotlabs/Module/Settings/Channel.php:520
+#: ../../Zotlabs/Module/Settings/Channel.php:527
msgid "Default Privacy Group"
msgstr "Grupo de canales predeterminado"
-#: ../../Zotlabs/Module/Settings/Channel.php:522
+#: ../../Zotlabs/Module/Settings/Channel.php:529
msgid "Use my default audience setting for the type of object published"
msgstr "Usar los ajustes de mi audiencia predeterminada para el tipo de publicación"
-#: ../../Zotlabs/Module/Settings/Channel.php:523
+#: ../../Zotlabs/Module/Settings/Channel.php:530
msgid "Profile to assign new connections"
msgstr "Perfil para asignar a las nuevas conexiones"
-#: ../../Zotlabs/Module/Settings/Channel.php:532
-msgid "Channel permissions category:"
-msgstr "Categoría de los permisos del canal:"
-
-#: ../../Zotlabs/Module/Settings/Channel.php:533
+#: ../../Zotlabs/Module/Settings/Channel.php:540
msgid "Default Permissions Group"
msgstr "Grupo de permisos predeterminados"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Maximum private messages per day from unknown people:"
msgstr "Máximo de mensajes privados por día de gente desconocida:"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Useful to reduce spamming"
msgstr "Útil para reducir el envío de correo no deseado"
-#: ../../Zotlabs/Module/Settings/Channel.php:542
+#: ../../Zotlabs/Module/Settings/Channel.php:549
#: ../../Zotlabs/Lib/Enotify.php:68
msgid "Notification Settings"
msgstr "Configuración de las notificaciones"
-#: ../../Zotlabs/Module/Settings/Channel.php:543
+#: ../../Zotlabs/Module/Settings/Channel.php:550
msgid "By default post a status message when:"
msgstr "Por defecto, enviar un mensaje de estado cuando:"
-#: ../../Zotlabs/Module/Settings/Channel.php:544
+#: ../../Zotlabs/Module/Settings/Channel.php:551
msgid "accepting a friend request"
msgstr "Acepte una solicitud de amistad"
-#: ../../Zotlabs/Module/Settings/Channel.php:545
+#: ../../Zotlabs/Module/Settings/Channel.php:552
msgid "joining a forum/community"
msgstr "al unirse a un foro o comunidad"
-#: ../../Zotlabs/Module/Settings/Channel.php:546
+#: ../../Zotlabs/Module/Settings/Channel.php:553
msgid "making an <em>interesting</em> profile change"
msgstr "Realice un cambio <em>interesante</em> en su perfil"
-#: ../../Zotlabs/Module/Settings/Channel.php:547
+#: ../../Zotlabs/Module/Settings/Channel.php:554
msgid "Send a notification email when:"
msgstr "Enviar una notificación por correo electrónico cuando:"
-#: ../../Zotlabs/Module/Settings/Channel.php:548
+#: ../../Zotlabs/Module/Settings/Channel.php:555
msgid "You receive a connection request"
msgstr "Reciba una solicitud de conexión"
-#: ../../Zotlabs/Module/Settings/Channel.php:549
+#: ../../Zotlabs/Module/Settings/Channel.php:556
msgid "Your connections are confirmed"
msgstr "Sus conexiones hayan sido confirmadas"
-#: ../../Zotlabs/Module/Settings/Channel.php:550
+#: ../../Zotlabs/Module/Settings/Channel.php:557
msgid "Someone writes on your profile wall"
msgstr "Alguien escriba en la página de su perfil (\"muro\")"
-#: ../../Zotlabs/Module/Settings/Channel.php:551
+#: ../../Zotlabs/Module/Settings/Channel.php:558
msgid "Someone writes a followup comment"
msgstr "Alguien escriba un comentario sobre sus publicaciones"
-#: ../../Zotlabs/Module/Settings/Channel.php:552
+#: ../../Zotlabs/Module/Settings/Channel.php:559
msgid "You receive a private message"
msgstr "Reciba un mensaje privado"
-#: ../../Zotlabs/Module/Settings/Channel.php:553
+#: ../../Zotlabs/Module/Settings/Channel.php:560
msgid "You receive a friend suggestion"
msgstr "Reciba una sugerencia de amistad"
-#: ../../Zotlabs/Module/Settings/Channel.php:554
+#: ../../Zotlabs/Module/Settings/Channel.php:561
msgid "You are tagged in a post"
msgstr "Usted sea etiquetado en una publicación"
-#: ../../Zotlabs/Module/Settings/Channel.php:555
+#: ../../Zotlabs/Module/Settings/Channel.php:562
msgid "You are poked/prodded/etc. in a post"
msgstr "Reciba un toque o incitación en una publicación"
-#: ../../Zotlabs/Module/Settings/Channel.php:557
+#: ../../Zotlabs/Module/Settings/Channel.php:564
msgid "Someone likes your post/comment"
msgstr "Alguien muestre agrado por su entrada o comentario"
-#: ../../Zotlabs/Module/Settings/Channel.php:560
+#: ../../Zotlabs/Module/Settings/Channel.php:567
msgid "Show visual notifications including:"
msgstr "Mostrar notificaciones visuales que incluyan:"
-#: ../../Zotlabs/Module/Settings/Channel.php:562
+#: ../../Zotlabs/Module/Settings/Channel.php:569
msgid "Unseen grid activity"
msgstr "Nueva actividad en la red"
-#: ../../Zotlabs/Module/Settings/Channel.php:563
+#: ../../Zotlabs/Module/Settings/Channel.php:570
msgid "Unseen channel activity"
msgstr "Actividad no vista en el canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
+#: ../../Zotlabs/Module/Settings/Channel.php:571
msgid "Unseen private messages"
msgstr "Mensajes privados no leídos"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
-#: ../../Zotlabs/Module/Settings/Channel.php:569
-#: ../../Zotlabs/Module/Settings/Channel.php:570
#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:576
+#: ../../Zotlabs/Module/Settings/Channel.php:577
+#: ../../Zotlabs/Module/Settings/Channel.php:578
#: ../../addon/jappixmini/jappixmini.php:343
msgid "Recommended"
msgstr "Recomendado"
-#: ../../Zotlabs/Module/Settings/Channel.php:565
+#: ../../Zotlabs/Module/Settings/Channel.php:572
msgid "Upcoming events"
msgstr "Próximos eventos"
-#: ../../Zotlabs/Module/Settings/Channel.php:566
+#: ../../Zotlabs/Module/Settings/Channel.php:573
msgid "Events today"
msgstr "Eventos de hoy"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Upcoming birthdays"
msgstr "Próximos cumpleaños"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Not available in all themes"
msgstr "No disponible en todos los temas"
-#: ../../Zotlabs/Module/Settings/Channel.php:568
+#: ../../Zotlabs/Module/Settings/Channel.php:575
msgid "System (personal) notifications"
msgstr "Notificaciones del sistema (personales)"
-#: ../../Zotlabs/Module/Settings/Channel.php:569
+#: ../../Zotlabs/Module/Settings/Channel.php:576
msgid "System info messages"
msgstr "Mensajes de información del sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:570
+#: ../../Zotlabs/Module/Settings/Channel.php:577
msgid "System critical alerts"
msgstr "Alertas críticas del sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:578
msgid "New connections"
msgstr "Nuevas conexiones"
-#: ../../Zotlabs/Module/Settings/Channel.php:572
+#: ../../Zotlabs/Module/Settings/Channel.php:579
msgid "System Registrations"
msgstr "Registros del sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:573
+#: ../../Zotlabs/Module/Settings/Channel.php:580
msgid "Unseen shared files"
msgstr "Ficheros compartidos no vistos"
-#: ../../Zotlabs/Module/Settings/Channel.php:574
+#: ../../Zotlabs/Module/Settings/Channel.php:581
msgid "Unseen public activity"
msgstr "Actividad pública no vista"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:582
+msgid "Unseen likes and dislikes"
+msgstr "Los \"me gusta\" y \"no me gusta\" no vistos"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:583
msgid "Email notification hub (hostname)"
msgstr "Email de notificación del hub (nombre del host)"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:583
#, php-format
msgid ""
"If your channel is mirrored to multiple hubs, set this to your preferred "
"location. This will prevent duplicate email notifications. Example: %s"
msgstr "Si su canal está replicado en múltiples hubs, colóquelo en su ubicación preferida. Esto evitará la duplicación de notificaciones por correo electrónico. Ejemplo: %s"
-#: ../../Zotlabs/Module/Settings/Channel.php:576
-msgid ""
-"Also show new wall posts, private messages and connections under Notices"
-msgstr "Mostrar también en Avisos las nuevas publicaciones, los mensajes privados y las conexiones"
+#: ../../Zotlabs/Module/Settings/Channel.php:584
+msgid "Show new wall posts, private messages and connections under Notices"
+msgstr "Mostrar nuevos mensajes en el muro, mensajes privados y conexiones en Avisos"
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Notify me of events this many days in advance"
msgstr "Avisarme de los eventos con algunos días de antelación"
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Must be greater than 0"
msgstr "Debe ser mayor que 0"
-#: ../../Zotlabs/Module/Settings/Channel.php:584
+#: ../../Zotlabs/Module/Settings/Channel.php:592
msgid "Advanced Account/Page Type Settings"
msgstr "Ajustes avanzados de la cuenta y de los tipos de página"
-#: ../../Zotlabs/Module/Settings/Channel.php:585
+#: ../../Zotlabs/Module/Settings/Channel.php:593
msgid "Change the behaviour of this account for special situations"
msgstr "Cambiar el comportamiento de esta cuenta en situaciones especiales"
-#: ../../Zotlabs/Module/Settings/Channel.php:587
+#: ../../Zotlabs/Module/Settings/Channel.php:595
msgid "Miscellaneous Settings"
msgstr "Ajustes diversos"
-#: ../../Zotlabs/Module/Settings/Channel.php:588
+#: ../../Zotlabs/Module/Settings/Channel.php:596
msgid "Default photo upload folder"
msgstr "Carpeta por defecto de las fotos subidas"
-#: ../../Zotlabs/Module/Settings/Channel.php:588
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:596
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "%Y - current year, %m - current month"
msgstr "%Y - año en curso, %m - mes actual"
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "Default file upload folder"
msgstr "Carpeta por defecto de los ficheros subidos"
-#: ../../Zotlabs/Module/Settings/Channel.php:591
+#: ../../Zotlabs/Module/Settings/Channel.php:599
msgid "Personal menu to display in your channel pages"
msgstr "Menú personal que debe mostrarse en las páginas de su canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:593
+#: ../../Zotlabs/Module/Settings/Channel.php:601
msgid "Remove this channel."
msgstr "Eliminar este canal."
-#: ../../Zotlabs/Module/Settings/Channel.php:594
+#: ../../Zotlabs/Module/Settings/Channel.php:602
msgid "Firefox Share $Projectname provider"
msgstr "Servicio de compartición de Firefox: proveedor $Projectname"
-#: ../../Zotlabs/Module/Settings/Channel.php:595
+#: ../../Zotlabs/Module/Settings/Channel.php:603
msgid "Start calendar week on Monday"
msgstr "Comenzar el calendario semanal por el lunes"
-#: ../../Zotlabs/Module/Settings/Features.php:45
+#: ../../Zotlabs/Module/Settings/Features.php:73
msgid "Additional Features"
msgstr "Funcionalidades"
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid "Your technical skill level"
+msgstr "Su nivel de habilidad técnica"
+
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid ""
+"Used to provide a member experience and additional features consistent with "
+"your comfort level"
+msgstr "Utilizado para proporcionar un nivel de experiencia como miembro y características adicionales consistentes con su nivel de comodidad"
+
#: ../../Zotlabs/Module/Settings/Tokens.php:31
#, php-format
msgid "This channel is limited to %d tokens"
@@ -3873,7 +3898,7 @@ msgid ""
msgstr "También puede proporcionar, con el estilo <em>dropbox</em>, enlaces de acceso a sus amigos y asociados añadiendo la contraseña de inicio de sesión a cualquier dirección URL, como se muestra. Ejemplos: "
#: ../../Zotlabs/Module/Settings/Tokens.php:150
-#: ../../Zotlabs/Widget/Settings_menu.php:92
+#: ../../Zotlabs/Widget/Settings_menu.php:100
msgid "Guest Access Tokens"
msgstr "Tokens de acceso para invitados"
@@ -3894,6 +3919,98 @@ msgstr "Expira (aaaa-mm-dd)"
msgid "Their Settings"
msgstr "Sus ajustes"
+#: ../../Zotlabs/Module/Settings/Oauth2.php:35
+msgid "Name and Secret are required"
+msgstr "\"Key\" y \"Secret\" son obligatorios"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:83
+msgid "Add OAuth2 application"
+msgstr "Añadir aplicación OAuth2"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+msgid "Name of application"
+msgstr "Nombre de la aplicación"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+#: ../../Zotlabs/Module/Settings/Oauth.php:118
+#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
+msgid "Consumer Secret"
+msgstr "Consumer Secret"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:119
+msgid "Redirect"
+msgstr "Redirigir"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+msgid "Grant Types"
+msgstr "Tipos de permisos"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "leave blank unless your application sepcifically requires this"
+msgstr "Dejar en blanco a menos que su aplicación lo requiera específicamente"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "Authorization scope"
+msgstr "Alcance de la autorización"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:102
+msgid "OAuth2 Application not found."
+msgstr "No se ha encontrado la aplicación OAuth2."
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:111
+#: ../../Zotlabs/Module/Settings/Oauth2.php:148
+#: ../../Zotlabs/Module/Settings/Oauth.php:87
+#: ../../Zotlabs/Module/Settings/Oauth.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:149
+msgid "Add application"
+msgstr "Añadir aplicación"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:147
+msgid "Connected OAuth2 Apps"
+msgstr "Aplicaciones OAuth2 conectadas"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:151
+#: ../../Zotlabs/Module/Settings/Oauth.php:152
+msgid "Client key starts with"
+msgstr "La \"client key\" empieza por"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:152
+#: ../../Zotlabs/Module/Settings/Oauth.php:153
+msgid "No name"
+msgstr "Sin nombre"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:153
+#: ../../Zotlabs/Module/Settings/Oauth.php:154
+msgid "Remove authorization"
+msgstr "Eliminar autorización"
+
#: ../../Zotlabs/Module/Settings/Account.php:20
msgid "Not valid email."
msgstr "Correo electrónico no válido."
@@ -3950,16 +4067,6 @@ msgstr "Confirmar la nueva contraseña"
msgid "Leave password fields blank unless changing"
msgstr "Dejar en blanco la contraseña a menos que desee cambiarla."
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid "Your technical skill level"
-msgstr "Su nivel de habilidad técnica"
-
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid ""
-"Used to provide a member experience and additional features consistent with "
-"your comfort level"
-msgstr "Utilizado para proporcionar un nivel de experiencia como miembro y características adicionales consistentes con su nivel de comodidad"
-
#: ../../Zotlabs/Module/Settings/Account.php:120
#: ../../Zotlabs/Module/Removeaccount.php:61
msgid "Remove Account"
@@ -3997,11 +4104,11 @@ msgstr "0-99 - por defecto 0"
msgid "Affinity Slider Settings"
msgstr "Ajustes del controlador de afinidad"
-#: ../../Zotlabs/Module/Settings/Featured.php:64
+#: ../../Zotlabs/Module/Settings/Featured.php:67
msgid "Addon Settings"
msgstr "Ajustes de los complementos"
-#: ../../Zotlabs/Module/Settings/Featured.php:65
+#: ../../Zotlabs/Module/Settings/Featured.php:68
msgid "Please save/submit changes to any panel before opening another."
msgstr "Guarde o envíe los cambios a cualquier panel antes de abrir otro."
@@ -4118,82 +4225,38 @@ msgstr "Pulsar para expandir el contenido que exceda de esta altura"
msgid "Grid page max height of content (in pixels)"
msgstr "Altura máxima del contenido de mi red (en píxeles)"
-#: ../../Zotlabs/Module/Settings/Oauth.php:34
+#: ../../Zotlabs/Module/Settings/Oauth.php:35
msgid "Name is required"
msgstr "El nombre es obligatorio"
-#: ../../Zotlabs/Module/Settings/Oauth.php:38
+#: ../../Zotlabs/Module/Settings/Oauth.php:39
msgid "Key and Secret are required"
msgstr "\"Key\" y \"Secret\" son obligatorios"
-#: ../../Zotlabs/Module/Settings/Oauth.php:86
-#: ../../Zotlabs/Module/Settings/Oauth.php:112
-#: ../../Zotlabs/Module/Settings/Oauth.php:148
-msgid "Add application"
-msgstr "Añadir aplicación"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-msgid "Name of application"
-msgstr "Nombre de la aplicación"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:117
#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:781
msgid "Consumer Key"
msgstr "Consumer Key"
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-#: ../../Zotlabs/Module/Settings/Oauth.php:117
-#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
-msgid "Consumer Secret"
-msgstr "Consumer Secret"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-#: ../../Zotlabs/Module/Settings/Oauth.php:118
-msgid "Redirect"
-msgstr "Redirigir"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires "
-"this"
-msgstr "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
-#: ../../Zotlabs/Module/Settings/Oauth.php:119
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
+#: ../../Zotlabs/Module/Settings/Oauth.php:120
msgid "Icon url"
msgstr "Dirección del icono"
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147
msgid "Optional"
msgstr "Opcional"
-#: ../../Zotlabs/Module/Settings/Oauth.php:104
+#: ../../Zotlabs/Module/Settings/Oauth.php:105
msgid "Application not found."
msgstr "Aplicación no encontrada."
-#: ../../Zotlabs/Module/Settings/Oauth.php:147
+#: ../../Zotlabs/Module/Settings/Oauth.php:148
msgid "Connected Apps"
msgstr "Aplicaciones (apps) conectadas"
-#: ../../Zotlabs/Module/Settings/Oauth.php:151
-msgid "Client key starts with"
-msgstr "La \"client key\" empieza por"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:152
-msgid "No name"
-msgstr "Sin nombre"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:153
-msgid "Remove authorization"
-msgstr "Eliminar autorización"
-
#: ../../Zotlabs/Module/Embedphotos.php:140
#: ../../Zotlabs/Module/Photos.php:811 ../../Zotlabs/Module/Photos.php:1350
#: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78
@@ -4207,13 +4270,12 @@ msgid "Edit Album"
msgstr "Editar álbum"
#: ../../Zotlabs/Module/Embedphotos.php:158
-#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Photos.php:844
-#: ../../Zotlabs/Module/Photos.php:1381
+#: ../../Zotlabs/Module/Photos.php:712
#: ../../Zotlabs/Module/Profile_photo.php:458
-#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Storage/Browser.php:277 ../../Zotlabs/Storage/Browser.php:384
-#: ../../Zotlabs/Widget/Cdav.php:133 ../../Zotlabs/Widget/Cdav.php:169
-#: ../../Zotlabs/Widget/Portfolio.php:110 ../../Zotlabs/Widget/Album.php:97
+#: ../../Zotlabs/Module/Cover_photo.php:362
+#: ../../Zotlabs/Storage/Browser.php:384 ../../Zotlabs/Widget/Cdav.php:133
+#: ../../Zotlabs/Widget/Cdav.php:169 ../../Zotlabs/Widget/Portfolio.php:110
+#: ../../Zotlabs/Widget/Album.php:97
msgid "Upload"
msgstr "Subir"
@@ -4221,60 +4283,60 @@ msgstr "Subir"
msgid "Some blurb about what to do when you're new here"
msgstr "Algunas propuestas para el nuevo usuario sobre qué se puede hacer aquí"
-#: ../../Zotlabs/Module/Thing.php:115
+#: ../../Zotlabs/Module/Thing.php:120
msgid "Thing updated"
msgstr "Elemento actualizado."
-#: ../../Zotlabs/Module/Thing.php:167
+#: ../../Zotlabs/Module/Thing.php:172
msgid "Object store: failed"
msgstr "Guardar objeto: ha fallado"
-#: ../../Zotlabs/Module/Thing.php:171
+#: ../../Zotlabs/Module/Thing.php:176
msgid "Thing added"
msgstr "Elemento añadido"
-#: ../../Zotlabs/Module/Thing.php:197
+#: ../../Zotlabs/Module/Thing.php:202
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../Zotlabs/Module/Thing.php:260
+#: ../../Zotlabs/Module/Thing.php:265
msgid "Show Thing"
msgstr "Mostrar elemento"
-#: ../../Zotlabs/Module/Thing.php:267
+#: ../../Zotlabs/Module/Thing.php:272
msgid "item not found."
msgstr "elemento no encontrado."
-#: ../../Zotlabs/Module/Thing.php:300
+#: ../../Zotlabs/Module/Thing.php:305
msgid "Edit Thing"
msgstr "Editar elemento"
-#: ../../Zotlabs/Module/Thing.php:302 ../../Zotlabs/Module/Thing.php:359
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:364
msgid "Select a profile"
msgstr "Seleccionar un perfil"
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Post an activity"
msgstr "Publicar una actividad"
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Only sends to viewers of the applicable profile"
msgstr "Sólo enviar a espectadores del perfil pertinente."
-#: ../../Zotlabs/Module/Thing.php:308 ../../Zotlabs/Module/Thing.php:364
+#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:369
msgid "Name of thing e.g. something"
msgstr "Nombre del elemento, p. ej.:. \"algo\""
-#: ../../Zotlabs/Module/Thing.php:310 ../../Zotlabs/Module/Thing.php:365
+#: ../../Zotlabs/Module/Thing.php:315 ../../Zotlabs/Module/Thing.php:370
msgid "URL of thing (optional)"
msgstr "Dirección del elemento (opcional)"
-#: ../../Zotlabs/Module/Thing.php:312 ../../Zotlabs/Module/Thing.php:366
+#: ../../Zotlabs/Module/Thing.php:317 ../../Zotlabs/Module/Thing.php:371
msgid "URL for photo of thing (optional)"
msgstr "Dirección para la foto o elemento (opcional)"
-#: ../../Zotlabs/Module/Thing.php:314 ../../Zotlabs/Module/Thing.php:367
+#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
#: ../../Zotlabs/Module/Photos.php:702 ../../Zotlabs/Module/Photos.php:1071
#: ../../Zotlabs/Module/Connedit.php:676 ../../Zotlabs/Module/Chat.php:235
#: ../../Zotlabs/Module/Filestorage.php:147
@@ -4282,7 +4344,7 @@ msgstr "Dirección para la foto o elemento (opcional)"
msgid "Permissions"
msgstr "Permisos"
-#: ../../Zotlabs/Module/Thing.php:357
+#: ../../Zotlabs/Module/Thing.php:362
msgid "Add Thing to your Profile"
msgstr "Añadir alguna cosa a su perfil"
@@ -4296,56 +4358,56 @@ msgstr "No hay más notificaciones del sistema"
msgid "System Notifications"
msgstr "Notificaciones del sistema"
-#: ../../Zotlabs/Module/Follow.php:31
-msgid "Channel added."
-msgstr "Canal añadido."
+#: ../../Zotlabs/Module/Follow.php:36
+msgid "Connection added."
+msgstr "Se ha incorporado una conexión."
-#: ../../Zotlabs/Module/Import.php:143
+#: ../../Zotlabs/Module/Import.php:144
#, php-format
msgid "Your service plan only allows %d channels."
msgstr "Su paquete de servicios solo permite %d canales."
-#: ../../Zotlabs/Module/Import.php:157
+#: ../../Zotlabs/Module/Import.php:158
msgid "No channel. Import failed."
msgstr "No hay canal. La importación ha fallado"
-#: ../../Zotlabs/Module/Import.php:481
+#: ../../Zotlabs/Module/Import.php:482
#: ../../addon/diaspora/import_diaspora.php:139
msgid "Import completed."
msgstr "Importación completada."
-#: ../../Zotlabs/Module/Import.php:509
+#: ../../Zotlabs/Module/Import.php:510
msgid "You must be logged in to use this feature."
msgstr "Debe estar registrado para poder usar esta funcionalidad."
-#: ../../Zotlabs/Module/Import.php:514
+#: ../../Zotlabs/Module/Import.php:515
msgid "Import Channel"
msgstr "Importar canal"
-#: ../../Zotlabs/Module/Import.php:515
+#: ../../Zotlabs/Module/Import.php:516
msgid ""
"Use this form to import an existing channel from a different server/hub. You"
" may retrieve the channel identity from the old server/hub via the network "
"or provide an export file."
msgstr "Emplee este formulario para importar un canal desde un servidor/hub diferente. Puede recuperar el canal desde el antiguo servidor/hub a través de la red o proporcionando un fichero de exportación."
-#: ../../Zotlabs/Module/Import.php:517
+#: ../../Zotlabs/Module/Import.php:518
msgid "Or provide the old server/hub details"
msgstr "O proporcione los detalles de su antiguo servidor/hub"
-#: ../../Zotlabs/Module/Import.php:518
+#: ../../Zotlabs/Module/Import.php:519
msgid "Your old identity address (xyz@example.com)"
msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)"
-#: ../../Zotlabs/Module/Import.php:519
+#: ../../Zotlabs/Module/Import.php:520
msgid "Your old login email address"
msgstr "Su antigua dirección de correo electrónico"
-#: ../../Zotlabs/Module/Import.php:520
+#: ../../Zotlabs/Module/Import.php:521
msgid "Your old login password"
msgstr "Su antigua contraseña"
-#: ../../Zotlabs/Module/Import.php:521
+#: ../../Zotlabs/Module/Import.php:522
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be"
@@ -4353,19 +4415,19 @@ msgid ""
"primary location for files, photos, and media."
msgstr "Para cualquiera de las opciones, elija si hacer de este servidor su nueva dirección primaria, o si su antigua dirección debe continuar con este papel. Usted podrá publicar desde cualquier ubicación, pero sólo una puede estar marcada como la ubicación principal para los ficheros, fotos y otras imágenes o vídeos."
-#: ../../Zotlabs/Module/Import.php:522
+#: ../../Zotlabs/Module/Import.php:523
msgid "Make this hub my primary location"
msgstr "Convertir este servidor en mi ubicación primaria"
-#: ../../Zotlabs/Module/Import.php:523
+#: ../../Zotlabs/Module/Import.php:524
msgid "Move this channel (disable all previous locations)"
msgstr "Mover este canal (desactivar todas las ubicaciones anteriores)"
-#: ../../Zotlabs/Module/Import.php:524
+#: ../../Zotlabs/Module/Import.php:525
msgid "Import a few months of posts if possible (limited by available memory"
msgstr "Importar unos meses de mensajes si es posible (limitado por la memoria disponible"
-#: ../../Zotlabs/Module/Import.php:525
+#: ../../Zotlabs/Module/Import.php:526
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
@@ -4375,16 +4437,16 @@ msgstr "Este proceso puede tardar varios minutos en completarse. Por favor enví
msgid "Authentication failed."
msgstr "Falló la autenticación."
-#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1583
-#: ../../include/channel.php:2307
+#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1590
+#: ../../include/channel.php:2318
msgid "Remote Authentication"
msgstr "Acceso desde su servidor"
-#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2308
+#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2319
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"
-#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2309
+#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2320
msgid "Authenticate"
msgstr "Acceder"
@@ -4392,7 +4454,7 @@ msgstr "Acceder"
msgid "Permissions denied."
msgstr "Permisos denegados."
-#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2426
+#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2446
msgid "Import"
msgstr "Importar"
@@ -4452,149 +4514,163 @@ msgstr "Estado de ánimo"
msgid "Set your current mood and tell your friends"
msgstr "Describir su estado de ánimo para comunicárselo a sus amigos"
-#: ../../Zotlabs/Module/Connections.php:54
-#: ../../Zotlabs/Module/Connections.php:156
-#: ../../Zotlabs/Module/Connections.php:245
+#: ../../Zotlabs/Module/Connections.php:55
+#: ../../Zotlabs/Module/Connections.php:112
+#: ../../Zotlabs/Module/Connections.php:256
+msgid "Active"
+msgstr "Activo/a"
+
+#: ../../Zotlabs/Module/Connections.php:60
+#: ../../Zotlabs/Module/Connections.php:164
+#: ../../Zotlabs/Module/Connections.php:261
msgid "Blocked"
msgstr "Bloqueadas"
-#: ../../Zotlabs/Module/Connections.php:59
-#: ../../Zotlabs/Module/Connections.php:163
-#: ../../Zotlabs/Module/Connections.php:244
+#: ../../Zotlabs/Module/Connections.php:65
+#: ../../Zotlabs/Module/Connections.php:171
+#: ../../Zotlabs/Module/Connections.php:260
msgid "Ignored"
msgstr "Ignoradas"
-#: ../../Zotlabs/Module/Connections.php:64
-#: ../../Zotlabs/Module/Connections.php:177
-#: ../../Zotlabs/Module/Connections.php:243
+#: ../../Zotlabs/Module/Connections.php:70
+#: ../../Zotlabs/Module/Connections.php:185
+#: ../../Zotlabs/Module/Connections.php:259
msgid "Hidden"
msgstr "Ocultas"
-#: ../../Zotlabs/Module/Connections.php:69
-#: ../../Zotlabs/Module/Connections.php:170
+#: ../../Zotlabs/Module/Connections.php:75
+#: ../../Zotlabs/Module/Connections.php:178
msgid "Archived/Unreachable"
msgstr "Archivado o inaccesible"
-#: ../../Zotlabs/Module/Connections.php:74
-#: ../../Zotlabs/Module/Connections.php:83 ../../Zotlabs/Module/Menu.php:116
+#: ../../Zotlabs/Module/Connections.php:80
+#: ../../Zotlabs/Module/Connections.php:89 ../../Zotlabs/Module/Menu.php:116
#: ../../Zotlabs/Module/Notifications.php:52
-#: ../../include/conversation.php:1714
+#: ../../include/conversation.php:1717
msgid "New"
msgstr "Nuevas"
-#: ../../Zotlabs/Module/Connections.php:88
-#: ../../Zotlabs/Module/Connections.php:102
+#: ../../Zotlabs/Module/Connections.php:94
+#: ../../Zotlabs/Module/Connections.php:108
#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:26
msgid "All"
msgstr "Todos/as"
-#: ../../Zotlabs/Module/Connections.php:133
+#: ../../Zotlabs/Module/Connections.php:140
+msgid "Active Connections"
+msgstr "Conexiones activas"
+
+#: ../../Zotlabs/Module/Connections.php:143
+msgid "Show active connections"
+msgstr "Mostrar las conexiones activas"
+
+#: ../../Zotlabs/Module/Connections.php:147
#: ../../Zotlabs/Widget/Notifications.php:84
msgid "New Connections"
msgstr "Nuevas conexiones"
-#: ../../Zotlabs/Module/Connections.php:136
+#: ../../Zotlabs/Module/Connections.php:150
msgid "Show pending (new) connections"
msgstr "Mostrar conexiones (nuevas) pendientes"
-#: ../../Zotlabs/Module/Connections.php:143
-msgid "Show all connections"
-msgstr "Mostrar todas las conexiones"
-
-#: ../../Zotlabs/Module/Connections.php:159
+#: ../../Zotlabs/Module/Connections.php:167
msgid "Only show blocked connections"
msgstr "Mostrar solo las conexiones bloqueadas"
-#: ../../Zotlabs/Module/Connections.php:166
+#: ../../Zotlabs/Module/Connections.php:174
msgid "Only show ignored connections"
msgstr "Mostrar solo conexiones ignoradas"
-#: ../../Zotlabs/Module/Connections.php:173
+#: ../../Zotlabs/Module/Connections.php:181
msgid "Only show archived/unreachable connections"
msgstr "Mostrar solo las conexiones archivadas o no localizables"
-#: ../../Zotlabs/Module/Connections.php:180
+#: ../../Zotlabs/Module/Connections.php:188
msgid "Only show hidden connections"
msgstr "Mostrar solo las conexiones ocultas"
-#: ../../Zotlabs/Module/Connections.php:241
+#: ../../Zotlabs/Module/Connections.php:203
+msgid "Show all connections"
+msgstr "Mostrar todas las conexiones"
+
+#: ../../Zotlabs/Module/Connections.php:257
msgid "Pending approval"
msgstr "Pendiente de aprobación"
-#: ../../Zotlabs/Module/Connections.php:242
+#: ../../Zotlabs/Module/Connections.php:258
msgid "Archived"
msgstr "Archivadas"
-#: ../../Zotlabs/Module/Connections.php:246
+#: ../../Zotlabs/Module/Connections.php:262
msgid "Not connected at this location"
msgstr "No está conectado/a en esta ubicación"
-#: ../../Zotlabs/Module/Connections.php:263
+#: ../../Zotlabs/Module/Connections.php:279
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../Zotlabs/Module/Connections.php:264
+#: ../../Zotlabs/Module/Connections.php:280
msgid "Edit connection"
msgstr "Editar conexión"
-#: ../../Zotlabs/Module/Connections.php:266
+#: ../../Zotlabs/Module/Connections.php:282
msgid "Delete connection"
msgstr "Eliminar conexión"
-#: ../../Zotlabs/Module/Connections.php:275
+#: ../../Zotlabs/Module/Connections.php:291
msgid "Channel address"
msgstr "Dirección del canal"
-#: ../../Zotlabs/Module/Connections.php:277
+#: ../../Zotlabs/Module/Connections.php:293
msgid "Network"
msgstr "Red"
-#: ../../Zotlabs/Module/Connections.php:280
+#: ../../Zotlabs/Module/Connections.php:296
msgid "Call"
msgstr "Llamar"
-#: ../../Zotlabs/Module/Connections.php:282
+#: ../../Zotlabs/Module/Connections.php:298
msgid "Status"
msgstr "Estado"
-#: ../../Zotlabs/Module/Connections.php:284
+#: ../../Zotlabs/Module/Connections.php:300
msgid "Connected"
msgstr "Conectado/a"
-#: ../../Zotlabs/Module/Connections.php:286
+#: ../../Zotlabs/Module/Connections.php:302
msgid "Approve connection"
msgstr "Aprobar esta conexión"
-#: ../../Zotlabs/Module/Connections.php:288
+#: ../../Zotlabs/Module/Connections.php:304
msgid "Ignore connection"
msgstr "Ignorar esta conexión"
-#: ../../Zotlabs/Module/Connections.php:289
+#: ../../Zotlabs/Module/Connections.php:305
#: ../../Zotlabs/Module/Connedit.php:630
msgid "Ignore"
msgstr "Ignorar"
-#: ../../Zotlabs/Module/Connections.php:290
+#: ../../Zotlabs/Module/Connections.php:306
msgid "Recent activity"
msgstr "Actividad reciente"
-#: ../../Zotlabs/Module/Connections.php:315 ../../Zotlabs/Lib/Apps.php:235
+#: ../../Zotlabs/Module/Connections.php:331 ../../Zotlabs/Lib/Apps.php:235
#: ../../include/text.php:973
msgid "Connections"
msgstr "Conexiones"
-#: ../../Zotlabs/Module/Connections.php:320
+#: ../../Zotlabs/Module/Connections.php:336
msgid "Search your connections"
msgstr "Buscar sus conexiones"
-#: ../../Zotlabs/Module/Connections.php:321
+#: ../../Zotlabs/Module/Connections.php:337
msgid "Connections search"
msgstr "Buscar conexiones"
-#: ../../Zotlabs/Module/Connections.php:322
-#: ../../Zotlabs/Module/Directory.php:396
-#: ../../Zotlabs/Module/Directory.php:401 ../../include/contact_widgets.php:23
+#: ../../Zotlabs/Module/Connections.php:338
+#: ../../Zotlabs/Module/Directory.php:401
+#: ../../Zotlabs/Module/Directory.php:406 ../../include/contact_widgets.php:23
msgid "Find"
msgstr "Encontrar"
@@ -4696,13 +4772,9 @@ msgstr "o seleccionar uno existente (doble click)"
msgid "Create a status post for this upload"
msgstr "Crear un mensaje de estado para esta subida"
-#: ../../Zotlabs/Module/Photos.php:698
-msgid "Caption (optional):"
-msgstr "Título (opcional):"
-
#: ../../Zotlabs/Module/Photos.php:699
-msgid "Description (optional):"
-msgstr "Descripción (opcional):"
+msgid "Description (optional)"
+msgstr "Descripción (opcional)"
#: ../../Zotlabs/Module/Photos.php:785
msgid "Show Newest First"
@@ -4712,6 +4784,10 @@ msgstr "Mostrar lo más reciente primero"
msgid "Show Oldest First"
msgstr "Mostrar lo más antiguo primero"
+#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Module/Photos.php:1381
+msgid "Add Photos"
+msgstr "Añadir fotos"
+
#: ../../Zotlabs/Module/Photos.php:892
msgid "Permission denied. Access to this item may be restricted."
msgstr "Permiso denegado. El acceso a este elemento puede estar restringido."
@@ -4760,10 +4836,6 @@ msgstr "Introducir un nuevo nombre de álbum"
msgid "or select an existing one (doubleclick)"
msgstr "o seleccionar uno (doble click) existente"
-#: ../../Zotlabs/Module/Photos.php:1068
-msgid "Caption"
-msgstr "Título"
-
#: ../../Zotlabs/Module/Photos.php:1070
msgid "Add a Tag"
msgstr "Añadir una etiqueta"
@@ -4790,12 +4862,12 @@ msgid "Please wait"
msgstr "Espere por favor"
#: ../../Zotlabs/Module/Photos.php:1119 ../../Zotlabs/Module/Photos.php:1237
-#: ../../Zotlabs/Lib/ThreadItem.php:747
+#: ../../Zotlabs/Lib/ThreadItem.php:749
msgid "This is you"
msgstr "Este es usted"
#: ../../Zotlabs/Module/Photos.php:1121 ../../Zotlabs/Module/Photos.php:1239
-#: ../../Zotlabs/Lib/ThreadItem.php:749 ../../include/js_strings.php:6
+#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/js_strings.php:6
msgid "Comment"
msgstr "Comentar"
@@ -4845,8 +4917,8 @@ msgid "View all"
msgstr "Ver todo"
#: ../../Zotlabs/Module/Photos.php:1160 ../../Zotlabs/Lib/ThreadItem.php:205
-#: ../../include/conversation.php:1978 ../../include/channel.php:1540
-#: ../../include/taxonomy.php:597
+#: ../../include/conversation.php:1981 ../../include/channel.php:1539
+#: ../../include/taxonomy.php:661
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
@@ -4854,7 +4926,7 @@ msgstr[0] "Me gusta"
msgstr[1] "Me gusta"
#: ../../Zotlabs/Module/Photos.php:1165 ../../Zotlabs/Lib/ThreadItem.php:210
-#: ../../include/conversation.php:1981
+#: ../../include/conversation.php:1984
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
@@ -4889,78 +4961,76 @@ msgid "Close"
msgstr "Cerrar"
#: ../../Zotlabs/Module/Photos.php:1365 ../../Zotlabs/Module/Photos.php:1378
-#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:656
+#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:667
msgid "Recent Photos"
msgstr "Fotos recientes"
-#: ../../Zotlabs/Module/Wiki.php:30
+#: ../../Zotlabs/Module/Wiki.php:30 ../../addon/cart/cart.php:1135
msgid "Profile Unavailable."
msgstr "Perfil no disponible"
-#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:108
-#: ../../addon/gitwiki/Mod_Gitwiki.php:42
+#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:114
msgid "Not found"
msgstr "No encontrado"
-#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/gitwiki/Mod_Gitwiki.php:62
+#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/cart/myshop.php:114
+#: ../../addon/cart/cart.php:1204 ../../addon/cart/manual_payments.php:58
msgid "Invalid channel"
msgstr "Canal no válido"
-#: ../../Zotlabs/Module/Wiki.php:124 ../../addon/gitwiki/Mod_Gitwiki.php:107
+#: ../../Zotlabs/Module/Wiki.php:124
msgid "Error retrieving wiki"
msgstr "Error al recuperar el wiki"
-#: ../../Zotlabs/Module/Wiki.php:131 ../../addon/gitwiki/Mod_Gitwiki.php:114
+#: ../../Zotlabs/Module/Wiki.php:131
msgid "Error creating zip file export folder"
msgstr "Error al crear el fichero comprimido zip de la carpeta a exportar"
-#: ../../Zotlabs/Module/Wiki.php:182 ../../addon/gitwiki/Mod_Gitwiki.php:132
+#: ../../Zotlabs/Module/Wiki.php:182
msgid "Error downloading wiki: "
msgstr "Error al descargar el wiki: "
-#: ../../Zotlabs/Module/Wiki.php:197 ../../addon/gitwiki/Mod_Gitwiki.php:146
-#: ../../include/conversation.php:1925 ../../include/nav.php:494
+#: ../../Zotlabs/Module/Wiki.php:197 ../../include/conversation.php:1928
+#: ../../include/nav.php:494
msgid "Wikis"
msgstr "Wikis"
-#: ../../Zotlabs/Module/Wiki.php:203 ../../addon/gitwiki/Mod_Gitwiki.php:152
+#: ../../Zotlabs/Module/Wiki.php:203
msgid "Download"
msgstr "Descargar"
#: ../../Zotlabs/Module/Wiki.php:205 ../../Zotlabs/Module/Chat.php:256
-#: ../../Zotlabs/Module/Profiles.php:834 ../../Zotlabs/Module/Manage.php:145
-#: ../../addon/gitwiki/Mod_Gitwiki.php:154
+#: ../../Zotlabs/Module/Profiles.php:831 ../../Zotlabs/Module/Manage.php:145
msgid "Create New"
msgstr "Crear"
-#: ../../Zotlabs/Module/Wiki.php:207 ../../addon/gitwiki/Mod_Gitwiki.php:156
+#: ../../Zotlabs/Module/Wiki.php:207
msgid "Wiki name"
msgstr "Nombre del wiki"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../addon/gitwiki/Mod_Gitwiki.php:157
+#: ../../Zotlabs/Module/Wiki.php:208
msgid "Content type"
msgstr "Tipo de contenido"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../addon/mdpost/mdpost.php:40
-#: ../../include/text.php:1868
+#: ../../include/text.php:1869
msgid "Markdown"
msgstr "Markdown"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1866
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1867
msgid "BBcode"
msgstr "BBcode"
#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1869
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1870
msgid "Text"
msgstr "Texto"
#: ../../Zotlabs/Module/Wiki.php:210 ../../Zotlabs/Storage/Browser.php:284
-#: ../../addon/gitwiki/Mod_Gitwiki.php:159
msgid "Type"
msgstr "Tipo"
@@ -4972,7 +5042,7 @@ msgstr "Cualquier&nbsp;tipo"
msgid "Lock content type"
msgstr "Tipo de contenido bloqueado"
-#: ../../Zotlabs/Module/Wiki.php:219 ../../addon/gitwiki/Mod_Gitwiki.php:166
+#: ../../Zotlabs/Module/Wiki.php:219
msgid "Create a status post for this wiki"
msgstr "Crear un mensaje de estado para este wiki"
@@ -4980,138 +5050,147 @@ msgstr "Crear un mensaje de estado para este wiki"
msgid "Edit Wiki Name"
msgstr "Editar el nombre del wiki"
-#: ../../Zotlabs/Module/Wiki.php:262 ../../addon/gitwiki/Mod_Gitwiki.php:185
+#: ../../Zotlabs/Module/Wiki.php:262
msgid "Wiki not found"
msgstr "Wiki no encontrado"
-#: ../../Zotlabs/Module/Wiki.php:286 ../../addon/gitwiki/Mod_Gitwiki.php:210
+#: ../../Zotlabs/Module/Wiki.php:286
msgid "Rename page"
msgstr "Renombrar la página"
-#: ../../Zotlabs/Module/Wiki.php:305 ../../addon/gitwiki/Mod_Gitwiki.php:214
+#: ../../Zotlabs/Module/Wiki.php:307
msgid "Error retrieving page content"
msgstr "Error al recuperar el contenido de la página"
-#: ../../Zotlabs/Module/Wiki.php:313 ../../Zotlabs/Module/Wiki.php:315
+#: ../../Zotlabs/Module/Wiki.php:315 ../../Zotlabs/Module/Wiki.php:317
msgid "New page"
msgstr "Nueva página"
-#: ../../Zotlabs/Module/Wiki.php:343 ../../addon/gitwiki/Mod_Gitwiki.php:242
+#: ../../Zotlabs/Module/Wiki.php:345
msgid "Revision Comparison"
msgstr "Comparación de revisiones"
-#: ../../Zotlabs/Module/Wiki.php:344 ../../addon/gitwiki/Mod_Gitwiki.php:243
+#: ../../Zotlabs/Module/Wiki.php:346
msgid "Revert"
msgstr "Revertir"
-#: ../../Zotlabs/Module/Wiki.php:351
+#: ../../Zotlabs/Module/Wiki.php:353
msgid "Short description of your changes (optional)"
msgstr "Breve descripción de sus cambios (opcional)"
-#: ../../Zotlabs/Module/Wiki.php:358 ../../addon/gitwiki/Mod_Gitwiki.php:252
+#: ../../Zotlabs/Module/Wiki.php:362
msgid "Source"
msgstr "Fuente"
-#: ../../Zotlabs/Module/Wiki.php:368 ../../addon/gitwiki/Mod_Gitwiki.php:260
+#: ../../Zotlabs/Module/Wiki.php:372
msgid "New page name"
msgstr "Nombre de la nueva página"
-#: ../../Zotlabs/Module/Wiki.php:373 ../../addon/gitwiki/Mod_Gitwiki.php:265
-#: ../../include/conversation.php:1282
+#: ../../Zotlabs/Module/Wiki.php:377 ../../include/conversation.php:1282
msgid "Embed image from photo albums"
msgstr "Incluir una imagen de los álbumes de fotos"
-#: ../../Zotlabs/Module/Wiki.php:374 ../../addon/gitwiki/Mod_Gitwiki.php:266
-#: ../../include/conversation.php:1385
+#: ../../Zotlabs/Module/Wiki.php:378 ../../include/conversation.php:1388
msgid "Embed an image from your albums"
msgstr "Incluir una imagen de sus álbumes"
-#: ../../Zotlabs/Module/Wiki.php:376
+#: ../../Zotlabs/Module/Wiki.php:380
#: ../../Zotlabs/Module/Profile_photo.php:465
-#: ../../Zotlabs/Module/Cover_photo.php:366
-#: ../../addon/gitwiki/Mod_Gitwiki.php:268 ../../include/conversation.php:1387
-#: ../../include/conversation.php:1434
+#: ../../Zotlabs/Module/Cover_photo.php:367
+#: ../../include/conversation.php:1390 ../../include/conversation.php:1437
msgid "OK"
msgstr "OK"
-#: ../../Zotlabs/Module/Wiki.php:377 ../../addon/gitwiki/Mod_Gitwiki.php:269
-#: ../../include/conversation.php:1318
+#: ../../Zotlabs/Module/Wiki.php:381
+#: ../../Zotlabs/Module/Profile_photo.php:466
+#: ../../Zotlabs/Module/Cover_photo.php:368
+#: ../../include/conversation.php:1320
msgid "Choose images to embed"
msgstr "Elegir imágenes para incluir"
-#: ../../Zotlabs/Module/Wiki.php:378 ../../addon/gitwiki/Mod_Gitwiki.php:270
-#: ../../include/conversation.php:1319
+#: ../../Zotlabs/Module/Wiki.php:382
+#: ../../Zotlabs/Module/Profile_photo.php:467
+#: ../../Zotlabs/Module/Cover_photo.php:369
+#: ../../include/conversation.php:1321
msgid "Choose an album"
msgstr "Elegir un álbum"
-#: ../../Zotlabs/Module/Wiki.php:379 ../../addon/gitwiki/Mod_Gitwiki.php:271
+#: ../../Zotlabs/Module/Wiki.php:383
+#: ../../Zotlabs/Module/Profile_photo.php:468
+#: ../../Zotlabs/Module/Cover_photo.php:370
msgid "Choose a different album"
msgstr "Elegir un álbum diferente..."
-#: ../../Zotlabs/Module/Wiki.php:380 ../../addon/gitwiki/Mod_Gitwiki.php:272
-#: ../../include/conversation.php:1321
+#: ../../Zotlabs/Module/Wiki.php:384
+#: ../../Zotlabs/Module/Profile_photo.php:469
+#: ../../Zotlabs/Module/Cover_photo.php:371
+#: ../../include/conversation.php:1323
msgid "Error getting album list"
msgstr "Error al obtener la lista de álbumes"
-#: ../../Zotlabs/Module/Wiki.php:381 ../../addon/gitwiki/Mod_Gitwiki.php:273
-#: ../../include/conversation.php:1322
+#: ../../Zotlabs/Module/Wiki.php:385
+#: ../../Zotlabs/Module/Profile_photo.php:470
+#: ../../Zotlabs/Module/Cover_photo.php:372
+#: ../../include/conversation.php:1324
msgid "Error getting photo link"
msgstr "Error al obtener el enlace de la foto"
-#: ../../Zotlabs/Module/Wiki.php:382 ../../addon/gitwiki/Mod_Gitwiki.php:274
-#: ../../include/conversation.php:1323
+#: ../../Zotlabs/Module/Wiki.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:471
+#: ../../Zotlabs/Module/Cover_photo.php:373
+#: ../../include/conversation.php:1325
msgid "Error getting album"
msgstr "Error al obtener el álbum"
-#: ../../Zotlabs/Module/Wiki.php:458 ../../addon/gitwiki/Mod_Gitwiki.php:337
+#: ../../Zotlabs/Module/Wiki.php:462
msgid "Error creating wiki. Invalid name."
msgstr "Error al crear el wiki: el nombre no es válido."
-#: ../../Zotlabs/Module/Wiki.php:465
+#: ../../Zotlabs/Module/Wiki.php:469
msgid "A wiki with this name already exists."
msgstr "Ya hay un wiki con este nombre."
-#: ../../Zotlabs/Module/Wiki.php:478 ../../addon/gitwiki/Mod_Gitwiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:482
msgid "Wiki created, but error creating Home page."
msgstr "Se ha creado el wiki, pero se ha producido un error al crear la página de inicio."
-#: ../../Zotlabs/Module/Wiki.php:485 ../../addon/gitwiki/Mod_Gitwiki.php:353
+#: ../../Zotlabs/Module/Wiki.php:489
msgid "Error creating wiki"
msgstr "Error al crear el wiki"
-#: ../../Zotlabs/Module/Wiki.php:508
+#: ../../Zotlabs/Module/Wiki.php:512
msgid "Error updating wiki. Invalid name."
msgstr "Error al actualizar el wiki. Nombre no válido."
-#: ../../Zotlabs/Module/Wiki.php:528
+#: ../../Zotlabs/Module/Wiki.php:532
msgid "Error updating wiki"
msgstr "Error al actualizar el wiki"
-#: ../../Zotlabs/Module/Wiki.php:543
+#: ../../Zotlabs/Module/Wiki.php:547
msgid "Wiki delete permission denied."
msgstr "Se ha denegado el permiso para eliminar el wiki."
-#: ../../Zotlabs/Module/Wiki.php:553
+#: ../../Zotlabs/Module/Wiki.php:557
msgid "Error deleting wiki"
msgstr "Se ha producido un error al eliminar el wiki"
-#: ../../Zotlabs/Module/Wiki.php:586 ../../addon/gitwiki/Mod_Gitwiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:590
msgid "New page created"
msgstr "Se ha creado la nueva página"
-#: ../../Zotlabs/Module/Wiki.php:707
+#: ../../Zotlabs/Module/Wiki.php:711
msgid "Cannot delete Home"
msgstr "No se puede eliminar la página principal"
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Current Revision"
msgstr "Revisión actual"
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Selected Revision"
msgstr "Revisión seleccionada"
-#: ../../Zotlabs/Module/Wiki.php:821
+#: ../../Zotlabs/Module/Wiki.php:825
msgid "You must be authenticated."
msgstr "Debe estar autenticado."
@@ -5195,7 +5274,7 @@ msgstr "Imagen actualizada, pero el recorte de la imagen ha fallado. "
#: ../../Zotlabs/Module/Profile_photo.php:120
#: ../../Zotlabs/Module/Profile_photo.php:248
-#: ../../include/photo/photo_driver.php:740
+#: ../../include/photo/photo_driver.php:741
msgid "Profile Photos"
msgstr "Fotos del perfil"
@@ -5234,12 +5313,12 @@ msgid "Photo not available."
msgstr "Foto no disponible."
#: ../../Zotlabs/Module/Profile_photo.php:455
-#: ../../Zotlabs/Module/Cover_photo.php:358
+#: ../../Zotlabs/Module/Cover_photo.php:359
msgid "Upload File:"
msgstr "Subir fichero:"
#: ../../Zotlabs/Module/Profile_photo.php:456
-#: ../../Zotlabs/Module/Cover_photo.php:359
+#: ../../Zotlabs/Module/Cover_photo.php:360
msgid "Select a profile:"
msgstr "Seleccionar un perfil:"
@@ -5257,28 +5336,28 @@ msgstr "Usar"
#: ../../Zotlabs/Module/Profile_photo.php:462
#: ../../Zotlabs/Module/Profile_photo.php:463
-#: ../../Zotlabs/Module/Cover_photo.php:363
#: ../../Zotlabs/Module/Cover_photo.php:364
+#: ../../Zotlabs/Module/Cover_photo.php:365
msgid "Use a photo from your albums"
msgstr "Usar una foto de sus álbumes"
-#: ../../Zotlabs/Module/Profile_photo.php:467
-#: ../../Zotlabs/Module/Cover_photo.php:369
+#: ../../Zotlabs/Module/Profile_photo.php:473
+#: ../../Zotlabs/Module/Cover_photo.php:376
msgid "Select existing photo"
msgstr "Seleccionar una foto existente"
-#: ../../Zotlabs/Module/Profile_photo.php:486
-#: ../../Zotlabs/Module/Cover_photo.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:492
+#: ../../Zotlabs/Module/Cover_photo.php:393
msgid "Crop Image"
msgstr "Recortar imagen"
-#: ../../Zotlabs/Module/Profile_photo.php:487
-#: ../../Zotlabs/Module/Cover_photo.php:387
+#: ../../Zotlabs/Module/Profile_photo.php:493
+#: ../../Zotlabs/Module/Cover_photo.php:394
msgid "Please adjust the image cropping for optimum viewing."
msgstr "Por favor ajuste el recorte de la imagen para una visión óptima."
-#: ../../Zotlabs/Module/Profile_photo.php:489
-#: ../../Zotlabs/Module/Cover_photo.php:389
+#: ../../Zotlabs/Module/Profile_photo.php:495
+#: ../../Zotlabs/Module/Cover_photo.php:396
msgid "Done Editing"
msgstr "Edición completada"
@@ -5302,61 +5381,61 @@ msgstr "Origen del elemento"
msgid "Unable to locate original post."
msgstr "No ha sido posible encontrar la entrada original."
-#: ../../Zotlabs/Module/Item.php:476
+#: ../../Zotlabs/Module/Item.php:477
msgid "Empty post discarded."
msgstr "La entrada vacía ha sido desechada."
-#: ../../Zotlabs/Module/Item.php:867
+#: ../../Zotlabs/Module/Item.php:874
msgid "Duplicate post suppressed."
msgstr "Se ha suprimido la entrada duplicada."
-#: ../../Zotlabs/Module/Item.php:1012
+#: ../../Zotlabs/Module/Item.php:1019
msgid "System error. Post not saved."
msgstr "Error del sistema. La entrada no se ha podido salvar."
-#: ../../Zotlabs/Module/Item.php:1048
+#: ../../Zotlabs/Module/Item.php:1055
msgid "Your comment is awaiting approval."
msgstr "Su comentario está pendiente de aprobación."
-#: ../../Zotlabs/Module/Item.php:1153
+#: ../../Zotlabs/Module/Item.php:1160
msgid "Unable to obtain post information from database."
msgstr "No ha sido posible obtener información de la entrada en la base de datos."
-#: ../../Zotlabs/Module/Item.php:1182
+#: ../../Zotlabs/Module/Item.php:1189
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr "Ha alcanzado su límite de %1$.0f entradas en la página principal."
-#: ../../Zotlabs/Module/Item.php:1189
+#: ../../Zotlabs/Module/Item.php:1196
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Ha alcanzado su límite de %1$.0f páginas web."
-#: ../../Zotlabs/Module/Ping.php:320
+#: ../../Zotlabs/Module/Ping.php:330
msgid "sent you a private message"
msgstr "le ha enviado un mensaje privado"
-#: ../../Zotlabs/Module/Ping.php:372
+#: ../../Zotlabs/Module/Ping.php:383
msgid "added your channel"
msgstr "añadió este canal a sus conexiones"
-#: ../../Zotlabs/Module/Ping.php:396
+#: ../../Zotlabs/Module/Ping.php:407
msgid "requires approval"
msgstr "requiere aprobación"
-#: ../../Zotlabs/Module/Ping.php:406
+#: ../../Zotlabs/Module/Ping.php:417
msgid "g A l F d"
msgstr "g A l d F"
-#: ../../Zotlabs/Module/Ping.php:424
+#: ../../Zotlabs/Module/Ping.php:435
msgid "[today]"
msgstr "[hoy]"
-#: ../../Zotlabs/Module/Ping.php:433
+#: ../../Zotlabs/Module/Ping.php:444
msgid "posted an event"
msgstr "publicó un evento"
-#: ../../Zotlabs/Module/Ping.php:466
+#: ../../Zotlabs/Module/Ping.php:477
msgid "shared a file with you"
msgstr "compartió un archivo con usted"
@@ -5365,7 +5444,8 @@ msgid "Invalid item."
msgstr "Elemento no válido."
#: ../../Zotlabs/Module/Page.php:136 ../../Zotlabs/Module/Block.php:77
-#: ../../Zotlabs/Module/Display.php:133
+#: ../../Zotlabs/Module/Display.php:141 ../../Zotlabs/Module/Display.php:158
+#: ../../Zotlabs/Module/Display.php:175
#: ../../Zotlabs/Lib/NativeWikiPage.php:519 ../../Zotlabs/Web/Router.php:167
#: ../../include/help.php:81
msgid "Page not found."
@@ -5446,7 +5526,7 @@ msgstr "Actualizar la foto"
msgid "Fetch updated photo"
msgstr "Obtener una foto actualizada"
-#: ../../Zotlabs/Module/Connedit.php:615
+#: ../../Zotlabs/Module/Connedit.php:615 ../../include/conversation.php:1042
msgid "Recent Activity"
msgstr "Actividad reciente"
@@ -5590,11 +5670,11 @@ msgid ""
msgstr "Esta conexión no es accesible desde este sitio. La independencia de ubicación no es compatible con su red."
#: ../../Zotlabs/Module/Connedit.php:850 ../../Zotlabs/Module/Defperms.php:238
-#: ../../Zotlabs/Widget/Settings_menu.php:109
+#: ../../Zotlabs/Widget/Settings_menu.php:117
msgid "Connection Default Permissions"
msgstr "Permisos predeterminados de conexión"
-#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4164
+#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4214
#, php-format
msgid "Connection: %s"
msgstr "Conexión: %s"
@@ -5729,13 +5809,13 @@ msgid "Bookmark this room"
msgstr "Añadir esta sala a Marcadores"
#: ../../Zotlabs/Module/Chat.php:205 ../../Zotlabs/Module/Mail.php:241
-#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1313
+#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1315
msgid "Please enter a link URL:"
msgstr "Por favor, introduzca la dirección del enlace:"
#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Module/Mail.php:294
-#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:764
-#: ../../include/conversation.php:1432
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:766
+#: ../../include/conversation.php:1435
msgid "Encrypt text"
msgstr "Cifrar texto"
@@ -5769,12 +5849,12 @@ msgid "min"
msgstr "min"
#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:248
-#: ../../include/conversation.php:1831 ../../include/nav.php:401
+#: ../../include/conversation.php:1834 ../../include/nav.php:401
msgid "Photos"
msgstr "Fotos"
#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:243
-#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1839
+#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1842
#: ../../include/nav.php:409
msgid "Files"
msgstr "Ficheros"
@@ -5815,7 +5895,7 @@ msgstr "El menú se puede usar para guardar marcadores"
msgid "Submit and proceed"
msgstr "Enviar y proceder"
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2403
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2423
msgid "Menus"
msgstr "Menús"
@@ -5867,7 +5947,7 @@ msgstr "El título del menú tal como será visto por los demás"
msgid "Allow bookmarks"
msgstr "Permitir marcadores"
-#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2404
+#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2424
msgid "Layouts"
msgstr "Plantillas"
@@ -5889,11 +5969,11 @@ msgstr "Descripción de la plantilla"
msgid "Download PDL file"
msgstr "Descargar el fichero PDL"
-#: ../../Zotlabs/Module/Cloud.php:114
+#: ../../Zotlabs/Module/Cloud.php:120
msgid "Please refresh page"
msgstr "Por favor, recargue la página"
-#: ../../Zotlabs/Module/Cloud.php:117
+#: ../../Zotlabs/Module/Cloud.php:123
msgid "Unknown error"
msgstr "Error desconocido"
@@ -5927,16 +6007,16 @@ msgid "Post not found."
msgstr "Mensaje no encontrado."
#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:160
-#: ../../include/bbcode.php:339
+#: ../../include/bbcode.php:352
msgid "post"
msgstr "la entrada"
#: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146
-#: ../../include/text.php:2012
+#: ../../include/text.php:2013
msgid "comment"
msgstr "el comentario"
-#: ../../Zotlabs/Module/Tagger.php:117
+#: ../../Zotlabs/Module/Tagger.php:119
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s ha etiquetado %3$s de %2$s con %4$s"
@@ -5971,6 +6051,23 @@ msgid ""
"channel type and privacy settings."
msgstr "Es posible que se hayan preestablecido o bloqueado algunos permisos individuales según el tipo de canal y la configuración de privacidad."
+#: ../../Zotlabs/Module/Authorize.php:17
+msgid "Unknown App"
+msgstr "Aplicación desconocida"
+
+#: ../../Zotlabs/Module/Authorize.php:22
+msgid "Authorize"
+msgstr "Autorizar"
+
+#: ../../Zotlabs/Module/Authorize.php:23
+#, php-format
+msgid "Do you authorize the app %s to access your channel data?"
+msgstr "¿Autoriza a la aplicación %s a acceder a los datos de su canal?"
+
+#: ../../Zotlabs/Module/Authorize.php:25
+msgid "Allow"
+msgstr "Permitir"
+
#: ../../Zotlabs/Module/Group.php:24
msgid "Privacy group created."
msgstr "El grupo de canales ha sido creado."
@@ -5980,7 +6077,7 @@ msgid "Could not create privacy group."
msgstr "No se puede crear el grupo de canales"
#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:143
-#: ../../include/items.php:4131
+#: ../../include/items.php:4181
msgid "Privacy group not found."
msgstr "Grupo de canales no encontrado."
@@ -6061,15 +6158,15 @@ msgstr "Estado civil"
msgid "Romantic Partner"
msgstr "Pareja sentimental"
-#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:775
+#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:772
msgid "Likes"
msgstr "Me gusta"
-#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:776
+#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:773
msgid "Dislikes"
msgstr "No me gusta"
-#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:783
+#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:780
msgid "Work/Employment"
msgstr "Trabajo:"
@@ -6106,198 +6203,198 @@ msgstr "Perfil actualizado."
msgid "Hide your connections list from viewers of this profile"
msgstr "Ocultar la lista de conexiones a los visitantes del perfil"
-#: ../../Zotlabs/Module/Profiles.php:725
+#: ../../Zotlabs/Module/Profiles.php:722
msgid "Edit Profile Details"
msgstr "Modificar los detalles de este perfil"
-#: ../../Zotlabs/Module/Profiles.php:727
+#: ../../Zotlabs/Module/Profiles.php:724
msgid "View this profile"
msgstr "Ver este perfil"
-#: ../../Zotlabs/Module/Profiles.php:728 ../../Zotlabs/Module/Profiles.php:827
-#: ../../include/channel.php:1320
+#: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824
+#: ../../include/channel.php:1319
msgid "Edit visibility"
msgstr "Editar visibilidad"
-#: ../../Zotlabs/Module/Profiles.php:729
+#: ../../Zotlabs/Module/Profiles.php:726
msgid "Profile Tools"
msgstr "Gestión del perfil"
-#: ../../Zotlabs/Module/Profiles.php:730
+#: ../../Zotlabs/Module/Profiles.php:727
msgid "Change cover photo"
msgstr "Cambiar la imagen de portada del perfil"
-#: ../../Zotlabs/Module/Profiles.php:731 ../../include/channel.php:1290
+#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1289
msgid "Change profile photo"
msgstr "Cambiar la foto del perfil"
-#: ../../Zotlabs/Module/Profiles.php:732
+#: ../../Zotlabs/Module/Profiles.php:729
msgid "Create a new profile using these settings"
msgstr "Crear un nuevo perfil usando estos ajustes"
-#: ../../Zotlabs/Module/Profiles.php:733
+#: ../../Zotlabs/Module/Profiles.php:730
msgid "Clone this profile"
msgstr "Clonar este perfil"
-#: ../../Zotlabs/Module/Profiles.php:734
+#: ../../Zotlabs/Module/Profiles.php:731
msgid "Delete this profile"
msgstr "Eliminar este perfil"
-#: ../../Zotlabs/Module/Profiles.php:735
+#: ../../Zotlabs/Module/Profiles.php:732
msgid "Add profile things"
msgstr "Añadir cosas al perfil"
-#: ../../Zotlabs/Module/Profiles.php:736 ../../include/conversation.php:1705
+#: ../../Zotlabs/Module/Profiles.php:733 ../../include/conversation.php:1708
msgid "Personal"
msgstr "Personales"
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Relation"
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Relationship"
msgstr "Relación"
-#: ../../Zotlabs/Module/Profiles.php:739 ../../Zotlabs/Widget/Newmember.php:53
+#: ../../Zotlabs/Module/Profiles.php:736 ../../Zotlabs/Widget/Newmember.php:44
#: ../../include/datetime.php:58
msgid "Miscellaneous"
msgstr "Varios"
-#: ../../Zotlabs/Module/Profiles.php:741
+#: ../../Zotlabs/Module/Profiles.php:738
msgid "Import profile from file"
msgstr "Importar perfil desde un fichero"
-#: ../../Zotlabs/Module/Profiles.php:742
+#: ../../Zotlabs/Module/Profiles.php:739
msgid "Export profile to file"
msgstr "Exportar perfil a un fichero"
-#: ../../Zotlabs/Module/Profiles.php:743
+#: ../../Zotlabs/Module/Profiles.php:740
msgid "Your gender"
msgstr "Género"
-#: ../../Zotlabs/Module/Profiles.php:744
+#: ../../Zotlabs/Module/Profiles.php:741
msgid "Marital status"
msgstr "Estado civil"
-#: ../../Zotlabs/Module/Profiles.php:745
+#: ../../Zotlabs/Module/Profiles.php:742
msgid "Sexual preference"
msgstr "Preferencia sexual"
-#: ../../Zotlabs/Module/Profiles.php:748
+#: ../../Zotlabs/Module/Profiles.php:745
msgid "Profile name"
msgstr "Nombre del perfil"
-#: ../../Zotlabs/Module/Profiles.php:750
+#: ../../Zotlabs/Module/Profiles.php:747
msgid "This is your default profile."
msgstr "Este es su perfil principal."
-#: ../../Zotlabs/Module/Profiles.php:752
+#: ../../Zotlabs/Module/Profiles.php:749
msgid "Your full name"
msgstr "Nombre completo"
-#: ../../Zotlabs/Module/Profiles.php:753
+#: ../../Zotlabs/Module/Profiles.php:750
msgid "Title/Description"
msgstr "Título o descripción"
-#: ../../Zotlabs/Module/Profiles.php:756
+#: ../../Zotlabs/Module/Profiles.php:753
msgid "Street address"
msgstr "Dirección"
-#: ../../Zotlabs/Module/Profiles.php:757
+#: ../../Zotlabs/Module/Profiles.php:754
msgid "Locality/City"
msgstr "Ciudad"
-#: ../../Zotlabs/Module/Profiles.php:758
+#: ../../Zotlabs/Module/Profiles.php:755
msgid "Region/State"
msgstr "Región o Estado"
-#: ../../Zotlabs/Module/Profiles.php:759
+#: ../../Zotlabs/Module/Profiles.php:756
msgid "Postal/Zip code"
msgstr "Código postal"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Who (if applicable)"
msgstr "Quién (si es pertinente)"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Por ejemplo: ana123, María González, sara@ejemplo.com"
-#: ../../Zotlabs/Module/Profiles.php:766
+#: ../../Zotlabs/Module/Profiles.php:763
msgid "Since (date)"
msgstr "Desde (fecha)"
-#: ../../Zotlabs/Module/Profiles.php:769
+#: ../../Zotlabs/Module/Profiles.php:766
msgid "Tell us about yourself"
msgstr "Háblenos de usted"
-#: ../../Zotlabs/Module/Profiles.php:770
+#: ../../Zotlabs/Module/Profiles.php:767
#: ../../addon/openid/MysqlProvider.php:68
msgid "Homepage URL"
msgstr "Dirección de la página personal"
-#: ../../Zotlabs/Module/Profiles.php:771
+#: ../../Zotlabs/Module/Profiles.php:768
msgid "Hometown"
msgstr "Lugar de nacimiento"
-#: ../../Zotlabs/Module/Profiles.php:772
+#: ../../Zotlabs/Module/Profiles.php:769
msgid "Political views"
msgstr "Ideas políticas"
-#: ../../Zotlabs/Module/Profiles.php:773
+#: ../../Zotlabs/Module/Profiles.php:770
msgid "Religious views"
msgstr "Creencias religiosas"
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Keywords used in directory listings"
msgstr "Palabras clave utilizadas en los listados de directorios"
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Example: fishing photography software"
msgstr "Por ejemplo: software de fotografía submarina"
-#: ../../Zotlabs/Module/Profiles.php:777
+#: ../../Zotlabs/Module/Profiles.php:774
msgid "Musical interests"
msgstr "Preferencias musicales"
-#: ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Profiles.php:775
msgid "Books, literature"
msgstr "Libros, literatura"
-#: ../../Zotlabs/Module/Profiles.php:779
+#: ../../Zotlabs/Module/Profiles.php:776
msgid "Television"
msgstr "Televisión"
-#: ../../Zotlabs/Module/Profiles.php:780
+#: ../../Zotlabs/Module/Profiles.php:777
msgid "Film/Dance/Culture/Entertainment"
msgstr "Cine, danza, cultura, entretenimiento"
-#: ../../Zotlabs/Module/Profiles.php:781
+#: ../../Zotlabs/Module/Profiles.php:778
msgid "Hobbies/Interests"
msgstr "Aficiones o intereses"
-#: ../../Zotlabs/Module/Profiles.php:782
+#: ../../Zotlabs/Module/Profiles.php:779
msgid "Love/Romance"
msgstr "Vida sentimental o amorosa"
-#: ../../Zotlabs/Module/Profiles.php:784
+#: ../../Zotlabs/Module/Profiles.php:781
msgid "School/Education"
msgstr "Estudios"
-#: ../../Zotlabs/Module/Profiles.php:785
+#: ../../Zotlabs/Module/Profiles.php:782
msgid "Contact information and social networks"
msgstr "Información de contacto y redes sociales"
-#: ../../Zotlabs/Module/Profiles.php:786
+#: ../../Zotlabs/Module/Profiles.php:783
msgid "My other channels"
msgstr "Mis otros canales"
-#: ../../Zotlabs/Module/Profiles.php:788
+#: ../../Zotlabs/Module/Profiles.php:785
msgid "Communications"
msgstr "Comunicaciones"
-#: ../../Zotlabs/Module/Profiles.php:823 ../../include/channel.php:1316
+#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1315
msgid "Profile Image"
msgstr "Imagen del perfil"
-#: ../../Zotlabs/Module/Profiles.php:833 ../../include/channel.php:1297
+#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1296
#: ../../include/nav.php:117
msgid "Edit Profiles"
msgstr "Editar perfiles"
@@ -6331,11 +6428,11 @@ msgstr "Subir una foto de portada del perfil"
msgid "Edit your default profile"
msgstr "Editar su perfil por defecto"
-#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:43
+#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:34
msgid "View friend suggestions"
msgstr "Ver sugerencias de amistad"
-#: ../../Zotlabs/Module/Go.php:39 ../../Zotlabs/Widget/Newmember.php:42
+#: ../../Zotlabs/Module/Go.php:39
msgid "View the channel directory"
msgstr "Ver el directorio de canales"
@@ -6412,9 +6509,9 @@ msgstr "%d nuevas solicitudes de conexión"
msgid "Delegated Channel"
msgstr "Canal delegado"
-#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:181
-#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1890
-#: ../../include/features.php:114 ../../include/nav.php:458
+#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:194
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1893
+#: ../../include/features.php:123 ../../include/nav.php:458
msgid "Cards"
msgstr "Fichas"
@@ -6506,7 +6603,7 @@ msgid "Export selected"
msgstr "Exportar los elementos seleccionados"
#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:244
-#: ../../include/conversation.php:1912 ../../include/nav.php:481
+#: ../../include/conversation.php:1915 ../../include/nav.php:481
msgid "Webpages"
msgstr "Páginas web"
@@ -6579,7 +6676,7 @@ msgstr "Renombrar el canal"
msgid "Item is not editable"
msgstr "El elemento no es editable"
-#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:178
+#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:144
msgid "Edit post"
msgstr "Editar la entrada"
@@ -6666,7 +6763,7 @@ msgid "*"
msgstr "*"
#: ../../Zotlabs/Module/Sources.php:96
-#: ../../Zotlabs/Widget/Settings_menu.php:125 ../../include/features.php:274
+#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/features.php:292
msgid "Channel Sources"
msgstr "Orígenes de los contenidos del canal"
@@ -6757,165 +6854,169 @@ msgstr "Canal no disponible."
msgid "Previous action reversed."
msgstr "Acción anterior revocada."
-#: ../../Zotlabs/Module/Like.php:436 ../../addon/diaspora/Receiver.php:1547
-#: ../../addon/pubcrawl/as.php:1394 ../../include/conversation.php:160
+#: ../../Zotlabs/Module/Like.php:438 ../../addon/diaspora/Receiver.php:1529
+#: ../../addon/pubcrawl/as.php:1440 ../../include/conversation.php:160
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "A %1$s le gusta %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:438 ../../addon/pubcrawl/as.php:1396
+#: ../../Zotlabs/Module/Like.php:440 ../../addon/pubcrawl/as.php:1442
#: ../../include/conversation.php:163
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "A %1$s no le gusta %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:440
+#: ../../Zotlabs/Module/Like.php:442
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s está de acuerdo"
-#: ../../Zotlabs/Module/Like.php:442
+#: ../../Zotlabs/Module/Like.php:444
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s no está de acuerdo"
-#: ../../Zotlabs/Module/Like.php:444
+#: ../../Zotlabs/Module/Like.php:446
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s se abstiene"
-#: ../../Zotlabs/Module/Like.php:446 ../../addon/diaspora/Receiver.php:2031
+#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2072
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s participa"
-#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2033
+#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2074
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s no participa"
-#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2035
+#: ../../Zotlabs/Module/Like.php:452 ../../addon/diaspora/Receiver.php:2076
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%3$s de %2$s: %1$s quizá participe"
-#: ../../Zotlabs/Module/Like.php:562
+#: ../../Zotlabs/Module/Like.php:564
msgid "Action completed."
msgstr "Acción completada."
-#: ../../Zotlabs/Module/Like.php:563
+#: ../../Zotlabs/Module/Like.php:565
msgid "Thank you."
msgstr "Gracias."
-#: ../../Zotlabs/Module/Directory.php:250
+#: ../../Zotlabs/Module/Directory.php:106
+msgid "No default suggestions were found."
+msgstr "No se encontraron sugerencias por defecto."
+
+#: ../../Zotlabs/Module/Directory.php:255
#, php-format
msgid "%d rating"
msgid_plural "%d ratings"
msgstr[0] "%d valoración"
msgstr[1] "%d valoraciones"
-#: ../../Zotlabs/Module/Directory.php:261
+#: ../../Zotlabs/Module/Directory.php:266
msgid "Gender: "
msgstr "Género:"
-#: ../../Zotlabs/Module/Directory.php:263
+#: ../../Zotlabs/Module/Directory.php:268
msgid "Status: "
msgstr "Estado:"
-#: ../../Zotlabs/Module/Directory.php:265
+#: ../../Zotlabs/Module/Directory.php:270
msgid "Homepage: "
msgstr "Página personal:"
-#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1565
+#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1564
msgid "Age:"
msgstr "Edad:"
-#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1392
+#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1391
#: ../../include/event.php:54 ../../include/event.php:86
msgid "Location:"
msgstr "Ubicación:"
-#: ../../Zotlabs/Module/Directory.php:325
+#: ../../Zotlabs/Module/Directory.php:330
msgid "Description:"
msgstr "Descripción:"
-#: ../../Zotlabs/Module/Directory.php:330 ../../include/channel.php:1581
+#: ../../Zotlabs/Module/Directory.php:335 ../../include/channel.php:1593
msgid "Hometown:"
msgstr "Lugar de nacimiento:"
-#: ../../Zotlabs/Module/Directory.php:332 ../../include/channel.php:1589
+#: ../../Zotlabs/Module/Directory.php:337 ../../include/channel.php:1599
msgid "About:"
msgstr "Sobre mí:"
-#: ../../Zotlabs/Module/Directory.php:333 ../../Zotlabs/Module/Suggest.php:56
+#: ../../Zotlabs/Module/Directory.php:338 ../../Zotlabs/Module/Suggest.php:56
#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44
-#: ../../include/conversation.php:1052 ../../include/channel.php:1377
-#: ../../include/connections.php:111
+#: ../../include/conversation.php:1052 ../../include/channel.php:1376
+#: ../../include/connections.php:110
msgid "Connect"
msgstr "Conectar"
-#: ../../Zotlabs/Module/Directory.php:334
+#: ../../Zotlabs/Module/Directory.php:339
msgid "Public Forum:"
msgstr "Foro público:"
-#: ../../Zotlabs/Module/Directory.php:337
+#: ../../Zotlabs/Module/Directory.php:342
msgid "Keywords: "
msgstr "Palabras clave:"
-#: ../../Zotlabs/Module/Directory.php:340
+#: ../../Zotlabs/Module/Directory.php:345
msgid "Don't suggest"
msgstr "No sugerir:"
-#: ../../Zotlabs/Module/Directory.php:342
+#: ../../Zotlabs/Module/Directory.php:347
msgid "Common connections (estimated):"
msgstr "Conexiones comunes (estimadas): "
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Global Directory"
msgstr "Directorio global:"
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Local Directory"
msgstr "Directorio local:"
-#: ../../Zotlabs/Module/Directory.php:397
+#: ../../Zotlabs/Module/Directory.php:402
msgid "Finding:"
msgstr "Encontrar:"
-#: ../../Zotlabs/Module/Directory.php:400 ../../Zotlabs/Module/Suggest.php:64
+#: ../../Zotlabs/Module/Directory.php:405 ../../Zotlabs/Module/Suggest.php:64
#: ../../include/contact_widgets.php:24
msgid "Channel Suggestions"
msgstr "Sugerencias de canales"
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "next page"
msgstr "siguiente página"
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "previous page"
msgstr "página anterior"
-#: ../../Zotlabs/Module/Directory.php:403
+#: ../../Zotlabs/Module/Directory.php:408
msgid "Sort options"
msgstr "Ordenar opciones"
-#: ../../Zotlabs/Module/Directory.php:404
+#: ../../Zotlabs/Module/Directory.php:409
msgid "Alphabetic"
msgstr "Alfabético"
-#: ../../Zotlabs/Module/Directory.php:405
+#: ../../Zotlabs/Module/Directory.php:410
msgid "Reverse Alphabetic"
msgstr "Alfabético inverso"
-#: ../../Zotlabs/Module/Directory.php:406
+#: ../../Zotlabs/Module/Directory.php:411
msgid "Newest to Oldest"
msgstr "De más nuevo a más antiguo"
-#: ../../Zotlabs/Module/Directory.php:407
+#: ../../Zotlabs/Module/Directory.php:412
msgid "Oldest to Newest"
msgstr "De más antiguo a más nuevo"
-#: ../../Zotlabs/Module/Directory.php:424
+#: ../../Zotlabs/Module/Directory.php:429
msgid "No entries (some entries may be hidden)."
msgstr "Sin entradas (algunas entradas pueden estar ocultas)."
@@ -6998,7 +7099,7 @@ msgid "Subject:"
msgstr "Asunto:"
#: ../../Zotlabs/Module/Mail.php:287 ../../Zotlabs/Module/Mail.php:429
-#: ../../include/conversation.php:1382
+#: ../../include/conversation.php:1385
msgid "Attach file"
msgstr "Adjuntar fichero"
@@ -7007,7 +7108,7 @@ msgid "Send"
msgstr "Enviar"
#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1430
msgid "Set expiration date"
msgstr "Configurar fecha de caducidad"
@@ -7229,7 +7330,7 @@ msgstr "sí"
msgid "Membership on this site is by invitation only."
msgstr "Para registrarse en este sitio es necesaria una invitación."
-#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1563
+#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1570
#: ../../include/nav.php:164
msgid "Register"
msgstr "Registrarse"
@@ -7245,34 +7346,34 @@ msgstr "Este sitio requiere verificación por correo electrónico. Después de c
msgid "Cover Photos"
msgstr "Imágenes de portada del perfil"
-#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4508
+#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4558
msgid "female"
msgstr "mujer"
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4509
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4559
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4510
+#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4560
msgid "male"
msgstr "hombre"
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4511
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4561
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4513
+#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4563
#, php-format
msgid "%1$s updated their %2$s"
msgstr "%1$s ha actualizado su %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2059
+#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2070
msgid "cover photo"
msgstr "Imagen de portada del perfil"
-#: ../../Zotlabs/Module/Cover_photo.php:360
+#: ../../Zotlabs/Module/Cover_photo.php:361
msgid "Change Cover Photo"
msgstr "Cambiar la foto de portada del perfil"
@@ -7280,7 +7381,7 @@ msgstr "Cambiar la foto de portada del perfil"
msgid "Documentation Search"
msgstr "Búsqueda de Documentación"
-#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1821
+#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1824
#: ../../include/nav.php:391
msgid "About"
msgstr "Mi perfil"
@@ -7305,11 +7406,11 @@ msgstr "Documentación de $Projectname"
msgid "Contents"
msgstr "Contenidos"
-#: ../../Zotlabs/Module/Display.php:351
+#: ../../Zotlabs/Module/Display.php:394
msgid "Article"
msgstr "Artículo"
-#: ../../Zotlabs/Module/Display.php:403
+#: ../../Zotlabs/Module/Display.php:446
msgid "Item has been removed."
msgstr "Se ha eliminado el elemento."
@@ -7341,19 +7442,19 @@ msgstr "foro"
msgid "Search Results For:"
msgstr "Buscar resultados para:"
-#: ../../Zotlabs/Module/Network.php:230
+#: ../../Zotlabs/Module/Network.php:229
msgid "Privacy group is empty"
msgstr "El grupo de canales está vacío"
-#: ../../Zotlabs/Module/Network.php:240
+#: ../../Zotlabs/Module/Network.php:238
msgid "Privacy group: "
msgstr "Grupo de canales: "
-#: ../../Zotlabs/Module/Network.php:268
+#: ../../Zotlabs/Module/Network.php:265
msgid "Invalid connection."
msgstr "Conexión no válida."
-#: ../../Zotlabs/Module/Network.php:289 ../../addon/redred/redred.php:65
+#: ../../Zotlabs/Module/Network.php:285 ../../addon/redred/redred.php:65
msgid "Invalid channel."
msgstr "El canal no es válido."
@@ -7554,7 +7655,7 @@ msgid ""
"Password reset failed."
msgstr "La solicitud no ha podido ser verificada. (Puede que la haya enviado con anterioridad) El restablecimiento de la contraseña ha fallado."
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1591
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1598
msgid "Password Reset"
msgstr "Restablecer la contraseña"
@@ -7652,11 +7753,11 @@ msgstr "Servicio de compartición de Firefox"
msgid "Remote Diagnostics"
msgstr "Diagnóstico remoto"
-#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:390
+#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:417
msgid "Suggest Channels"
msgstr "Sugerir canales"
-#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1582
+#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1589
#: ../../include/nav.php:126 ../../include/nav.php:130
msgid "Login"
msgstr "Iniciar sesión"
@@ -7665,8 +7766,8 @@ msgstr "Iniciar sesión"
msgid "Activity"
msgstr "Actividad"
-#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1928
-#: ../../include/features.php:87 ../../include/nav.php:497
+#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1931
+#: ../../include/features.php:96 ../../include/nav.php:497
msgid "Wiki"
msgstr "Wiki"
@@ -7674,8 +7775,8 @@ msgstr "Wiki"
msgid "Channel Home"
msgstr "Mi canal"
-#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1850
-#: ../../include/conversation.php:1853
+#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1853
+#: ../../include/conversation.php:1856
msgid "Events"
msgstr "Eventos"
@@ -7832,9 +7933,8 @@ msgctxt "wiki_history"
msgid "Message"
msgstr "Mensaje"
-#: ../../Zotlabs/Lib/NativeWikiPage.php:597
-#: ../../addon/gitwiki/gitwiki_backend.php:579 ../../include/bbcode.php:706
-#: ../../include/bbcode.php:865
+#: ../../Zotlabs/Lib/NativeWikiPage.php:597 ../../include/bbcode.php:744
+#: ../../include/bbcode.php:914
msgid "Different viewers will see this text differently"
msgstr "Visitantes diferentes verán este texto de forma distinta"
@@ -7956,61 +8056,61 @@ msgstr "Para dejar de recibir estos mensajes, por favor ajuste la configuración
msgid "To stop receiving these messages, please adjust your %s."
msgstr "Para dejar de recibir estos mensajes, por favor, ajuste su %s"
-#: ../../Zotlabs/Lib/Enotify.php:120
+#: ../../Zotlabs/Lib/Enotify.php:123
#, php-format
msgid "%s <!item_type!>"
msgstr "%s <!item_type!>"
-#: ../../Zotlabs/Lib/Enotify.php:124
+#: ../../Zotlabs/Lib/Enotify.php:127
#, php-format
msgid "[$Projectname:Notify] New mail received at %s"
msgstr "[$Projectname:Aviso] Nuevo correo recibido en %s"
-#: ../../Zotlabs/Lib/Enotify.php:126
+#: ../../Zotlabs/Lib/Enotify.php:129
#, php-format
-msgid "%1$s, %2$s sent you a new private message at %3$s."
-msgstr "%1$s, %2$s le ha enviado un nuevo mensaje privado en %3$s."
+msgid "%1$s sent you a new private message at %2$s."
+msgstr "%1$s le ha enviado un nuevo mensaje privado en %2$s."
-#: ../../Zotlabs/Lib/Enotify.php:127
+#: ../../Zotlabs/Lib/Enotify.php:130
#, php-format
msgid "%1$s sent you %2$s."
msgstr "%1$s le ha enviado %2$s."
-#: ../../Zotlabs/Lib/Enotify.php:127
+#: ../../Zotlabs/Lib/Enotify.php:130
msgid "a private message"
msgstr "un mensaje privado"
-#: ../../Zotlabs/Lib/Enotify.php:128
+#: ../../Zotlabs/Lib/Enotify.php:131
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
msgstr "Por favor visite %s para ver y/o responder a su mensaje privado."
-#: ../../Zotlabs/Lib/Enotify.php:141
+#: ../../Zotlabs/Lib/Enotify.php:144
msgid "commented on"
msgstr "ha comentado sobre"
-#: ../../Zotlabs/Lib/Enotify.php:152
+#: ../../Zotlabs/Lib/Enotify.php:155
msgid "liked"
msgstr "ha gustado de "
-#: ../../Zotlabs/Lib/Enotify.php:155
+#: ../../Zotlabs/Lib/Enotify.php:158
msgid "disliked"
msgstr "no ha gustado de "
-#: ../../Zotlabs/Lib/Enotify.php:198
+#: ../../Zotlabs/Lib/Enotify.php:201
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]a %5$s[/zrl]"
-msgstr "%1$s, %2$s %3$s[zrl=%4$s]un %5$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]a %4$s[/zrl]"
+msgstr "%1$s%2$s [zrl=%3$s ]un %4$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:207
+#: ../../Zotlabs/Lib/Enotify.php:209
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]%5$s's %6$s[/zrl]"
-msgstr "%1$s, %2$s %3$s [zrl=%4$s] %6$sde %5$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]%4$s's %5$s[/zrl]"
+msgstr "%1$s %2$s[zrl=%3$s]%5$s de %4$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:217
+#: ../../Zotlabs/Lib/Enotify.php:218
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]your %5$s[/zrl]"
-msgstr "%1$s, %2$s %3$s [zrl=%4$s] ]su %5$s [/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]your %4$s[/zrl]"
+msgstr "%1$s %2$s [zrl=%3$s]su %4$s[/zrl]"
#: ../../Zotlabs/Lib/Enotify.php:230
#, php-format
@@ -8024,12 +8124,12 @@ msgstr "[$Projectname:Aviso] Nuevo comentario de %2$s en la conversación #%1$d"
#: ../../Zotlabs/Lib/Enotify.php:233
#, php-format
-msgid "%1$s, %2$s commented on an item/conversation you have been following."
-msgstr "%1$s, %2$s ha comentado un elemento/conversación que ha estado siguiendo."
+msgid "%1$s commented on an item/conversation you have been following."
+msgstr "%1$sha comentado un elemento/conversación que ha estado siguiendo."
-#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:318
-#: ../../Zotlabs/Lib/Enotify.php:335 ../../Zotlabs/Lib/Enotify.php:361
-#: ../../Zotlabs/Lib/Enotify.php:379 ../../Zotlabs/Lib/Enotify.php:393
+#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:317
+#: ../../Zotlabs/Lib/Enotify.php:333 ../../Zotlabs/Lib/Enotify.php:358
+#: ../../Zotlabs/Lib/Enotify.php:375 ../../Zotlabs/Lib/Enotify.php:388
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Para ver o comentar la conversación, visite %s"
@@ -8041,152 +8141,150 @@ msgstr "Por favor, visite %spara aprobar o rechazar este comentario."
#: ../../Zotlabs/Lib/Enotify.php:299
#, php-format
-msgid "%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]"
-msgstr "%1$s, %2$s ha mostrado su agrado por [zrl=%3$s]%4$s creado por usted[/zrl]"
+msgid "%1$s liked [zrl=%2$s]your %3$s[/zrl]"
+msgstr "A %1$sle ha gustado [zrl=%2$s]su%3$s [/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:314
+#: ../../Zotlabs/Lib/Enotify.php:313
#, php-format
msgid "[$Projectname:Notify] Like received to conversation #%1$d by %2$s"
msgstr "[$Projectname:Aviso] \"Me gusta\" de %2$s en la conversación #%1$d"
-#: ../../Zotlabs/Lib/Enotify.php:315
+#: ../../Zotlabs/Lib/Enotify.php:314
#, php-format
-msgid "%1$s, %2$s liked an item/conversation you created."
-msgstr "%1$s, %2$s ha mostrado su agrado por un elemento o conversación que ha creado usted."
+msgid "%1$s liked an item/conversation you created."
+msgstr "A %1$s le ha gustado un elemento o conversación que ha creado usted."
-#: ../../Zotlabs/Lib/Enotify.php:326
+#: ../../Zotlabs/Lib/Enotify.php:325
#, php-format
msgid "[$Projectname:Notify] %s posted to your profile wall"
msgstr "[$Projectname:Aviso] %s ha publicado una entrada en su página de inicio del perfil (\"muro\")"
-#: ../../Zotlabs/Lib/Enotify.php:328
+#: ../../Zotlabs/Lib/Enotify.php:327
#, php-format
-msgid "%1$s, %2$s posted to your profile wall at %3$s"
-msgstr "%1$s, %2$s ha publicado en su página del perfil en %3$s"
+msgid "%1$s posted to your profile wall at %2$s"
+msgstr "%1$s ha publicado en su muro en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:330
+#: ../../Zotlabs/Lib/Enotify.php:329
#, php-format
-msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
-msgstr "%1$s, %2$s ha publicado en [zrl=%3$s]su página del perfil[/zrl]"
+msgid "%1$s posted to [zrl=%2$s]your wall[/zrl]"
+msgstr "%1$sha publicado en [zrl=%2$s]su muro[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:354
+#: ../../Zotlabs/Lib/Enotify.php:352
#, php-format
msgid "[$Projectname:Notify] %s tagged you"
msgstr "[$Projectname:Aviso] %s le ha etiquetado"
-#: ../../Zotlabs/Lib/Enotify.php:355
+#: ../../Zotlabs/Lib/Enotify.php:353
#, php-format
-msgid "%1$s, %2$s tagged you at %3$s"
-msgstr "%1$s, %2$s le ha etiquetado en %3$s"
+msgid "%1$s tagged you at %2$s"
+msgstr "%1$sle ha etiquetado en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:356
+#: ../../Zotlabs/Lib/Enotify.php:354
#, php-format
-msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%3$s]le etiquetó[/zrl]."
+msgid "%1$s [zrl=%2$s]tagged you[/zrl]."
+msgstr "%1$s [zrl=%2$s]le ha etiquetado[/zrl]."
-#: ../../Zotlabs/Lib/Enotify.php:368
+#: ../../Zotlabs/Lib/Enotify.php:365
#, php-format
msgid "[$Projectname:Notify] %1$s poked you"
msgstr "[$Projectname:Aviso] %1$s le ha dado un toque"
-#: ../../Zotlabs/Lib/Enotify.php:369
+#: ../../Zotlabs/Lib/Enotify.php:366
#, php-format
-msgid "%1$s, %2$s poked you at %3$s"
-msgstr "%1$s, %2$s le ha dado un toque en %3$s"
+msgid "%1$s poked you at %2$s"
+msgstr "%1$sle ha dado un toque en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:370
+#: ../../Zotlabs/Lib/Enotify.php:367
#, php-format
-msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%2$s]le ha dado un toque[/zrl]."
+msgid "%1$s [zrl=%2$s]poked you[/zrl]."
+msgstr "%1$s [zrl=%2$s]le ha dado un toque[/zrl]."
-#: ../../Zotlabs/Lib/Enotify.php:386
+#: ../../Zotlabs/Lib/Enotify.php:382
#, php-format
msgid "[$Projectname:Notify] %s tagged your post"
msgstr "[$Projectname:Aviso] %s ha etiquetado su entrada"
-#: ../../Zotlabs/Lib/Enotify.php:387
+#: ../../Zotlabs/Lib/Enotify.php:383
#, php-format
-msgid "%1$s, %2$s tagged your post at %3$s"
-msgstr "%1$s, %2$s ha etiquetado su publicación en %3$s"
+msgid "%1$s tagged your post at %2$s"
+msgstr "%1$sha etiquetado su entrada en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:388
+#: ../../Zotlabs/Lib/Enotify.php:384
#, php-format
-msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
-msgstr "%1$s, %2$s ha etiquetado [zrl=%3$s]su publicación[/zrl]"
+msgid "%1$s tagged [zrl=%2$s]your post[/zrl]"
+msgstr "%1$s ha etiquetado [zrl=%2$s]su entrada[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:400
+#: ../../Zotlabs/Lib/Enotify.php:395
msgid "[$Projectname:Notify] Introduction received"
msgstr "[$Projectname:Aviso] Ha recibido una solicitud de conexión"
-#: ../../Zotlabs/Lib/Enotify.php:401
+#: ../../Zotlabs/Lib/Enotify.php:396
#, php-format
-msgid "%1$s, you've received an new connection request from '%2$s' at %3$s"
-msgstr "%1$s, ha recibido una nueva solicitud de conexión de '%2$s' en %3$s"
+msgid "You've received an new connection request from '%1$s' at %2$s"
+msgstr "Ha recibido una nueva solicitud de conexión de '%1$s' en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:402
+#: ../../Zotlabs/Lib/Enotify.php:397
#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s."
-msgstr "%1$s, ha recibido [zrl=%2$s]una nueva solicitud de conexión[/zrl] de %3$s."
+msgid "You've received [zrl=%1$s]a new connection request[/zrl] from %2$s."
+msgstr "Ha recibido [zrl=%1$s]una nueva solicitud de conexión[/zrl] de %2$s."
-#: ../../Zotlabs/Lib/Enotify.php:406 ../../Zotlabs/Lib/Enotify.php:425
+#: ../../Zotlabs/Lib/Enotify.php:400 ../../Zotlabs/Lib/Enotify.php:418
#, php-format
msgid "You may visit their profile at %s"
msgstr "Puede visitar su perfil en %s"
-#: ../../Zotlabs/Lib/Enotify.php:408
+#: ../../Zotlabs/Lib/Enotify.php:402
#, php-format
msgid "Please visit %s to approve or reject the connection request."
msgstr "Por favor, visite %s para permitir o rechazar la solicitad de conexión."
-#: ../../Zotlabs/Lib/Enotify.php:415
+#: ../../Zotlabs/Lib/Enotify.php:409
msgid "[$Projectname:Notify] Friend suggestion received"
msgstr "[$Projectname:Aviso] Ha recibido una sugerencia de conexión"
-#: ../../Zotlabs/Lib/Enotify.php:416
+#: ../../Zotlabs/Lib/Enotify.php:410
#, php-format
-msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
-msgstr "%1$s, ha recibido una sugerencia de conexión de '%2$s' en %3$s"
+msgid "You've received a friend suggestion from '%1$s' at %2$s"
+msgstr "Ha recibido una sugerencia de amistad de '%1$s' en %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:417
+#: ../../Zotlabs/Lib/Enotify.php:411
#, php-format
msgid ""
-"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from "
-"%4$s."
-msgstr "%1$s, ha recibido [zrl=%2$s]una sugerencia de conexión[/zrl] para %3$s de %4$s."
+"You've received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s."
+msgstr "Ha recibido [zrl=%1$s]una sugerencia de amistad[/zrl] para %2$s de %3$s."
-#: ../../Zotlabs/Lib/Enotify.php:423
+#: ../../Zotlabs/Lib/Enotify.php:416
msgid "Name:"
msgstr "Nombre:"
-#: ../../Zotlabs/Lib/Enotify.php:424
+#: ../../Zotlabs/Lib/Enotify.php:417
msgid "Photo:"
msgstr "Foto:"
-#: ../../Zotlabs/Lib/Enotify.php:427
+#: ../../Zotlabs/Lib/Enotify.php:420
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Por favor, visite %s para aprobar o rechazar la sugerencia."
-#: ../../Zotlabs/Lib/Enotify.php:647
+#: ../../Zotlabs/Lib/Enotify.php:640
msgid "[$Projectname:Notify]"
msgstr "[$Projectname:Aviso]"
-#: ../../Zotlabs/Lib/Enotify.php:815
+#: ../../Zotlabs/Lib/Enotify.php:808
msgid "created a new post"
msgstr "ha creado una nueva entrada"
-#: ../../Zotlabs/Lib/Enotify.php:816
+#: ../../Zotlabs/Lib/Enotify.php:809
#, php-format
msgid "commented on %s's post"
msgstr "ha comentado la entrada de %s"
-#: ../../Zotlabs/Lib/Enotify.php:823
+#: ../../Zotlabs/Lib/Enotify.php:816
#, php-format
msgid "edited a post dated %s"
msgstr "ha editado una entrada fechada el%s"
-#: ../../Zotlabs/Lib/Enotify.php:827
+#: ../../Zotlabs/Lib/Enotify.php:820
#, php-format
msgid "edited a comment dated %s"
msgstr "ha editado un comentario fechado el %s"
@@ -8195,7 +8293,7 @@ msgstr "ha editado un comentario fechado el %s"
msgid "Wiki updated successfully"
msgstr "El wiki se ha actualizado con éxito"
-#: ../../Zotlabs/Lib/NativeWiki.php:198
+#: ../../Zotlabs/Lib/NativeWiki.php:205
msgid "Wiki files deleted successfully"
msgstr "Se han borrado con éxito los ficheros del wiki"
@@ -8269,11 +8367,11 @@ msgstr "Firma de mensaje incorrecta"
msgid "Add Tag"
msgstr "Añadir etiqueta"
-#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:510
+#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:575
msgid "like"
msgstr "me gusta"
-#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:511
+#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:576
msgid "dislike"
msgstr "no me gusta"
@@ -8366,51 +8464,51 @@ msgstr "Esta es una previsualización sin guardar"
msgid "%s show all"
msgstr "%s mostrar todo"
-#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/conversation.php:1377
+#: ../../Zotlabs/Lib/ThreadItem.php:753 ../../include/conversation.php:1380
msgid "Bold"
msgstr "Negrita"
-#: ../../Zotlabs/Lib/ThreadItem.php:752 ../../include/conversation.php:1378
+#: ../../Zotlabs/Lib/ThreadItem.php:754 ../../include/conversation.php:1381
msgid "Italic"
msgstr "Itálico "
-#: ../../Zotlabs/Lib/ThreadItem.php:753 ../../include/conversation.php:1379
+#: ../../Zotlabs/Lib/ThreadItem.php:755 ../../include/conversation.php:1382
msgid "Underline"
msgstr "Subrayar"
-#: ../../Zotlabs/Lib/ThreadItem.php:754 ../../include/conversation.php:1380
+#: ../../Zotlabs/Lib/ThreadItem.php:756 ../../include/conversation.php:1383
msgid "Quote"
msgstr "Citar"
-#: ../../Zotlabs/Lib/ThreadItem.php:755 ../../include/conversation.php:1381
+#: ../../Zotlabs/Lib/ThreadItem.php:757 ../../include/conversation.php:1384
msgid "Code"
msgstr "Código"
-#: ../../Zotlabs/Lib/ThreadItem.php:756
+#: ../../Zotlabs/Lib/ThreadItem.php:758
msgid "Image"
msgstr "Imagen"
-#: ../../Zotlabs/Lib/ThreadItem.php:757
+#: ../../Zotlabs/Lib/ThreadItem.php:759
msgid "Attach File"
msgstr "Fichero adjunto"
-#: ../../Zotlabs/Lib/ThreadItem.php:758
+#: ../../Zotlabs/Lib/ThreadItem.php:760
msgid "Insert Link"
msgstr "Insertar enlace"
-#: ../../Zotlabs/Lib/ThreadItem.php:759
+#: ../../Zotlabs/Lib/ThreadItem.php:761
msgid "Video"
msgstr "Vídeo"
-#: ../../Zotlabs/Lib/ThreadItem.php:769
+#: ../../Zotlabs/Lib/ThreadItem.php:771
msgid "Your full name (required)"
msgstr "Su nombre completo (requerido)"
-#: ../../Zotlabs/Lib/ThreadItem.php:770
+#: ../../Zotlabs/Lib/ThreadItem.php:772
msgid "Your email address (required)"
msgstr "Su dirección de correo electrónico (requerido)"
-#: ../../Zotlabs/Lib/ThreadItem.php:771
+#: ../../Zotlabs/Lib/ThreadItem.php:773
msgid "Your website URL (optional)"
msgstr "La URL de su sitio web (opcional)"
@@ -8430,7 +8528,7 @@ msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo
msgid "parent"
msgstr "padre"
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2821
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2845
msgid "Collection"
msgstr "Colección"
@@ -8463,6 +8561,10 @@ msgstr "Total"
msgid "Shared"
msgstr "Compartido"
+#: ../../Zotlabs/Storage/Browser.php:277
+msgid "Add Files"
+msgstr "Añadir ficheros"
+
#: ../../Zotlabs/Storage/Browser.php:353
#, php-format
msgid "You are using %1$s of your available file storage."
@@ -8570,10 +8672,10 @@ msgid "Select an addressbook to import to"
msgstr "Seleccionar una agenda para importarla"
#: ../../Zotlabs/Widget/Appcategories.php:40
-#: ../../Zotlabs/Widget/Tagcloud.php:25 ../../include/contact_widgets.php:97
-#: ../../include/contact_widgets.php:141 ../../include/contact_widgets.php:186
-#: ../../include/taxonomy.php:344 ../../include/taxonomy.php:426
-#: ../../include/taxonomy.php:446 ../../include/taxonomy.php:467
+#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
+#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:409
+#: ../../include/taxonomy.php:491 ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:532
msgid "Categories"
msgstr "Temas"
@@ -8628,7 +8730,7 @@ msgid "New Message"
msgstr "Nuevo mensaje"
#: ../../Zotlabs/Widget/Chatroom_list.php:16
-#: ../../include/conversation.php:1864 ../../include/conversation.php:1867
+#: ../../include/conversation.php:1867 ../../include/conversation.php:1870
#: ../../include/nav.php:434 ../../include/nav.php:437
msgid "Chatrooms"
msgstr "Salas de chat"
@@ -8671,7 +8773,7 @@ msgstr "Dirección del canal"
msgid "Examples: bob@example.com, https://example.com/barbara"
msgstr "Ejemplos: manuel@ejemplo.com, https://ejemplo.com/carmen"
-#: ../../Zotlabs/Widget/Wiki_list.php:15 ../../addon/gitwiki/gitwiki.php:95
+#: ../../Zotlabs/Widget/Wiki_list.php:15
msgid "Wiki List"
msgstr "Lista de wikis"
@@ -8711,7 +8813,7 @@ msgstr "foto/imagen"
msgid "Remove term"
msgstr "Eliminar término"
-#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:354
+#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:381
msgid "Saved Searches"
msgstr "Búsquedas guardadas"
@@ -8724,15 +8826,15 @@ msgid "Notes"
msgstr "Notas"
#: ../../Zotlabs/Widget/Wiki_pages.php:32
-#: ../../Zotlabs/Widget/Wiki_pages.php:89 ../../addon/gitwiki/gitwiki.php:81
+#: ../../Zotlabs/Widget/Wiki_pages.php:89
msgid "Add new page"
msgstr "Añadir una nueva página"
-#: ../../Zotlabs/Widget/Wiki_pages.php:83 ../../addon/gitwiki/gitwiki.php:76
+#: ../../Zotlabs/Widget/Wiki_pages.php:83
msgid "Wiki Pages"
msgstr "Páginas del wiki"
-#: ../../Zotlabs/Widget/Wiki_pages.php:94 ../../addon/gitwiki/gitwiki.php:82
+#: ../../Zotlabs/Widget/Wiki_pages.php:94
msgid "Page name"
msgstr "Nombre de la página"
@@ -8753,7 +8855,7 @@ msgid "See more..."
msgstr "Ver más..."
#: ../../Zotlabs/Widget/Filer.php:28 ../../include/contact_widgets.php:53
-#: ../../include/features.php:443
+#: ../../include/features.php:470
msgid "Saved Folders"
msgstr "Carpetas guardadas"
@@ -8761,51 +8863,60 @@ msgstr "Carpetas guardadas"
msgid "Click to show more"
msgstr "Hacer clic para ver más"
-#: ../../Zotlabs/Widget/Newmember.php:33
+#: ../../Zotlabs/Widget/Tagcloud.php:22 ../../include/taxonomy.php:320
+#: ../../include/taxonomy.php:449 ../../include/taxonomy.php:470
+msgid "Tags"
+msgstr "Etiquetas"
+
+#: ../../Zotlabs/Widget/Newmember.php:24
msgid "Profile Creation"
msgstr "Creación de perfiles"
-#: ../../Zotlabs/Widget/Newmember.php:35
+#: ../../Zotlabs/Widget/Newmember.php:26
msgid "Upload profile photo"
msgstr "Cargar la foto del perfil"
-#: ../../Zotlabs/Widget/Newmember.php:36
+#: ../../Zotlabs/Widget/Newmember.php:27
msgid "Upload cover photo"
msgstr "Cargar la foto de portada del perfil"
-#: ../../Zotlabs/Widget/Newmember.php:37 ../../include/nav.php:119
+#: ../../Zotlabs/Widget/Newmember.php:28 ../../include/nav.php:119
msgid "Edit your profile"
msgstr "Editar su perfil"
-#: ../../Zotlabs/Widget/Newmember.php:40
+#: ../../Zotlabs/Widget/Newmember.php:31
msgid "Find and Connect with others"
msgstr "Encontrar y conectarse con otros"
-#: ../../Zotlabs/Widget/Newmember.php:44
+#: ../../Zotlabs/Widget/Newmember.php:33
+msgid "View the directory"
+msgstr "Ver el directorio"
+
+#: ../../Zotlabs/Widget/Newmember.php:35
msgid "Manage your connections"
msgstr "Gestionar sus conexiones"
-#: ../../Zotlabs/Widget/Newmember.php:47
+#: ../../Zotlabs/Widget/Newmember.php:38
msgid "Communicate"
msgstr "Comunicarse"
-#: ../../Zotlabs/Widget/Newmember.php:49
+#: ../../Zotlabs/Widget/Newmember.php:40
msgid "View your channel homepage"
msgstr "Ver la página principal de su canal"
-#: ../../Zotlabs/Widget/Newmember.php:50
+#: ../../Zotlabs/Widget/Newmember.php:41
msgid "View your network stream"
msgstr "Ver el \"stream\" de su red"
-#: ../../Zotlabs/Widget/Newmember.php:56
+#: ../../Zotlabs/Widget/Newmember.php:47
msgid "Documentation"
msgstr "Documentación"
-#: ../../Zotlabs/Widget/Newmember.php:67
-msgid "View public stream. Warning: not moderated"
-msgstr "Ver el \"stream\" público. Advertencia: no está moderado"
+#: ../../Zotlabs/Widget/Newmember.php:58
+msgid "View public stream"
+msgstr "Ver el \"stream\" público"
-#: ../../Zotlabs/Widget/Newmember.php:71
+#: ../../Zotlabs/Widget/Newmember.php:62 ../../include/features.php:60
msgid "New Member Links"
msgstr "Enlaces para nuevos miembros"
@@ -8858,14 +8969,18 @@ msgid "Export channel"
msgstr "Exportar canal"
#: ../../Zotlabs/Widget/Settings_menu.php:84
-msgid "Connected apps"
-msgstr "Aplicaciones (apps) conectadas"
+msgid "OAuth1 apps"
+msgstr "Aplicaciones OAuth1"
+
+#: ../../Zotlabs/Widget/Settings_menu.php:92
+msgid "OAuth2 apps"
+msgstr "Aplicaciones OAuth2"
-#: ../../Zotlabs/Widget/Settings_menu.php:100 ../../include/features.php:231
+#: ../../Zotlabs/Widget/Settings_menu.php:108 ../../include/features.php:240
msgid "Permission Groups"
msgstr "Grupos de permisos"
-#: ../../Zotlabs/Widget/Settings_menu.php:117
+#: ../../Zotlabs/Widget/Settings_menu.php:125
msgid "Premium Channel Settings"
msgstr "Configuración del canal premium"
@@ -9003,53 +9118,57 @@ msgstr "Lo sentimos, por el momento no ha recibido ninguna notificación"
msgid "Source channel not found."
msgstr "No se ha encontrado el canal de origen."
-#: ../../boot.php:1562
+#: ../../boot.php:1569
msgid "Create an account to access services and applications"
msgstr "Crear una cuenta para acceder a los servicios y aplicaciones"
-#: ../../boot.php:1581 ../../include/nav.php:111 ../../include/nav.php:140
+#: ../../boot.php:1588 ../../include/nav.php:111 ../../include/nav.php:140
#: ../../include/nav.php:159
msgid "Logout"
msgstr "Finalizar sesión"
-#: ../../boot.php:1585
+#: ../../boot.php:1592
msgid "Login/Email"
msgstr "Inicio de sesión / Correo electrónico"
-#: ../../boot.php:1586
+#: ../../boot.php:1593
msgid "Password"
msgstr "Contraseña"
-#: ../../boot.php:1587
+#: ../../boot.php:1594
msgid "Remember me"
msgstr "Recordarme"
-#: ../../boot.php:1590
+#: ../../boot.php:1597
msgid "Forgot your password?"
msgstr "¿Olvidó su contraseña?"
-#: ../../boot.php:2347
+#: ../../boot.php:2354
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr "[$Projectname] Error SSL del sitio web en %s"
-#: ../../boot.php:2352
+#: ../../boot.php:2359
msgid "Website SSL certificate is not valid. Please correct."
msgstr "El certificado SSL del sitio web no es válido. Por favor, solucione el problema."
-#: ../../boot.php:2540
+#: ../../boot.php:2475
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr "[$Projectname] Las tareas de Cron no están funcionando en %s"
-#: ../../boot.php:2545
+#: ../../boot.php:2480
msgid "Cron/Scheduled tasks not running."
msgstr "Las tareas del Planificador/Cron no están funcionando."
-#: ../../boot.php:2474 ../../include/datetime.php:232
+#: ../../boot.php:2481 ../../include/datetime.php:238
msgid "never"
msgstr "nunca"
+#: ../../store/[data]/smarty3/compiled/a0a1289f91f53b2c12e4e0b45ffe8291540ba895_0.file.cover_photo.tpl.php:123
+msgid "Cover Photo"
+msgstr "Imagen de portada del perfil"
+
#: ../../view/theme/redbasic_c/php/config.php:16
#: ../../view/theme/redbasic_c/php/config.php:19
#: ../../view/theme/redbasic/php/config.php:16
@@ -9292,6 +9411,10 @@ msgid ""
" share their own locations with the group."
msgstr "Cree una nueva cita y comparta los enlaces de acceso con los que desea invitar al grupo. Aquellos que abran el enlace se convertirán en miembros de la cita. Pueden ver otras ubicaciones de miembros, añadir marcadores al mapa o compartir sus propias ubicaciones con el grupo."
+#: ../../addon/rendezvous/rendezvous.php:232
+msgid "You have no rendezvous. Press the button above to create a rendezvous!"
+msgstr "No tiene ninguna cita. ¡Presione el botón de arriba para crear una!"
+
#: ../../addon/skeleton/skeleton.php:59
msgid "Some setting"
msgstr "Algunos ajustes"
@@ -9304,30 +9427,30 @@ msgstr "Un ajuste"
msgid "Skeleton Settings"
msgstr "Ajustes de Skeleton"
-#: ../../addon/gnusoc/gnusoc.php:247
+#: ../../addon/gnusoc/gnusoc.php:249
msgid "GNU-Social Protocol Settings updated."
msgstr "Se han actualizado los ajustes del protocolo de GNU-Social."
-#: ../../addon/gnusoc/gnusoc.php:266
+#: ../../addon/gnusoc/gnusoc.php:268
msgid ""
"The GNU-Social protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr "El protocolo de GNU-Social no admite la independencia de la ubicación. Las\n conexiones que realice dentro de esa red pueden ser inaccesibles desde \nubicaciones de canales alternativos."
-#: ../../addon/gnusoc/gnusoc.php:269
+#: ../../addon/gnusoc/gnusoc.php:271
msgid "Enable the GNU-Social protocol for this channel"
msgstr "Activar el protocolo de GNU-Social para este canal"
-#: ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/gnusoc/gnusoc.php:275
msgid "GNU-Social Protocol Settings"
msgstr "Ajustes del protocolo de GNU-Social"
-#: ../../addon/gnusoc/gnusoc.php:464
+#: ../../addon/gnusoc/gnusoc.php:471
msgid "Follow"
msgstr "Seguir"
-#: ../../addon/gnusoc/gnusoc.php:467
+#: ../../addon/gnusoc/gnusoc.php:474
#, php-format
msgid "%1$s is now following %2$s"
msgstr "%1$s está siguiendo ahora a %2$s"
@@ -9373,7 +9496,7 @@ msgstr "Regresar después"
msgid "Page to load after image selection."
msgstr "Página para cargar después de la selección de imágenes."
-#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1301
+#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1300
#: ../../include/nav.php:119
msgid "Edit Profile"
msgstr "Editar el perfil"
@@ -9862,7 +9985,7 @@ msgstr "Fecha de nacimiento"
msgid "OpenID protocol error. No ID returned."
msgstr "Error de protocolo OpenID. No se recuperó ninguna ID."
-#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:290
+#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:300
msgid "Login failed."
msgstr "El acceso ha fallado."
@@ -10059,39 +10182,39 @@ msgstr "una declaración de amor eterno"
msgid "declared undying love for"
msgstr "ha declarado amor eterno a"
-#: ../../addon/diaspora/diaspora.php:778
+#: ../../addon/diaspora/diaspora.php:781
msgid "Diaspora Protocol Settings updated."
msgstr "Los ajustes del protocolo de Diaspora se han actualizado."
-#: ../../addon/diaspora/diaspora.php:797
+#: ../../addon/diaspora/diaspora.php:800
msgid ""
"The Diaspora protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr "El protocolo de Diaspora no admite la independencia de la ubicación. Las conexiones que realice dentro de esa red pueden ser inaccesibles desde ubicaciones de canales alternativos."
-#: ../../addon/diaspora/diaspora.php:800
+#: ../../addon/diaspora/diaspora.php:803
msgid "Enable the Diaspora protocol for this channel"
msgstr "Activar el protocolo de Diaspora para este canal"
-#: ../../addon/diaspora/diaspora.php:804
+#: ../../addon/diaspora/diaspora.php:807
msgid "Allow any Diaspora member to comment on your public posts"
msgstr "Permitir a cualquier miembro de Diaspora comentar sus entradas públicas"
-#: ../../addon/diaspora/diaspora.php:808
+#: ../../addon/diaspora/diaspora.php:811
msgid "Prevent your hashtags from being redirected to other sites"
msgstr "Impedir que sus \"hashtags\" sean redirigidos a otros sitios "
-#: ../../addon/diaspora/diaspora.php:812
+#: ../../addon/diaspora/diaspora.php:815
msgid ""
"Sign and forward posts and comments with no existing Diaspora signature"
msgstr "Firmar y enviar entradas y comentarios sin firma de Diaspora"
-#: ../../addon/diaspora/diaspora.php:817
+#: ../../addon/diaspora/diaspora.php:820
msgid "Followed hashtags (comma separated, do not include the #)"
msgstr "\"Hashtags\" seguidos (separados por comas, sin incluir #)"
-#: ../../addon/diaspora/diaspora.php:822
+#: ../../addon/diaspora/diaspora.php:825
msgid "Diaspora Protocol Settings"
msgstr "Ajustes del protocolo de Diaspora"
@@ -10099,7 +10222,7 @@ msgstr "Ajustes del protocolo de Diaspora"
msgid "No username found in import file."
msgstr "No se ha encontrado el nombre de usuario en el fichero de importación."
-#: ../../addon/diaspora/import_diaspora.php:41 ../../include/import.php:62
+#: ../../addon/diaspora/import_diaspora.php:41 ../../include/import.php:67
msgid "Unable to create a unique channel address. Import failed."
msgstr "No se ha podido crear una dirección de canal única. Ha fallado la importación."
@@ -10334,6 +10457,32 @@ msgstr "Incluir un marcador en el mapa."
msgid "text to include in all outgoing posts from this site"
msgstr "texto a incluir en todos los mensajes salientes de este sitio"
+#: ../../addon/fuzzloc/fuzzloc.php:148
+msgid "Fuzzloc Settings updated."
+msgstr "Los ajustes de Fuzzloc se han actualizado."
+
+#: ../../addon/fuzzloc/fuzzloc.php:175
+msgid ""
+"Fuzzloc allows you to blur your precise location if your channel uses "
+"browser location mapping."
+msgstr "Fuzzloc le permite desdibujar su ubicación precisa si su canal utiliza la asignación de ubicación del navegador."
+
+#: ../../addon/fuzzloc/fuzzloc.php:178
+msgid "Enable Fuzzloc Plugin"
+msgstr "Habilitar el plugin Fuzzloc"
+
+#: ../../addon/fuzzloc/fuzzloc.php:182
+msgid "Minimum offset in meters"
+msgstr "Offset mínimo en metros"
+
+#: ../../addon/fuzzloc/fuzzloc.php:186
+msgid "Maximum offset in meters"
+msgstr "Offset máximo en metros"
+
+#: ../../addon/fuzzloc/fuzzloc.php:191
+msgid "Fuzzloc Settings"
+msgstr "Ajustes de Fuzzloc"
+
#: ../../addon/rtof/rtof.php:45
msgid "Post to Friendica"
msgstr "Publicar en Friendica"
@@ -10370,8 +10519,8 @@ msgstr "Contraseña de Friendica"
msgid "Hubzilla to Friendica Post Settings"
msgstr "Ajustes de publicación de Hubzilla a Friendica"
-#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1397
-#: ../../include/channel.php:1568
+#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1396
+#: ../../include/channel.php:1567
msgid "Status:"
msgstr "Estado:"
@@ -10433,8 +10582,8 @@ msgid "No channels currently blocked"
msgstr "No hay canales bloqueados actualmente"
#: ../../addon/superblock/superblock.php:120
-msgid "\"Superblock\" Settings"
-msgstr "Ajustes de \"Superblock\""
+msgid "Superblock Settings"
+msgstr "Ajustes de Superblock"
#: ../../addon/superblock/superblock.php:345
msgid "Block Completely"
@@ -10516,55 +10665,55 @@ msgstr "Tamaño del fichero de informe en bytes antes de rotarlo"
msgid "Number of logfiles to retain"
msgstr "Número de ficheros de informe que se deben retener"
-#: ../../addon/frphotos/frphotos.php:91
+#: ../../addon/frphotos/frphotos.php:92
msgid "Friendica Photo Album Import"
msgstr "Importar un álbum de fotos de Friendica"
-#: ../../addon/frphotos/frphotos.php:92
+#: ../../addon/frphotos/frphotos.php:93
msgid "This will import all your Friendica photo albums to this Red channel."
msgstr "Esto importará todos sus álbumes de fotos de Friendica a este canal de Hubzilla."
-#: ../../addon/frphotos/frphotos.php:93
+#: ../../addon/frphotos/frphotos.php:94
msgid "Friendica Server base URL"
msgstr "URL base del servidor de Friendica"
-#: ../../addon/frphotos/frphotos.php:94
+#: ../../addon/frphotos/frphotos.php:95
msgid "Friendica Login Username"
msgstr "Nombre de inicio de sesión en Friendica"
-#: ../../addon/frphotos/frphotos.php:95
+#: ../../addon/frphotos/frphotos.php:96
msgid "Friendica Login Password"
msgstr "Contraseña de inicio de sesión en Friendica"
-#: ../../addon/pubcrawl/as.php:1101 ../../addon/pubcrawl/as.php:1228
-#: ../../addon/pubcrawl/as.php:1403 ../../include/network.php:1774
+#: ../../addon/pubcrawl/as.php:1146 ../../addon/pubcrawl/as.php:1273
+#: ../../addon/pubcrawl/as.php:1449 ../../include/network.php:1769
msgid "ActivityPub"
msgstr "ActivityPub"
-#: ../../addon/pubcrawl/pubcrawl.php:1034
+#: ../../addon/pubcrawl/pubcrawl.php:1053
msgid "ActivityPub Protocol Settings updated."
msgstr "Se han actualizado los ajustes del protocolo ActivityPub."
-#: ../../addon/pubcrawl/pubcrawl.php:1043
+#: ../../addon/pubcrawl/pubcrawl.php:1062
msgid ""
"The ActivityPub protocol does not support location independence. Connections"
" you make within that network may be unreachable from alternate channel "
"locations."
msgstr "El protocolo ActivityPub no soporta la independencia de ubicación. Las conexiones que realice dentro de esa red pueden no ser accesibles desde ubicaciones de canales alternativos."
-#: ../../addon/pubcrawl/pubcrawl.php:1046
+#: ../../addon/pubcrawl/pubcrawl.php:1065
msgid "Enable the ActivityPub protocol for this channel"
msgstr "Activar el protocolo ActivityPub para este canal"
-#: ../../addon/pubcrawl/pubcrawl.php:1049
+#: ../../addon/pubcrawl/pubcrawl.php:1068
msgid "Send multi-media HTML articles"
msgstr "Enviar artículos multimedia en HTML"
-#: ../../addon/pubcrawl/pubcrawl.php:1049
+#: ../../addon/pubcrawl/pubcrawl.php:1068
msgid "Not supported by some microblog services such as Mastodon"
msgstr "No soportado por algunos servicios de microblog como Mastodon"
-#: ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/pubcrawl/pubcrawl.php:1072
msgid "ActivityPub Protocol Settings"
msgstr "Ajustes del protocolo ActivityPub"
@@ -10954,7 +11103,7 @@ msgstr "Elegido un color aleatorio."
msgid "Error creating new game."
msgstr "Error al crear un nuevo juego."
-#: ../../addon/chess/chess.php:486 ../../include/channel.php:1152
+#: ../../addon/chess/chess.php:486 ../../include/channel.php:1151
msgid "Requested channel is not available."
msgstr "El canal solicitado no está disponible."
@@ -11049,6 +11198,78 @@ msgstr "Ocultar el botón y mostrar los smilies directamente."
msgid "Smileybutton Settings"
msgstr "Ajustes de Smileybutton"
+#: ../../addon/cart/myshop.php:138
+msgid "Order Not Found"
+msgstr "No se ha encontrado el pedido"
+
+#: ../../addon/cart/cart.php:810
+msgid "Order cannot be checked out."
+msgstr "No se puede verificar el pedido."
+
+#: ../../addon/cart/cart.php:1073
+msgid "Enable Shopping Cart"
+msgstr "Habilitar el carro de la compra"
+
+#: ../../addon/cart/cart.php:1080
+msgid "Enable Test Catalog"
+msgstr "Habilitar el catálogo de pruebas"
+
+#: ../../addon/cart/cart.php:1088
+msgid "Enable Manual Payments"
+msgstr "Permitir pagos manuales"
+
+#: ../../addon/cart/cart.php:1103
+msgid "Base Cart Settings"
+msgstr "Configuración del carro base"
+
+#: ../../addon/cart/cart.php:1151
+msgid "Add Item"
+msgstr "Agregar un elemento"
+
+#: ../../addon/cart/cart.php:1165
+msgid "Call cart_post_"
+msgstr "Llamar a cart_post_"
+
+#: ../../addon/cart/cart.php:1195
+msgid "Cart Not Enabled (profile: "
+msgstr "El carro no está habilitado (perfil: "
+
+#: ../../addon/cart/cart.php:1226 ../../addon/cart/manual_payments.php:36
+msgid "Order not found."
+msgstr "El pedido no se ha encontrado."
+
+#: ../../addon/cart/cart.php:1262 ../../addon/cart/cart.php:1389
+msgid "No Order Found"
+msgstr "No se ha encontrado ningún pedido"
+
+#: ../../addon/cart/cart.php:1270
+msgid "call: "
+msgstr "llamar: "
+
+#: ../../addon/cart/cart.php:1273
+msgid "An unknown error has occurred Please start again."
+msgstr "Se ha producido un error desconocido Vuelva a empezar."
+
+#: ../../addon/cart/cart.php:1414
+msgid "Invalid Payment Type. Please start again."
+msgstr "Tipo de pago no válido. Por favor, empiece de nuevo."
+
+#: ../../addon/cart/cart.php:1421
+msgid "Order not found"
+msgstr "El pedido no se ha encontrado"
+
+#: ../../addon/cart/manual_payments.php:9
+msgid "Error: order mismatch. Please try again."
+msgstr "Error: desajuste de pedidos. Por favor, inténtelo de nuevo."
+
+#: ../../addon/cart/manual_payments.php:29
+msgid "Manual payments are not enabled."
+msgstr "Los pagos manuales no están habilitados."
+
+#: ../../addon/cart/manual_payments.php:44
+msgid "Finished"
+msgstr "Terminado"
+
#: ../../addon/piwik/piwik.php:85
msgid ""
"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
@@ -11093,156 +11314,156 @@ msgstr "Habilitar la interfaz JavaScript de seguimiento de errores"
msgid "This feature requires Piwik >= 2.2.0"
msgstr "Esta funcionalidad requiere Piwik >= 2.2.0"
-#: ../../addon/tour/tour.php:75
+#: ../../addon/tour/tour.php:76
msgid "Edit your profile and change settings."
msgstr "Editar su perfil y cambiar los ajustes."
-#: ../../addon/tour/tour.php:76
+#: ../../addon/tour/tour.php:77
msgid "Click here to see activity from your connections."
msgstr "Pulsar aquí para ver la actividad de sus conexiones."
-#: ../../addon/tour/tour.php:77
+#: ../../addon/tour/tour.php:78
msgid "Click here to see your channel home."
msgstr "Pulsar aquí para ver la página de inicio de su canal."
-#: ../../addon/tour/tour.php:78
+#: ../../addon/tour/tour.php:79
msgid "You can access your private messages from here."
msgstr "Puede acceder a sus mensajes privados desde aquí."
-#: ../../addon/tour/tour.php:79
+#: ../../addon/tour/tour.php:80
msgid "Create new events here."
msgstr "Crear nuevos eventos aquí."
-#: ../../addon/tour/tour.php:80
+#: ../../addon/tour/tour.php:81
msgid ""
"You can accept new connections and change permissions for existing ones "
"here. You can also e.g. create groups of contacts."
msgstr "Puede aceptar nuevas conexiones y cambiar permisos para las existentes aquí. También puede, por ejemplo, crear grupos de contactos."
-#: ../../addon/tour/tour.php:81
+#: ../../addon/tour/tour.php:82
msgid "System notifications will arrive here"
msgstr "Las notificaciones del sistema llegarán aquí"
-#: ../../addon/tour/tour.php:82
+#: ../../addon/tour/tour.php:83
msgid "Search for content and users"
msgstr "Buscar contenido y usuarios"
-#: ../../addon/tour/tour.php:83
+#: ../../addon/tour/tour.php:84
msgid "Browse for new contacts"
msgstr "Buscar nuevos contactos"
-#: ../../addon/tour/tour.php:84
+#: ../../addon/tour/tour.php:85
msgid "Launch installed apps"
msgstr "Iniciar aplicaciones instaladas"
-#: ../../addon/tour/tour.php:85
+#: ../../addon/tour/tour.php:86
msgid "Looking for help? Click here."
msgstr "¿Busca ayuda? Pulse aquí."
-#: ../../addon/tour/tour.php:86
+#: ../../addon/tour/tour.php:87
msgid ""
"New events have occurred in your network. Click here to see what has "
"happened!"
msgstr "Se han producido nuevos eventos en su red. ¡Haga clic aquí para ver lo que ha sucedido!"
-#: ../../addon/tour/tour.php:87
+#: ../../addon/tour/tour.php:88
msgid "You have received a new private message. Click here to see from who!"
msgstr "Ha recibido un nuevo mensaje privado. Haga clic aquí para ver de quién!"
-#: ../../addon/tour/tour.php:88
+#: ../../addon/tour/tour.php:89
msgid "There are events this week. Click here too see which!"
msgstr "Hay eventos esta semana. Haga clic aquí para ver cuáles!"
-#: ../../addon/tour/tour.php:89
+#: ../../addon/tour/tour.php:90
msgid "You have received a new introduction. Click here to see who!"
msgstr "Ha recibido una nueva solicitud de conexión. ¡Pulse aquí para ver de quién!"
-#: ../../addon/tour/tour.php:90
+#: ../../addon/tour/tour.php:91
msgid ""
"There is a new system notification. Click here to see what has happened!"
msgstr "Hay una nueva notificación del sistema. ¡Haga clic aquí para ver lo que ha sucedido!"
-#: ../../addon/tour/tour.php:93
+#: ../../addon/tour/tour.php:94
msgid "Click here to share text, images, videos and sound."
msgstr "Haga clic aquí para compartir texto, imágenes, vídeos y sonido."
-#: ../../addon/tour/tour.php:94
+#: ../../addon/tour/tour.php:95
msgid "You can write an optional title for your update (good for long posts)."
msgstr "Puede escribir un título opcional para su actualización (bueno para los mensajes largos)."
-#: ../../addon/tour/tour.php:95
+#: ../../addon/tour/tour.php:96
msgid "Entering some categories here makes it easier to find your post later."
msgstr "Al ingresar algunos temas aquí, es más fácil encontrar su publicación más tarde."
-#: ../../addon/tour/tour.php:96
+#: ../../addon/tour/tour.php:97
msgid "Share photos, links, location, etc."
msgstr "Compartir fotos, enlaces, ubicación, etc."
-#: ../../addon/tour/tour.php:97
+#: ../../addon/tour/tour.php:98
msgid ""
"Only want to share content for a while? Make it expire at a certain date."
msgstr "¿Solo quieres compartir contenido durante un tiempo? Haga que expire en una fecha determinada."
-#: ../../addon/tour/tour.php:98
+#: ../../addon/tour/tour.php:99
msgid "You can password protect content."
msgstr "Puede proteger contenido con una contraseña."
-#: ../../addon/tour/tour.php:99
+#: ../../addon/tour/tour.php:100
msgid "Choose who you share with."
msgstr "Elegir con quién compartir."
-#: ../../addon/tour/tour.php:101
+#: ../../addon/tour/tour.php:102
msgid "Click here when you are done."
msgstr "Haga clic aquí cuando haya terminado."
-#: ../../addon/tour/tour.php:104
+#: ../../addon/tour/tour.php:105
msgid "Adjust from which channels posts should be displayed."
msgstr "Ajustar de qué canales se deben mostrar las publicaciones."
-#: ../../addon/tour/tour.php:105
+#: ../../addon/tour/tour.php:106
msgid "Only show posts from channels in the specified privacy group."
msgstr "Mostrar solo las entradas de los canales de un grupo específico de canales."
-#: ../../addon/tour/tour.php:109
+#: ../../addon/tour/tour.php:110
msgid "Easily find posts containing tags (keywords preceded by the \"#\" symbol)."
msgstr "Encuentre fácilmente entradas que contengan etiquetas (palabras clave precedidas del símbolo \"#\")."
-#: ../../addon/tour/tour.php:110
+#: ../../addon/tour/tour.php:111
msgid "Easily find posts in given category."
msgstr "Encuentre fácilmente las publicaciones en una categoría dada."
-#: ../../addon/tour/tour.php:111
+#: ../../addon/tour/tour.php:112
msgid "Easily find posts by date."
msgstr "Encuentre fácilmente entradas por fechas."
-#: ../../addon/tour/tour.php:112
+#: ../../addon/tour/tour.php:113
msgid ""
"Suggested users who have volounteered to be shown as suggestions, and who we"
" think you might find interesting."
msgstr "Se sugiere a los usuarios que se han ofrecido voluntariamente que se muestren como sugerencias, y que creemos que podrían resultar interesantes."
-#: ../../addon/tour/tour.php:113
+#: ../../addon/tour/tour.php:114
msgid "Here you see channels you have connected to."
msgstr "Aquí puede ver los canales a los que está conectado."
-#: ../../addon/tour/tour.php:114
+#: ../../addon/tour/tour.php:115
msgid "Save your search so you can repeat it at a later date."
msgstr "Guarde su búsqueda para poder repetirla en una fecha posterior."
-#: ../../addon/tour/tour.php:117
+#: ../../addon/tour/tour.php:118
msgid ""
"If you see this icon you can be sure that the sender is who it say it is. It"
" is normal that it is not always possible to verify the sender, so the icon "
"will be missing sometimes. There is usually no need to worry about that."
msgstr "Si ve este icono puede estar seguro de que el remitente es quien dice ser. Es normal que no siempre sea posible verificar el remitente, por lo que el icono faltará en ocasiones. Por lo general, no hay necesidad de preocuparse por eso."
-#: ../../addon/tour/tour.php:118
+#: ../../addon/tour/tour.php:119
msgid ""
"Danger! It seems someone tried to forge a message! This message is not "
"necessarily from who it says it is from!"
msgstr "¡Peligro! ¡Parece que alguien intentó falsificar un mensaje! ¡Este mensaje no es necesariamente de quien dice que es!"
-#: ../../addon/tour/tour.php:125
+#: ../../addon/tour/tour.php:126
msgid ""
"Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can "
"pause it at any time and continue where you left off by reloading the page, "
@@ -11891,10 +12112,6 @@ msgstr "Seguir este hilo"
msgid "Unfollow Thread"
msgstr "Dejar de seguir este hilo"
-#: ../../include/conversation.php:1042
-msgid "Activity/Posts"
-msgstr "Actividad y publicaciones"
-
#: ../../include/conversation.php:1062
msgid "Edit Connection"
msgstr "Editar conexión"
@@ -11956,175 +12173,175 @@ msgstr "Establecer su ubicación"
msgid "Clear browser location"
msgstr "Eliminar los datos de localización geográfica del navegador"
-#: ../../include/conversation.php:1314
+#: ../../include/conversation.php:1316
msgid "Tag term:"
msgstr "Término de la etiqueta:"
-#: ../../include/conversation.php:1315
+#: ../../include/conversation.php:1317
msgid "Where are you right now?"
msgstr "¿Donde está ahora?"
-#: ../../include/conversation.php:1320
+#: ../../include/conversation.php:1322
msgid "Choose a different album..."
msgstr "Elegir un álbum diferente..."
-#: ../../include/conversation.php:1324
+#: ../../include/conversation.php:1326
msgid "Comments enabled"
msgstr "Comentarios habilitados"
-#: ../../include/conversation.php:1325
+#: ../../include/conversation.php:1327
msgid "Comments disabled"
msgstr "Comentarios deshabilitados"
-#: ../../include/conversation.php:1372
+#: ../../include/conversation.php:1375
msgid "Page link name"
msgstr "Nombre del enlace de la página"
-#: ../../include/conversation.php:1375
+#: ../../include/conversation.php:1378
msgid "Post as"
msgstr "Publicar como"
-#: ../../include/conversation.php:1389
+#: ../../include/conversation.php:1392
msgid "Toggle voting"
msgstr "Cambiar votación"
-#: ../../include/conversation.php:1392
+#: ../../include/conversation.php:1395
msgid "Disable comments"
msgstr "Dehabilitar los comentarios"
-#: ../../include/conversation.php:1393
+#: ../../include/conversation.php:1396
msgid "Toggle comments"
msgstr "Activar o desactivar los comentarios"
-#: ../../include/conversation.php:1401
+#: ../../include/conversation.php:1404
msgid "Categories (optional, comma-separated list)"
msgstr "Temas (opcional, lista separada por comas)"
-#: ../../include/conversation.php:1424
+#: ../../include/conversation.php:1427
msgid "Other networks and post services"
msgstr "Otras redes y servicios de publicación"
-#: ../../include/conversation.php:1430
+#: ../../include/conversation.php:1433
msgid "Set publish date"
msgstr "Establecer la fecha de publicación"
-#: ../../include/conversation.php:1690
+#: ../../include/conversation.php:1693
msgid "Commented Order"
msgstr "Comentarios recientes"
-#: ../../include/conversation.php:1693
+#: ../../include/conversation.php:1696
msgid "Sort by Comment Date"
msgstr "Ordenar por fecha de comentario"
-#: ../../include/conversation.php:1697
+#: ../../include/conversation.php:1700
msgid "Posted Order"
msgstr "Publicaciones recientes"
-#: ../../include/conversation.php:1700
+#: ../../include/conversation.php:1703
msgid "Sort by Post Date"
msgstr "Ordenar por fecha de publicación"
-#: ../../include/conversation.php:1708
+#: ../../include/conversation.php:1711
msgid "Posts that mention or involve you"
msgstr "Publicaciones que le mencionan o involucran"
-#: ../../include/conversation.php:1717
+#: ../../include/conversation.php:1720
msgid "Activity Stream - by date"
msgstr "Contenido - por fecha"
-#: ../../include/conversation.php:1723
+#: ../../include/conversation.php:1726
msgid "Starred"
msgstr "Preferidas"
-#: ../../include/conversation.php:1726
+#: ../../include/conversation.php:1729
msgid "Favourite Posts"
msgstr "Publicaciones favoritas"
-#: ../../include/conversation.php:1733
+#: ../../include/conversation.php:1736
msgid "Spam"
msgstr "Correo basura"
-#: ../../include/conversation.php:1736
+#: ../../include/conversation.php:1739
msgid "Posts flagged as SPAM"
msgstr "Publicaciones marcadas como basura"
-#: ../../include/conversation.php:1811 ../../include/nav.php:381
+#: ../../include/conversation.php:1814 ../../include/nav.php:381
msgid "Status Messages and Posts"
msgstr "Mensajes de estado y publicaciones"
-#: ../../include/conversation.php:1824 ../../include/nav.php:394
+#: ../../include/conversation.php:1827 ../../include/nav.php:394
msgid "Profile Details"
msgstr "Detalles del perfil"
-#: ../../include/conversation.php:1834 ../../include/nav.php:404
-#: ../../include/photos.php:655
+#: ../../include/conversation.php:1837 ../../include/nav.php:404
+#: ../../include/photos.php:666
msgid "Photo Albums"
msgstr "Álbumes de fotos"
-#: ../../include/conversation.php:1842 ../../include/nav.php:412
+#: ../../include/conversation.php:1845 ../../include/nav.php:412
msgid "Files and Storage"
msgstr "Ficheros y repositorio"
-#: ../../include/conversation.php:1879 ../../include/nav.php:447
+#: ../../include/conversation.php:1882 ../../include/nav.php:447
msgid "Bookmarks"
msgstr "Marcadores"
-#: ../../include/conversation.php:1882 ../../include/nav.php:450
+#: ../../include/conversation.php:1885 ../../include/nav.php:450
msgid "Saved Bookmarks"
msgstr "Marcadores guardados"
-#: ../../include/conversation.php:1893 ../../include/nav.php:461
+#: ../../include/conversation.php:1896 ../../include/nav.php:461
msgid "View Cards"
msgstr "Ver las fichas"
-#: ../../include/conversation.php:1901
+#: ../../include/conversation.php:1904
msgid "articles"
msgstr "artículos"
-#: ../../include/conversation.php:1904 ../../include/nav.php:472
+#: ../../include/conversation.php:1907 ../../include/nav.php:472
msgid "View Articles"
msgstr "Ver los artículos"
-#: ../../include/conversation.php:1915 ../../include/nav.php:484
+#: ../../include/conversation.php:1918 ../../include/nav.php:484
msgid "View Webpages"
msgstr "Ver páginas web"
-#: ../../include/conversation.php:1984
+#: ../../include/conversation.php:1987
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] "Participaré"
msgstr[1] "Participaré"
-#: ../../include/conversation.php:1987
+#: ../../include/conversation.php:1990
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] "No participaré"
msgstr[1] "No participaré"
-#: ../../include/conversation.php:1990
+#: ../../include/conversation.php:1993
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] "Indeciso/a"
msgstr[1] "Indecisos/as"
-#: ../../include/conversation.php:1993
+#: ../../include/conversation.php:1996
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] "De acuerdo"
msgstr[1] "De acuerdo"
-#: ../../include/conversation.php:1996
+#: ../../include/conversation.php:1999
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] "En desacuerdo"
msgstr[1] "En desacuerdo"
-#: ../../include/conversation.php:1999
+#: ../../include/conversation.php:2002
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -12152,12 +12369,16 @@ msgstr "Solo este sitio web"
msgid "%1$s's bookmarks"
msgstr "Marcadores de %1$s"
-#: ../../include/import.php:41
+#: ../../include/import.php:25
+msgid "Unable to import a removed channel."
+msgstr "No se puede importar un canal eliminado."
+
+#: ../../include/import.php:46
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado."
-#: ../../include/import.php:106
+#: ../../include/import.php:111
msgid "Cloned channel not found. Import failed."
msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado."
@@ -12402,7 +12623,7 @@ msgstr "diciembre"
msgid "Unknown Attachment"
msgstr "Adjunto no reconocido"
-#: ../../include/text.php:1434 ../../include/feedutils.php:852
+#: ../../include/text.php:1434 ../../include/feedutils.php:860
msgid "unknown"
msgstr "desconocido"
@@ -12418,107 +12639,107 @@ msgstr "eliminar del fichero"
msgid "Download binary/encrypted content"
msgstr "Descargar contenido binario o cifrado"
-#: ../../include/text.php:1848 ../../include/language.php:397
+#: ../../include/text.php:1849 ../../include/language.php:397
msgid "default"
msgstr "por defecto"
-#: ../../include/text.php:1856
+#: ../../include/text.php:1857
msgid "Page layout"
msgstr "Plantilla de la página"
-#: ../../include/text.php:1856
+#: ../../include/text.php:1857
msgid "You can create your own with the layouts tool"
msgstr "Puede crear su propia disposición gráfica con la herramienta de plantillas"
-#: ../../include/text.php:1867
+#: ../../include/text.php:1868
msgid "HTML"
msgstr "HTML"
-#: ../../include/text.php:1870
+#: ../../include/text.php:1871
msgid "Comanche Layout"
msgstr "Plantilla de Comanche"
-#: ../../include/text.php:1875
+#: ../../include/text.php:1876
msgid "PHP"
msgstr "PHP"
-#: ../../include/text.php:1884
+#: ../../include/text.php:1885
msgid "Page content type"
msgstr "Tipo de contenido de la página"
-#: ../../include/text.php:2017
+#: ../../include/text.php:2018
msgid "activity"
msgstr "la actividad"
-#: ../../include/text.php:2099
+#: ../../include/text.php:2100
msgid "a-z, 0-9, -, and _ only"
msgstr "a-z, 0-9, -, and _ only"
-#: ../../include/text.php:2399
+#: ../../include/text.php:2419
msgid "Design Tools"
msgstr "Herramientas de diseño web"
-#: ../../include/text.php:2405
+#: ../../include/text.php:2425
msgid "Pages"
msgstr "Páginas"
-#: ../../include/text.php:2427
+#: ../../include/text.php:2447
msgid "Import website..."
msgstr "Importar un sitio web..."
-#: ../../include/text.php:2428
+#: ../../include/text.php:2448
msgid "Select folder to import"
msgstr "Seleccionar la carpeta que se va a importar"
-#: ../../include/text.php:2429
+#: ../../include/text.php:2449
msgid "Import from a zipped folder:"
msgstr "Importar desde una carpeta comprimida: "
-#: ../../include/text.php:2430
+#: ../../include/text.php:2450
msgid "Import from cloud files:"
msgstr "Importar desde los ficheros en la nube: "
-#: ../../include/text.php:2431
+#: ../../include/text.php:2451
msgid "/cloud/channel/path/to/folder"
msgstr "/cloud/canal/ruta/a la/carpeta"
-#: ../../include/text.php:2432
+#: ../../include/text.php:2452
msgid "Enter path to website files"
msgstr "Ruta a los ficheros del sitio web"
-#: ../../include/text.php:2433
+#: ../../include/text.php:2453
msgid "Select folder"
msgstr "Seleccionar la carpeta"
-#: ../../include/text.php:2434
+#: ../../include/text.php:2454
msgid "Export website..."
msgstr "Exportar un sitio web..."
-#: ../../include/text.php:2435
+#: ../../include/text.php:2455
msgid "Export to a zip file"
msgstr "Exportar a un fichero comprimido .zip"
-#: ../../include/text.php:2436
+#: ../../include/text.php:2456
msgid "website.zip"
msgstr "sitio_web.zip"
-#: ../../include/text.php:2437
+#: ../../include/text.php:2457
msgid "Enter a name for the zip file."
msgstr "Escriba un nombre para el fichero zip."
-#: ../../include/text.php:2438
+#: ../../include/text.php:2458
msgid "Export to cloud files"
msgstr "Exportar a la nube de ficheros"
-#: ../../include/text.php:2439
+#: ../../include/text.php:2459
msgid "/path/to/export/folder"
msgstr "/ruta/para/exportar/carpeta"
-#: ../../include/text.php:2440
+#: ../../include/text.php:2460
msgid "Enter a path to a cloud files destination."
msgstr "Escriba una ruta de destino a la nube de ficheros."
-#: ../../include/text.php:2441
+#: ../../include/text.php:2461
msgid "Specify folder"
msgstr "Especificar una carpeta"
@@ -12566,7 +12787,7 @@ msgstr "Conexiones comunes"
msgid "View all %d common connections"
msgstr "Ver todas las %d conexiones comunes"
-#: ../../include/markdown.php:158 ../../include/bbcode.php:343
+#: ../../include/markdown.php:158 ../../include/bbcode.php:356
#, php-format
msgid "%1$s wrote the following %2$s %3$s"
msgstr "%1$s escribió %2$s siguiente %3$s"
@@ -12583,23 +12804,27 @@ msgstr "Falta la dirección del canal."
msgid "Response from remote channel was incomplete."
msgstr "Respuesta incompleta del canal."
-#: ../../include/follow.php:101
+#: ../../include/follow.php:96
+msgid "Premium channel - please visit:"
+msgstr "Canal Premium - por favor visite:"
+
+#: ../../include/follow.php:110
msgid "Channel was deleted and no longer exists."
msgstr "El canal ha sido eliminado y ya no existe."
-#: ../../include/follow.php:156
+#: ../../include/follow.php:165
msgid "Remote channel or protocol unavailable."
msgstr "Canal remoto o protocolo no disponible."
-#: ../../include/follow.php:179
+#: ../../include/follow.php:188
msgid "Channel discovery failed."
msgstr "El intento de acceder al canal ha fallado."
-#: ../../include/follow.php:191
+#: ../../include/follow.php:200
msgid "Protocol disabled."
msgstr "Protocolo deshabilitado."
-#: ../../include/follow.php:202
+#: ../../include/follow.php:211
msgid "Cannot connect to yourself."
msgstr "No puede conectarse consigo mismo."
@@ -12916,39 +13141,39 @@ msgstr "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos."
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado."
-#: ../../include/attach.php:959
+#: ../../include/attach.php:969
msgid "Stored file could not be verified. Upload failed."
msgstr "El fichero almacenado no ha podido ser verificado. El envío ha fallado."
-#: ../../include/attach.php:1033 ../../include/attach.php:1049
+#: ../../include/attach.php:1043 ../../include/attach.php:1059
msgid "Path not available."
msgstr "Ruta no disponible."
-#: ../../include/attach.php:1098 ../../include/attach.php:1263
+#: ../../include/attach.php:1108 ../../include/attach.php:1273
msgid "Empty pathname"
msgstr "Ruta vacía"
-#: ../../include/attach.php:1124
+#: ../../include/attach.php:1134
msgid "duplicate filename or path"
msgstr "Nombre duplicado de ruta o fichero"
-#: ../../include/attach.php:1149
+#: ../../include/attach.php:1159
msgid "Path not found."
msgstr "Ruta no encontrada"
-#: ../../include/attach.php:1217
+#: ../../include/attach.php:1227
msgid "mkdir failed."
msgstr "mkdir ha fallado."
-#: ../../include/attach.php:1221
+#: ../../include/attach.php:1231
msgid "database storage failed."
msgstr "el almacenamiento en la base de datos ha fallado."
-#: ../../include/attach.php:1269
+#: ../../include/attach.php:1279
msgid "Empty path"
msgstr "Ruta vacía"
-#: ../../include/security.php:532
+#: ../../include/security.php:541
msgid ""
"The form security token was not correct. This probably happened because the "
"form has been opened for too long (>3 hours) before submitting it."
@@ -12958,67 +13183,67 @@ msgstr "El \"token\" de seguridad del formulario no es correcto. Esto ha ocurrid
msgid "(Unknown)"
msgstr "(Desconocido)"
-#: ../../include/items.php:1129
+#: ../../include/items.php:1133
msgid "Visible to anybody on the internet."
msgstr "Visible para cualquiera en internet."
-#: ../../include/items.php:1131
+#: ../../include/items.php:1135
msgid "Visible to you only."
msgstr "Visible sólo para usted."
-#: ../../include/items.php:1133
+#: ../../include/items.php:1137
msgid "Visible to anybody in this network."
msgstr "Visible para cualquiera en esta red."
-#: ../../include/items.php:1135
+#: ../../include/items.php:1139
msgid "Visible to anybody authenticated."
msgstr "Visible para cualquiera que esté autenticado."
-#: ../../include/items.php:1137
+#: ../../include/items.php:1141
#, php-format
msgid "Visible to anybody on %s."
msgstr "Visible para cualquiera en %s."
-#: ../../include/items.php:1139
+#: ../../include/items.php:1143
msgid "Visible to all connections."
msgstr "Visible para todas las conexiones."
-#: ../../include/items.php:1141
+#: ../../include/items.php:1145
msgid "Visible to approved connections."
msgstr "Visible para las conexiones permitidas."
-#: ../../include/items.php:1143
+#: ../../include/items.php:1147
msgid "Visible to specific connections."
msgstr "Visible para conexiones específicas."
-#: ../../include/items.php:4147
+#: ../../include/items.php:4197
msgid "Privacy group is empty."
msgstr "El grupo de canales está vacío."
-#: ../../include/items.php:4154
+#: ../../include/items.php:4204
#, php-format
msgid "Privacy group: %s"
msgstr "Grupo de canales: %s"
-#: ../../include/items.php:4166
+#: ../../include/items.php:4216
msgid "Connection not found."
msgstr "Conexión no encontrada"
-#: ../../include/items.php:4515
+#: ../../include/items.php:4565
msgid "profile photo"
msgstr "foto del perfil"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
#, php-format
msgid "[Edited %s]"
msgstr "[se ha editado %s]"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
msgctxt "edit_activity"
msgid "Post"
msgstr "Publicar"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
msgctxt "edit_activity"
msgid "Comment"
msgstr "Comentar"
@@ -13055,31 +13280,31 @@ msgstr "Perfil principal"
msgid "Unable to retrieve modified identity"
msgstr "No se puede recuperar la identidad modficada"
-#: ../../include/channel.php:1298
+#: ../../include/channel.php:1297
msgid "Create New Profile"
msgstr "Crear un nuevo perfil"
-#: ../../include/channel.php:1319
+#: ../../include/channel.php:1318
msgid "Visible to everybody"
msgstr "Visible para todos"
-#: ../../include/channel.php:1396 ../../include/channel.php:1524
+#: ../../include/channel.php:1395 ../../include/channel.php:1523
msgid "Gender:"
msgstr "Género:"
-#: ../../include/channel.php:1398 ../../include/channel.php:1579
+#: ../../include/channel.php:1397 ../../include/channel.php:1591
msgid "Homepage:"
msgstr "Página personal:"
-#: ../../include/channel.php:1399
+#: ../../include/channel.php:1398
msgid "Online Now"
msgstr "Ahora en línea"
-#: ../../include/channel.php:1452
+#: ../../include/channel.php:1451
msgid "Change your profile photo"
msgstr "Cambiar su foto del perfil"
-#: ../../include/channel.php:1483
+#: ../../include/channel.php:1482
msgid "Trans"
msgstr "Trans"
@@ -13104,71 +13329,71 @@ msgstr "Cumpleaños:"
msgid "for %1$d %2$s"
msgstr "por %1$d %2$s"
-#: ../../include/channel.php:1577
-msgid "Sexual Preference:"
-msgstr "Orientación sexual:"
-
-#: ../../include/channel.php:1583
+#: ../../include/channel.php:1585
msgid "Tags:"
msgstr "Etiquetas:"
-#: ../../include/channel.php:1585
+#: ../../include/channel.php:1589
+msgid "Sexual Preference:"
+msgstr "Orientación sexual:"
+
+#: ../../include/channel.php:1595
msgid "Political Views:"
msgstr "Posición política:"
-#: ../../include/channel.php:1587
+#: ../../include/channel.php:1597
msgid "Religion:"
msgstr "Religión:"
-#: ../../include/channel.php:1591
+#: ../../include/channel.php:1601
msgid "Hobbies/Interests:"
msgstr "Aficciones o intereses:"
-#: ../../include/channel.php:1593
+#: ../../include/channel.php:1603
msgid "Likes:"
msgstr "Me gusta:"
-#: ../../include/channel.php:1595
+#: ../../include/channel.php:1605
msgid "Dislikes:"
msgstr "No me gusta:"
-#: ../../include/channel.php:1597
+#: ../../include/channel.php:1607
msgid "Contact information and Social Networks:"
msgstr "Información de contacto y redes sociales:"
-#: ../../include/channel.php:1599
+#: ../../include/channel.php:1609
msgid "My other channels:"
msgstr "Mis otros canales:"
-#: ../../include/channel.php:1601
+#: ../../include/channel.php:1611
msgid "Musical interests:"
msgstr "Preferencias musicales:"
-#: ../../include/channel.php:1603
+#: ../../include/channel.php:1613
msgid "Books, literature:"
msgstr "Libros, literatura:"
-#: ../../include/channel.php:1605
+#: ../../include/channel.php:1615
msgid "Television:"
msgstr "Televisión:"
-#: ../../include/channel.php:1607
+#: ../../include/channel.php:1617
msgid "Film/dance/culture/entertainment:"
msgstr "Cine, danza, cultura, entretenimiento:"
-#: ../../include/channel.php:1609
+#: ../../include/channel.php:1619
msgid "Love/Romance:"
msgstr "Vida sentimental o amorosa:"
-#: ../../include/channel.php:1611
+#: ../../include/channel.php:1621
msgid "Work/employment:"
msgstr "Trabajo:"
-#: ../../include/channel.php:1613
+#: ../../include/channel.php:1623
msgid "School/education:"
msgstr "Estudios:"
-#: ../../include/channel.php:1636
+#: ../../include/channel.php:1646
msgid "Like this thing"
msgstr "Me gusta esto"
@@ -13208,19 +13433,19 @@ msgstr "En proceso"
msgid "Cancelled"
msgstr "Cancelado/a"
-#: ../../include/event.php:1310 ../../include/connections.php:684
+#: ../../include/event.php:1310 ../../include/connections.php:692
msgid "Home, Voice"
msgstr "Llamadas particulares"
-#: ../../include/event.php:1311 ../../include/connections.php:685
+#: ../../include/event.php:1311 ../../include/connections.php:693
msgid "Home, Fax"
msgstr "Fax particular"
-#: ../../include/event.php:1313 ../../include/connections.php:687
+#: ../../include/event.php:1313 ../../include/connections.php:695
msgid "Work, Voice"
msgstr "Llamadas de trabajo"
-#: ../../include/event.php:1314 ../../include/connections.php:688
+#: ../../include/event.php:1314 ../../include/connections.php:696
msgid "Work, Fax"
msgstr "Fax de trabajo"
@@ -13228,43 +13453,43 @@ msgstr "Fax de trabajo"
msgid "view full size"
msgstr "Ver en el tamaño original"
-#: ../../include/network.php:1769 ../../include/network.php:1770
+#: ../../include/network.php:1764 ../../include/network.php:1765
msgid "Friendica"
msgstr "Friendica"
-#: ../../include/network.php:1771
+#: ../../include/network.php:1766
msgid "OStatus"
msgstr "OStatus"
-#: ../../include/network.php:1772
+#: ../../include/network.php:1767
msgid "GNU-Social"
msgstr "GNU Social"
-#: ../../include/network.php:1773
+#: ../../include/network.php:1768
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/network.php:1776
+#: ../../include/network.php:1771
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../include/network.php:1777
+#: ../../include/network.php:1772
msgid "Facebook"
msgstr "Facebook"
-#: ../../include/network.php:1778
+#: ../../include/network.php:1773
msgid "Zot"
msgstr "Zot"
-#: ../../include/network.php:1779
+#: ../../include/network.php:1774
msgid "LinkedIn"
msgstr "LinkedIn"
-#: ../../include/network.php:1780
+#: ../../include/network.php:1775
msgid "XMPP/IM"
msgstr "XMPP/IM"
-#: ../../include/network.php:1781
+#: ../../include/network.php:1776
msgid "MySpace"
msgstr "MySpace"
@@ -13306,17 +13531,17 @@ msgstr "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha
msgid "Cannot locate DNS info for database server '%s'"
msgstr "No se ha podido localizar información de DNS para el servidor de base de datos “%s”"
-#: ../../include/bbcode.php:198 ../../include/bbcode.php:1151
-#: ../../include/bbcode.php:1154 ../../include/bbcode.php:1159
-#: ../../include/bbcode.php:1162 ../../include/bbcode.php:1165
-#: ../../include/bbcode.php:1168 ../../include/bbcode.php:1173
-#: ../../include/bbcode.php:1176 ../../include/bbcode.php:1181
-#: ../../include/bbcode.php:1184 ../../include/bbcode.php:1187
-#: ../../include/bbcode.php:1190
+#: ../../include/bbcode.php:198 ../../include/bbcode.php:1200
+#: ../../include/bbcode.php:1203 ../../include/bbcode.php:1208
+#: ../../include/bbcode.php:1211 ../../include/bbcode.php:1214
+#: ../../include/bbcode.php:1217 ../../include/bbcode.php:1222
+#: ../../include/bbcode.php:1225 ../../include/bbcode.php:1230
+#: ../../include/bbcode.php:1233 ../../include/bbcode.php:1236
+#: ../../include/bbcode.php:1239
msgid "Image/photo"
msgstr "Imagen/foto"
-#: ../../include/bbcode.php:237 ../../include/bbcode.php:1201
+#: ../../include/bbcode.php:237 ../../include/bbcode.php:1250
msgid "Encrypted content"
msgstr "Contenido cifrado"
@@ -13332,565 +13557,587 @@ msgid ""
"to install it on this site."
msgstr "Esta entrada contiene el elemento instalable %s, sin embargo le faltan permisos para instalarlo en este sitio."
-#: ../../include/bbcode.php:335
+#: ../../include/bbcode.php:348
msgid "card"
msgstr "ficha"
-#: ../../include/bbcode.php:337
+#: ../../include/bbcode.php:350
msgid "article"
msgstr "el artículo"
-#: ../../include/bbcode.php:420 ../../include/bbcode.php:428
+#: ../../include/bbcode.php:433 ../../include/bbcode.php:441
msgid "Click to open/close"
msgstr "Pulsar para abrir/cerrar"
-#: ../../include/bbcode.php:428
+#: ../../include/bbcode.php:441
msgid "spoiler"
msgstr "spoiler"
-#: ../../include/bbcode.php:441
+#: ../../include/bbcode.php:454
msgid "View article"
msgstr "Ver el artículo"
-#: ../../include/bbcode.php:441
+#: ../../include/bbcode.php:454
msgid "View summary"
msgstr "Ver sumario"
-#: ../../include/bbcode.php:1139
+#: ../../include/bbcode.php:1188
msgid "$1 wrote:"
msgstr "$1 escribió:"
-#: ../../include/oembed.php:328
+#: ../../include/oembed.php:329
msgid " by "
msgstr "por"
-#: ../../include/oembed.php:329
+#: ../../include/oembed.php:330
msgid " on "
msgstr "en"
-#: ../../include/oembed.php:358
+#: ../../include/oembed.php:359
msgid "Embedded content"
msgstr "Contenido incorporado"
-#: ../../include/oembed.php:367
+#: ../../include/oembed.php:368
msgid "Embedding disabled"
msgstr "Incrustación deshabilitada"
-#: ../../include/zid.php:346
+#: ../../include/zid.php:347
#, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr "OpenWebAuth: %1$s da la bienvenida a %2$s"
-#: ../../include/features.php:54
+#: ../../include/features.php:56
msgid "General Features"
msgstr "Funcionalidades básicas"
-#: ../../include/features.php:60
+#: ../../include/features.php:61
+msgid "Display new member quick links menu"
+msgstr "Mostrar el menú de enlaces rápidos para nuevos miembros"
+
+#: ../../include/features.php:69
msgid "Advanced Profiles"
msgstr "Perfiles avanzados"
-#: ../../include/features.php:61
+#: ../../include/features.php:70
msgid "Additional profile sections and selections"
msgstr "Secciones y selecciones de perfil adicionales"
-#: ../../include/features.php:69
+#: ../../include/features.php:78
msgid "Profile Import/Export"
msgstr "Importar/Exportar perfil"
-#: ../../include/features.php:70
+#: ../../include/features.php:79
msgid "Save and load profile details across sites/channels"
msgstr "Guardar y cargar detalles del perfil a través de sitios/canales"
-#: ../../include/features.php:78
+#: ../../include/features.php:87
msgid "Web Pages"
msgstr "Páginas web"
-#: ../../include/features.php:79
+#: ../../include/features.php:88
msgid "Provide managed web pages on your channel"
msgstr "Proveer páginas web gestionadas en su canal"
-#: ../../include/features.php:88
+#: ../../include/features.php:97
msgid "Provide a wiki for your channel"
msgstr "Proporcionar un wiki para su canal"
-#: ../../include/features.php:105
+#: ../../include/features.php:114
msgid "Private Notes"
msgstr "Notas privadas"
-#: ../../include/features.php:106
+#: ../../include/features.php:115
msgid "Enables a tool to store notes and reminders (note: not encrypted)"
msgstr "Habilita una herramienta para guardar notas y recordatorios (advertencia: las notas no estarán cifradas)"
-#: ../../include/features.php:115
+#: ../../include/features.php:124
msgid "Create personal planning cards"
msgstr "Crear fichas de planificación personal"
-#: ../../include/features.php:125
+#: ../../include/features.php:134
msgid "Create interactive articles"
msgstr "Crear artículos interactivos"
-#: ../../include/features.php:133
+#: ../../include/features.php:142
msgid "Navigation Channel Select"
msgstr "Navegación por el selector de canales"
-#: ../../include/features.php:134
+#: ../../include/features.php:143
msgid "Change channels directly from within the navigation dropdown menu"
msgstr "Cambiar de canales directamente desde el menú de navegación desplegable"
-#: ../../include/features.php:142
+#: ../../include/features.php:151
msgid "Photo Location"
msgstr "Ubicación de las fotos"
-#: ../../include/features.php:143
+#: ../../include/features.php:152
msgid "If location data is available on uploaded photos, link this to a map."
msgstr "Si los datos de ubicación están disponibles en las fotos subidas, enlazar estas a un mapa."
-#: ../../include/features.php:151
+#: ../../include/features.php:160
msgid "Access Controlled Chatrooms"
msgstr "Salas de chat moderadas"
-#: ../../include/features.php:152
+#: ../../include/features.php:161
msgid "Provide chatrooms and chat services with access control."
msgstr "Proporcionar salas y servicios de chat moderados."
-#: ../../include/features.php:161
+#: ../../include/features.php:170
msgid "Smart Birthdays"
msgstr "Cumpleaños inteligentes"
-#: ../../include/features.php:162
+#: ../../include/features.php:171
msgid ""
"Make birthday events timezone aware in case your friends are scattered "
"across the planet."
msgstr "Enlazar los eventos de cumpleaños con el huso horario en el caso de que sus amigos estén dispersos por el mundo."
-#: ../../include/features.php:170
+#: ../../include/features.php:179
msgid "Event Timezone Selection"
msgstr "Selección del huso horario del evento"
-#: ../../include/features.php:171
+#: ../../include/features.php:180
msgid "Allow event creation in timezones other than your own."
msgstr "Permitir la creación de eventos en husos horarios distintos del suyo."
-#: ../../include/features.php:180
+#: ../../include/features.php:189
msgid "Premium Channel"
msgstr "Canal premium"
-#: ../../include/features.php:181
+#: ../../include/features.php:190
msgid ""
"Allows you to set restrictions and terms on those that connect with your "
"channel"
msgstr "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal"
-#: ../../include/features.php:189
+#: ../../include/features.php:198
msgid "Advanced Directory Search"
msgstr "Búsqueda avanzada en el directorio"
-#: ../../include/features.php:190
+#: ../../include/features.php:199
msgid "Allows creation of complex directory search queries"
msgstr "Permitir la creación de consultas complejas en las búsquedas en el directorio"
-#: ../../include/features.php:198
+#: ../../include/features.php:207
msgid "Advanced Theme and Layout Settings"
msgstr "Ajustes avanzados de temas y esquemas"
-#: ../../include/features.php:199
+#: ../../include/features.php:208
msgid "Allows fine tuning of themes and page layouts"
msgstr "Permitir el ajuste fino de temas y esquemas de páginas"
-#: ../../include/features.php:208
+#: ../../include/features.php:217
msgid "Access Control and Permissions"
msgstr "Control de acceso y permisos"
-#: ../../include/features.php:212 ../../include/group.php:328
+#: ../../include/features.php:221 ../../include/group.php:328
msgid "Privacy Groups"
msgstr "Grupos de canales"
-#: ../../include/features.php:213
+#: ../../include/features.php:222
msgid "Enable management and selection of privacy groups"
msgstr "Activar la gestión y selección de grupos de canales"
-#: ../../include/features.php:221
+#: ../../include/features.php:230
msgid "Multiple Profiles"
msgstr "Múltiples perfiles"
-#: ../../include/features.php:222
+#: ../../include/features.php:231
msgid "Ability to create multiple profiles"
msgstr "Capacidad de crear múltiples perfiles"
-#: ../../include/features.php:232
+#: ../../include/features.php:241
msgid "Provide alternate connection permission roles."
msgstr "Proporcionar roles de acceso alternativos para esta conexión."
-#: ../../include/features.php:240
-msgid "OAuth Clients"
-msgstr "Clientes OAuth"
+#: ../../include/features.php:249
+msgid "OAuth1 Clients"
+msgstr "Clientes OAuth1"
+
+#: ../../include/features.php:250
+msgid "Manage OAuth1 authenticatication tokens for mobile and remote apps."
+msgstr "Administrar tokens de autenticación OAuth1 para aplicaciones móviles y remotas."
-#: ../../include/features.php:241
-msgid "Manage authenticatication tokens for mobile and remote apps."
-msgstr "Administrar tokens de autenticación para aplicaciones móviles y remotas."
+#: ../../include/features.php:258
+msgid "OAuth2 Clients"
+msgstr "Clientes OAuth2"
-#: ../../include/features.php:249
+#: ../../include/features.php:259
+msgid "Manage OAuth2 authenticatication tokens for mobile and remote apps."
+msgstr "Administrar tokens de autenticación OAuth2 para aplicaciones móviles y remotas."
+
+#: ../../include/features.php:267
msgid "Access Tokens"
msgstr "Tokens de acceso"
-#: ../../include/features.php:250
+#: ../../include/features.php:268
msgid "Create access tokens so that non-members can access private content."
msgstr "Crear tokens de acceso para que los no miembros puedan acceder a contenido privado."
-#: ../../include/features.php:261
+#: ../../include/features.php:279
msgid "Post Composition Features"
msgstr "Opciones para la redacción de entradas"
-#: ../../include/features.php:265
+#: ../../include/features.php:283
msgid "Large Photos"
msgstr "Fotos de gran tamaño"
-#: ../../include/features.php:266
+#: ../../include/features.php:284
msgid ""
"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
"(640px) photo thumbnails"
msgstr "Incluir miniaturas de fotos grandes (1024px) en publicaciones. Si no está habilitado, usar miniaturas pequeñas (640px)"
-#: ../../include/features.php:275
+#: ../../include/features.php:293
msgid "Automatically import channel content from other channels or feeds"
msgstr "Importar automáticamente contenido de otros canales o \"feeds\""
-#: ../../include/features.php:283
+#: ../../include/features.php:301
msgid "Even More Encryption"
msgstr "Más cifrado todavía"
-#: ../../include/features.php:284
+#: ../../include/features.php:302
msgid ""
"Allow optional encryption of content end-to-end with a shared secret key"
msgstr "Permitir cifrado adicional de contenido \"punto-a-punto\" con una clave secreta compartida."
-#: ../../include/features.php:292
+#: ../../include/features.php:310
msgid "Enable Voting Tools"
msgstr "Permitir entradas con votación"
-#: ../../include/features.php:293
+#: ../../include/features.php:311
msgid "Provide a class of post which others can vote on"
msgstr "Proveer una clase de publicación en la que otros puedan votar"
-#: ../../include/features.php:301
+#: ../../include/features.php:319
msgid "Disable Comments"
msgstr "Deshabilitar comentarios"
-#: ../../include/features.php:302
+#: ../../include/features.php:320
msgid "Provide the option to disable comments for a post"
msgstr "Proporcionar la opción de desactivar los comentarios para una entrada"
-#: ../../include/features.php:310
+#: ../../include/features.php:328
msgid "Delayed Posting"
msgstr "Publicación aplazada"
-#: ../../include/features.php:311
+#: ../../include/features.php:329
msgid "Allow posts to be published at a later date"
msgstr "Permitir mensajes que se publicarán en una fecha posterior"
-#: ../../include/features.php:319
+#: ../../include/features.php:337
msgid "Content Expiration"
msgstr "Caducidad del contenido"
-#: ../../include/features.php:320
+#: ../../include/features.php:338
msgid "Remove posts/comments and/or private messages at a future time"
msgstr "Eliminar publicaciones/comentarios y/o mensajes privados más adelante"
-#: ../../include/features.php:328
+#: ../../include/features.php:346
msgid "Suppress Duplicate Posts/Comments"
msgstr "Prevenir entradas o comentarios duplicados"
-#: ../../include/features.php:329
+#: ../../include/features.php:347
msgid ""
"Prevent posts with identical content to be published with less than two "
"minutes in between submissions."
msgstr "Prevenir que entradas con contenido idéntico se publiquen con menos de dos minutos de intervalo."
-#: ../../include/features.php:340
+#: ../../include/features.php:355
+msgid "Auto-save drafts of posts and comments"
+msgstr "Guardar automáticamente borradores de entradas y comentarios"
+
+#: ../../include/features.php:356
+msgid ""
+"Automatically saves post and comment drafts in local browser storage to help"
+" prevent accidental loss of compositions"
+msgstr "Guarda automáticamente los borradores de comentarios y publicaciones en el almacenamiento del navegador local para ayudar a evitar la pérdida accidental de composiciones."
+
+#: ../../include/features.php:367
msgid "Network and Stream Filtering"
msgstr "Filtrado del contenido"
-#: ../../include/features.php:344
+#: ../../include/features.php:371
msgid "Search by Date"
msgstr "Buscar por fecha"
-#: ../../include/features.php:345
+#: ../../include/features.php:372
msgid "Ability to select posts by date ranges"
msgstr "Capacidad de seleccionar entradas por rango de fechas"
-#: ../../include/features.php:355
+#: ../../include/features.php:382
msgid "Save search terms for re-use"
msgstr "Guardar términos de búsqueda para su reutilización"
-#: ../../include/features.php:363
+#: ../../include/features.php:390
msgid "Network Personal Tab"
msgstr "Actividad personal"
-#: ../../include/features.php:364
+#: ../../include/features.php:391
msgid "Enable tab to display only Network posts that you've interacted on"
msgstr "Habilitar una pestaña en la cual se muestren solo las entradas en las que ha participado."
-#: ../../include/features.php:372
+#: ../../include/features.php:399
msgid "Network New Tab"
msgstr "Contenido nuevo"
-#: ../../include/features.php:373
+#: ../../include/features.php:400
msgid "Enable tab to display all new Network activity"
msgstr "Habilitar una pestaña en la que se muestre solo el contenido nuevo"
-#: ../../include/features.php:381
+#: ../../include/features.php:408
msgid "Affinity Tool"
msgstr "Herramienta de afinidad"
-#: ../../include/features.php:382
+#: ../../include/features.php:409
msgid "Filter stream activity by depth of relationships"
msgstr "Filtrar el contenido según la profundidad de las relaciones"
-#: ../../include/features.php:391
+#: ../../include/features.php:418
msgid "Show friend and connection suggestions"
msgstr "Mostrar sugerencias de amigos y conexiones"
-#: ../../include/features.php:399
+#: ../../include/features.php:426
msgid "Connection Filtering"
msgstr "Filtrado de conexiones"
-#: ../../include/features.php:400
+#: ../../include/features.php:427
msgid "Filter incoming posts from connections based on keywords/content"
msgstr "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido"
-#: ../../include/features.php:412
+#: ../../include/features.php:439
msgid "Post/Comment Tools"
msgstr "Gestión de entradas y comentarios"
-#: ../../include/features.php:416
+#: ../../include/features.php:443
msgid "Community Tagging"
msgstr "Etiquetas de la comunidad"
-#: ../../include/features.php:417
+#: ../../include/features.php:444
msgid "Ability to tag existing posts"
msgstr "Capacidad de etiquetar entradas existentes"
-#: ../../include/features.php:425
+#: ../../include/features.php:452
msgid "Post Categories"
msgstr "Temas de las entradas"
-#: ../../include/features.php:426
+#: ../../include/features.php:453
msgid "Add categories to your posts"
msgstr "Añadir temas a sus publicaciones"
-#: ../../include/features.php:434
+#: ../../include/features.php:461
msgid "Emoji Reactions"
msgstr "Emoticonos \"emoji\""
-#: ../../include/features.php:435
+#: ../../include/features.php:462
msgid "Add emoji reaction ability to posts"
msgstr "Activar la capacidad de añadir un emoticono \"emoji\" a las entradas"
-#: ../../include/features.php:444
+#: ../../include/features.php:471
msgid "Ability to file posts under folders"
msgstr "Capacidad de archivar entradas en carpetas"
-#: ../../include/features.php:452
+#: ../../include/features.php:479
msgid "Dislike Posts"
msgstr "Desagrado de publicaciones"
-#: ../../include/features.php:453
+#: ../../include/features.php:480
msgid "Ability to dislike posts/comments"
msgstr "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios"
-#: ../../include/features.php:461
+#: ../../include/features.php:488
msgid "Star Posts"
msgstr "Entradas destacadas"
-#: ../../include/features.php:462
+#: ../../include/features.php:489
msgid "Ability to mark special posts with a star indicator"
msgstr "Capacidad de marcar entradas destacadas con un indicador de estrella"
-#: ../../include/features.php:470
+#: ../../include/features.php:497
msgid "Tag Cloud"
msgstr "Nube de etiquetas"
-#: ../../include/features.php:471
+#: ../../include/features.php:498
msgid "Provide a personal tag cloud on your channel page"
msgstr "Proveer nube de etiquetas personal en su página de canal"
-#: ../../include/taxonomy.php:384 ../../include/taxonomy.php:405
-msgid "Tags"
-msgstr "Etiquetas"
+#: ../../include/taxonomy.php:320
+msgid "Trending"
+msgstr "Populares"
-#: ../../include/taxonomy.php:487
+#: ../../include/taxonomy.php:552
msgid "Keywords"
msgstr "Palabras clave"
-#: ../../include/taxonomy.php:508
+#: ../../include/taxonomy.php:573
msgid "have"
msgstr "tener"
-#: ../../include/taxonomy.php:508
+#: ../../include/taxonomy.php:573
msgid "has"
msgstr "tiene"
-#: ../../include/taxonomy.php:509
+#: ../../include/taxonomy.php:574
msgid "want"
msgstr "quiero"
-#: ../../include/taxonomy.php:509
+#: ../../include/taxonomy.php:574
msgid "wants"
msgstr "quiere"
-#: ../../include/taxonomy.php:510
+#: ../../include/taxonomy.php:575
msgid "likes"
msgstr "gusta de"
-#: ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:576
msgid "dislikes"
msgstr "no gusta de"
-#: ../../include/account.php:35
+#: ../../include/account.php:36
msgid "Not a valid email address"
msgstr "Dirección de correo no válida"
-#: ../../include/account.php:37
+#: ../../include/account.php:38
msgid "Your email domain is not among those allowed on this site"
msgstr "Su dirección de correo no pertenece a ninguno de los dominios permitidos en este sitio."
-#: ../../include/account.php:43
+#: ../../include/account.php:44
msgid "Your email address is already registered at this site."
msgstr "Su dirección de correo está ya registrada en este sitio."
-#: ../../include/account.php:75
+#: ../../include/account.php:76
msgid "An invitation is required."
msgstr "Es obligatorio que le inviten."
-#: ../../include/account.php:79
+#: ../../include/account.php:80
msgid "Invitation could not be verified."
msgstr "No se ha podido verificar su invitación."
-#: ../../include/account.php:157
+#: ../../include/account.php:158
msgid "Please enter the required information."
msgstr "Por favor introduzca la información requerida."
-#: ../../include/account.php:224
+#: ../../include/account.php:225
msgid "Failed to store account information."
msgstr "La información de la cuenta no se ha podido guardar."
-#: ../../include/account.php:313
+#: ../../include/account.php:314
#, php-format
msgid "Registration confirmation for %s"
msgstr "Confirmación de registro para %s"
-#: ../../include/account.php:382
+#: ../../include/account.php:383
#, php-format
msgid "Registration request at %s"
msgstr "Solicitud de registro en %s"
-#: ../../include/account.php:404
+#: ../../include/account.php:405
msgid "your registration password"
msgstr "su contraseña de registro"
-#: ../../include/account.php:410 ../../include/account.php:472
+#: ../../include/account.php:411 ../../include/account.php:473
#, php-format
msgid "Registration details for %s"
msgstr "Detalles del registro de %s"
-#: ../../include/account.php:483
+#: ../../include/account.php:484
msgid "Account approved."
msgstr "Cuenta aprobada."
-#: ../../include/account.php:523
+#: ../../include/account.php:524
#, php-format
msgid "Registration revoked for %s"
msgstr "Registro revocado para %s"
-#: ../../include/account.php:802 ../../include/account.php:804
+#: ../../include/account.php:803 ../../include/account.php:805
msgid "Click here to upgrade."
msgstr "Pulse aquí para actualizar"
-#: ../../include/account.php:810
+#: ../../include/account.php:811
msgid "This action exceeds the limits set by your subscription plan."
msgstr "Esta acción supera los límites establecidos por su plan de suscripción "
-#: ../../include/account.php:815
+#: ../../include/account.php:816
msgid "This action is not available under your subscription plan."
msgstr "Esta acción no está disponible en su plan de suscripción."
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "Birthday"
msgstr "Cumpleaños"
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "Age: "
msgstr "Edad:"
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "YYYY-MM-DD or MM-DD"
msgstr "AAAA-MM-DD o MM-DD"
-#: ../../include/datetime.php:238
+#: ../../include/datetime.php:244
msgid "less than a second ago"
msgstr "hace un instante"
-#: ../../include/datetime.php:256
+#: ../../include/datetime.php:262
#, php-format
msgctxt "e.g. 22 hours ago, 1 minute ago"
msgid "%1$d %2$s ago"
msgstr "hace %1$d %2$s"
-#: ../../include/datetime.php:267
+#: ../../include/datetime.php:273
msgctxt "relative_date"
msgid "year"
msgid_plural "years"
msgstr[0] "año"
msgstr[1] "años"
-#: ../../include/datetime.php:270
+#: ../../include/datetime.php:276
msgctxt "relative_date"
msgid "month"
msgid_plural "months"
msgstr[0] "mes"
msgstr[1] "meses"
-#: ../../include/datetime.php:273
+#: ../../include/datetime.php:279
msgctxt "relative_date"
msgid "week"
msgid_plural "weeks"
msgstr[0] "semana"
msgstr[1] "semanas"
-#: ../../include/datetime.php:276
+#: ../../include/datetime.php:282
msgctxt "relative_date"
msgid "day"
msgid_plural "days"
msgstr[0] "día"
msgstr[1] "días"
-#: ../../include/datetime.php:279
+#: ../../include/datetime.php:285
msgctxt "relative_date"
msgid "hour"
msgid_plural "hours"
msgstr[0] "hora"
msgstr[1] "horas"
-#: ../../include/datetime.php:282
+#: ../../include/datetime.php:288
msgctxt "relative_date"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minuto"
msgstr[1] "minutos"
-#: ../../include/datetime.php:285
+#: ../../include/datetime.php:291
msgctxt "relative_date"
msgid "second"
msgid_plural "seconds"
msgstr[0] "segundo"
msgstr[1] "segundos"
-#: ../../include/datetime.php:514
+#: ../../include/datetime.php:520
#, php-format
msgid "%1$s's birthday"
msgstr "Cumpleaños de %1$s"
-#: ../../include/datetime.php:515
+#: ../../include/datetime.php:521
#, php-format
msgid "Happy Birthday %1$s"
msgstr "Feliz cumpleaños %1$s"
@@ -13944,16 +14191,16 @@ msgid "Help and documentation"
msgstr "Ayuda y documentación"
#: ../../include/nav.php:179
-msgid "Search site @name, #tag, ?docs, content"
-msgstr "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido"
+msgid "Search site @name, !forum, #tag, ?docs, content"
+msgstr "Buscar en el sitio @nombre, !foro, #tag, ?docs, contenido"
#: ../../include/nav.php:199
msgid "Site Setup and Configuration"
msgstr "Ajustes y configuración del sitio"
#: ../../include/nav.php:290
-msgid "@name, #tag, ?doc, content"
-msgstr "@nombre, #etiqueta, ?ayuda, contenido"
+msgid "@name, !forum, #tag, ?doc, content"
+msgstr "@nombre, !foro, #tag, ?docs, contenido"
#: ../../include/nav.php:291
msgid "Please wait..."
@@ -13980,38 +14227,38 @@ msgstr "La imagen excede el límite de %lu bytes del sitio"
msgid "Image file is empty."
msgstr "El fichero de imagen está vacío. "
-#: ../../include/photos.php:322
+#: ../../include/photos.php:326
msgid "Photo storage failed."
msgstr "La foto no ha podido ser guardada."
-#: ../../include/photos.php:364
+#: ../../include/photos.php:375
msgid "a new photo"
msgstr "una nueva foto"
-#: ../../include/photos.php:368
+#: ../../include/photos.php:379
#, php-format
msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr "%1$s ha publicado %2$s en %3$s"
-#: ../../include/photos.php:660
+#: ../../include/photos.php:671
msgid "Upload New Photos"
msgstr "Subir nuevas fotos"
-#: ../../include/zot.php:767
+#: ../../include/zot.php:772
msgid "Invalid data packet"
msgstr "Paquete de datos no válido"
-#: ../../include/zot.php:794
+#: ../../include/zot.php:799
msgid "Unable to verify channel signature"
msgstr "No ha sido posible de verificar la firma del canal"
-#: ../../include/zot.php:2529
+#: ../../include/zot.php:2552
#, php-format
msgid "Unable to verify site signature for %s"
msgstr "No ha sido posible de verificar la firma del sitio para %s"
-#: ../../include/zot.php:4180
+#: ../../include/zot.php:4219
msgid "invalid target signature"
msgstr "La firma recibida no es válida"
@@ -14042,23 +14289,27 @@ msgstr "Añadir un grupo de canales"
msgid "Channels not in any privacy group"
msgstr "Sin canales en ningún grupo"
-#: ../../include/connections.php:128
+#: ../../include/connections.php:133
msgid "New window"
msgstr "Nueva ventana"
-#: ../../include/connections.php:129
+#: ../../include/connections.php:134
msgid "Open the selected location in a different window or browser tab"
msgstr "Abrir la dirección seleccionada en una ventana o pestaña aparte"
-#: ../../include/auth.php:148
+#: ../../include/auth.php:152
+msgid "Delegation session ended."
+msgstr "Finalizó la sesión de la delegación."
+
+#: ../../include/auth.php:156
msgid "Logged out."
msgstr "Desconectado/a."
-#: ../../include/auth.php:263
+#: ../../include/auth.php:273
msgid "Email validation is incomplete. Please check your email."
msgstr "La validación del correo electrónico está incompleta. Por favor, compruebe su correo electrónico."
-#: ../../include/auth.php:279
+#: ../../include/auth.php:289
msgid "Failed authentication"
msgstr "Autenticación fallida."
diff --git a/view/es-es/hstrings.php b/view/es-es/hstrings.php
index 05e80adc7..5c575dc3f 100644
--- a/view/es-es/hstrings.php
+++ b/view/es-es/hstrings.php
@@ -24,6 +24,7 @@ App::$strings["Can chat with me"] = "Se puede chatear conmigo";
App::$strings["Can source my public posts in derived channels"] = "Pueden utilizarse mis entradas públicas como origen de contenidos en canales derivados";
App::$strings["Can administer my channel"] = "Se puede administrar mi canal";
App::$strings["Social Networking"] = "Redes sociales";
+App::$strings["Social - Party"] = "Social - Extra público";
App::$strings["Social - Mostly Public"] = "Social - Público en su mayor parte";
App::$strings["Social - Restricted"] = "Social - Restringido";
App::$strings["Social - Private"] = "Social - Privado";
@@ -362,11 +363,10 @@ App::$strings["Error: PDO database PHP module required but not installed."] = "E
App::$strings["Error: mb_string PHP module required but not installed."] = "Error: el módulo PHP mb_string es necesario, pero no está instalado.";
App::$strings["Error: xml PHP module required for DAV but not installed."] = "Error: el módulo PHP xml es necesario para DAV, pero no está instalado.";
App::$strings["Error: zip PHP module required but not installed."] = "Error: se requiere el módulo zip PHP pero no está instalado.";
+App::$strings[".htconfig.php is writable"] = ".htconfig.php tiene permisos de escritura";
App::$strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "El instalador web no ha podido crear un fichero llamado “.htconfig.php” en la carpeta base de su servidor.";
App::$strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Esto está generalmente ligado a un problema de permisos, a causa del cual el servidor web tiene prohibido modificar ficheros en su carpeta - incluso si usted mismo tiene esos permisos.";
-App::$strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Al término de este procedimiento, podemos crear un fichero de texto para guardar con el nombre .htconfig.php en el directorio raíz de su instalación de Hubzilla.";
-App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Como alternativa, puede dejar este procedimiento e intentar realizar una instalación manual. Lea, por favor, el fichero\"install/INSTALL.txt\" para las instrucciones.";
-App::$strings[".htconfig.php is writable"] = ".htconfig.php tiene permisos de escritura";
+App::$strings["Please see install/INSTALL.txt for additional information."] = "Por favor, consulte install/INSTALL.txt para más información.";
App::$strings["This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Este software hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 compila las plantillas a PHP para acelerar la renderización.";
App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal.";
App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Por favor, asegúrese de que el servidor web está siendo ejecutado por un usuario que tenga permisos de escritura sobre esta carpeta (por ejemplo, www-data).";
@@ -553,8 +553,6 @@ App::$strings["Publicly visible description of this site. Displayed on siteinfo
App::$strings["System language"] = "Idioma del sistema";
App::$strings["System theme"] = "Tema gráfico del sistema";
App::$strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - <a href='#' id='cnftheme'>modificar los ajustes del tema</a>";
-App::$strings["Mobile system theme"] = "Tema del sistema para móviles";
-App::$strings["Theme for mobile devices"] = "Tema para dispositivos móviles";
App::$strings["Allow Feeds as Connections"] = "Permitir contenidos RSS como conexiones";
App::$strings["(Heavy system resource usage)"] = "(Uso intenso de los recursos del sistema)";
App::$strings["Maximum image size"] = "Tamaño máximo de la imagen";
@@ -614,6 +612,7 @@ App::$strings["Maximum Load Average"] = "Carga media máxima";
App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carga máxima del sistema antes de que los procesos de entrega y envío se hayan retardado - por defecto, 50.";
App::$strings["Expiration period in days for imported (grid/network) content"] = "Caducidad del contenido importado de otros sitios (en días)";
App::$strings["0 for no expiration of imported content"] = "0 para que no caduque el contenido importado";
+App::$strings["Do not expire any posts which have comments less than this many days ago"] = "No caduque ningún mensaje que tenga menos comentarios que este hace muchos días";
App::$strings["Public servers: Optional landing (marketing) webpage for new registrants"] = "Servidores públicos: Página web de acogida (marketing) opcional para nuevos registros";
App::$strings["Create this page first. Default is %s/register"] = "Crear esta página primero. Por defecto es %s/register";
App::$strings["Page to display after creating a new channel"] = "Página a mostrar después de la creación de un nuevo canal";
@@ -675,6 +674,7 @@ App::$strings["Visible to:"] = "Visible para:";
App::$strings["__ctx:acl__ Profile"] = "Perfil";
App::$strings["Comment approved"] = "El comentario ha sido aprobado";
App::$strings["Comment deleted"] = "Se ha eliminado el comentario";
+App::$strings["Permission Name is required."] = "Se requiere el nombre de la autorización";
App::$strings["Permission category saved."] = "Se ha guardado la categoría del permiso.";
App::$strings["Use this form to create permission rules for various classes of people or connections."] = "Utilice este formulario para crear reglas de permiso para varias clases de personas o conexiones.";
App::$strings["Permission Categories"] = "Tipos de permisos";
@@ -765,9 +765,10 @@ App::$strings["New connections"] = "Nuevas conexiones";
App::$strings["System Registrations"] = "Registros del sistema";
App::$strings["Unseen shared files"] = "Ficheros compartidos no vistos";
App::$strings["Unseen public activity"] = "Actividad pública no vista";
+App::$strings["Unseen likes and dislikes"] = "Los \"me gusta\" y \"no me gusta\" no vistos";
App::$strings["Email notification hub (hostname)"] = "Email de notificación del hub (nombre del host)";
App::$strings["If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s"] = "Si su canal está replicado en múltiples hubs, colóquelo en su ubicación preferida. Esto evitará la duplicación de notificaciones por correo electrónico. Ejemplo: %s";
-App::$strings["Also show new wall posts, private messages and connections under Notices"] = "Mostrar también en Avisos las nuevas publicaciones, los mensajes privados y las conexiones";
+App::$strings["Show new wall posts, private messages and connections under Notices"] = "Mostrar nuevos mensajes en el muro, mensajes privados y conexiones en Avisos";
App::$strings["Notify me of events this many days in advance"] = "Avisarme de los eventos con algunos días de antelación";
App::$strings["Must be greater than 0"] = "Debe ser mayor que 0";
App::$strings["Advanced Account/Page Type Settings"] = "Ajustes avanzados de la cuenta y de los tipos de página";
@@ -781,6 +782,8 @@ App::$strings["Remove this channel."] = "Eliminar este canal.";
App::$strings["Firefox Share \$Projectname provider"] = "Servicio de compartición de Firefox: proveedor \$Projectname";
App::$strings["Start calendar week on Monday"] = "Comenzar el calendario semanal por el lunes";
App::$strings["Additional Features"] = "Funcionalidades";
+App::$strings["Your technical skill level"] = "Su nivel de habilidad técnica";
+App::$strings["Used to provide a member experience and additional features consistent with your comfort level"] = "Utilizado para proporcionar un nivel de experiencia como miembro y características adicionales consistentes con su nivel de comodidad";
App::$strings["This channel is limited to %d tokens"] = "Este canal tiene un límite de %d tokens";
App::$strings["Name and Password are required."] = "Se requiere el nombre y la contraseña.";
App::$strings["Token saved."] = "Token salvado.";
@@ -791,6 +794,22 @@ App::$strings["Login Name"] = "Nombre de inicio de sesión";
App::$strings["Login Password"] = "Contraseña de inicio de sesión";
App::$strings["Expires (yyyy-mm-dd)"] = "Expira (aaaa-mm-dd)";
App::$strings["Their Settings"] = "Sus ajustes";
+App::$strings["Name and Secret are required"] = "\"Key\" y \"Secret\" son obligatorios";
+App::$strings["Add OAuth2 application"] = "Añadir aplicación OAuth2";
+App::$strings["Name of application"] = "Nombre de la aplicación";
+App::$strings["Consumer Secret"] = "Consumer Secret";
+App::$strings["Automatically generated - change if desired. Max length 20"] = "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20";
+App::$strings["Redirect"] = "Redirigir";
+App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera";
+App::$strings["Grant Types"] = "Tipos de permisos";
+App::$strings["leave blank unless your application sepcifically requires this"] = "Dejar en blanco a menos que su aplicación lo requiera específicamente";
+App::$strings["Authorization scope"] = "Alcance de la autorización";
+App::$strings["OAuth2 Application not found."] = "No se ha encontrado la aplicación OAuth2.";
+App::$strings["Add application"] = "Añadir aplicación";
+App::$strings["Connected OAuth2 Apps"] = "Aplicaciones OAuth2 conectadas";
+App::$strings["Client key starts with"] = "La \"client key\" empieza por";
+App::$strings["No name"] = "Sin nombre";
+App::$strings["Remove authorization"] = "Eliminar autorización";
App::$strings["Not valid email."] = "Correo electrónico no válido.";
App::$strings["Protected email address. Cannot change to that email."] = "Dirección de correo electrónico protegida. No se puede cambiar a ella.";
App::$strings["System failure storing new email. Please try again."] = "Fallo de sistema al guardar el nuevo correo electrónico. Por favor, inténtelo de nuevo.";
@@ -805,8 +824,6 @@ App::$strings["Current Password"] = "Contraseña actual";
App::$strings["Enter New Password"] = "Escribir una nueva contraseña";
App::$strings["Confirm New Password"] = "Confirmar la nueva contraseña";
App::$strings["Leave password fields blank unless changing"] = "Dejar en blanco la contraseña a menos que desee cambiarla.";
-App::$strings["Your technical skill level"] = "Su nivel de habilidad técnica";
-App::$strings["Used to provide a member experience and additional features consistent with your comfort level"] = "Utilizado para proporcionar un nivel de experiencia como miembro y características adicionales consistentes con su nivel de comodidad";
App::$strings["Remove Account"] = "Eliminar cuenta";
App::$strings["Remove this account including all its channels"] = "Eliminar esta cuenta incluyendo todos sus canales";
App::$strings["Affinity Slider settings updated."] = "Se han actualizado los ajustes del controlador de afinidad.";
@@ -847,20 +864,11 @@ App::$strings["click to expand content exceeding this height"] = "Pulsar para ex
App::$strings["Grid page max height of content (in pixels)"] = "Altura máxima del contenido de mi red (en píxeles)";
App::$strings["Name is required"] = "El nombre es obligatorio";
App::$strings["Key and Secret are required"] = "\"Key\" y \"Secret\" son obligatorios";
-App::$strings["Add application"] = "Añadir aplicación";
-App::$strings["Name of application"] = "Nombre de la aplicación";
App::$strings["Consumer Key"] = "Consumer Key";
-App::$strings["Automatically generated - change if desired. Max length 20"] = "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20";
-App::$strings["Consumer Secret"] = "Consumer Secret";
-App::$strings["Redirect"] = "Redirigir";
-App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera";
App::$strings["Icon url"] = "Dirección del icono";
App::$strings["Optional"] = "Opcional";
App::$strings["Application not found."] = "Aplicación no encontrada.";
App::$strings["Connected Apps"] = "Aplicaciones (apps) conectadas";
-App::$strings["Client key starts with"] = "La \"client key\" empieza por";
-App::$strings["No name"] = "Sin nombre";
-App::$strings["Remove authorization"] = "Eliminar autorización";
App::$strings["View Photo"] = "Ver foto";
App::$strings["Edit Album"] = "Editar álbum";
App::$strings["Upload"] = "Subir";
@@ -882,7 +890,7 @@ App::$strings["Permissions"] = "Permisos";
App::$strings["Add Thing to your Profile"] = "Añadir alguna cosa a su perfil";
App::$strings["No more system notifications."] = "No hay más notificaciones del sistema";
App::$strings["System Notifications"] = "Notificaciones del sistema";
-App::$strings["Channel added."] = "Canal añadido.";
+App::$strings["Connection added."] = "Se ha incorporado una conexión.";
App::$strings["Your service plan only allows %d channels."] = "Su paquete de servicios solo permite %d canales.";
App::$strings["No channel. Import failed."] = "No hay canal. La importación ha fallado";
App::$strings["Import completed."] = "Importación completada.";
@@ -917,19 +925,22 @@ App::$strings["Create new app"] = "Crear una nueva aplicación";
App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s";
App::$strings["Mood"] = "Estado de ánimo";
App::$strings["Set your current mood and tell your friends"] = "Describir su estado de ánimo para comunicárselo a sus amigos";
+App::$strings["Active"] = "Activo/a";
App::$strings["Blocked"] = "Bloqueadas";
App::$strings["Ignored"] = "Ignoradas";
App::$strings["Hidden"] = "Ocultas";
App::$strings["Archived/Unreachable"] = "Archivado o inaccesible";
App::$strings["New"] = "Nuevas";
App::$strings["All"] = "Todos/as";
+App::$strings["Active Connections"] = "Conexiones activas";
+App::$strings["Show active connections"] = "Mostrar las conexiones activas";
App::$strings["New Connections"] = "Nuevas conexiones";
App::$strings["Show pending (new) connections"] = "Mostrar conexiones (nuevas) pendientes";
-App::$strings["Show all connections"] = "Mostrar todas las conexiones";
App::$strings["Only show blocked connections"] = "Mostrar solo las conexiones bloqueadas";
App::$strings["Only show ignored connections"] = "Mostrar solo conexiones ignoradas";
App::$strings["Only show archived/unreachable connections"] = "Mostrar solo las conexiones archivadas o no localizables";
App::$strings["Only show hidden connections"] = "Mostrar solo las conexiones ocultas";
+App::$strings["Show all connections"] = "Mostrar todas las conexiones";
App::$strings["Pending approval"] = "Pendiente de aprobación";
App::$strings["Archived"] = "Archivadas";
App::$strings["Not connected at this location"] = "No está conectado/a en esta ubicación";
@@ -971,10 +982,10 @@ App::$strings["Upload Photos"] = "Subir fotos";
App::$strings["Enter an album name"] = "Introducir un nombre de álbum";
App::$strings["or select an existing album (doubleclick)"] = "o seleccionar uno existente (doble click)";
App::$strings["Create a status post for this upload"] = "Crear un mensaje de estado para esta subida";
-App::$strings["Caption (optional):"] = "Título (opcional):";
-App::$strings["Description (optional):"] = "Descripción (opcional):";
+App::$strings["Description (optional)"] = "Descripción (opcional)";
App::$strings["Show Newest First"] = "Mostrar lo más reciente primero";
App::$strings["Show Oldest First"] = "Mostrar lo más antiguo primero";
+App::$strings["Add Photos"] = "Añadir fotos";
App::$strings["Permission denied. Access to this item may be restricted."] = "Permiso denegado. El acceso a este elemento puede estar restringido.";
App::$strings["Photo not available"] = "Foto no disponible";
App::$strings["Use as profile photo"] = "Usar como foto del perfil";
@@ -987,7 +998,6 @@ App::$strings["Rotate CCW (left)"] = "Girar CCW (a la izquierda)";
App::$strings["Move photo to album"] = "Mover la foto a un álbum";
App::$strings["Enter a new album name"] = "Introducir un nuevo nombre de álbum";
App::$strings["or select an existing one (doubleclick)"] = "o seleccionar uno (doble click) existente";
-App::$strings["Caption"] = "Título";
App::$strings["Add a Tag"] = "Añadir una etiqueta";
App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com";
App::$strings["Flag as adult in album view"] = "Marcar como \"solo para adultos\" en el álbum";
@@ -1262,6 +1272,10 @@ App::$strings["Warning: Changing some settings could render your channel inopera
App::$strings["If enabled, connection requests will be approved without your interaction"] = "Si está habilitado, las solicitudes de conexión serán aprobadas sin su intervención.";
App::$strings["Automatic approval settings"] = "Opciones de autorización automática";
App::$strings["Some individual permissions may have been preset or locked based on your channel type and privacy settings."] = "Es posible que se hayan preestablecido o bloqueado algunos permisos individuales según el tipo de canal y la configuración de privacidad.";
+App::$strings["Unknown App"] = "Aplicación desconocida";
+App::$strings["Authorize"] = "Autorizar";
+App::$strings["Do you authorize the app %s to access your channel data?"] = "¿Autoriza a la aplicación %s a acceder a los datos de su canal?";
+App::$strings["Allow"] = "Permitir";
App::$strings["Privacy group created."] = "El grupo de canales ha sido creado.";
App::$strings["Could not create privacy group."] = "No se puede crear el grupo de canales";
App::$strings["Privacy group not found."] = "Grupo de canales no encontrado.";
@@ -1306,7 +1320,7 @@ App::$strings["Clone this profile"] = "Clonar este perfil";
App::$strings["Delete this profile"] = "Eliminar este perfil";
App::$strings["Add profile things"] = "Añadir cosas al perfil";
App::$strings["Personal"] = "Personales";
-App::$strings["Relation"] = "Relación";
+App::$strings["Relationship"] = "Relación";
App::$strings["Miscellaneous"] = "Varios";
App::$strings["Import profile from file"] = "Importar perfil desde un fichero";
App::$strings["Export profile to file"] = "Exportar perfil a un fichero";
@@ -1369,6 +1383,7 @@ App::$strings["Make Default"] = "Convertir en predeterminado";
App::$strings["%d new messages"] = "%d mensajes nuevos";
App::$strings["%d new introductions"] = "%d nuevas solicitudes de conexión";
App::$strings["Delegated Channel"] = "Canal delegado";
+App::$strings["Cards"] = "Fichas";
App::$strings["Add Card"] = "Añadir una ficha";
App::$strings["This directory server requires an access token"] = "El servidor de este directorio necesita un \"token\" de acceso";
App::$strings["About this site"] = "Acerca de este sitio";
@@ -1459,6 +1474,7 @@ App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s n
App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s quizá participe";
App::$strings["Action completed."] = "Acción completada.";
App::$strings["Thank you."] = "Gracias.";
+App::$strings["No default suggestions were found."] = "No se encontraron sugerencias por defecto.";
App::$strings["%d rating"] = array(
0 => "%d valoración",
1 => "%d valoraciones",
@@ -1545,7 +1561,6 @@ App::$strings["Please indicate acceptance of the Terms of Service. Registration
App::$strings["Passwords do not match."] = "Las contraseñas no coinciden.";
App::$strings["Registration successful. Continue to create your first channel..."] = "Registro exitoso. Continúe creando tu primer canal...";
App::$strings["Registration successful. Please check your email for validation instructions."] = "Registro realizado con éxito. Por favor, compruebe su correo electrónico para ver las instrucciones para validarlo.";
-App::$strings["Registration successful. Continue to create your first channel..."] = "Registro exitoso. Continúe creando tu primer canal...";
App::$strings["Your registration is pending approval by the site owner."] = "Su registro está pendiente de aprobación por el propietario del sitio.";
App::$strings["Your registration can not be processed."] = "Su registro no puede ser procesado.";
App::$strings["Registration on this hub is disabled."] = "El registro está deshabilitado en este sitio.";
@@ -1731,44 +1746,44 @@ App::$strings["To stop receiving these messages, please adjust your Notification
App::$strings["To stop receiving these messages, please adjust your %s."] = "Para dejar de recibir estos mensajes, por favor, ajuste su %s";
App::$strings["%s <!item_type!>"] = "%s <!item_type!>";
App::$strings["[\$Projectname:Notify] New mail received at %s"] = "[\$Projectname:Aviso] Nuevo correo recibido en %s";
-App::$strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s le ha enviado un nuevo mensaje privado en %3\$s.";
+App::$strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s le ha enviado un nuevo mensaje privado en %2\$s.";
App::$strings["%1\$s sent you %2\$s."] = "%1\$s le ha enviado %2\$s.";
App::$strings["a private message"] = "un mensaje privado";
App::$strings["Please visit %s to view and/or reply to your private messages."] = "Por favor visite %s para ver y/o responder a su mensaje privado.";
App::$strings["commented on"] = "ha comentado sobre";
App::$strings["liked"] = "ha gustado de ";
App::$strings["disliked"] = "no ha gustado de ";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]a %5\$s[/zrl]"] = "%1\$s, %2\$s %3\$s[zrl=%4\$s]un %5\$s[/zrl]";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]%5\$s's %6\$s[/zrl]"] = "%1\$s, %2\$s %3\$s [zrl=%4\$s] %6\$sde %5\$s[/zrl]";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]your %5\$s[/zrl]"] = "%1\$s, %2\$s %3\$s [zrl=%4\$s] ]su %5\$s [/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s%2\$s [zrl=%3\$s ]un %4\$s[/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s %2\$s[zrl=%3\$s]%5\$s de %4\$s[/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s %2\$s [zrl=%3\$s]su %4\$s[/zrl]";
App::$strings["[\$Projectname:Notify] Moderated Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Aviso] Comentario moderado en la conversación #%1\$d por %2\$s";
App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Aviso] Nuevo comentario de %2\$s en la conversación #%1\$d";
-App::$strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha comentado un elemento/conversación que ha estado siguiendo.";
+App::$strings["%1\$s commented on an item/conversation you have been following."] = "%1\$sha comentado un elemento/conversación que ha estado siguiendo.";
App::$strings["Please visit %s to view and/or reply to the conversation."] = "Para ver o comentar la conversación, visite %s";
App::$strings["Please visit %s to approve or reject this comment."] = "Por favor, visite %spara aprobar o rechazar este comentario.";
-App::$strings["%1\$s, %2\$s liked [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha mostrado su agrado por [zrl=%3\$s]%4\$s creado por usted[/zrl]";
+App::$strings["%1\$s liked [zrl=%2\$s]your %3\$s[/zrl]"] = "A %1\$sle ha gustado [zrl=%2\$s]su%3\$s [/zrl]";
App::$strings["[\$Projectname:Notify] Like received to conversation #%1\$d by %2\$s"] = "[\$Projectname:Aviso] \"Me gusta\" de %2\$s en la conversación #%1\$d";
-App::$strings["%1\$s, %2\$s liked an item/conversation you created."] = "%1\$s, %2\$s ha mostrado su agrado por un elemento o conversación que ha creado usted.";
+App::$strings["%1\$s liked an item/conversation you created."] = "A %1\$s le ha gustado un elemento o conversación que ha creado usted.";
App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Aviso] %s ha publicado una entrada en su página de inicio del perfil (\"muro\")";
-App::$strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha publicado en su página del perfil en %3\$s";
-App::$strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha publicado en [zrl=%3\$s]su página del perfil[/zrl]";
+App::$strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s ha publicado en su muro en %2\$s";
+App::$strings["%1\$s posted to [zrl=%2\$s]your wall[/zrl]"] = "%1\$sha publicado en [zrl=%2\$s]su muro[/zrl]";
App::$strings["[\$Projectname:Notify] %s tagged you"] = "[\$Projectname:Aviso] %s le ha etiquetado";
-App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s le ha etiquetado en %3\$s";
-App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]le etiquetó[/zrl].";
+App::$strings["%1\$s tagged you at %2\$s"] = "%1\$sle ha etiquetado en %2\$s";
+App::$strings["%1\$s [zrl=%2\$s]tagged you[/zrl]."] = "%1\$s [zrl=%2\$s]le ha etiquetado[/zrl].";
App::$strings["[\$Projectname:Notify] %1\$s poked you"] = "[\$Projectname:Aviso] %1\$s le ha dado un toque";
-App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s le ha dado un toque en %3\$s";
-App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]le ha dado un toque[/zrl].";
+App::$strings["%1\$s poked you at %2\$s"] = "%1\$sle ha dado un toque en %2\$s";
+App::$strings["%1\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s [zrl=%2\$s]le ha dado un toque[/zrl].";
App::$strings["[\$Projectname:Notify] %s tagged your post"] = "[\$Projectname:Aviso] %s ha etiquetado su entrada";
-App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha etiquetado su publicación en %3\$s";
-App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha etiquetado [zrl=%3\$s]su publicación[/zrl]";
+App::$strings["%1\$s tagged your post at %2\$s"] = "%1\$sha etiquetado su entrada en %2\$s";
+App::$strings["%1\$s tagged [zrl=%2\$s]your post[/zrl]"] = "%1\$s ha etiquetado [zrl=%2\$s]su entrada[/zrl]";
App::$strings["[\$Projectname:Notify] Introduction received"] = "[\$Projectname:Aviso] Ha recibido una solicitud de conexión";
-App::$strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, ha recibido una nueva solicitud de conexión de '%2\$s' en %3\$s";
-App::$strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, ha recibido [zrl=%2\$s]una nueva solicitud de conexión[/zrl] de %3\$s.";
+App::$strings["You've received an new connection request from '%1\$s' at %2\$s"] = "Ha recibido una nueva solicitud de conexión de '%1\$s' en %2\$s";
+App::$strings["You've received [zrl=%1\$s]a new connection request[/zrl] from %2\$s."] = "Ha recibido [zrl=%1\$s]una nueva solicitud de conexión[/zrl] de %2\$s.";
App::$strings["You may visit their profile at %s"] = "Puede visitar su perfil en %s";
App::$strings["Please visit %s to approve or reject the connection request."] = "Por favor, visite %s para permitir o rechazar la solicitad de conexión.";
App::$strings["[\$Projectname:Notify] Friend suggestion received"] = "[\$Projectname:Aviso] Ha recibido una sugerencia de conexión";
-App::$strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, ha recibido una sugerencia de conexión de '%2\$s' en %3\$s";
-App::$strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, ha recibido [zrl=%2\$s]una sugerencia de conexión[/zrl] para %3\$s de %4\$s.";
+App::$strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Ha recibido una sugerencia de amistad de '%1\$s' en %2\$s";
+App::$strings["You've received [zrl=%1\$s]a friend suggestion[/zrl] for %2\$s from %3\$s."] = "Ha recibido [zrl=%1\$s]una sugerencia de amistad[/zrl] para %2\$s de %3\$s.";
App::$strings["Name:"] = "Nombre:";
App::$strings["Photo:"] = "Foto:";
App::$strings["Please visit %s to approve or reject the suggestion."] = "Por favor, visite %s para aprobar o rechazar la sugerencia.";
@@ -1844,6 +1859,7 @@ App::$strings["Schedule Inbox"] = "Programar bandeja de entrada";
App::$strings["Schedule Outbox"] = "Programar bandeja de salida";
App::$strings["Total"] = "Total";
App::$strings["Shared"] = "Compartido";
+App::$strings["Add Files"] = "Añadir ficheros";
App::$strings["You are using %1\$s of your available file storage."] = "Está usando %1\$s de su espacio disponible para ficheros.";
App::$strings["You are using %1\$s of %2\$s available file storage. (%3\$s&#37;)"] = "Está usando %1\$s de %2\$s que tiene a su disposición para ficheros. (%3\$s&#37;)";
App::$strings["WARNING:"] = "ATENCIÓN: ";
@@ -1915,17 +1931,19 @@ App::$strings["Suggestions"] = "Sugerencias";
App::$strings["See more..."] = "Ver más...";
App::$strings["Saved Folders"] = "Carpetas guardadas";
App::$strings["Click to show more"] = "Hacer clic para ver más";
+App::$strings["Tags"] = "Etiquetas";
App::$strings["Profile Creation"] = "Creación de perfiles";
App::$strings["Upload profile photo"] = "Cargar la foto del perfil";
App::$strings["Upload cover photo"] = "Cargar la foto de portada del perfil";
App::$strings["Edit your profile"] = "Editar su perfil";
App::$strings["Find and Connect with others"] = "Encontrar y conectarse con otros";
+App::$strings["View the directory"] = "Ver el directorio";
App::$strings["Manage your connections"] = "Gestionar sus conexiones";
App::$strings["Communicate"] = "Comunicarse";
App::$strings["View your channel homepage"] = "Ver la página principal de su canal";
App::$strings["View your network stream"] = "Ver el \"stream\" de su red";
App::$strings["Documentation"] = "Documentación";
-App::$strings["View public stream. Warning: not moderated"] = "Ver el \"stream\" público. Advertencia: no está moderado";
+App::$strings["View public stream"] = "Ver el \"stream\" público";
App::$strings["New Member Links"] = "Enlaces para nuevos miembros";
App::$strings["Member registrations waiting for confirmation"] = "Inscripciones de nuevos miembros pendientes de aprobación";
App::$strings["Inspect queue"] = "Examinar la cola";
@@ -1939,7 +1957,8 @@ App::$strings["Addon settings"] = "Ajustes de los complementos";
App::$strings["Display settings"] = "Ajustes de visualización";
App::$strings["Manage locations"] = "Gestión de ubicaciones (clones) del canal";
App::$strings["Export channel"] = "Exportar canal";
-App::$strings["Connected apps"] = "Aplicaciones (apps) conectadas";
+App::$strings["OAuth1 apps"] = "Aplicaciones OAuth1";
+App::$strings["OAuth2 apps"] = "Aplicaciones OAuth2";
App::$strings["Permission Groups"] = "Grupos de permisos";
App::$strings["Premium Channel Settings"] = "Configuración del canal premium";
App::$strings["Bookmarked Chatrooms"] = "Salas de chat preferidas";
@@ -1985,6 +2004,7 @@ App::$strings["Website SSL certificate is not valid. Please correct."] = "El cer
App::$strings["[\$Projectname] Cron tasks not running on %s"] = "[\$Projectname] Las tareas de Cron no están funcionando en %s";
App::$strings["Cron/Scheduled tasks not running."] = "Las tareas del Planificador/Cron no están funcionando.";
App::$strings["never"] = "nunca";
+App::$strings["Cover Photo"] = "Imagen de portada del perfil";
App::$strings["Focus (Hubzilla default)"] = "Focus (predefinido)";
App::$strings["Theme settings"] = "Ajustes del tema";
App::$strings["Narrow navbar"] = "Estrechar la barra de navegación";
@@ -2034,6 +2054,7 @@ App::$strings["Reminder note"] = "Recordatorio";
App::$strings["Enter a note to be displayed when you are within the specified proximity..."] = "Introduzca una nota que se mostrará cuando esté dentro de la proximidad especificada...";
App::$strings["Add new rendezvous"] = "Añadir una nueva cita";
App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Cree una nueva cita y comparta los enlaces de acceso con los que desea invitar al grupo. Aquellos que abran el enlace se convertirán en miembros de la cita. Pueden ver otras ubicaciones de miembros, añadir marcadores al mapa o compartir sus propias ubicaciones con el grupo.";
+App::$strings["You have no rendezvous. Press the button above to create a rendezvous!"] = "No tiene ninguna cita. ¡Presione el botón de arriba para crear una!";
App::$strings["Some setting"] = "Algunos ajustes";
App::$strings["A setting"] = "Un ajuste";
App::$strings["Skeleton Settings"] = "Ajustes de Skeleton";
@@ -2307,7 +2328,7 @@ App::$strings["Configuration Help"] = "Ayuda para los ajustes";
App::$strings["Jappix Mini Settings"] = "Ajustes de Jappix Mini";
App::$strings["Currently blocked"] = "Actualmente bloqueado";
App::$strings["No channels currently blocked"] = "No hay canales bloqueados actualmente";
-App::$strings["\"Superblock\" Settings"] = "Ajustes de \"Superblock\"";
+App::$strings["Superblock Settings"] = "Ajustes de Superblock";
App::$strings["Block Completely"] = "Bloquear completamente";
App::$strings["superblock settings updated"] = "se han actualizado los ajustes de superblock";
App::$strings["Federate"] = "Federar";
@@ -2444,6 +2465,24 @@ App::$strings["Twitter Post Settings"] = "Ajustes de publicación en Twitter";
App::$strings["Deactivate the feature"] = "Desactivar la funcionalidad";
App::$strings["Hide the button and show the smilies directly."] = "Ocultar el botón y mostrar los smilies directamente.";
App::$strings["Smileybutton Settings"] = "Ajustes de Smileybutton";
+App::$strings["Order Not Found"] = "No se ha encontrado el pedido";
+App::$strings["Order cannot be checked out."] = "No se puede verificar el pedido.";
+App::$strings["Enable Shopping Cart"] = "Habilitar el carro de la compra";
+App::$strings["Enable Test Catalog"] = "Habilitar el catálogo de pruebas";
+App::$strings["Enable Manual Payments"] = "Permitir pagos manuales";
+App::$strings["Base Cart Settings"] = "Configuración del carro base";
+App::$strings["Add Item"] = "Agregar un elemento";
+App::$strings["Call cart_post_"] = "Llamar a cart_post_";
+App::$strings["Cart Not Enabled (profile: "] = "El carro no está habilitado (perfil: ";
+App::$strings["Order not found."] = "El pedido no se ha encontrado.";
+App::$strings["No Order Found"] = "No se ha encontrado ningún pedido";
+App::$strings["call: "] = "llamar: ";
+App::$strings["An unknown error has occurred Please start again."] = "Se ha producido un error desconocido Vuelva a empezar.";
+App::$strings["Invalid Payment Type. Please start again."] = "Tipo de pago no válido. Por favor, empiece de nuevo.";
+App::$strings["Order not found"] = "El pedido no se ha encontrado";
+App::$strings["Error: order mismatch. Please try again."] = "Error: desajuste de pedidos. Por favor, inténtelo de nuevo.";
+App::$strings["Manual payments are not enabled."] = "Los pagos manuales no están habilitados.";
+App::$strings["Finished"] = "Terminado";
App::$strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Este sitio es rastreado mediante la herramienta analítica <a href='http://www.piwik.org'>Piwik</a>.";
App::$strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Si usted no quiere que sus visitas se registren de esta manera <a href='%s'>puede establecer una cookie para evitar que Piwik rastree otras visitas del sitio</a> (opt-out).";
App::$strings["Piwik Base URL"] = "URL base de Piwik";
@@ -2643,7 +2682,6 @@ App::$strings["Delete Selected Items"] = "Eliminar elementos seleccionados";
App::$strings["View Source"] = "Ver el código fuente de la entrada";
App::$strings["Follow Thread"] = "Seguir este hilo";
App::$strings["Unfollow Thread"] = "Dejar de seguir este hilo";
-App::$strings["Activity/Posts"] = "Actividad y publicaciones";
App::$strings["Edit Connection"] = "Editar conexión";
App::$strings["Message"] = "Mensaje";
App::$strings["%s likes this."] = "A %s le gusta esto.";
@@ -2727,6 +2765,7 @@ App::$strings["Safe Mode"] = "Modo seguro";
App::$strings["Public Forums Only"] = "Solo foros públicos";
App::$strings["This Website Only"] = "Solo este sitio web";
App::$strings["%1\$s's bookmarks"] = "Marcadores de %1\$s";
+App::$strings["Unable to import a removed channel."] = "No se puede importar un canal eliminado.";
App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado.";
App::$strings["Cloned channel not found. Import failed."] = "No se ha podido importar el canal porque el canal clonado no se ha encontrado.";
App::$strings["prev"] = "anterior";
@@ -2836,6 +2875,7 @@ App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escribió %2\$s
App::$strings["Channel is blocked on this site."] = "El canal está bloqueado en este sitio.";
App::$strings["Channel location missing."] = "Falta la dirección del canal.";
App::$strings["Response from remote channel was incomplete."] = "Respuesta incompleta del canal.";
+App::$strings["Premium channel - please visit:"] = "Canal Premium - por favor visite:";
App::$strings["Channel was deleted and no longer exists."] = "El canal ha sido eliminado y ya no existe.";
App::$strings["Remote channel or protocol unavailable."] = "Canal remoto o protocolo no disponible.";
App::$strings["Channel discovery failed."] = "El intento de acceder al canal ha fallado.";
@@ -2960,8 +3000,8 @@ App::$strings["j F, Y"] = "j F Y";
App::$strings["j F"] = "j F";
App::$strings["Birthday:"] = "Cumpleaños:";
App::$strings["for %1\$d %2\$s"] = "por %1\$d %2\$s";
-App::$strings["Sexual Preference:"] = "Orientación sexual:";
App::$strings["Tags:"] = "Etiquetas:";
+App::$strings["Sexual Preference:"] = "Orientación sexual:";
App::$strings["Political Views:"] = "Posición política:";
App::$strings["Religion:"] = "Religión:";
App::$strings["Hobbies/Interests:"] = "Aficciones o intereses:";
@@ -3026,6 +3066,7 @@ App::$strings["Embedded content"] = "Contenido incorporado";
App::$strings["Embedding disabled"] = "Incrustación deshabilitada";
App::$strings["OpenWebAuth: %1\$s welcomes %2\$s"] = "OpenWebAuth: %1\$s da la bienvenida a %2\$s";
App::$strings["General Features"] = "Funcionalidades básicas";
+App::$strings["Display new member quick links menu"] = "Mostrar el menú de enlaces rápidos para nuevos miembros";
App::$strings["Advanced Profiles"] = "Perfiles avanzados";
App::$strings["Additional profile sections and selections"] = "Secciones y selecciones de perfil adicionales";
App::$strings["Profile Import/Export"] = "Importar/Exportar perfil";
@@ -3059,8 +3100,10 @@ App::$strings["Enable management and selection of privacy groups"] = "Activar la
App::$strings["Multiple Profiles"] = "Múltiples perfiles";
App::$strings["Ability to create multiple profiles"] = "Capacidad de crear múltiples perfiles";
App::$strings["Provide alternate connection permission roles."] = "Proporcionar roles de acceso alternativos para esta conexión.";
-App::$strings["OAuth Clients"] = "Clientes OAuth";
-App::$strings["Manage authenticatication tokens for mobile and remote apps."] = "Administrar tokens de autenticación para aplicaciones móviles y remotas.";
+App::$strings["OAuth1 Clients"] = "Clientes OAuth1";
+App::$strings["Manage OAuth1 authenticatication tokens for mobile and remote apps."] = "Administrar tokens de autenticación OAuth1 para aplicaciones móviles y remotas.";
+App::$strings["OAuth2 Clients"] = "Clientes OAuth2";
+App::$strings["Manage OAuth2 authenticatication tokens for mobile and remote apps."] = "Administrar tokens de autenticación OAuth2 para aplicaciones móviles y remotas.";
App::$strings["Access Tokens"] = "Tokens de acceso";
App::$strings["Create access tokens so that non-members can access private content."] = "Crear tokens de acceso para que los no miembros puedan acceder a contenido privado.";
App::$strings["Post Composition Features"] = "Opciones para la redacción de entradas";
@@ -3079,6 +3122,8 @@ App::$strings["Content Expiration"] = "Caducidad del contenido";
App::$strings["Remove posts/comments and/or private messages at a future time"] = "Eliminar publicaciones/comentarios y/o mensajes privados más adelante";
App::$strings["Suppress Duplicate Posts/Comments"] = "Prevenir entradas o comentarios duplicados";
App::$strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Prevenir que entradas con contenido idéntico se publiquen con menos de dos minutos de intervalo.";
+App::$strings["Auto-save drafts of posts and comments"] = "Guardar automáticamente borradores de entradas y comentarios";
+App::$strings["Automatically saves post and comment drafts in local browser storage to help prevent accidental loss of compositions"] = "Guarda automáticamente los borradores de comentarios y publicaciones en el almacenamiento del navegador local para ayudar a evitar la pérdida accidental de composiciones.";
App::$strings["Network and Stream Filtering"] = "Filtrado del contenido";
App::$strings["Search by Date"] = "Buscar por fecha";
App::$strings["Ability to select posts by date ranges"] = "Capacidad de seleccionar entradas por rango de fechas";
@@ -3093,7 +3138,6 @@ App::$strings["Show friend and connection suggestions"] = "Mostrar sugerencias d
App::$strings["Connection Filtering"] = "Filtrado de conexiones";
App::$strings["Filter incoming posts from connections based on keywords/content"] = "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido";
App::$strings["Post/Comment Tools"] = "Gestión de entradas y comentarios";
-App::$strings["Use markdown for editing posts"] = "Usar markdown para editar las entradas";
App::$strings["Community Tagging"] = "Etiquetas de la comunidad";
App::$strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas existentes";
App::$strings["Post Categories"] = "Temas de las entradas";
@@ -3107,7 +3151,7 @@ App::$strings["Star Posts"] = "Entradas destacadas";
App::$strings["Ability to mark special posts with a star indicator"] = "Capacidad de marcar entradas destacadas con un indicador de estrella";
App::$strings["Tag Cloud"] = "Nube de etiquetas";
App::$strings["Provide a personal tag cloud on your channel page"] = "Proveer nube de etiquetas personal en su página de canal";
-App::$strings["Tags"] = "Etiquetas";
+App::$strings["Trending"] = "Populares";
App::$strings["Keywords"] = "Palabras clave";
App::$strings["have"] = "tener";
App::$strings["has"] = "tiene";
@@ -3178,9 +3222,9 @@ App::$strings["Take me home"] = "Volver a la página principal";
App::$strings["Log me out of this site"] = "Salir de este sitio";
App::$strings["Create an account"] = "Crear una cuenta";
App::$strings["Help and documentation"] = "Ayuda y documentación";
-App::$strings["Search site @name, #tag, ?docs, content"] = "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido";
+App::$strings["Search site @name, !forum, #tag, ?docs, content"] = "Buscar en el sitio @nombre, !foro, #tag, ?docs, contenido";
App::$strings["Site Setup and Configuration"] = "Ajustes y configuración del sitio";
-App::$strings["@name, #tag, ?doc, content"] = "@nombre, #etiqueta, ?ayuda, contenido";
+App::$strings["@name, !forum, #tag, ?doc, content"] = "@nombre, !foro, #tag, ?docs, contenido";
App::$strings["Please wait..."] = "Espere por favor…";
App::$strings["Add Apps"] = "Añadir aplicaciones";
App::$strings["Arrange Apps"] = "Organizar aplicaciones";
@@ -3203,6 +3247,7 @@ App::$strings["Add privacy group"] = "Añadir un grupo de canales";
App::$strings["Channels not in any privacy group"] = "Sin canales en ningún grupo";
App::$strings["New window"] = "Nueva ventana";
App::$strings["Open the selected location in a different window or browser tab"] = "Abrir la dirección seleccionada en una ventana o pestaña aparte";
+App::$strings["Delegation session ended."] = "Finalizó la sesión de la delegación.";
App::$strings["Logged out."] = "Desconectado/a.";
App::$strings["Email validation is incomplete. Please check your email."] = "La validación del correo electrónico está incompleta. Por favor, compruebe su correo electrónico.";
App::$strings["Failed authentication"] = "Autenticación fallida.";
diff --git a/view/fr/hmessages.po b/view/fr/hmessages.po
index 88118c3fa..e8257c5ca 100644
--- a/view/fr/hmessages.po
+++ b/view/fr/hmessages.po
@@ -6,15 +6,16 @@
# kris1373 <aktosc@gmail.com>, 2015-2016
# marlo <marlo@mailcatch.com>, 2018
# Philip Wittamore <philip@wittamore.com>, 2018
+# Pierre Boudes <boudes@univ-paris13.fr>, 2018
# rmonret <raymond.monret@retmesagxo.net>, 2016
-# rmonret <raymond.monret@retmesagxo.net>, 2017
+# rmonret <raymond.monret@retmesagxo.net>, 2017-2018
# Seraph Ino, 2016
msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-03-01 08:51+0100\n"
-"PO-Revision-Date: 2018-04-10 15:36+0000\n"
+"POT-Creation-Date: 2018-04-13 21:54+0200\n"
+"PO-Revision-Date: 2018-04-16 12:24+0000\n"
"Last-Translator: Philip Wittamore <philip@wittamore.com>\n"
"Language-Team: French (http://www.transifex.com/Friendica/red-matrix/language/fr/)\n"
"MIME-Version: 1.0\n"
@@ -33,7 +34,7 @@ msgstr "Peuvent m'envoyer leur flux et les publications de leur canal"
#: ../../Zotlabs/Access/Permissions.php:58
msgid "Can view my default channel profile"
-msgstr "Peut voir le profil par défaut du canal."
+msgstr "Peut voir le profil par défaut du canal"
#: ../../Zotlabs/Access/Permissions.php:59
msgid "Can view my connections"
@@ -65,7 +66,7 @@ msgstr "Peut écrire sur mon wiki"
#: ../../Zotlabs/Access/Permissions.php:66
msgid "Can post on my channel (wall) page"
-msgstr "Peut écrire sur le mur de mon canal (mur)"
+msgstr "Peut poster sur mon canal (\"mur\")"
#: ../../Zotlabs/Access/Permissions.php:67
msgid "Can comment on or like my posts"
@@ -77,7 +78,7 @@ msgstr "Peuvent m'envoyer des messages privés"
#: ../../Zotlabs/Access/Permissions.php:69
msgid "Can like/dislike profiles and profile things"
-msgstr "Peut aimer ou détester des profiles"
+msgstr "Peut aimer ou détester des profils"
#: ../../Zotlabs/Access/Permissions.php:70
msgid "Can forward to all my channel connections via @+ mentions in posts"
@@ -95,75 +96,79 @@ msgstr "Peut rediriger mes publications publiques vers des canaux dérivés"
msgid "Can administer my channel"
msgstr "Peut administrer mon canal"
-#: ../../Zotlabs/Access/PermissionRoles.php:265
+#: ../../Zotlabs/Access/PermissionRoles.php:283
msgid "Social Networking"
msgstr "Réseau social"
-#: ../../Zotlabs/Access/PermissionRoles.php:266
+#: ../../Zotlabs/Access/PermissionRoles.php:284
+msgid "Social - Party"
+msgstr "Social - Fête"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:285
msgid "Social - Mostly Public"
msgstr "Social - principalement public"
-#: ../../Zotlabs/Access/PermissionRoles.php:267
+#: ../../Zotlabs/Access/PermissionRoles.php:286
msgid "Social - Restricted"
msgstr "Social - restreint"
-#: ../../Zotlabs/Access/PermissionRoles.php:268
+#: ../../Zotlabs/Access/PermissionRoles.php:287
msgid "Social - Private"
msgstr "Social - privé"
-#: ../../Zotlabs/Access/PermissionRoles.php:271
+#: ../../Zotlabs/Access/PermissionRoles.php:290
msgid "Community Forum"
msgstr "Forum communautaire"
-#: ../../Zotlabs/Access/PermissionRoles.php:272
+#: ../../Zotlabs/Access/PermissionRoles.php:291
msgid "Forum - Mostly Public"
msgstr "Forum - principalement public"
-#: ../../Zotlabs/Access/PermissionRoles.php:273
+#: ../../Zotlabs/Access/PermissionRoles.php:292
msgid "Forum - Restricted"
msgstr "Forum - restreint"
-#: ../../Zotlabs/Access/PermissionRoles.php:274
+#: ../../Zotlabs/Access/PermissionRoles.php:293
msgid "Forum - Private"
msgstr "Forum - privé"
-#: ../../Zotlabs/Access/PermissionRoles.php:277
+#: ../../Zotlabs/Access/PermissionRoles.php:296
msgid "Feed Republish"
msgstr "Republication de flux"
-#: ../../Zotlabs/Access/PermissionRoles.php:278
+#: ../../Zotlabs/Access/PermissionRoles.php:297
msgid "Feed - Mostly Public"
msgstr "Flux - principalement public"
-#: ../../Zotlabs/Access/PermissionRoles.php:279
+#: ../../Zotlabs/Access/PermissionRoles.php:298
msgid "Feed - Restricted"
msgstr "Flux - restreint"
-#: ../../Zotlabs/Access/PermissionRoles.php:282
+#: ../../Zotlabs/Access/PermissionRoles.php:301
msgid "Special Purpose"
msgstr "Utilisation spécifique"
-#: ../../Zotlabs/Access/PermissionRoles.php:283
+#: ../../Zotlabs/Access/PermissionRoles.php:302
msgid "Special - Celebrity/Soapbox"
msgstr "Spécial - célébrité/vitrine"
-#: ../../Zotlabs/Access/PermissionRoles.php:284
+#: ../../Zotlabs/Access/PermissionRoles.php:303
msgid "Special - Group Repository"
msgstr "Spécial - dépôt partagé"
-#: ../../Zotlabs/Access/PermissionRoles.php:287
-#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Settings/Channel.php:473
-#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:798
+#: ../../Zotlabs/Access/PermissionRoles.php:306
+#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:144
+#: ../../Zotlabs/Module/Settings/Channel.php:479
+#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:795
#: ../../Zotlabs/Module/Register.php:224 ../../include/selectors.php:49
#: ../../include/selectors.php:66 ../../include/selectors.php:104
#: ../../include/selectors.php:140 ../../include/event.php:1315
-#: ../../include/event.php:1322 ../../include/connections.php:689
-#: ../../include/connections.php:696
+#: ../../include/event.php:1322 ../../include/connections.php:697
+#: ../../include/connections.php:704
msgid "Other"
msgstr "Autre"
-#: ../../Zotlabs/Access/PermissionRoles.php:288
+#: ../../Zotlabs/Access/PermissionRoles.php:307
msgid "Custom/Expert Mode"
msgstr "Mode expert/spécifique"
@@ -173,7 +178,7 @@ msgstr "Mode expert/spécifique"
#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20
#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Editwebpage.php:32
#: ../../Zotlabs/Module/Cards.php:33 ../../Zotlabs/Module/Webpages.php:33
-#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1198
+#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1197
msgid "Requested profile is not available."
msgstr "Profil demandé non disponible."
@@ -184,26 +189,27 @@ msgstr "Profil demandé non disponible."
#: ../../Zotlabs/Module/Channel.php:248 ../../Zotlabs/Module/Channel.php:288
#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Events.php:271
-#: ../../Zotlabs/Module/Appman.php:86 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:21
#: ../../Zotlabs/Module/Article_edit.php:51
-#: ../../Zotlabs/Module/New_channel.php:77
-#: ../../Zotlabs/Module/New_channel.php:102
+#: ../../Zotlabs/Module/New_channel.php:91
+#: ../../Zotlabs/Module/New_channel.php:116
#: ../../Zotlabs/Module/Sharedwithme.php:16 ../../Zotlabs/Module/Setup.php:209
#: ../../Zotlabs/Module/Moderate.php:13
-#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:275
-#: ../../Zotlabs/Module/Thing.php:295 ../../Zotlabs/Module/Thing.php:336
+#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:280
+#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Connections.php:29
#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:64
#: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:50
-#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:404
#: ../../Zotlabs/Module/Pdledit.php:29 ../../Zotlabs/Module/Poke.php:149
#: ../../Zotlabs/Module/Profile_photo.php:302
#: ../../Zotlabs/Module/Profile_photo.php:315
#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:229
#: ../../Zotlabs/Module/Item.php:246 ../../Zotlabs/Module/Item.php:256
-#: ../../Zotlabs/Module/Item.php:1099 ../../Zotlabs/Module/Page.php:34
+#: ../../Zotlabs/Module/Item.php:1106 ../../Zotlabs/Module/Page.php:34
#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:389
#: ../../Zotlabs/Module/Chat.php:100 ../../Zotlabs/Module/Chat.php:105
#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Layouts.php:71
@@ -222,7 +228,7 @@ msgstr "Profil demandé non disponible."
#: ../../Zotlabs/Module/Register.php:77
#: ../../Zotlabs/Module/Cover_photo.php:281
#: ../../Zotlabs/Module/Cover_photo.php:294
-#: ../../Zotlabs/Module/Display.php:406 ../../Zotlabs/Module/Network.php:15
+#: ../../Zotlabs/Module/Display.php:449 ../../Zotlabs/Module/Network.php:15
#: ../../Zotlabs/Module/Filestorage.php:15
#: ../../Zotlabs/Module/Filestorage.php:70
#: ../../Zotlabs/Module/Filestorage.php:85
@@ -234,15 +240,14 @@ msgstr "Profil demandé non disponible."
#: ../../Zotlabs/Module/Notifications.php:11
#: ../../Zotlabs/Lib/Chatroom.php:133 ../../Zotlabs/Web/WebServer.php:123
#: ../../addon/keepout/keepout.php:36 ../../addon/openid/Mod_Id.php:53
-#: ../../addon/gitwiki/Mod_Gitwiki.php:196
-#: ../../addon/gitwiki/Mod_Gitwiki.php:292 ../../addon/pumpio/pumpio.php:40
-#: ../../include/attach.php:150 ../../include/attach.php:197
-#: ../../include/attach.php:270 ../../include/attach.php:284
-#: ../../include/attach.php:293 ../../include/attach.php:366
-#: ../../include/attach.php:380 ../../include/attach.php:387
-#: ../../include/attach.php:469 ../../include/attach.php:1019
-#: ../../include/attach.php:1093 ../../include/attach.php:1258
-#: ../../include/items.php:3656 ../../include/photos.php:27
+#: ../../addon/pumpio/pumpio.php:40 ../../include/attach.php:150
+#: ../../include/attach.php:197 ../../include/attach.php:270
+#: ../../include/attach.php:284 ../../include/attach.php:293
+#: ../../include/attach.php:366 ../../include/attach.php:380
+#: ../../include/attach.php:387 ../../include/attach.php:469
+#: ../../include/attach.php:1029 ../../include/attach.php:1103
+#: ../../include/attach.php:1268 ../../include/items.php:3706
+#: ../../include/photos.php:27
msgid "Permission denied."
msgstr "Accès refusé."
@@ -251,7 +256,7 @@ msgstr "Accès refusé."
msgid "Block Name"
msgstr "Nom du Bloc"
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2402
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2405
msgid "Blocks"
msgstr "Blocs"
@@ -270,9 +275,9 @@ msgid "Edited"
msgstr "Modifié(e)"
#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:96
-#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:146
+#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:160
#: ../../Zotlabs/Module/Connedit.php:921 ../../Zotlabs/Module/Menu.php:118
-#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798
#: ../../Zotlabs/Module/Cards.php:100 ../../Zotlabs/Module/Webpages.php:239
#: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:382
#: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
@@ -281,43 +286,44 @@ msgstr "Créer"
#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Editlayout.php:114
#: ../../Zotlabs/Module/Article_edit.php:99
-#: ../../Zotlabs/Module/Admin/Profs.php:154
-#: ../../Zotlabs/Module/Settings/Oauth.php:149
-#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Module/Editblock.php:114
-#: ../../Zotlabs/Module/Connections.php:265
-#: ../../Zotlabs/Module/Connections.php:303
-#: ../../Zotlabs/Module/Connections.php:323 ../../Zotlabs/Module/Wiki.php:202
-#: ../../Zotlabs/Module/Wiki.php:358 ../../Zotlabs/Module/Menu.php:112
+#: ../../Zotlabs/Module/Admin/Profs.php:175
+#: ../../Zotlabs/Module/Settings/Oauth2.php:149
+#: ../../Zotlabs/Module/Settings/Oauth.php:150
+#: ../../Zotlabs/Module/Thing.php:266 ../../Zotlabs/Module/Editblock.php:114
+#: ../../Zotlabs/Module/Connections.php:281
+#: ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Connections.php:339 ../../Zotlabs/Module/Wiki.php:202
+#: ../../Zotlabs/Module/Wiki.php:362 ../../Zotlabs/Module/Menu.php:112
#: ../../Zotlabs/Module/Layouts.php:193
#: ../../Zotlabs/Module/Editwebpage.php:142
-#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Editpost.php:85
-#: ../../Zotlabs/Module/Card_edit.php:99 ../../Zotlabs/Lib/Apps.php:409
-#: ../../Zotlabs/Lib/ThreadItem.php:121 ../../Zotlabs/Storage/Browser.php:288
-#: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162
-#: ../../addon/gitwiki/Mod_Gitwiki.php:151
-#: ../../addon/gitwiki/Mod_Gitwiki.php:252 ../../include/channel.php:1297
-#: ../../include/channel.php:1301 ../../include/menu.php:113
+#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Card_edit.php:99
+#: ../../Zotlabs/Lib/Apps.php:409 ../../Zotlabs/Lib/ThreadItem.php:121
+#: ../../Zotlabs/Storage/Browser.php:288 ../../Zotlabs/Widget/Cdav.php:126
+#: ../../Zotlabs/Widget/Cdav.php:162 ../../include/channel.php:1296
+#: ../../include/channel.php:1300 ../../include/menu.php:113
msgid "Edit"
msgstr "Modifier"
#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1102
-#: ../../Zotlabs/Module/Layouts.php:194 ../../Zotlabs/Module/Webpages.php:241
-#: ../../Zotlabs/Widget/Cdav.php:124 ../../include/conversation.php:1363
+#: ../../Zotlabs/Module/Wiki.php:287 ../../Zotlabs/Module/Layouts.php:194
+#: ../../Zotlabs/Module/Webpages.php:241 ../../Zotlabs/Widget/Cdav.php:124
+#: ../../include/conversation.php:1366
msgid "Share"
msgstr "Partager"
#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editlayout.php:138
#: ../../Zotlabs/Module/Cdav.php:897 ../../Zotlabs/Module/Cdav.php:1187
#: ../../Zotlabs/Module/Article_edit.php:129
-#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Admin/Accounts.php:175
#: ../../Zotlabs/Module/Admin/Channels.php:149
-#: ../../Zotlabs/Module/Admin/Profs.php:155
-#: ../../Zotlabs/Module/Settings/Oauth.php:150
-#: ../../Zotlabs/Module/Thing.php:262 ../../Zotlabs/Module/Editblock.php:139
-#: ../../Zotlabs/Module/Connections.php:273
+#: ../../Zotlabs/Module/Admin/Profs.php:176
+#: ../../Zotlabs/Module/Settings/Oauth2.php:150
+#: ../../Zotlabs/Module/Settings/Oauth.php:151
+#: ../../Zotlabs/Module/Thing.php:267 ../../Zotlabs/Module/Editblock.php:139
+#: ../../Zotlabs/Module/Connections.php:289
#: ../../Zotlabs/Module/Photos.php:1203 ../../Zotlabs/Module/Connedit.php:654
#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Group.php:179
-#: ../../Zotlabs/Module/Profiles.php:803
+#: ../../Zotlabs/Module/Profiles.php:800
#: ../../Zotlabs/Module/Editwebpage.php:167
#: ../../Zotlabs/Module/Webpages.php:242
#: ../../Zotlabs/Module/Card_edit.php:129 ../../Zotlabs/Lib/Apps.php:410
@@ -329,7 +335,6 @@ msgstr "Supprimer"
#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Events.php:694
#: ../../Zotlabs/Module/Wiki.php:204 ../../Zotlabs/Module/Layouts.php:198
#: ../../Zotlabs/Module/Webpages.php:246 ../../Zotlabs/Module/Pubsites.php:60
-#: ../../addon/gitwiki/Mod_Gitwiki.php:153
msgid "View"
msgstr "Voir"
@@ -406,30 +411,31 @@ msgstr "3. Cliquez sur [Ajouter]"
#: ../../Zotlabs/Module/Invite.php:151 ../../Zotlabs/Module/Locs.php:121
#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Events.php:493
-#: ../../Zotlabs/Module/Appman.php:152
+#: ../../Zotlabs/Module/Appman.php:153
#: ../../Zotlabs/Module/Import_items.php:129
#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:349
#: ../../Zotlabs/Module/Connect.php:98
#: ../../Zotlabs/Module/Admin/Features.php:66
#: ../../Zotlabs/Module/Admin/Plugins.php:438
-#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:168
#: ../../Zotlabs/Module/Admin/Logs.php:84
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Themes.php:158
-#: ../../Zotlabs/Module/Admin/Site.php:289
-#: ../../Zotlabs/Module/Admin/Profs.php:157
+#: ../../Zotlabs/Module/Admin/Site.php:296
+#: ../../Zotlabs/Module/Admin/Profs.php:178
#: ../../Zotlabs/Module/Admin/Account_edit.php:74
#: ../../Zotlabs/Module/Admin/Security.php:104
#: ../../Zotlabs/Module/Settings/Permcats.php:110
-#: ../../Zotlabs/Module/Settings/Channel.php:488
-#: ../../Zotlabs/Module/Settings/Features.php:47
+#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Features.php:79
#: ../../Zotlabs/Module/Settings/Tokens.php:168
+#: ../../Zotlabs/Module/Settings/Oauth2.php:84
#: ../../Zotlabs/Module/Settings/Account.php:118
#: ../../Zotlabs/Module/Settings/Featured.php:54
#: ../../Zotlabs/Module/Settings/Display.php:192
-#: ../../Zotlabs/Module/Settings/Oauth.php:87
-#: ../../Zotlabs/Module/Thing.php:321 ../../Zotlabs/Module/Thing.php:374
-#: ../../Zotlabs/Module/Import.php:529 ../../Zotlabs/Module/Cal.php:345
+#: ../../Zotlabs/Module/Settings/Oauth.php:88
+#: ../../Zotlabs/Module/Thing.php:326 ../../Zotlabs/Module/Thing.php:379
+#: ../../Zotlabs/Module/Import.php:530 ../../Zotlabs/Module/Cal.php:345
#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Photos.php:1082
#: ../../Zotlabs/Module/Photos.php:1122 ../../Zotlabs/Module/Photos.php:1240
#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Module/Pdledit.php:98
@@ -437,17 +443,17 @@ msgstr "3. Cliquez sur [Ajouter]"
#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:242
#: ../../Zotlabs/Module/Email_validation.php:40
#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Defperms.php:249
-#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:726
-#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149
-#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Module/Mail.php:431
-#: ../../Zotlabs/Module/Filestorage.php:160 ../../Zotlabs/Module/Rate.php:166
-#: ../../Zotlabs/Lib/ThreadItem.php:750
+#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:723
+#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:114
+#: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Lib/ThreadItem.php:752
#: ../../Zotlabs/Widget/Eventstools.php:16
#: ../../Zotlabs/Widget/Wiki_pages.php:40
#: ../../Zotlabs/Widget/Wiki_pages.php:97
#: ../../view/theme/redbasic_c/php/config.php:95
#: ../../view/theme/redbasic/php/config.php:93
-#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:275
#: ../../addon/planets/planets.php:153
#: ../../addon/openclipatar/openclipatar.php:53
#: ../../addon/wppost/wppost.php:113 ../../addon/nsfw/nsfw.php:92
@@ -455,8 +461,7 @@ msgstr "3. Cliquez sur [Ajouter]"
#: ../../addon/likebanner/likebanner.php:57
#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53
#: ../../addon/ljpost/ljpost.php:86 ../../addon/startpage/startpage.php:113
-#: ../../addon/diaspora/diaspora.php:822
-#: ../../addon/gitwiki/Mod_Gitwiki.php:155
+#: ../../addon/diaspora/diaspora.php:823
#: ../../addon/rainbowtag/rainbowtag.php:85 ../../addon/hzfiles/hzfiles.php:84
#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161
#: ../../addon/mailtest/mailtest.php:100
@@ -464,7 +469,7 @@ msgstr "3. Cliquez sur [Ajouter]"
#: ../../addon/rtof/rtof.php:101 ../../addon/jappixmini/jappixmini.php:371
#: ../../addon/superblock/superblock.php:120 ../../addon/nofed/nofed.php:80
#: ../../addon/redred/redred.php:119 ../../addon/logrot/logrot.php:35
-#: ../../addon/frphotos/frphotos.php:96 ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/frphotos/frphotos.php:97 ../../addon/pubcrawl/pubcrawl.php:1069
#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85
#: ../../addon/flattrwidget/flattrwidget.php:124
#: ../../addon/statusnet/statusnet.php:322
@@ -473,15 +478,16 @@ msgstr "3. Cliquez sur [Ajouter]"
#: ../../addon/statusnet/statusnet.php:900 ../../addon/twitter/twitter.php:218
#: ../../addon/twitter/twitter.php:265
#: ../../addon/smileybutton/smileybutton.php:219
-#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/pageheader.php:48
+#: ../../addon/cart/cart.php:1104 ../../addon/piwik/piwik.php:95
+#: ../../addon/pageheader/pageheader.php:48
#: ../../addon/authchoose/authchoose.php:71 ../../addon/xmpp/xmpp.php:69
#: ../../addon/pumpio/pumpio.php:237 ../../addon/redfiles/redfiles.php:124
#: ../../addon/hubwall/hubwall.php:95 ../../include/js_strings.php:22
msgid "Submit"
msgstr "Envoyer"
-#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:179
-#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:124
+#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:191
+#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:133
#: ../../include/nav.php:469
msgid "Articles"
msgstr "Articles"
@@ -516,11 +522,11 @@ msgstr "Modifier la mise en page"
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86
#: ../../Zotlabs/Module/Import_items.php:120
-#: ../../Zotlabs/Module/Cloud.php:111 ../../Zotlabs/Module/Group.php:74
+#: ../../Zotlabs/Module/Cloud.php:117 ../../Zotlabs/Module/Group.php:74
#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:68
#: ../../Zotlabs/Module/Like.php:296 ../../Zotlabs/Web/WebServer.php:122
#: ../../addon/redphotos/redphotos.php:119 ../../addon/hzfiles/hzfiles.php:73
-#: ../../addon/frphotos/frphotos.php:81 ../../addon/redfiles/redfiles.php:109
+#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109
#: ../../include/items.php:358
msgid "Permission denied"
msgstr "Accès refusé"
@@ -533,7 +539,7 @@ msgstr "Identifiant de profil invalide."
msgid "Profile Visibility Editor"
msgstr "Éditeur de visibilité de profil"
-#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1634
+#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1644
msgid "Profile"
msgstr "Profil"
@@ -546,7 +552,7 @@ msgid "Visible To"
msgstr "Visible par"
#: ../../Zotlabs/Module/Profperm.php:140
-#: ../../Zotlabs/Module/Connections.php:140
+#: ../../Zotlabs/Module/Connections.php:200
msgid "All Connections"
msgstr "Tous les contacts"
@@ -561,9 +567,9 @@ msgstr "Sommaire :"
#: ../../Zotlabs/Module/Cdav.php:786 ../../Zotlabs/Module/Cdav.php:787
#: ../../Zotlabs/Module/Cdav.php:794 ../../Zotlabs/Module/Embedphotos.php:146
#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1273
-#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:832
+#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:833
#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Widget/Portfolio.php:95
-#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:853
+#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:878
#: ../../include/conversation.php:1160
msgid "Unknown"
msgstr "Inconnu"
@@ -601,14 +607,14 @@ msgid "End date and time"
msgstr "Date et heure de fin"
#: ../../Zotlabs/Module/Cdav.php:871 ../../Zotlabs/Module/Events.php:473
-#: ../../Zotlabs/Module/Appman.php:142 ../../Zotlabs/Module/Rbmark.php:101
+#: ../../Zotlabs/Module/Appman.php:143 ../../Zotlabs/Module/Rbmark.php:101
#: ../../addon/rendezvous/rendezvous.php:173
msgid "Description"
msgstr "Description"
#: ../../Zotlabs/Module/Cdav.php:872 ../../Zotlabs/Module/Locs.php:117
#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Profiles.php:509
-#: ../../Zotlabs/Module/Profiles.php:737 ../../Zotlabs/Module/Pubsites.php:52
+#: ../../Zotlabs/Module/Profiles.php:734 ../../Zotlabs/Module/Pubsites.php:52
#: ../../include/js_strings.php:25
msgid "Location"
msgstr "Emplacement"
@@ -673,17 +679,17 @@ msgstr "Tout supprimer"
#: ../../Zotlabs/Module/Cdav.php:899 ../../Zotlabs/Module/Cdav.php:1188
#: ../../Zotlabs/Module/Admin/Plugins.php:423
-#: ../../Zotlabs/Module/Settings/Oauth.php:88
-#: ../../Zotlabs/Module/Settings/Oauth.php:114
-#: ../../Zotlabs/Module/Wiki.php:345 ../../Zotlabs/Module/Wiki.php:375
+#: ../../Zotlabs/Module/Settings/Oauth2.php:85
+#: ../../Zotlabs/Module/Settings/Oauth2.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:89
+#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Wiki.php:347 ../../Zotlabs/Module/Wiki.php:379
#: ../../Zotlabs/Module/Profile_photo.php:464
#: ../../Zotlabs/Module/Connedit.php:924 ../../Zotlabs/Module/Fbrowser.php:66
-#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:804
+#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801
#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:365
#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138
-#: ../../addon/gitwiki/Mod_Gitwiki.php:244
-#: ../../addon/gitwiki/Mod_Gitwiki.php:267 ../../include/conversation.php:1386
-#: ../../include/conversation.php:1435
+#: ../../include/conversation.php:1389 ../../include/conversation.php:1438
msgid "Cancel"
msgstr "Annuler"
@@ -694,14 +700,15 @@ msgstr "Désolé ! L'édition d'événements récurrents n'est pas encore implé
#: ../../Zotlabs/Module/Cdav.php:1170
#: ../../Zotlabs/Module/Sharedwithme.php:105
#: ../../Zotlabs/Module/Admin/Channels.php:159
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+#: ../../Zotlabs/Module/Settings/Oauth.php:116
#: ../../Zotlabs/Module/Wiki.php:209 ../../Zotlabs/Module/Connedit.php:906
#: ../../Zotlabs/Module/Chat.php:251 ../../Zotlabs/Lib/NativeWikiPage.php:558
#: ../../Zotlabs/Storage/Browser.php:283
#: ../../Zotlabs/Widget/Wiki_page_history.php:22
#: ../../addon/rendezvous/rendezvous.php:172
-#: ../../addon/gitwiki/Mod_Gitwiki.php:158
msgid "Name"
msgstr "Nom"
@@ -714,76 +721,78 @@ msgid "Title"
msgstr "Titre"
#: ../../Zotlabs/Module/Cdav.php:1173 ../../Zotlabs/Module/Connedit.php:909
-#: ../../Zotlabs/Module/Profiles.php:789
+#: ../../Zotlabs/Module/Profiles.php:786
msgid "Phone"
msgstr "Téléphone"
#: ../../Zotlabs/Module/Cdav.php:1174
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
-#: ../../Zotlabs/Module/Admin/Accounts.php:182
-#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:790
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:183
+#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:787
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93
-#: ../../addon/redred/redred.php:107 ../../include/network.php:1775
+#: ../../addon/redred/redred.php:107 ../../include/network.php:1776
msgid "Email"
msgstr "Courriel"
#: ../../Zotlabs/Module/Cdav.php:1175 ../../Zotlabs/Module/Connedit.php:911
-#: ../../Zotlabs/Module/Profiles.php:791
+#: ../../Zotlabs/Module/Profiles.php:788
msgid "Instant messenger"
msgstr "Instant messenger"
#: ../../Zotlabs/Module/Cdav.php:1176 ../../Zotlabs/Module/Connedit.php:912
-#: ../../Zotlabs/Module/Profiles.php:792
+#: ../../Zotlabs/Module/Profiles.php:789
msgid "Website"
msgstr "Site web"
#: ../../Zotlabs/Module/Cdav.php:1177 ../../Zotlabs/Module/Locs.php:118
#: ../../Zotlabs/Module/Admin/Channels.php:160
#: ../../Zotlabs/Module/Connedit.php:913 ../../Zotlabs/Module/Profiles.php:502
-#: ../../Zotlabs/Module/Profiles.php:793
+#: ../../Zotlabs/Module/Profiles.php:790
msgid "Address"
msgstr "Adresse"
#: ../../Zotlabs/Module/Cdav.php:1178 ../../Zotlabs/Module/Connedit.php:914
-#: ../../Zotlabs/Module/Profiles.php:794
+#: ../../Zotlabs/Module/Profiles.php:791
msgid "Note"
msgstr "Note"
#: ../../Zotlabs/Module/Cdav.php:1179 ../../Zotlabs/Module/Connedit.php:915
-#: ../../Zotlabs/Module/Profiles.php:795 ../../include/event.php:1308
-#: ../../include/connections.php:682
+#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1308
+#: ../../include/connections.php:690
msgid "Mobile"
msgstr "Mobile"
#: ../../Zotlabs/Module/Cdav.php:1180 ../../Zotlabs/Module/Connedit.php:916
-#: ../../Zotlabs/Module/Profiles.php:796 ../../include/event.php:1309
-#: ../../include/connections.php:683
+#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1309
+#: ../../include/connections.php:691
msgid "Home"
msgstr "Mon canal"
#: ../../Zotlabs/Module/Cdav.php:1181 ../../Zotlabs/Module/Connedit.php:917
-#: ../../Zotlabs/Module/Profiles.php:797 ../../include/event.php:1312
-#: ../../include/connections.php:686
+#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1312
+#: ../../include/connections.php:694
msgid "Work"
msgstr "Travail"
#: ../../Zotlabs/Module/Cdav.php:1183 ../../Zotlabs/Module/Connedit.php:919
-#: ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Profiles.php:796
#: ../../addon/jappixmini/jappixmini.php:368
msgid "Add Contact"
msgstr "Ajouter un contact"
#: ../../Zotlabs/Module/Cdav.php:1184 ../../Zotlabs/Module/Connedit.php:920
-#: ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Profiles.php:797
msgid "Add Field"
msgstr "Ajouter un champ"
#: ../../Zotlabs/Module/Cdav.php:1186
#: ../../Zotlabs/Module/Admin/Plugins.php:453
-#: ../../Zotlabs/Module/Settings/Oauth.php:42
-#: ../../Zotlabs/Module/Settings/Oauth.php:113
-#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:802
+#: ../../Zotlabs/Module/Settings/Oauth2.php:39
+#: ../../Zotlabs/Module/Settings/Oauth2.php:112
+#: ../../Zotlabs/Module/Settings/Oauth.php:43
+#: ../../Zotlabs/Module/Settings/Oauth.php:114
+#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:799
#: ../../Zotlabs/Lib/Apps.php:393
msgid "Update"
msgstr "Mise à jour"
@@ -813,7 +822,7 @@ msgid "ZIP Code"
msgstr "ZIP code"
#: ../../Zotlabs/Module/Cdav.php:1195 ../../Zotlabs/Module/Connedit.php:931
-#: ../../Zotlabs/Module/Profiles.php:760
+#: ../../Zotlabs/Module/Profiles.php:757
msgid "Country"
msgstr "Pays"
@@ -829,8 +838,8 @@ msgstr "Carnet d'adresses par défaut"
msgid "This site is not a directory server"
msgstr "Ce site n'est pas un serveur d'annuaire"
-#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Chat.php:25
-#: ../../addon/gitwiki/Mod_Gitwiki.php:28 ../../addon/chess/chess.php:508
+#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Chat.php:25 ../../addon/chess/chess.php:508
msgid "You must be logged in to see this page."
msgstr "Vous devez vous connecter pour voir cette page."
@@ -921,19 +930,19 @@ msgstr "Vous n'avez aucune publication non-vue..."
msgid "Public access denied."
msgstr "Accès public refusé."
-#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:335
#: ../../Zotlabs/Lib/Apps.php:256 ../../Zotlabs/Widget/Sitesearch.php:31
#: ../../include/text.php:1051 ../../include/text.php:1063
#: ../../include/acl_selectors.php:118 ../../include/nav.php:179
msgid "Search"
msgstr "Recherche"
-#: ../../Zotlabs/Module/Search.php:226
+#: ../../Zotlabs/Module/Search.php:230
#, php-format
msgid "Items tagged with: %s"
msgstr "Eléments étiquetés avec&nbsp;: %s"
-#: ../../Zotlabs/Module/Search.php:228
+#: ../../Zotlabs/Module/Search.php:232
#, php-format
msgid "Search results for: %s"
msgstr "Résultats de recherche pour&nbsp;: %s"
@@ -1039,7 +1048,7 @@ msgid "Menu Item Permissions"
msgstr "Droits d'accès de l'entrée de menu"
#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231
-#: ../../Zotlabs/Module/Settings/Channel.php:521
+#: ../../Zotlabs/Module/Settings/Channel.php:528
msgid "(click to open/close)"
msgstr "(cliquer pour ouvrir/fermer)"
@@ -1063,8 +1072,8 @@ msgstr "Utiliser l'authentification distante, quand disponible"
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
#: ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Admin/Site.php:252
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:99 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1073,7 +1082,7 @@ msgstr "Utiliser l'authentification distante, quand disponible"
#: ../../Zotlabs/Module/Defperms.php:180 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1082,10 +1091,10 @@ msgstr "Utiliser l'authentification distante, quand disponible"
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
-#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
+#: ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
#: ../../addon/jappixmini/jappixmini.php:351
@@ -1102,11 +1111,12 @@ msgstr "Utiliser l'authentification distante, quand disponible"
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
#: ../../addon/smileybutton/smileybutton.php:215
-#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
-#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
-#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145
+#: ../../addon/cart/cart.php:1075 ../../addon/cart/cart.php:1082
+#: ../../addon/cart/cart.php:1090 ../../addon/authchoose/authchoose.php:67
+#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
+#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "No"
msgstr "Non"
@@ -1114,8 +1124,8 @@ msgstr "Non"
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
#: ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Admin/Site.php:254
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:98 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1124,7 +1134,7 @@ msgstr "Non"
#: ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1133,10 +1143,10 @@ msgstr "Non"
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
-#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
+#: ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
#: ../../addon/jappixmini/jappixmini.php:351
@@ -1153,11 +1163,12 @@ msgstr "Non"
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
#: ../../addon/smileybutton/smileybutton.php:215
-#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
-#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
-#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145
+#: ../../addon/cart/cart.php:1075 ../../addon/cart/cart.php:1082
+#: ../../addon/cart/cart.php:1090 ../../addon/authchoose/authchoose.php:67
+#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
+#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "Yes"
msgstr "Oui"
@@ -1267,8 +1278,8 @@ msgid "Event not found."
msgstr "Événement introuvable."
#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73
-#: ../../Zotlabs/Module/Like.php:385 ../../include/conversation.php:119
-#: ../../include/text.php:2007 ../../include/event.php:1153
+#: ../../Zotlabs/Module/Like.php:386 ../../include/conversation.php:119
+#: ../../include/text.php:2008 ../../include/event.php:1153
msgid "event"
msgstr "événement"
@@ -1277,9 +1288,9 @@ msgid "Edit event title"
msgstr "Modifier le titre de l'événement"
#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:465
-#: ../../Zotlabs/Module/Appman.php:140 ../../Zotlabs/Module/Appman.php:141
-#: ../../Zotlabs/Module/Profiles.php:748 ../../Zotlabs/Module/Profiles.php:752
-#: ../../include/datetime.php:205
+#: ../../Zotlabs/Module/Appman.php:141 ../../Zotlabs/Module/Appman.php:142
+#: ../../Zotlabs/Module/Profiles.php:745 ../../Zotlabs/Module/Profiles.php:749
+#: ../../include/datetime.php:211
msgid "Required"
msgstr "Requis"
@@ -1330,12 +1341,12 @@ msgid "Edit Location"
msgstr "Modifier l'emplacement"
#: ../../Zotlabs/Module/Events.php:478 ../../Zotlabs/Module/Photos.php:1123
-#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:760
-#: ../../include/conversation.php:1330
+#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:762
+#: ../../include/conversation.php:1333
msgid "Preview"
msgstr "Aperçu"
-#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1402
+#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1405
msgid "Permission settings"
msgstr "Gérer les droits d'accès"
@@ -1360,7 +1371,7 @@ msgid "Delete event"
msgstr "Supprimer l'événement"
#: ../../Zotlabs/Module/Events.php:660 ../../Zotlabs/Module/Cal.php:315
-#: ../../include/text.php:1826
+#: ../../include/text.php:1827
msgid "Link to Source"
msgstr "Lien vers la Source"
@@ -1377,7 +1388,7 @@ msgid "Create Event"
msgstr "Créer un événement"
#: ../../Zotlabs/Module/Events.php:691 ../../Zotlabs/Module/Cal.php:341
-#: ../../include/channel.php:1637
+#: ../../include/channel.php:1647
msgid "Export"
msgstr "Export"
@@ -1389,55 +1400,55 @@ msgstr "Événement supprimé"
msgid "Failed to remove event"
msgstr "Impossible de supprimer l'événement"
-#: ../../Zotlabs/Module/Appman.php:38 ../../Zotlabs/Module/Appman.php:55
+#: ../../Zotlabs/Module/Appman.php:39 ../../Zotlabs/Module/Appman.php:56
msgid "App installed."
msgstr "Application installée."
-#: ../../Zotlabs/Module/Appman.php:48
+#: ../../Zotlabs/Module/Appman.php:49
msgid "Malformed app."
msgstr "Application mal formée."
-#: ../../Zotlabs/Module/Appman.php:129
+#: ../../Zotlabs/Module/Appman.php:130
msgid "Embed code"
msgstr "Imbriquer le code"
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Edit App"
msgstr "Modifier l'application"
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Create App"
msgstr "Créer une application"
-#: ../../Zotlabs/Module/Appman.php:140
+#: ../../Zotlabs/Module/Appman.php:141
msgid "Name of app"
msgstr "Nom de l'application"
-#: ../../Zotlabs/Module/Appman.php:141
+#: ../../Zotlabs/Module/Appman.php:142
msgid "Location (URL) of app"
msgstr "Emplacement (URL) de l'application"
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "Photo icon URL"
msgstr "URL de l'icône à utiliser pour cette photo"
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "80 x 80 pixels - optional"
msgstr "80 x 80 pixels - facultatif"
-#: ../../Zotlabs/Module/Appman.php:144
+#: ../../Zotlabs/Module/Appman.php:145
msgid "Categories (optional, comma separated list)"
msgstr "Catégories (séparées par des virgules)"
-#: ../../Zotlabs/Module/Appman.php:145
+#: ../../Zotlabs/Module/Appman.php:146
msgid "Version ID"
msgstr "Identifiant de version"
-#: ../../Zotlabs/Module/Appman.php:146
+#: ../../Zotlabs/Module/Appman.php:147
msgid "Price of app"
msgstr "Prix de l'application"
-#: ../../Zotlabs/Module/Appman.php:147
+#: ../../Zotlabs/Module/Appman.php:148
msgid "Location (URL) to purchase app"
msgstr "Emplacement (URL) pour l'achat de l'application"
@@ -1450,16 +1461,16 @@ msgid "Hub not found."
msgstr "Hub introuvable."
#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69
-#: ../../Zotlabs/Module/Like.php:383
+#: ../../Zotlabs/Module/Like.php:384
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:116 ../../include/text.php:2004
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1388
+#: ../../include/conversation.php:116 ../../include/text.php:2005
msgid "photo"
msgstr "photo"
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:383
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:144 ../../include/text.php:2010
+#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1388
+#: ../../include/conversation.php:144 ../../include/text.php:2011
msgid "status"
msgstr "état"
@@ -1489,8 +1500,9 @@ msgid "Insert web link"
msgstr "Insérer lien web"
#: ../../Zotlabs/Module/Article_edit.php:117
-#: ../../Zotlabs/Module/Editblock.php:129
-#: ../../Zotlabs/Module/Card_edit.php:117 ../../include/conversation.php:1398
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:698
+#: ../../Zotlabs/Module/Photos.php:1068 ../../Zotlabs/Module/Card_edit.php:117
+#: ../../include/conversation.php:1401
msgid "Title (optional)"
msgstr "Titre (facultatif)"
@@ -1513,7 +1525,6 @@ msgid "Imported file is empty."
msgstr "Le fichier importé est vide."
#: ../../Zotlabs/Module/Import_items.php:93
-#: ../../Zotlabs/Module/Import.php:121
#, php-format
msgid "Warning: Database versions differ by %1$d updates."
msgstr "Attention&nbsp;: les versions de bases de données diffèrent de %1$d mises à jour."
@@ -1532,32 +1543,32 @@ msgid ""
msgstr "Utiliser ce formulaire pour importer des publications et du contenu existant d'un fichier d'export."
#: ../../Zotlabs/Module/Import_items.php:127
-#: ../../Zotlabs/Module/Import.php:516
+#: ../../Zotlabs/Module/Import.php:517
msgid "File to Upload"
msgstr "Fichier à envoyer"
-#: ../../Zotlabs/Module/New_channel.php:119
+#: ../../Zotlabs/Module/New_channel.php:133
#: ../../Zotlabs/Module/Manage.php:138
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr "Vous avez créé %1$.0f des %2$.0f canaux autorisés."
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Name or caption"
msgstr "Nom ou libellé"
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""
msgstr "Exemples&nbsp;: \"Jérôme Dutilleul\", \"Louise et ses chevaux\", \"Football\", \"Club d'aéromodélisme\""
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
msgid "Choose a short nickname"
msgstr "Choisissez un alias"
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
#, php-format
msgid ""
@@ -1565,38 +1576,38 @@ msgid ""
"e.g. nickname%s"
msgstr "Votre pseudo sera utilisé pour créer une adresse de canal facile à mémoriser, par ex. pseudo%s"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Channel role and privacy"
msgstr "Rôle et confidentialité du canal"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Select a channel role with your privacy requirements."
msgstr "Sélectionner un rôle de canal adapté à vos besoins de confidentialité."
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Read more about roles"
msgstr "En savoir plus sur les rôles"
-#: ../../Zotlabs/Module/New_channel.php:138
+#: ../../Zotlabs/Module/New_channel.php:152
msgid "Create Channel"
msgstr "Créer le canal"
-#: ../../Zotlabs/Module/New_channel.php:139
+#: ../../Zotlabs/Module/New_channel.php:153
msgid ""
"A channel is your identity on this network. It can represent a person, a "
"blog, or a forum to name a few. Channels can make connections with other "
"channels to share information with highly detailed permissions."
msgstr "Un canal est votre identité sur ce réseau. Il peut représenter une personne, un blog, ou un forum par exemple. Les canaux peuvent entrer en contact les uns avec les autres pour partager des informations avec des droits d'accès très fins."
-#: ../../Zotlabs/Module/New_channel.php:140
+#: ../../Zotlabs/Module/New_channel.php:154
msgid ""
"or <a href=\"import\">import an existing channel</a> from another location."
msgstr "ou <a href=\"import\">importer un canal existant</a> d'un autre serveur."
-#: ../../Zotlabs/Module/New_channel.php:145
+#: ../../Zotlabs/Module/New_channel.php:159
msgid "Validate"
msgstr "Valider"
@@ -1642,7 +1653,7 @@ msgid ""
msgstr "Par défaut, seule l'instance du canal présente sur ce hub sera supprimée du réseau"
#: ../../Zotlabs/Module/Removeme.php:64
-#: ../../Zotlabs/Module/Settings/Channel.php:592
+#: ../../Zotlabs/Module/Settings/Channel.php:600
msgid "Remove Channel"
msgstr "Supprimer le canal"
@@ -1701,7 +1712,7 @@ msgid ""
msgstr "Vous pourriez avoir besoin d'importer le fichier \"install/schema_xxx.sql\" manuellement via un client de base de données (ex: phpmyadmin)."
#: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262
-#: ../../Zotlabs/Module/Setup.php:745
+#: ../../Zotlabs/Module/Setup.php:749
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr "Merci de consulter le fichier \"install/INSTALL.txt\"."
@@ -1962,115 +1973,107 @@ msgstr "Erreur&nbsp;: le module xml de PHP est requis pour le DAV, mais pas inst
msgid "Error: zip PHP module required but not installed."
msgstr "Erreur&nbsp;: le module zip de PHP est requis, mais pas installé."
-#: ../../Zotlabs/Module/Setup.php:569
+#: ../../Zotlabs/Module/Setup.php:570 ../../Zotlabs/Module/Setup.php:579
+msgid ".htconfig.php is writable"
+msgstr "Le fichier .htconfig.php est accessible en écriture"
+
+#: ../../Zotlabs/Module/Setup.php:575
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\""
" in the top folder of your web server and it is unable to do so."
msgstr "L'installeur web a besoin de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais en est incapable."
-#: ../../Zotlabs/Module/Setup.php:570
+#: ../../Zotlabs/Module/Setup.php:576
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr "C'est généralement lié à un problème de droits d'accès, à cause duquel le serveur web est interdit d'écriture dans le répertoire concerné - alors que votre propre utilisateur a le droit."
-#: ../../Zotlabs/Module/Setup.php:571
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
-msgstr "Au terme de cette procédure, nous vous transmettrons un texte à sauvegarder dans un fichier nommé .htconfig.php, à la racine de votre installation de $Projectname."
-
-#: ../../Zotlabs/Module/Setup.php:572
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Autrement, vous pouvez contourner toute cette procédure et réaliser l'installation manuellement. Merci de consulter le fichier \"install/INSTALL.txt\" pour les instructions détaillées."
-
-#: ../../Zotlabs/Module/Setup.php:575
-msgid ".htconfig.php is writable"
-msgstr "Le fichier .htconfig.php est accessible en écriture"
+#: ../../Zotlabs/Module/Setup.php:577
+msgid "Please see install/INSTALL.txt for additional information."
+msgstr "Merci de vous reporter à install/INSTALL.txt pour des informations supplémentaires."
-#: ../../Zotlabs/Module/Setup.php:589
+#: ../../Zotlabs/Module/Setup.php:593
msgid ""
"This software uses the Smarty3 template engine to render its web views. "
"Smarty3 compiles templates to PHP to speed up rendering."
msgstr "Ce logiciel utilise Smarty3 comme moteur de modèles pour afficher ses vues Web. Smarty3 compile ses modèles en PHP pour accélérer le rendu."
-#: ../../Zotlabs/Module/Setup.php:590
+#: ../../Zotlabs/Module/Setup.php:594
#, php-format
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory %s under the top level web folder."
msgstr "Afin de stocker ces modèles compilés, le serveur Web doit disposer d'un accès en écriture au répertoire %s selon le dossier Web racine."
-#: ../../Zotlabs/Module/Setup.php:591 ../../Zotlabs/Module/Setup.php:612
+#: ../../Zotlabs/Module/Setup.php:595 ../../Zotlabs/Module/Setup.php:616
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has"
" write access to this folder."
msgstr "Merci de vous assurer que l'utilisateur sous lequel le serveur web tourne (le plus souvent, www-data) a bien l'autorisation d'écrire dans ce répertoire."
-#: ../../Zotlabs/Module/Setup.php:592
+#: ../../Zotlabs/Module/Setup.php:596
#, php-format
msgid ""
"Note: as a security measure, you should give the web server write access to "
"%s only--not the template files (.tpl) that it contains."
msgstr "Note: Comme mesure de sécurité, assurez vous de donner les droits d'écriture au serveur web sur %s uniquement, pas sur les fichiers individuels (.tpl) qu'il contient."
-#: ../../Zotlabs/Module/Setup.php:595
+#: ../../Zotlabs/Module/Setup.php:599
#, php-format
msgid "%s is writable"
msgstr "Permission d'écriture sur %s activée"
-#: ../../Zotlabs/Module/Setup.php:611
+#: ../../Zotlabs/Module/Setup.php:615
msgid ""
"This software uses the store directory to save uploaded files. The web "
"server needs to have write access to the store directory under the top level"
" web folder"
msgstr "Ce logiciel utilise le répertoire de stockage pour enregistrer les fichiers téléversés. Le serveur Web doit disposer d'un accès en écriture au répertoire de stockage selon le dossier web racine."
-#: ../../Zotlabs/Module/Setup.php:615
+#: ../../Zotlabs/Module/Setup.php:619
msgid "store is writable"
msgstr "'store' est accessible en écriture"
-#: ../../Zotlabs/Module/Setup.php:647
+#: ../../Zotlabs/Module/Setup.php:651
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access"
" to this site."
msgstr "Le certificat SSL/TLS n'a pas pu être validé. Merci de le corriger, ou de désactiver l'accès https à ce site (non recommandé)."
-#: ../../Zotlabs/Module/Setup.php:648
+#: ../../Zotlabs/Module/Setup.php:652
msgid ""
"If you have https access to your website or allow connections to TCP port "
"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
"NOT use self-signed certificates!"
msgstr "Si votre serveur accepte les connexions https ou s'il permet les connexions sur le port TCP 443 (le port utilisé par le protocole https), vous DEVEZ utiliser un certificat valide. Vous ne DEVEZ PAS utiliser un certificat que vous avez vous-mêmes signé&nbsp;!"
-#: ../../Zotlabs/Module/Setup.php:649
+#: ../../Zotlabs/Module/Setup.php:653
msgid ""
"This restriction is incorporated because public posts from you may for "
"example contain references to images on your own hub."
msgstr "Nous avons ajouté cette contrainte pour éviter que vos publications publiques ne fassent référence par exemple à des images sur votre propre hub."
-#: ../../Zotlabs/Module/Setup.php:650
+#: ../../Zotlabs/Module/Setup.php:654
msgid ""
"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
msgstr "Si votre certificat n'est pas reconnu, les membres des autres sites (qui eux peuvent avoir des certificats valides) recevront des messages d'avertissement sur leur propre site se plaignant de problèmes de sécurité."
-#: ../../Zotlabs/Module/Setup.php:651
+#: ../../Zotlabs/Module/Setup.php:655
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
msgstr "Ceci peut causer des problèmes d'ergonomie ailleurs (pas seulement sur votre site), nous devons donc insister sur ce prérequis."
-#: ../../Zotlabs/Module/Setup.php:652
+#: ../../Zotlabs/Module/Setup.php:656
msgid ""
"Providers are available that issue free certificates which are browser-"
"valid."
msgstr "Il existe des autorités de certification qui vous fourniront gratuitement un certificat valide."
-#: ../../Zotlabs/Module/Setup.php:654
+#: ../../Zotlabs/Module/Setup.php:658
msgid ""
"If you are confident that the certificate is valid and signed by a trusted "
"authority, check to see if you have failed to install an intermediate cert. "
@@ -2078,37 +2081,37 @@ msgid ""
"server communications."
msgstr "Si vous êtes certain que le certificat est valide et signé par une autorité de confiance, vérifiez si l'installation d'un certificat intermédiaire aurait échoué. Ceux-ci ne sont normalement pas requis par les navigateurs, mais ils sont requis pour les communications entre serveurs."
-#: ../../Zotlabs/Module/Setup.php:656
+#: ../../Zotlabs/Module/Setup.php:660
msgid "SSL certificate validation"
msgstr "Validation du certificat SSL/TLS"
-#: ../../Zotlabs/Module/Setup.php:662
+#: ../../Zotlabs/Module/Setup.php:666
msgid ""
"Url rewrite in .htaccess is not working. Check your server "
"configuration.Test: "
msgstr "La réécriture d'URL définie dans le .htaccess ne fonctionne pas. Vérifiez votre configuration serveur. Test&nbsp;:"
-#: ../../Zotlabs/Module/Setup.php:665
+#: ../../Zotlabs/Module/Setup.php:669
msgid "Url rewrite is working"
msgstr "La réécriture d'URL fonctionne"
-#: ../../Zotlabs/Module/Setup.php:679
+#: ../../Zotlabs/Module/Setup.php:683
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr "Le fichier de configuration de la base de données - \".htconfig.php\" - ne peut être écrit. Merci de copier le texte généré dans un fichier à ce nom, à la racine de votre serveur web."
-#: ../../Zotlabs/Module/Setup.php:703
+#: ../../Zotlabs/Module/Setup.php:707
#: ../../addon/rendezvous/rendezvous.php:401
msgid "Errors encountered creating database tables."
msgstr "Erreurs rencontrées pendant la création de tables de BDD."
-#: ../../Zotlabs/Module/Setup.php:743
+#: ../../Zotlabs/Module/Setup.php:747
msgid "<h1>What next?</h1>"
msgstr "<h1>Et maintenant&nbsp;?</h1>"
-#: ../../Zotlabs/Module/Setup.php:744
+#: ../../Zotlabs/Module/Setup.php:748
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the "
"poller."
@@ -2187,13 +2190,13 @@ msgstr "Dernier contact connu"
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "Off"
msgstr "Inactif"
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "On"
msgstr "Actif"
@@ -2247,11 +2250,11 @@ msgid "No failed updates."
msgstr "Aucune mise à jour défaillante."
#: ../../Zotlabs/Module/Admin/Plugins.php:259
-#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:89
+#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:94
#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:46
-#: ../../Zotlabs/Module/Display.php:410
+#: ../../Zotlabs/Module/Display.php:453
#: ../../Zotlabs/Module/Filestorage.php:24 ../../Zotlabs/Module/Admin.php:62
-#: ../../include/items.php:3569
+#: ../../include/items.php:3619
msgid "Item not found."
msgstr "Élément introuvable"
@@ -2277,12 +2280,12 @@ msgstr "Activer"
#: ../../Zotlabs/Module/Admin/Plugins.php:341
#: ../../Zotlabs/Module/Admin/Plugins.php:436
-#: ../../Zotlabs/Module/Admin/Accounts.php:165
+#: ../../Zotlabs/Module/Admin/Accounts.php:166
#: ../../Zotlabs/Module/Admin/Logs.php:82
#: ../../Zotlabs/Module/Admin/Channels.php:145
#: ../../Zotlabs/Module/Admin/Themes.php:122
#: ../../Zotlabs/Module/Admin/Themes.php:156
-#: ../../Zotlabs/Module/Admin/Site.php:287
+#: ../../Zotlabs/Module/Admin/Site.php:294
#: ../../Zotlabs/Module/Admin/Security.php:86
#: ../../Zotlabs/Module/Admin.php:136
msgid "Administration"
@@ -2301,8 +2304,8 @@ msgstr "(Dés)activer"
#: ../../Zotlabs/Module/Admin/Plugins.php:344
#: ../../Zotlabs/Module/Admin/Themes.php:125 ../../Zotlabs/Lib/Apps.php:242
-#: ../../Zotlabs/Widget/Newmember.php:55
-#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/nav.php:105
+#: ../../Zotlabs/Widget/Newmember.php:46
+#: ../../Zotlabs/Widget/Settings_menu.php:141 ../../include/nav.php:105
#: ../../include/nav.php:192
msgid "Settings"
msgstr "Paramètres"
@@ -2410,7 +2413,7 @@ msgstr[1] "%s comptes supprimés"
msgid "Account not found"
msgstr "Compte introuvable"
-#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2462
+#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2473
#, php-format
msgid "Account '%s' deleted"
msgstr "Compte '%s' supprimé"
@@ -2425,79 +2428,80 @@ msgstr "Compte '%s' bloqué"
msgid "Account '%s' unblocked"
msgstr "Compte '%s' débloqué"
-#: ../../Zotlabs/Module/Admin/Accounts.php:166
-#: ../../Zotlabs/Module/Admin/Accounts.php:179
+#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:180
#: ../../Zotlabs/Module/Admin.php:96 ../../Zotlabs/Widget/Admin.php:23
msgid "Accounts"
msgstr "Comptes"
-#: ../../Zotlabs/Module/Admin/Accounts.php:168
+#: ../../Zotlabs/Module/Admin/Accounts.php:169
#: ../../Zotlabs/Module/Admin/Channels.php:148
msgid "select all"
msgstr "tout sélectionner"
-#: ../../Zotlabs/Module/Admin/Accounts.php:169
+#: ../../Zotlabs/Module/Admin/Accounts.php:170
msgid "Registrations waiting for confirm"
msgstr "Inscriptions en attente d'approbation"
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
msgid "Request date"
msgstr "Date de la demande"
-#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:172
msgid "No registrations."
msgstr "Pas d'inscriptions."
-#: ../../Zotlabs/Module/Admin/Accounts.php:172
-#: ../../Zotlabs/Module/Connections.php:287 ../../include/conversation.php:732
+#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Connections.php:303 ../../include/conversation.php:732
msgid "Approve"
msgstr "Approuver"
-#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Authorize.php:26
msgid "Deny"
msgstr "Refuser"
-#: ../../Zotlabs/Module/Admin/Accounts.php:175
+#: ../../Zotlabs/Module/Admin/Accounts.php:176
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Block"
msgstr "Bloquer"
-#: ../../Zotlabs/Module/Admin/Accounts.php:176
+#: ../../Zotlabs/Module/Admin/Accounts.php:177
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Unblock"
msgstr "Débloquer"
-#: ../../Zotlabs/Module/Admin/Accounts.php:181
+#: ../../Zotlabs/Module/Admin/Accounts.php:182
msgid "ID"
msgstr "Identifiant"
-#: ../../Zotlabs/Module/Admin/Accounts.php:183 ../../include/group.php:284
+#: ../../Zotlabs/Module/Admin/Accounts.php:184 ../../include/group.php:284
msgid "All Channels"
msgstr "Tous les canaux"
-#: ../../Zotlabs/Module/Admin/Accounts.php:184
+#: ../../Zotlabs/Module/Admin/Accounts.php:185
msgid "Register date"
msgstr "Date d'inscription"
-#: ../../Zotlabs/Module/Admin/Accounts.php:185
+#: ../../Zotlabs/Module/Admin/Accounts.php:186
msgid "Last login"
msgstr "Dernière connexion"
-#: ../../Zotlabs/Module/Admin/Accounts.php:186
+#: ../../Zotlabs/Module/Admin/Accounts.php:187
msgid "Expires"
msgstr "Expire le"
-#: ../../Zotlabs/Module/Admin/Accounts.php:187
+#: ../../Zotlabs/Module/Admin/Accounts.php:188
msgid "Service Class"
msgstr "Classe de service"
-#: ../../Zotlabs/Module/Admin/Accounts.php:189
+#: ../../Zotlabs/Module/Admin/Accounts.php:190
msgid ""
"Selected accounts will be deleted!\\n\\nEverything these accounts had posted"
" on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Les comptes sélectionnés seront supprimés&nbsp;!\\n\\nTout ce que ces utilisateurs ont publié sur ce site sera détruit de manière définitive&nbsp;!\\n\\nÊtes-vous sûr&nbsp;?"
-#: ../../Zotlabs/Module/Admin/Accounts.php:190
+#: ../../Zotlabs/Module/Admin/Accounts.php:191
msgid ""
"The account {0} will be deleted!\\n\\nEverything this account has posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
@@ -2606,7 +2610,7 @@ msgid "Disallow Code"
msgstr "Interdire le code"
#: ../../Zotlabs/Module/Admin/Channels.php:154
-#: ../../include/conversation.php:1808 ../../include/nav.php:378
+#: ../../include/conversation.php:1811 ../../include/nav.php:378
msgid "Channel"
msgstr "Canal"
@@ -2651,552 +2655,549 @@ msgstr "[Expérimental]"
msgid "[Unsupported]"
msgstr "[Non maintenu]"
-#: ../../Zotlabs/Module/Admin/Site.php:158
+#: ../../Zotlabs/Module/Admin/Site.php:165
msgid "Site settings updated."
msgstr "Paramètres du site sauvegardés."
-#: ../../Zotlabs/Module/Admin/Site.php:184
+#: ../../Zotlabs/Module/Admin/Site.php:191
#: ../../view/theme/redbasic_c/php/config.php:15
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3082
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3089
msgid "Default"
msgstr "Défaut"
-#: ../../Zotlabs/Module/Admin/Site.php:195
+#: ../../Zotlabs/Module/Admin/Site.php:202
#: ../../Zotlabs/Module/Settings/Display.php:130
#, php-format
msgid "%s - (Incompatible)"
msgstr "%s - (Incompatible)"
-#: ../../Zotlabs/Module/Admin/Site.php:202
+#: ../../Zotlabs/Module/Admin/Site.php:209
msgid "mobile"
msgstr "mobile"
-#: ../../Zotlabs/Module/Admin/Site.php:204
+#: ../../Zotlabs/Module/Admin/Site.php:211
msgid "experimental"
msgstr "expérimental"
-#: ../../Zotlabs/Module/Admin/Site.php:206
+#: ../../Zotlabs/Module/Admin/Site.php:213
msgid "unsupported"
msgstr "non maintenu"
-#: ../../Zotlabs/Module/Admin/Site.php:253
+#: ../../Zotlabs/Module/Admin/Site.php:260
msgid "Yes - with approval"
msgstr "Oui - avec approbation"
-#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Admin/Site.php:266
msgid "My site is not a public server"
msgstr "Mon site n'est pas un serveur public"
-#: ../../Zotlabs/Module/Admin/Site.php:260
+#: ../../Zotlabs/Module/Admin/Site.php:267
msgid "My site has paid access only"
msgstr "Mon site est à accès payant uniquement"
-#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Admin/Site.php:268
msgid "My site has free access only"
msgstr "Mon site est gratuit uniquement"
-#: ../../Zotlabs/Module/Admin/Site.php:262
+#: ../../Zotlabs/Module/Admin/Site.php:269
msgid "My site offers free accounts with optional paid upgrades"
msgstr "Mon site offre des comptes gratuits avec des améliorations payantes facultatives"
-#: ../../Zotlabs/Module/Admin/Site.php:274
+#: ../../Zotlabs/Module/Admin/Site.php:281
msgid "Beginner/Basic"
msgstr "Pour débutant/ de base"
-#: ../../Zotlabs/Module/Admin/Site.php:275
+#: ../../Zotlabs/Module/Admin/Site.php:282
msgid "Novice - not skilled but willing to learn"
msgstr "Novice - pas qualifiés, mais prêt à apprendre"
-#: ../../Zotlabs/Module/Admin/Site.php:276
+#: ../../Zotlabs/Module/Admin/Site.php:283
msgid "Intermediate - somewhat comfortable"
msgstr "Intermédiaire - assez confortable"
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:284
msgid "Advanced - very comfortable"
msgstr "Niveau avancé - trés confortable"
-#: ../../Zotlabs/Module/Admin/Site.php:278
+#: ../../Zotlabs/Module/Admin/Site.php:285
msgid "Expert - I can write computer code"
msgstr "Niveau expert - Je peux programmer"
-#: ../../Zotlabs/Module/Admin/Site.php:279
+#: ../../Zotlabs/Module/Admin/Site.php:286
msgid "Wizard - I probably know more than you do"
msgstr "Crack - J'en sais probablement plus que beaucoup"
-#: ../../Zotlabs/Module/Admin/Site.php:288 ../../Zotlabs/Widget/Admin.php:22
+#: ../../Zotlabs/Module/Admin/Site.php:295 ../../Zotlabs/Widget/Admin.php:22
msgid "Site"
msgstr "Site"
-#: ../../Zotlabs/Module/Admin/Site.php:290
+#: ../../Zotlabs/Module/Admin/Site.php:297
#: ../../Zotlabs/Module/Register.php:269
msgid "Registration"
msgstr "Inscription"
-#: ../../Zotlabs/Module/Admin/Site.php:291
+#: ../../Zotlabs/Module/Admin/Site.php:298
msgid "File upload"
msgstr "Envoi de fichier"
-#: ../../Zotlabs/Module/Admin/Site.php:292
+#: ../../Zotlabs/Module/Admin/Site.php:299
msgid "Policies"
msgstr "Stratégies"
-#: ../../Zotlabs/Module/Admin/Site.php:293
+#: ../../Zotlabs/Module/Admin/Site.php:300
#: ../../include/contact_widgets.php:16
msgid "Advanced"
msgstr "Avancé"
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:304
#: ../../addon/statusnet/statusnet.php:891
msgid "Site name"
msgstr "Nom du site"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Site default technical skill level"
msgstr "Niveau technique par défaut pour le site"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Used to provide a member experience matched to technical comfort level"
msgstr "Utilisé pour fournir une expérience utilisateur correspondant au niveau de confort technique"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Lock the technical skill level setting"
msgstr "Bloque le niveau technique du paramétrage"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Members can set their own technical comfort level by default"
msgstr "Les utilisateurs peuvent paramétrer leur propre niveau technique."
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Banner/Logo"
msgstr "Bannière/logo"
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Unfiltered HTML/CSS/JS is allowed"
msgstr "Autoriser le HTML/CSS/JS non filtré"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid "Administrator Information"
msgstr "Informations de l'administrateur"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Coordonnées de l'administrateur du site. Affichées sur la page 'siteinfo'. Vous pouvez utiliser du BBCode ici"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
#: ../../Zotlabs/Module/Siteinfo.php:21
msgid "Site Information"
msgstr "Site information"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
msgid ""
"Publicly visible description of this site. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Description du site visible publiquement. Affiché sur la page d'information du site. BBCode peut être utilisé ici."
-#: ../../Zotlabs/Module/Admin/Site.php:306
+#: ../../Zotlabs/Module/Admin/Site.php:313
msgid "System language"
msgstr "Langue du système"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid "System theme"
msgstr "Thème du système"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Thème par défaut - il peut être changé pour chaque profil utilisateur - <a href='#' id='cnftheme'>modifier le thème</a>"
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Mobile system theme"
-msgstr "Thème par défaut pour les mobiles"
-
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Theme for mobile devices"
-msgstr "Thème pour les mobiles"
-
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "Allow Feeds as Connections"
msgstr "Autoriser les Flux (RSS) comme contacts"
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "(Heavy system resource usage)"
msgstr "(Impact important sur les ressources)"
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid "Maximum image size"
msgstr "Taille maximale des images"
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Taille maximum, en octets, des images envoyées. Par défaut 0, soit sans limite."
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid "Does this site allow new member registration?"
msgstr "Est-ce que l'enregistrement de nouveaux membres est autorisé sur ce site&nbsp;?"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid "Invitation only"
msgstr "Sur invitation seulement"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr "N'autoriser que les nouvelles inscriptions avec code d'invitation. La stratégie d'inscription ci-dessus doit être mise sur \"Oui\"."
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age"
msgstr "Âge minimum"
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age (in years) for who may register on this site."
msgstr "Âge minimum (en années) pour les personnes pouvant s'inscrire sur ce site."
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid "Which best describes the types of account offered by this hub?"
msgstr "Quelle est la meilleure description des types de comptes proposés sur ce hub&nbsp;?"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Register text"
msgstr "Texte d'inscription"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Will be displayed prominently on the registration page."
msgstr "Sera affiché de manière bien visible sur le formulaire d'inscription."
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid "Site homepage to show visitors (default: login box)"
msgstr "Page d'accueil du site à montrer aux visiteurs (par défaut&nbsp;: boîte de dialogue de connexion)"
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid ""
"example: 'public' to show public stream, 'page/sys/home' to show a system "
"webpage called 'home' or 'include:home.html' to include a file."
msgstr "exemple&nbsp;:'public' pour montrer le flux public, 'page/sys/home' pour montrer une page système appelée 'home' ou 'include:home.html' pour inclure un fichier."
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid "Preserve site homepage URL"
msgstr "Préserver l'adresse d'accueil du site"
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr "Présenter la page d'accueil du site dans un cadre à l'adresse d'origine, plutôt que de rediriger"
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid "Accounts abandoned after x days"
msgstr "Les comptes sont abandonnés après x jours"
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Eviter de gaspiller les ressources du système en interrogeant des hubs distants pour des canaux abandonnés. Mettez 0 pour ne pas avoir de limite de temps."
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid "Allowed friend domains"
msgstr "Domaines amicaux autorisés"
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Liste de noms de domaines séparés par des virgules pour lesquels ce site acceptera les demandes d'amitié. Les caractères génériques (*) sont acceptés. Laissez vide pour accepter tous les domaines."
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid "Verify Email Addresses"
msgstr "Demander vérification des adresses de courriel"
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr "Cocher pour que les adresses utilisées à l'inscription soient vérifiées (recommandé)."
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid "Force publish"
msgstr "Publicité forcée"
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Cocher pour forcer la publication de tous les profils du site dans l'annuaire."
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid "Import Public Streams"
msgstr "Flux publics importés"
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr "Importer du contenu public à partir d'autres sites et autoriser l'accès à ce contenu. Attention&nbsp;: ce contenu n'est pas modéré."
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid "Site only Public Streams"
msgstr "Flux publics du site seulement"
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid ""
"Allow access to public content originating only from this site if Imported "
"Public Streams are disabled."
msgstr "Autoriser l'accès au contenu public provenant uniquement de ce site si les flux publics importés sont désactivés."
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid "Allow anybody on the internet to access the Public streams"
msgstr "Permettre à n'importe qui sur Internet d'accéder aux flux publics."
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid ""
"Disable to require authentication before viewing. Warning: this content is "
"unmoderated."
msgstr "Désactiver l'authentification avant l'affichage. Attention : ce contenu n'est pas modéré."
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid "Login on Homepage"
msgstr "Connexion sur la page d'accueil"
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr "Présenter une boîte de dialogue de connexion aux visiteurs sur la page d'accueil si aucun autre contenu n'a été configuré."
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid "Enable context help"
msgstr "Permettre l'aide contextuelle"
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid ""
"Display contextual help for the current page when the help button is "
"pressed."
msgstr "Afficher l'aide contextuel en cliquant sur le bouton aide."
-#: ../../Zotlabs/Module/Admin/Site.php:329
+#: ../../Zotlabs/Module/Admin/Site.php:336
msgid "Reply-to email address for system generated email."
msgstr "Adresse courriel de retour pour les courriels générés par l'application."
-#: ../../Zotlabs/Module/Admin/Site.php:330
+#: ../../Zotlabs/Module/Admin/Site.php:337
msgid "Sender (From) email address for system generated email."
msgstr "Adresse courriel de l'expéditeur (champ \"De\") pour les courriels générés par l'application."
-#: ../../Zotlabs/Module/Admin/Site.php:331
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Name of email sender for system generated email."
msgstr "Nom ou courriel de l'expéditeur pour les courriels générés par l'application."
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Directory Server URL"
msgstr "URL du serveur d'annuaire"
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Default directory server"
msgstr "Serveur d'annuaire par défaut"
-#: ../../Zotlabs/Module/Admin/Site.php:335
+#: ../../Zotlabs/Module/Admin/Site.php:342
msgid "Proxy user"
msgstr "Utilisateur du proxy"
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:343
msgid "Proxy URL"
msgstr "URL du proxy"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Network timeout"
msgstr "Délai maximal du réseau"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "En secondes. Mettre à 0 pour ne pas avoir de délai maximal (non recommandé)."
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid "Delivery interval"
msgstr "Intervalle de distribution"
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr "Temporise le processus de distribution de tant de secondes pour réduire la charge sur le système. Valeurs recommandées&nbsp;: 4-5 pour les serveurs mutualisés, 2-3 pour les VPS. 0-1 pour les gros serveurs dédiés."
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid "Deliveries per process"
msgstr "Distributions par processus"
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust"
" if necessary to tune system performance. Recommend: 1-5."
msgstr "Nombre de distributions à tenter au sein d'un seul processus système. Ajuster si nécessaire pour affiner la performance du système. Recommandé&nbsp;:1-5."
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid "Queue Threshold"
msgstr "Seuil de file d'attente"
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid ""
"Always defer immediate delivery if queue contains more than this number of "
"entries."
msgstr "Reportez toujours la livraison immédiate si la file d'attente contient plus que ce nombre d'entrées."
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid "Poll interval"
msgstr "Intervalle de scrutation"
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Temporise le processus de scrutation en tâche de fond de tant de secondes, pour réduire la charge. Si 0, utilise l'intervalle de distribution."
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid "Path to ImageMagick convert program"
msgstr "Chemin d'accès au programme \"convert\" de ImageMagick"
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid ""
"If set, use this program to generate photo thumbnails for huge images ( > "
"4000 pixels in either dimension), otherwise memory exhaustion may occur. "
"Example: /usr/bin/convert"
msgstr "Si cette option est activée, utilisez ce programme pour générer des vignettes de photos pour des images géantes ( > 4000 pixels dans l'une ou l'autre dimension), sinon la mémoire risque de s'épuiser. Exemple : /usr/bin/convert"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "Allow SVG thumbnails in file browser"
msgstr "Autoriser les vignettes SVG dans le navigateur de fichiers"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "WARNING: SVG images may contain malicious code."
msgstr "ATTENTION : les images SVG peuvent contenir du code malveillant."
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid "Maximum Load Average"
msgstr "Charge maximale moyenne"
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Charge système maximale au-delà de laquelle distribution et scrutation sont reportées - par défaut 50."
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "Expiration period in days for imported (grid/network) content"
msgstr "Délai d'expiration pour le contenu importé (réseau)"
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "0 for no expiration of imported content"
msgstr "0 pour ne pas expirer le contenu importé"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:353
+msgid ""
+"Do not expire any posts which have comments less than this many days ago"
+msgstr "Ne pas considérer comme expirés les messages qui ont reçu des commentaires depuis moins de ce nombre de jours"
+
+#: ../../Zotlabs/Module/Admin/Site.php:355
msgid ""
"Public servers: Optional landing (marketing) webpage for new registrants"
msgstr "Serveurs publics : page Web facultative d'atterrissage (marketing) pour les nouveaux inscrits."
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:355
#, php-format
msgid "Create this page first. Default is %s/register"
msgstr "Créez d'abord cette page. La valeur par défaut est %s /register"
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Page to display after creating a new channel"
msgstr "Page à afficher après la création d'un nouveau canal"
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Recommend: profiles, go, or settings"
msgstr "Recommander : profils, go, ou paramètres"
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Optional: site location"
msgstr "Option : emplacement du site"
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Region or country"
msgstr "Région ou pays"
-#: ../../Zotlabs/Module/Admin/Profs.php:69
+#: ../../Zotlabs/Module/Admin/Profs.php:89
msgid "New Profile Field"
msgstr "Nouveau champ de profil"
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "Field nickname"
msgstr "Nom court du champ"
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "System name of field"
msgstr "Nom système du champ"
-#: ../../Zotlabs/Module/Admin/Profs.php:71
#: ../../Zotlabs/Module/Admin/Profs.php:91
+#: ../../Zotlabs/Module/Admin/Profs.php:111
msgid "Input type"
msgstr "Type de champ"
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Field Name"
msgstr "Nom du champ"
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Label on profile pages"
msgstr "Étiquette sur les pages de profil"
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Help text"
msgstr "Aide à la saisie"
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Additional info (optional)"
msgstr "Informations additionnelles (facultatif)"
-#: ../../Zotlabs/Module/Admin/Profs.php:74
-#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32
+#: ../../Zotlabs/Module/Admin/Profs.php:94
+#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
#: ../../Zotlabs/Widget/Notes.php:18 ../../include/text.php:1052
#: ../../include/text.php:1064
msgid "Save"
msgstr "Enregistrer"
-#: ../../Zotlabs/Module/Admin/Profs.php:83
+#: ../../Zotlabs/Module/Admin/Profs.php:103
msgid "Field definition not found"
msgstr "Définition du champ introuvable"
-#: ../../Zotlabs/Module/Admin/Profs.php:89
+#: ../../Zotlabs/Module/Admin/Profs.php:109
msgid "Edit Profile Field"
msgstr "Modifier le champ de profil"
-#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../Zotlabs/Widget/Admin.php:30
+#: ../../Zotlabs/Module/Admin/Profs.php:168 ../../Zotlabs/Widget/Admin.php:30
msgid "Profile Fields"
msgstr "Champs de profil"
-#: ../../Zotlabs/Module/Admin/Profs.php:148
+#: ../../Zotlabs/Module/Admin/Profs.php:169
msgid "Basic Profile Fields"
msgstr "Champs de profil de base"
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "Advanced Profile Fields"
msgstr "Champs de profil avancés"
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "(In addition to basic fields)"
msgstr "(en plus des champs de base)"
-#: ../../Zotlabs/Module/Admin/Profs.php:151
+#: ../../Zotlabs/Module/Admin/Profs.php:172
msgid "All available fields"
msgstr "Tous les champs disponibles"
-#: ../../Zotlabs/Module/Admin/Profs.php:152
+#: ../../Zotlabs/Module/Admin/Profs.php:173
msgid "Custom Fields"
msgstr "Champs personnalisés"
-#: ../../Zotlabs/Module/Admin/Profs.php:156
+#: ../../Zotlabs/Module/Admin/Profs.php:177
msgid "Create Custom Field"
msgstr "Créer un champ personnalisé"
@@ -3364,11 +3365,11 @@ msgctxt "acl"
msgid "Profile"
msgstr "Profil"
-#: ../../Zotlabs/Module/Moderate.php:55
+#: ../../Zotlabs/Module/Moderate.php:62
msgid "Comment approved"
msgstr "Commentaire validé"
-#: ../../Zotlabs/Module/Moderate.php:59
+#: ../../Zotlabs/Module/Moderate.php:66
msgid "Comment deleted"
msgstr "Commentaire supprimé"
@@ -3429,7 +3430,7 @@ msgstr "Certains droits d'accès peuvent être hérités de vos <a href=\"settin
msgid "Friends"
msgstr "Amis"
-#: ../../Zotlabs/Module/Settings/Channel.php:262
+#: ../../Zotlabs/Module/Settings/Channel.php:264
#: ../../Zotlabs/Module/Defperms.php:103
#: ../../addon/rendezvous/rendezvous.php:82
#: ../../addon/openstreetmap/openstreetmap.php:184
@@ -3439,409 +3440,424 @@ msgstr "Amis"
msgid "Settings updated."
msgstr "Paramètres mis à jour."
-#: ../../Zotlabs/Module/Settings/Channel.php:323
+#: ../../Zotlabs/Module/Settings/Channel.php:325
msgid "Nobody except yourself"
msgstr "Personne sauf vous"
-#: ../../Zotlabs/Module/Settings/Channel.php:324
+#: ../../Zotlabs/Module/Settings/Channel.php:326
msgid "Only those you specifically allow"
msgstr "Seulement ceux que vous autorisez spécifiquement"
-#: ../../Zotlabs/Module/Settings/Channel.php:325
+#: ../../Zotlabs/Module/Settings/Channel.php:327
msgid "Approved connections"
msgstr "Contacts validés"
-#: ../../Zotlabs/Module/Settings/Channel.php:326
+#: ../../Zotlabs/Module/Settings/Channel.php:328
msgid "Any connections"
msgstr "Tous les contacts"
-#: ../../Zotlabs/Module/Settings/Channel.php:327
+#: ../../Zotlabs/Module/Settings/Channel.php:329
msgid "Anybody on this website"
msgstr "Tous les utilisateurs du hub"
-#: ../../Zotlabs/Module/Settings/Channel.php:328
+#: ../../Zotlabs/Module/Settings/Channel.php:330
msgid "Anybody in this network"
msgstr "Tous les utilisateurs sur ce réseau"
-#: ../../Zotlabs/Module/Settings/Channel.php:329
+#: ../../Zotlabs/Module/Settings/Channel.php:331
msgid "Anybody authenticated"
msgstr "Tous les utilisateurs authentifiés"
-#: ../../Zotlabs/Module/Settings/Channel.php:330
+#: ../../Zotlabs/Module/Settings/Channel.php:332
msgid "Anybody on the internet"
msgstr "Tous les utilisateurs d'Internet"
-#: ../../Zotlabs/Module/Settings/Channel.php:405
+#: ../../Zotlabs/Module/Settings/Channel.php:407
msgid "Publish your default profile in the network directory"
msgstr "Publier votre profil par défaut dans l'annuaire du réseau"
-#: ../../Zotlabs/Module/Settings/Channel.php:410
+#: ../../Zotlabs/Module/Settings/Channel.php:412
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "Nous autoriser à vous suggérer comme ami(e) potentiel(le) aux nouveaux membres?"
-#: ../../Zotlabs/Module/Settings/Channel.php:414
+#: ../../Zotlabs/Module/Settings/Channel.php:416
msgid "or"
msgstr "ou"
-#: ../../Zotlabs/Module/Settings/Channel.php:419
+#: ../../Zotlabs/Module/Settings/Channel.php:425
msgid "Your channel address is"
msgstr "L'adresse de votre canal est"
-#: ../../Zotlabs/Module/Settings/Channel.php:422
+#: ../../Zotlabs/Module/Settings/Channel.php:428
msgid "Your files/photos are accessible via WebDAV at"
msgstr "Vos fichiers/photos sont accessibles via WebDAV à"
-#: ../../Zotlabs/Module/Settings/Channel.php:486
+#: ../../Zotlabs/Module/Settings/Channel.php:493
msgid "Channel Settings"
msgstr "Paramètres du canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:493
+#: ../../Zotlabs/Module/Settings/Channel.php:500
msgid "Basic Settings"
msgstr "Paramètres standard"
-#: ../../Zotlabs/Module/Settings/Channel.php:494
-#: ../../include/channel.php:1522
+#: ../../Zotlabs/Module/Settings/Channel.php:501
+#: ../../include/channel.php:1521
msgid "Full Name:"
msgstr "Nom complet&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Channel.php:502
#: ../../Zotlabs/Module/Settings/Account.php:119
msgid "Email Address:"
msgstr "Adresse de courriel&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:496
+#: ../../Zotlabs/Module/Settings/Channel.php:503
msgid "Your Timezone:"
msgstr "Votre fureau horaire&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Default Post Location:"
msgstr "Emplacement de publication par défaut&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Geographical location to display on your posts"
msgstr "Emplacement géographique à afficher sur vos publications"
-#: ../../Zotlabs/Module/Settings/Channel.php:498
+#: ../../Zotlabs/Module/Settings/Channel.php:505
msgid "Use Browser Location:"
msgstr "Utiliser la géolocalisation du navigateur&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid "Adult Content"
msgstr "Contenu \"adulte\""
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr "Ce canal publie plus ou moins fréquemment du contenu pour adultes. (Merci d'indiquer tout contenu pour adulte ou potentiellement choquant avec l'étiquette <em>#NSFW</em> - Not Safe For Work)"
-#: ../../Zotlabs/Module/Settings/Channel.php:502
+#: ../../Zotlabs/Module/Settings/Channel.php:509
msgid "Security and Privacy Settings"
msgstr "Paramètres de sécurité et de confidentialité"
-#: ../../Zotlabs/Module/Settings/Channel.php:504
+#: ../../Zotlabs/Module/Settings/Channel.php:511
msgid "Your permissions are already configured. Click to view/adjust"
msgstr "Vous droits d'accès sont déjà paramétrés. Cliquer pour voir/modifier"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Hide my online presence"
msgstr "Cacher ma présence en ligne"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Prevents displaying in your profile that you are online"
msgstr "Cacher votre statut (en ligne/hors ligne) sur votre profil"
-#: ../../Zotlabs/Module/Settings/Channel.php:508
+#: ../../Zotlabs/Module/Settings/Channel.php:515
msgid "Simple Privacy Settings:"
msgstr "Paramètres de confidentialité simplifiés&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:509
+#: ../../Zotlabs/Module/Settings/Channel.php:516
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr "Très public - <em>extrèmement permissif (à n'utiliser qu'en connaissance de cause)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:510
+#: ../../Zotlabs/Module/Settings/Channel.php:517
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr "Classique - <em>public par défaut, privé en cas de besoin (comparable aux droits d'accès type réseau social, avec une confidentialité améliorée)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:511
+#: ../../Zotlabs/Module/Settings/Channel.php:518
msgid "Private - <em>default private, never open or public</em>"
msgstr "Privé - <em>privé par défaut, jamais ouvert ni public</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:512
+#: ../../Zotlabs/Module/Settings/Channel.php:519
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr "Bloqué - <em>par défaut, bloqué de/vers tout le monde</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid "Allow others to tag your posts"
msgstr "Autoriser les autres à \"étiqueter\" vos publications"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "Souvent utilisé par la communauté pour identifier un contenu inapproprié a posteriori "
-#: ../../Zotlabs/Module/Settings/Channel.php:516
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "Channel Permission Limits"
msgstr "Limites des droits d'accès du canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "Expire other channel content after this many days"
msgstr "Faire expirer le contenu des autres canaux après n jours"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "0 or blank to use the website limit."
msgstr "0 ou vide pour utiliser la limite du site web"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
#, php-format
msgid "This website expires after %d days."
msgstr "Ce site web expirera après %d jours."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "This website does not expire imported content."
msgstr "Ce site web ne périme pas le contenu importé."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "The website limit takes precedence if lower than your limit."
msgstr "La limite du site Web a priorité si elle est inférieure à votre limite."
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "Maximum Friend Requests/Day:"
msgstr "Nombre maximum de demandes de contact par jour&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "May reduce spam activity"
msgstr "Contribue à réduire l'impact des indésirables"
-#: ../../Zotlabs/Module/Settings/Channel.php:520
+#: ../../Zotlabs/Module/Settings/Channel.php:527
msgid "Default Privacy Group"
msgstr "Groupe de contacts par défaut&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:522
+#: ../../Zotlabs/Module/Settings/Channel.php:529
msgid "Use my default audience setting for the type of object published"
msgstr "Utiliser mon paramètre de publication par défaut pour le type d'objet publié"
-#: ../../Zotlabs/Module/Settings/Channel.php:523
+#: ../../Zotlabs/Module/Settings/Channel.php:530
msgid "Profile to assign new connections"
msgstr "Profil pour assigner de nouvelles connexions"
-#: ../../Zotlabs/Module/Settings/Channel.php:532
+#: ../../Zotlabs/Module/Settings/Channel.php:539
msgid "Channel permissions category:"
msgstr "Profils d'accès du canal&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:533
+#: ../../Zotlabs/Module/Settings/Channel.php:540
msgid "Default Permissions Group"
msgstr "Groupe d'accès par défaut"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Maximum private messages per day from unknown people:"
msgstr "Nombre maximum de messages privés émanant d'inconnus, par jour&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Useful to reduce spamming"
msgstr "Utile pour réduire les indésirables"
-#: ../../Zotlabs/Module/Settings/Channel.php:542
+#: ../../Zotlabs/Module/Settings/Channel.php:549
#: ../../Zotlabs/Lib/Enotify.php:68
msgid "Notification Settings"
msgstr "Paramètres de notification"
-#: ../../Zotlabs/Module/Settings/Channel.php:543
+#: ../../Zotlabs/Module/Settings/Channel.php:550
msgid "By default post a status message when:"
msgstr "Par défaut, publier un statut quand&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:544
+#: ../../Zotlabs/Module/Settings/Channel.php:551
msgid "accepting a friend request"
msgstr "vous acceptez une demande de contact"
-#: ../../Zotlabs/Module/Settings/Channel.php:545
+#: ../../Zotlabs/Module/Settings/Channel.php:552
msgid "joining a forum/community"
msgstr "vous rejoignez un forum ou une communauté"
-#: ../../Zotlabs/Module/Settings/Channel.php:546
+#: ../../Zotlabs/Module/Settings/Channel.php:553
msgid "making an <em>interesting</em> profile change"
msgstr "vous faîtes une modification <em>intéressante</em> de votre profil"
-#: ../../Zotlabs/Module/Settings/Channel.php:547
+#: ../../Zotlabs/Module/Settings/Channel.php:554
msgid "Send a notification email when:"
msgstr "Envoyer un courriel de notification quand&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:548
+#: ../../Zotlabs/Module/Settings/Channel.php:555
msgid "You receive a connection request"
msgstr "Vous recevez une demande de contact"
-#: ../../Zotlabs/Module/Settings/Channel.php:549
+#: ../../Zotlabs/Module/Settings/Channel.php:556
msgid "Your connections are confirmed"
msgstr "Vos contacts sont confirmés"
-#: ../../Zotlabs/Module/Settings/Channel.php:550
+#: ../../Zotlabs/Module/Settings/Channel.php:557
msgid "Someone writes on your profile wall"
msgstr "Quelqu'un a écrit sur votre mur"
-#: ../../Zotlabs/Module/Settings/Channel.php:551
+#: ../../Zotlabs/Module/Settings/Channel.php:558
msgid "Someone writes a followup comment"
msgstr "Quelqu'un a commenté vos publications"
-#: ../../Zotlabs/Module/Settings/Channel.php:552
+#: ../../Zotlabs/Module/Settings/Channel.php:559
msgid "You receive a private message"
msgstr "Vous recevez un message privé"
-#: ../../Zotlabs/Module/Settings/Channel.php:553
+#: ../../Zotlabs/Module/Settings/Channel.php:560
msgid "You receive a friend suggestion"
msgstr "Vous recevez une suggestion d'amitié/contact"
-#: ../../Zotlabs/Module/Settings/Channel.php:554
+#: ../../Zotlabs/Module/Settings/Channel.php:561
msgid "You are tagged in a post"
msgstr "Vous êtes étiqueté dans une publication"
-#: ../../Zotlabs/Module/Settings/Channel.php:555
+#: ../../Zotlabs/Module/Settings/Channel.php:562
msgid "You are poked/prodded/etc. in a post"
msgstr "Vous êtes tapoté/encouragé/etc. dans une publication"
-#: ../../Zotlabs/Module/Settings/Channel.php:557
+#: ../../Zotlabs/Module/Settings/Channel.php:564
msgid "Someone likes your post/comment"
msgstr "Quelqu'un aime votre publication/commentaire"
-#: ../../Zotlabs/Module/Settings/Channel.php:560
+#: ../../Zotlabs/Module/Settings/Channel.php:567
msgid "Show visual notifications including:"
msgstr "Afficher des notifications visuelles y compris&nbsp;:"
-#: ../../Zotlabs/Module/Settings/Channel.php:562
+#: ../../Zotlabs/Module/Settings/Channel.php:569
msgid "Unseen grid activity"
msgstr "Activité du réseau pas encore consultée"
-#: ../../Zotlabs/Module/Settings/Channel.php:563
+#: ../../Zotlabs/Module/Settings/Channel.php:570
msgid "Unseen channel activity"
msgstr "Activité non vue sur le canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
+#: ../../Zotlabs/Module/Settings/Channel.php:571
msgid "Unseen private messages"
msgstr "Messages privés non lus"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
-#: ../../Zotlabs/Module/Settings/Channel.php:569
-#: ../../Zotlabs/Module/Settings/Channel.php:570
#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:576
+#: ../../Zotlabs/Module/Settings/Channel.php:577
+#: ../../Zotlabs/Module/Settings/Channel.php:578
#: ../../addon/jappixmini/jappixmini.php:343
msgid "Recommended"
msgstr "Recommandé"
-#: ../../Zotlabs/Module/Settings/Channel.php:565
+#: ../../Zotlabs/Module/Settings/Channel.php:572
msgid "Upcoming events"
msgstr "Événements à venir"
-#: ../../Zotlabs/Module/Settings/Channel.php:566
+#: ../../Zotlabs/Module/Settings/Channel.php:573
msgid "Events today"
msgstr "Événements aujourd'hui"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Upcoming birthdays"
msgstr "Anniversaires à venir"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Not available in all themes"
msgstr "Pas disponible dans tous les thèmes"
-#: ../../Zotlabs/Module/Settings/Channel.php:568
+#: ../../Zotlabs/Module/Settings/Channel.php:575
msgid "System (personal) notifications"
msgstr "Notifications système (personnelles)"
-#: ../../Zotlabs/Module/Settings/Channel.php:569
+#: ../../Zotlabs/Module/Settings/Channel.php:576
msgid "System info messages"
msgstr "Messages d'info système"
-#: ../../Zotlabs/Module/Settings/Channel.php:570
+#: ../../Zotlabs/Module/Settings/Channel.php:577
msgid "System critical alerts"
msgstr "Alertes critiques système"
-#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:578
msgid "New connections"
msgstr "Nouveaux contacts"
-#: ../../Zotlabs/Module/Settings/Channel.php:572
+#: ../../Zotlabs/Module/Settings/Channel.php:579
msgid "System Registrations"
msgstr "Inscriptions système"
-#: ../../Zotlabs/Module/Settings/Channel.php:573
+#: ../../Zotlabs/Module/Settings/Channel.php:580
msgid "Unseen shared files"
msgstr "Fichiers partagés non vus"
-#: ../../Zotlabs/Module/Settings/Channel.php:574
+#: ../../Zotlabs/Module/Settings/Channel.php:581
msgid "Unseen public activity"
msgstr "Activité publique non vue"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:582
+msgid "Unseen likes and dislikes"
+msgstr "Aime et n'aime pas non consultés"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:583
msgid "Email notification hub (hostname)"
msgstr "Concentrateur de notification par courriel (nom d'hôte)"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:583
#, php-format
msgid ""
"If your channel is mirrored to multiple hubs, set this to your preferred "
"location. This will prevent duplicate email notifications. Example: %s"
msgstr "Si votre canal est dupliqué sur plusieurs hubs, définissez cet emplacement comme votre emplacement préféré. Cela empêchera les notifications par courriel en double. Exemple : %s"
-#: ../../Zotlabs/Module/Settings/Channel.php:576
-msgid ""
-"Also show new wall posts, private messages and connections under Notices"
-msgstr "Afficher également les nouvelles publications sur le mur, les messages privés et les contacts dans Notifications"
+#: ../../Zotlabs/Module/Settings/Channel.php:584
+msgid "Show new wall posts, private messages and connections under Notices"
+msgstr "Montrer les nouveaux envois, messages privés et les nouvelles connexions dans Notifications"
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Notify me of events this many days in advance"
msgstr "Me prévenir d’événements à venir tant de jours en avance"
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Must be greater than 0"
msgstr "Doit être supérieur à 0"
-#: ../../Zotlabs/Module/Settings/Channel.php:584
+#: ../../Zotlabs/Module/Settings/Channel.php:592
msgid "Advanced Account/Page Type Settings"
msgstr "Paramètres avancés de compte/type de page"
-#: ../../Zotlabs/Module/Settings/Channel.php:585
+#: ../../Zotlabs/Module/Settings/Channel.php:593
msgid "Change the behaviour of this account for special situations"
msgstr "Modifie le comportement de ce compte pour des situations particulières"
-#: ../../Zotlabs/Module/Settings/Channel.php:587
+#: ../../Zotlabs/Module/Settings/Channel.php:595
msgid "Miscellaneous Settings"
msgstr "Paramètres divers"
-#: ../../Zotlabs/Module/Settings/Channel.php:588
+#: ../../Zotlabs/Module/Settings/Channel.php:596
msgid "Default photo upload folder"
msgstr "Répertoire par défaut pour les photos téléversées"
-#: ../../Zotlabs/Module/Settings/Channel.php:588
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:596
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "%Y - current year, %m - current month"
msgstr "%Y - année en cours, %m - mois en cours"
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "Default file upload folder"
msgstr "Répertoire par défaut pour les fichiers téléversés"
-#: ../../Zotlabs/Module/Settings/Channel.php:591
+#: ../../Zotlabs/Module/Settings/Channel.php:599
msgid "Personal menu to display in your channel pages"
msgstr "Menu personnel à afficher sur les pages de votre canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:593
+#: ../../Zotlabs/Module/Settings/Channel.php:601
msgid "Remove this channel."
msgstr "Supprimer ce canal"
-#: ../../Zotlabs/Module/Settings/Channel.php:594
+#: ../../Zotlabs/Module/Settings/Channel.php:602
msgid "Firefox Share $Projectname provider"
msgstr "Connecteur $Projectname pour Firefox Share"
-#: ../../Zotlabs/Module/Settings/Channel.php:595
+#: ../../Zotlabs/Module/Settings/Channel.php:603
msgid "Start calendar week on Monday"
msgstr "Commencer la semaine du calendrier le lundi"
-#: ../../Zotlabs/Module/Settings/Features.php:45
+#: ../../Zotlabs/Module/Settings/Features.php:73
msgid "Additional Features"
msgstr "Fonctionnalités additionnelles"
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid "Your technical skill level"
+msgstr "Votre niveau technique"
+
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid ""
+"Used to provide a member experience and additional features consistent with "
+"your comfort level"
+msgstr "Utilisé pour offrir une expérience de membre et des fonctions supplémentaires compatibles avec votre niveau de confort."
+
#: ../../Zotlabs/Module/Settings/Tokens.php:31
#, php-format
msgid "This channel is limited to %d tokens"
@@ -3870,7 +3886,7 @@ msgid ""
msgstr "Vous pouvez également fournir des liens d'accès, style <em>dropbox</em>, aux amis et aux associés en ajoutant le mot de passe de connexion à l'URL d'un site spécifique, comme indiqué. Exemples:"
#: ../../Zotlabs/Module/Settings/Tokens.php:150
-#: ../../Zotlabs/Widget/Settings_menu.php:92
+#: ../../Zotlabs/Widget/Settings_menu.php:100
msgid "Guest Access Tokens"
msgstr "Jeton d'accès pour un invité"
@@ -3891,6 +3907,98 @@ msgstr "Date d'expiration sous la forme année mois jour (AAAA-MM-JJ)"
msgid "Their Settings"
msgstr "Leurs paramètres"
+#: ../../Zotlabs/Module/Settings/Oauth2.php:35
+msgid "Name and Secret are required"
+msgstr "Un nom et un secret sont requis"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:83
+msgid "Add OAuth2 application"
+msgstr "Ajouter une application OAuth2"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+msgid "Name of application"
+msgstr "Nom de l'application"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+#: ../../Zotlabs/Module/Settings/Oauth.php:118
+#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
+msgid "Consumer Secret"
+msgstr "Secret client"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Généré automatiquement - à changer si besoin. Longueur maximale 20 caractères."
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:119
+msgid "Redirect"
+msgstr "Redirection"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "URI de redirection - laissez vide, sauf si votre application le requiert spécifiquement"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+msgid "Grant Types"
+msgstr "Types de bourses"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "leave blank unless your application sepcifically requires this"
+msgstr "Laisser vide, sauf si votre application le requiert spécifiquement"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "Authorization scope"
+msgstr "Portée de l'autorisation"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:102
+msgid "OAuth2 Application not found."
+msgstr "Application OAuth2 introuvable"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:111
+#: ../../Zotlabs/Module/Settings/Oauth2.php:148
+#: ../../Zotlabs/Module/Settings/Oauth.php:87
+#: ../../Zotlabs/Module/Settings/Oauth.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:149
+msgid "Add application"
+msgstr "Ajouter une application"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:147
+msgid "Connected OAuth2 Apps"
+msgstr "Applications OAuth2 connectées"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:151
+#: ../../Zotlabs/Module/Settings/Oauth.php:152
+msgid "Client key starts with"
+msgstr "La clef partagée commence par"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:152
+#: ../../Zotlabs/Module/Settings/Oauth.php:153
+msgid "No name"
+msgstr "Sans nom"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:153
+#: ../../Zotlabs/Module/Settings/Oauth.php:154
+msgid "Remove authorization"
+msgstr "Révoquer l'autorisation"
+
#: ../../Zotlabs/Module/Settings/Account.php:20
msgid "Not valid email."
msgstr "Adresse de courriel non valide."
@@ -3947,16 +4055,6 @@ msgstr "Confirmez le nouveau mot de passe"
msgid "Leave password fields blank unless changing"
msgstr "Laissez les mots de passe vides si vous ne voulez pas les modifier"
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid "Your technical skill level"
-msgstr "Votre niveau technique"
-
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid ""
-"Used to provide a member experience and additional features consistent with "
-"your comfort level"
-msgstr "Utilisé pour offrir une expérience de membre et des fonctions supplémentaires compatibles avec votre niveau de confort."
-
#: ../../Zotlabs/Module/Settings/Account.php:120
#: ../../Zotlabs/Module/Removeaccount.php:61
msgid "Remove Account"
@@ -3994,11 +4092,11 @@ msgstr "0-99 par défaut 0"
msgid "Affinity Slider Settings"
msgstr "Paramètres de la réglette d'affinité"
-#: ../../Zotlabs/Module/Settings/Featured.php:64
+#: ../../Zotlabs/Module/Settings/Featured.php:67
msgid "Addon Settings"
msgstr "Paramètres du greffon"
-#: ../../Zotlabs/Module/Settings/Featured.php:65
+#: ../../Zotlabs/Module/Settings/Featured.php:68
msgid "Please save/submit changes to any panel before opening another."
msgstr "Veuillez enregistrer/soumettre les changements à n'importe quel panneau avant d'en ouvrir un autre."
@@ -4115,82 +4213,38 @@ msgstr "cliquer pour dérouler le contenu dépassant cette limite"
msgid "Grid page max height of content (in pixels)"
msgstr "Hauteur maximale du contenu sur la page du réseau (en pixels)"
-#: ../../Zotlabs/Module/Settings/Oauth.php:34
+#: ../../Zotlabs/Module/Settings/Oauth.php:35
msgid "Name is required"
msgstr "Le nom est requis"
-#: ../../Zotlabs/Module/Settings/Oauth.php:38
+#: ../../Zotlabs/Module/Settings/Oauth.php:39
msgid "Key and Secret are required"
msgstr "Clef et secret sont requis"
-#: ../../Zotlabs/Module/Settings/Oauth.php:86
-#: ../../Zotlabs/Module/Settings/Oauth.php:112
-#: ../../Zotlabs/Module/Settings/Oauth.php:148
-msgid "Add application"
-msgstr "Ajouter une application"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-msgid "Name of application"
-msgstr "Nom de l'application"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:117
#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:781
msgid "Consumer Key"
msgstr "Clef client"
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Généré automatiquement - à changer si besoin. Longueur maximale 20 caractères."
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-#: ../../Zotlabs/Module/Settings/Oauth.php:117
-#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
-msgid "Consumer Secret"
-msgstr "Secret client"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-#: ../../Zotlabs/Module/Settings/Oauth.php:118
-msgid "Redirect"
-msgstr "Redirection"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires "
-"this"
-msgstr "URI de redirection - laissez vide, sauf si votre application le requiert spécifiquement"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
-#: ../../Zotlabs/Module/Settings/Oauth.php:119
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
+#: ../../Zotlabs/Module/Settings/Oauth.php:120
msgid "Icon url"
msgstr "URL de l'icône"
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147
msgid "Optional"
msgstr "Facultatif"
-#: ../../Zotlabs/Module/Settings/Oauth.php:104
+#: ../../Zotlabs/Module/Settings/Oauth.php:105
msgid "Application not found."
msgstr "Application introuvable."
-#: ../../Zotlabs/Module/Settings/Oauth.php:147
+#: ../../Zotlabs/Module/Settings/Oauth.php:148
msgid "Connected Apps"
msgstr "Applications connectées"
-#: ../../Zotlabs/Module/Settings/Oauth.php:151
-msgid "Client key starts with"
-msgstr "La clef partagée commence par"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:152
-msgid "No name"
-msgstr "Sans nom"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:153
-msgid "Remove authorization"
-msgstr "Révoquer l'autorisation"
-
#: ../../Zotlabs/Module/Embedphotos.php:140
#: ../../Zotlabs/Module/Photos.php:811 ../../Zotlabs/Module/Photos.php:1350
#: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78
@@ -4204,13 +4258,12 @@ msgid "Edit Album"
msgstr "Modifier l'album"
#: ../../Zotlabs/Module/Embedphotos.php:158
-#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Photos.php:844
-#: ../../Zotlabs/Module/Photos.php:1381
+#: ../../Zotlabs/Module/Photos.php:712
#: ../../Zotlabs/Module/Profile_photo.php:458
#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Storage/Browser.php:277 ../../Zotlabs/Storage/Browser.php:384
-#: ../../Zotlabs/Widget/Cdav.php:133 ../../Zotlabs/Widget/Cdav.php:169
-#: ../../Zotlabs/Widget/Portfolio.php:110 ../../Zotlabs/Widget/Album.php:97
+#: ../../Zotlabs/Storage/Browser.php:384 ../../Zotlabs/Widget/Cdav.php:133
+#: ../../Zotlabs/Widget/Cdav.php:169 ../../Zotlabs/Widget/Portfolio.php:110
+#: ../../Zotlabs/Widget/Album.php:97
msgid "Upload"
msgstr "Envoyer"
@@ -4218,60 +4271,60 @@ msgstr "Envoyer"
msgid "Some blurb about what to do when you're new here"
msgstr "Quelques mots sur quoi faire quand on est nouveau ici"
-#: ../../Zotlabs/Module/Thing.php:115
+#: ../../Zotlabs/Module/Thing.php:120
msgid "Thing updated"
msgstr "Elément mis à jour"
-#: ../../Zotlabs/Module/Thing.php:167
+#: ../../Zotlabs/Module/Thing.php:172
msgid "Object store: failed"
msgstr "Stockage de l'objet&nbsp;: échec"
-#: ../../Zotlabs/Module/Thing.php:171
+#: ../../Zotlabs/Module/Thing.php:176
msgid "Thing added"
msgstr "Elément ajouté"
-#: ../../Zotlabs/Module/Thing.php:197
+#: ../../Zotlabs/Module/Thing.php:202
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../Zotlabs/Module/Thing.php:260
+#: ../../Zotlabs/Module/Thing.php:265
msgid "Show Thing"
msgstr "Montrer élément"
-#: ../../Zotlabs/Module/Thing.php:267
+#: ../../Zotlabs/Module/Thing.php:272
msgid "item not found."
msgstr "élément introuvable."
-#: ../../Zotlabs/Module/Thing.php:300
+#: ../../Zotlabs/Module/Thing.php:305
msgid "Edit Thing"
msgstr "Modifier élément"
-#: ../../Zotlabs/Module/Thing.php:302 ../../Zotlabs/Module/Thing.php:359
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:364
msgid "Select a profile"
msgstr "Choisissez un profil"
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Post an activity"
msgstr "Publier une activité"
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Only sends to viewers of the applicable profile"
msgstr "Envoie exclusivement aux visiteurs du profil concerné"
-#: ../../Zotlabs/Module/Thing.php:308 ../../Zotlabs/Module/Thing.php:364
+#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:369
msgid "Name of thing e.g. something"
msgstr "Nom de l'élément, p.ex. quelque-chose"
-#: ../../Zotlabs/Module/Thing.php:310 ../../Zotlabs/Module/Thing.php:365
+#: ../../Zotlabs/Module/Thing.php:315 ../../Zotlabs/Module/Thing.php:370
msgid "URL of thing (optional)"
msgstr "URL de l'élément (facultatif)"
-#: ../../Zotlabs/Module/Thing.php:312 ../../Zotlabs/Module/Thing.php:366
+#: ../../Zotlabs/Module/Thing.php:317 ../../Zotlabs/Module/Thing.php:371
msgid "URL for photo of thing (optional)"
msgstr "URL d'une photo de l'élément (facultatif)"
-#: ../../Zotlabs/Module/Thing.php:314 ../../Zotlabs/Module/Thing.php:367
+#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
#: ../../Zotlabs/Module/Photos.php:702 ../../Zotlabs/Module/Photos.php:1071
#: ../../Zotlabs/Module/Connedit.php:676 ../../Zotlabs/Module/Chat.php:235
#: ../../Zotlabs/Module/Filestorage.php:147
@@ -4279,7 +4332,7 @@ msgstr "URL d'une photo de l'élément (facultatif)"
msgid "Permissions"
msgstr "Droits d'accès"
-#: ../../Zotlabs/Module/Thing.php:357
+#: ../../Zotlabs/Module/Thing.php:362
msgid "Add Thing to your Profile"
msgstr "Ajouter l'élément à votre profil"
@@ -4293,9 +4346,9 @@ msgstr "Pas d'autre notification du système."
msgid "System Notifications"
msgstr "Notifications du système"
-#: ../../Zotlabs/Module/Follow.php:31
-msgid "Channel added."
-msgstr "Canal ajouté."
+#: ../../Zotlabs/Module/Follow.php:36
+msgid "Connection added."
+msgstr "Connexion ajoutée."
#: ../../Zotlabs/Module/Import.php:143
#, php-format
@@ -4306,43 +4359,43 @@ msgstr "Votre forfait n'autorise que %d canaux."
msgid "No channel. Import failed."
msgstr "Pas de canal. Echec de l'import."
-#: ../../Zotlabs/Module/Import.php:481
+#: ../../Zotlabs/Module/Import.php:482
#: ../../addon/diaspora/import_diaspora.php:139
msgid "Import completed."
msgstr "L'import est terminé."
-#: ../../Zotlabs/Module/Import.php:509
+#: ../../Zotlabs/Module/Import.php:510
msgid "You must be logged in to use this feature."
msgstr "Vous devez vous connecter pour utiliser cette fonctionnalité."
-#: ../../Zotlabs/Module/Import.php:514
+#: ../../Zotlabs/Module/Import.php:515
msgid "Import Channel"
msgstr "Importation de canal"
-#: ../../Zotlabs/Module/Import.php:515
+#: ../../Zotlabs/Module/Import.php:516
msgid ""
"Use this form to import an existing channel from a different server/hub. You"
" may retrieve the channel identity from the old server/hub via the network "
"or provide an export file."
msgstr "Utilisez ce formulaire pour importer un canal existant sur un autre serveur. Vous pouvez récupérer l'identité du canal sur l'ancien serveur directement par le réseau, ou bien fournir un fichier d'export/import."
-#: ../../Zotlabs/Module/Import.php:517
+#: ../../Zotlabs/Module/Import.php:518
msgid "Or provide the old server/hub details"
msgstr "Ou fournissez les détails de l'ancien serveur/hub"
-#: ../../Zotlabs/Module/Import.php:518
+#: ../../Zotlabs/Module/Import.php:519
msgid "Your old identity address (xyz@example.com)"
msgstr "Votre ancienne identité (zyx@exemple.com)"
-#: ../../Zotlabs/Module/Import.php:519
+#: ../../Zotlabs/Module/Import.php:520
msgid "Your old login email address"
msgstr "Votre ancienne adresse de courriel"
-#: ../../Zotlabs/Module/Import.php:520
+#: ../../Zotlabs/Module/Import.php:521
msgid "Your old login password"
msgstr "Votre ancien mot de passe"
-#: ../../Zotlabs/Module/Import.php:521
+#: ../../Zotlabs/Module/Import.php:522
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be"
@@ -4350,19 +4403,19 @@ msgid ""
"primary location for files, photos, and media."
msgstr "Quelle que soit l'option choisie, merci de décider si ce hub sera votre nouvelle adresse primaire, ou si votre ancien hub continuera à jouer ce rôle. Vous pourrez publier depuis l'emplacement de votre choix, mais une seule peut être déclarée comme stockage primaire de vos fichiers/photos/media."
-#: ../../Zotlabs/Module/Import.php:522
+#: ../../Zotlabs/Module/Import.php:523
msgid "Make this hub my primary location"
msgstr "Faire de ce hub mon emplacement primaire"
-#: ../../Zotlabs/Module/Import.php:523
+#: ../../Zotlabs/Module/Import.php:524
msgid "Move this channel (disable all previous locations)"
msgstr "Déplacer ce canal (désactiver tous les emplacements précédents)"
-#: ../../Zotlabs/Module/Import.php:524
+#: ../../Zotlabs/Module/Import.php:525
msgid "Import a few months of posts if possible (limited by available memory"
msgstr "Importer plusieurs mois de messages si possible (limité par la mémoire disponible)"
-#: ../../Zotlabs/Module/Import.php:525
+#: ../../Zotlabs/Module/Import.php:526
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
@@ -4372,16 +4425,16 @@ msgstr "Ce processus peut prendre plusieurs minutes. Merci de ne valider le form
msgid "Authentication failed."
msgstr "Échec de l'authentification."
-#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1583
-#: ../../include/channel.php:2307
+#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1590
+#: ../../include/channel.php:2318
msgid "Remote Authentication"
msgstr "Authentification distante"
-#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2308
+#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2319
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Entrez l'adresse de votre canal (par ex. moncanal@monsite.com)"
-#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2309
+#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2320
msgid "Authenticate"
msgstr "Authentifier"
@@ -4389,7 +4442,7 @@ msgstr "Authentifier"
msgid "Permissions denied."
msgstr "Accès refusés."
-#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2426
+#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2429
msgid "Import"
msgstr "Import"
@@ -4449,149 +4502,163 @@ msgstr "Humeur"
msgid "Set your current mood and tell your friends"
msgstr "Indiquez votre humeur du moment à vos amis"
-#: ../../Zotlabs/Module/Connections.php:54
-#: ../../Zotlabs/Module/Connections.php:156
-#: ../../Zotlabs/Module/Connections.php:245
+#: ../../Zotlabs/Module/Connections.php:55
+#: ../../Zotlabs/Module/Connections.php:112
+#: ../../Zotlabs/Module/Connections.php:256
+msgid "Active"
+msgstr "Active"
+
+#: ../../Zotlabs/Module/Connections.php:60
+#: ../../Zotlabs/Module/Connections.php:164
+#: ../../Zotlabs/Module/Connections.php:261
msgid "Blocked"
msgstr "Bloqué(e)"
-#: ../../Zotlabs/Module/Connections.php:59
-#: ../../Zotlabs/Module/Connections.php:163
-#: ../../Zotlabs/Module/Connections.php:244
+#: ../../Zotlabs/Module/Connections.php:65
+#: ../../Zotlabs/Module/Connections.php:171
+#: ../../Zotlabs/Module/Connections.php:260
msgid "Ignored"
msgstr "Ignoré(e)"
-#: ../../Zotlabs/Module/Connections.php:64
-#: ../../Zotlabs/Module/Connections.php:177
-#: ../../Zotlabs/Module/Connections.php:243
+#: ../../Zotlabs/Module/Connections.php:70
+#: ../../Zotlabs/Module/Connections.php:185
+#: ../../Zotlabs/Module/Connections.php:259
msgid "Hidden"
msgstr "Caché"
-#: ../../Zotlabs/Module/Connections.php:69
-#: ../../Zotlabs/Module/Connections.php:170
+#: ../../Zotlabs/Module/Connections.php:75
+#: ../../Zotlabs/Module/Connections.php:178
msgid "Archived/Unreachable"
msgstr "Archivé/Injoignable"
-#: ../../Zotlabs/Module/Connections.php:74
-#: ../../Zotlabs/Module/Connections.php:83 ../../Zotlabs/Module/Menu.php:116
+#: ../../Zotlabs/Module/Connections.php:80
+#: ../../Zotlabs/Module/Connections.php:89 ../../Zotlabs/Module/Menu.php:116
#: ../../Zotlabs/Module/Notifications.php:52
-#: ../../include/conversation.php:1714
+#: ../../include/conversation.php:1717
msgid "New"
msgstr "Nouveautés"
-#: ../../Zotlabs/Module/Connections.php:88
-#: ../../Zotlabs/Module/Connections.php:102
+#: ../../Zotlabs/Module/Connections.php:94
+#: ../../Zotlabs/Module/Connections.php:108
#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:26
msgid "All"
msgstr "Tous"
-#: ../../Zotlabs/Module/Connections.php:133
+#: ../../Zotlabs/Module/Connections.php:140
+msgid "Active Connections"
+msgstr "Connexions actives"
+
+#: ../../Zotlabs/Module/Connections.php:143
+msgid "Show active connections"
+msgstr "Voir les connexions actives"
+
+#: ../../Zotlabs/Module/Connections.php:147
#: ../../Zotlabs/Widget/Notifications.php:84
msgid "New Connections"
msgstr "Nouveaux contacts"
-#: ../../Zotlabs/Module/Connections.php:136
+#: ../../Zotlabs/Module/Connections.php:150
msgid "Show pending (new) connections"
msgstr "Voir les (nouveaux) contacts en attente"
-#: ../../Zotlabs/Module/Connections.php:143
-msgid "Show all connections"
-msgstr "Voir tous les contacts"
-
-#: ../../Zotlabs/Module/Connections.php:159
+#: ../../Zotlabs/Module/Connections.php:167
msgid "Only show blocked connections"
msgstr "Ne montrer que les contacts bloqués"
-#: ../../Zotlabs/Module/Connections.php:166
+#: ../../Zotlabs/Module/Connections.php:174
msgid "Only show ignored connections"
msgstr "Ne montrer que les contacts ignorés"
-#: ../../Zotlabs/Module/Connections.php:173
+#: ../../Zotlabs/Module/Connections.php:181
msgid "Only show archived/unreachable connections"
msgstr "Ne montrer que les contacts archivés/injoignables"
-#: ../../Zotlabs/Module/Connections.php:180
+#: ../../Zotlabs/Module/Connections.php:188
msgid "Only show hidden connections"
msgstr "Ne montrer que les contacts cachés"
-#: ../../Zotlabs/Module/Connections.php:241
+#: ../../Zotlabs/Module/Connections.php:203
+msgid "Show all connections"
+msgstr "Voir tous les contacts"
+
+#: ../../Zotlabs/Module/Connections.php:257
msgid "Pending approval"
msgstr "En attente de validation"
-#: ../../Zotlabs/Module/Connections.php:242
+#: ../../Zotlabs/Module/Connections.php:258
msgid "Archived"
msgstr "Archivé"
-#: ../../Zotlabs/Module/Connections.php:246
+#: ../../Zotlabs/Module/Connections.php:262
msgid "Not connected at this location"
msgstr "Contact introuvable à cette adresse"
-#: ../../Zotlabs/Module/Connections.php:263
+#: ../../Zotlabs/Module/Connections.php:279
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../Zotlabs/Module/Connections.php:264
+#: ../../Zotlabs/Module/Connections.php:280
msgid "Edit connection"
msgstr "Modifier le contact"
-#: ../../Zotlabs/Module/Connections.php:266
+#: ../../Zotlabs/Module/Connections.php:282
msgid "Delete connection"
msgstr "Supprimer le contact"
-#: ../../Zotlabs/Module/Connections.php:275
+#: ../../Zotlabs/Module/Connections.php:291
msgid "Channel address"
msgstr "Adresse du canal"
-#: ../../Zotlabs/Module/Connections.php:277
+#: ../../Zotlabs/Module/Connections.php:293
msgid "Network"
msgstr "Réseau"
-#: ../../Zotlabs/Module/Connections.php:280
+#: ../../Zotlabs/Module/Connections.php:296
msgid "Call"
msgstr "Appeler"
-#: ../../Zotlabs/Module/Connections.php:282
+#: ../../Zotlabs/Module/Connections.php:298
msgid "Status"
msgstr "État"
-#: ../../Zotlabs/Module/Connections.php:284
+#: ../../Zotlabs/Module/Connections.php:300
msgid "Connected"
msgstr "Ami depuis"
-#: ../../Zotlabs/Module/Connections.php:286
+#: ../../Zotlabs/Module/Connections.php:302
msgid "Approve connection"
msgstr "Valider le contact"
-#: ../../Zotlabs/Module/Connections.php:288
+#: ../../Zotlabs/Module/Connections.php:304
msgid "Ignore connection"
msgstr "Ignorer le contact"
-#: ../../Zotlabs/Module/Connections.php:289
+#: ../../Zotlabs/Module/Connections.php:305
#: ../../Zotlabs/Module/Connedit.php:630
msgid "Ignore"
msgstr "Ignorer"
-#: ../../Zotlabs/Module/Connections.php:290
+#: ../../Zotlabs/Module/Connections.php:306
msgid "Recent activity"
msgstr "Activité récente"
-#: ../../Zotlabs/Module/Connections.php:315 ../../Zotlabs/Lib/Apps.php:235
+#: ../../Zotlabs/Module/Connections.php:331 ../../Zotlabs/Lib/Apps.php:235
#: ../../include/text.php:973
msgid "Connections"
msgstr "Contacts"
-#: ../../Zotlabs/Module/Connections.php:320
+#: ../../Zotlabs/Module/Connections.php:336
msgid "Search your connections"
msgstr "Chercher parmi vos contacts"
-#: ../../Zotlabs/Module/Connections.php:321
+#: ../../Zotlabs/Module/Connections.php:337
msgid "Connections search"
msgstr "Chercher des contacts"
-#: ../../Zotlabs/Module/Connections.php:322
-#: ../../Zotlabs/Module/Directory.php:396
-#: ../../Zotlabs/Module/Directory.php:401 ../../include/contact_widgets.php:23
+#: ../../Zotlabs/Module/Connections.php:338
+#: ../../Zotlabs/Module/Directory.php:401
+#: ../../Zotlabs/Module/Directory.php:406 ../../include/contact_widgets.php:23
msgid "Find"
msgstr "Trouver"
@@ -4693,12 +4760,8 @@ msgstr "ou sélectionner un album existant (double-clic)"
msgid "Create a status post for this upload"
msgstr "Créer une publication de statut pour cet envoi"
-#: ../../Zotlabs/Module/Photos.php:698
-msgid "Caption (optional):"
-msgstr "Légende (facultative)"
-
#: ../../Zotlabs/Module/Photos.php:699
-msgid "Description (optional):"
+msgid "Description (optional)"
msgstr "Description (facultative)"
#: ../../Zotlabs/Module/Photos.php:785
@@ -4709,6 +4772,10 @@ msgstr "Les plus récent(e)s en premier"
msgid "Show Oldest First"
msgstr "Les moins récent(e)s en premier"
+#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Module/Photos.php:1381
+msgid "Add Photos"
+msgstr "Ajouter des photos"
+
#: ../../Zotlabs/Module/Photos.php:892
msgid "Permission denied. Access to this item may be restricted."
msgstr "Accès refusé. L'accès à cet élément peut avoir été restreint."
@@ -4757,10 +4824,6 @@ msgstr "Entrer un nouveau nom d'album"
msgid "or select an existing one (doubleclick)"
msgstr "ou en sélectionner un existant (double-clic)"
-#: ../../Zotlabs/Module/Photos.php:1068
-msgid "Caption"
-msgstr "Titre/légende"
-
#: ../../Zotlabs/Module/Photos.php:1070
msgid "Add a Tag"
msgstr "Ajouter une étiquette"
@@ -4787,12 +4850,12 @@ msgid "Please wait"
msgstr "Merci de patienter"
#: ../../Zotlabs/Module/Photos.php:1119 ../../Zotlabs/Module/Photos.php:1237
-#: ../../Zotlabs/Lib/ThreadItem.php:747
+#: ../../Zotlabs/Lib/ThreadItem.php:749
msgid "This is you"
msgstr "C'est vous"
#: ../../Zotlabs/Module/Photos.php:1121 ../../Zotlabs/Module/Photos.php:1239
-#: ../../Zotlabs/Lib/ThreadItem.php:749 ../../include/js_strings.php:6
+#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/js_strings.php:6
msgid "Comment"
msgstr "Commenter"
@@ -4842,8 +4905,8 @@ msgid "View all"
msgstr "Voir tout"
#: ../../Zotlabs/Module/Photos.php:1160 ../../Zotlabs/Lib/ThreadItem.php:205
-#: ../../include/conversation.php:1978 ../../include/channel.php:1540
-#: ../../include/taxonomy.php:597
+#: ../../include/conversation.php:1981 ../../include/channel.php:1539
+#: ../../include/taxonomy.php:601
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
@@ -4851,7 +4914,7 @@ msgstr[0] "Aime"
msgstr[1] "Aime"
#: ../../Zotlabs/Module/Photos.php:1165 ../../Zotlabs/Lib/ThreadItem.php:210
-#: ../../include/conversation.php:1981
+#: ../../include/conversation.php:1984
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
@@ -4886,78 +4949,76 @@ msgid "Close"
msgstr "Fermer"
#: ../../Zotlabs/Module/Photos.php:1365 ../../Zotlabs/Module/Photos.php:1378
-#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:656
+#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:663
msgid "Recent Photos"
msgstr "Photos récentes"
-#: ../../Zotlabs/Module/Wiki.php:30
+#: ../../Zotlabs/Module/Wiki.php:30 ../../addon/cart/cart.php:1135
msgid "Profile Unavailable."
msgstr "Profil non disponible."
-#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:108
-#: ../../addon/gitwiki/Mod_Gitwiki.php:42
+#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:114
msgid "Not found"
msgstr "Non trouvé"
-#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/gitwiki/Mod_Gitwiki.php:62
+#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/cart/myshop.php:114
+#: ../../addon/cart/cart.php:1204 ../../addon/cart/manual_payments.php:58
msgid "Invalid channel"
msgstr "Canal invalide."
-#: ../../Zotlabs/Module/Wiki.php:124 ../../addon/gitwiki/Mod_Gitwiki.php:107
+#: ../../Zotlabs/Module/Wiki.php:124
msgid "Error retrieving wiki"
msgstr "Erreur lors de la récupération du wiki"
-#: ../../Zotlabs/Module/Wiki.php:131 ../../addon/gitwiki/Mod_Gitwiki.php:114
+#: ../../Zotlabs/Module/Wiki.php:131
msgid "Error creating zip file export folder"
msgstr "Erreur lors de la création du dossier d'exportation du fichier zip"
-#: ../../Zotlabs/Module/Wiki.php:182 ../../addon/gitwiki/Mod_Gitwiki.php:132
+#: ../../Zotlabs/Module/Wiki.php:182
msgid "Error downloading wiki: "
msgstr "Erreur lors du téléchargement du wiki:"
-#: ../../Zotlabs/Module/Wiki.php:197 ../../addon/gitwiki/Mod_Gitwiki.php:146
-#: ../../include/conversation.php:1925 ../../include/nav.php:494
+#: ../../Zotlabs/Module/Wiki.php:197 ../../include/conversation.php:1928
+#: ../../include/nav.php:494
msgid "Wikis"
msgstr "Wikis"
-#: ../../Zotlabs/Module/Wiki.php:203 ../../addon/gitwiki/Mod_Gitwiki.php:152
+#: ../../Zotlabs/Module/Wiki.php:203
msgid "Download"
msgstr "Téléchargement"
#: ../../Zotlabs/Module/Wiki.php:205 ../../Zotlabs/Module/Chat.php:256
-#: ../../Zotlabs/Module/Profiles.php:834 ../../Zotlabs/Module/Manage.php:145
-#: ../../addon/gitwiki/Mod_Gitwiki.php:154
+#: ../../Zotlabs/Module/Profiles.php:831 ../../Zotlabs/Module/Manage.php:145
msgid "Create New"
msgstr "Nouveau"
-#: ../../Zotlabs/Module/Wiki.php:207 ../../addon/gitwiki/Mod_Gitwiki.php:156
+#: ../../Zotlabs/Module/Wiki.php:207
msgid "Wiki name"
msgstr "Nom du wiki"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../addon/gitwiki/Mod_Gitwiki.php:157
+#: ../../Zotlabs/Module/Wiki.php:208
msgid "Content type"
msgstr "Type de contenu"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../addon/mdpost/mdpost.php:40
-#: ../../include/text.php:1868
+#: ../../include/text.php:1869
msgid "Markdown"
msgstr "Markdown"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1866
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1867
msgid "BBcode"
msgstr "BBcode"
#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1869
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1870
msgid "Text"
msgstr "Texte"
#: ../../Zotlabs/Module/Wiki.php:210 ../../Zotlabs/Storage/Browser.php:284
-#: ../../addon/gitwiki/Mod_Gitwiki.php:159
msgid "Type"
msgstr "Type"
@@ -4969,7 +5030,7 @@ msgstr "N'importe quel type"
msgid "Lock content type"
msgstr "Verrouiller le type de contenu"
-#: ../../Zotlabs/Module/Wiki.php:219 ../../addon/gitwiki/Mod_Gitwiki.php:166
+#: ../../Zotlabs/Module/Wiki.php:219
msgid "Create a status post for this wiki"
msgstr "Créer un statut de publication pour ce wiki"
@@ -4977,138 +5038,147 @@ msgstr "Créer un statut de publication pour ce wiki"
msgid "Edit Wiki Name"
msgstr "Modifier le nom du wiki"
-#: ../../Zotlabs/Module/Wiki.php:262 ../../addon/gitwiki/Mod_Gitwiki.php:185
+#: ../../Zotlabs/Module/Wiki.php:262
msgid "Wiki not found"
msgstr "Wiki introuvable"
-#: ../../Zotlabs/Module/Wiki.php:286 ../../addon/gitwiki/Mod_Gitwiki.php:210
+#: ../../Zotlabs/Module/Wiki.php:286
msgid "Rename page"
msgstr "Renommer la page"
-#: ../../Zotlabs/Module/Wiki.php:305 ../../addon/gitwiki/Mod_Gitwiki.php:214
+#: ../../Zotlabs/Module/Wiki.php:307
msgid "Error retrieving page content"
msgstr "Erreur lors de la récupération du contenu de la page"
-#: ../../Zotlabs/Module/Wiki.php:313 ../../Zotlabs/Module/Wiki.php:315
+#: ../../Zotlabs/Module/Wiki.php:315 ../../Zotlabs/Module/Wiki.php:317
msgid "New page"
msgstr "Nouvelle page"
-#: ../../Zotlabs/Module/Wiki.php:343 ../../addon/gitwiki/Mod_Gitwiki.php:242
+#: ../../Zotlabs/Module/Wiki.php:345
msgid "Revision Comparison"
msgstr "Comparaison des révisions"
-#: ../../Zotlabs/Module/Wiki.php:344 ../../addon/gitwiki/Mod_Gitwiki.php:243
+#: ../../Zotlabs/Module/Wiki.php:346
msgid "Revert"
msgstr "Revenir"
-#: ../../Zotlabs/Module/Wiki.php:351
+#: ../../Zotlabs/Module/Wiki.php:353
msgid "Short description of your changes (optional)"
msgstr "Description courte de vos modifications (optionnel)"
-#: ../../Zotlabs/Module/Wiki.php:358 ../../addon/gitwiki/Mod_Gitwiki.php:252
+#: ../../Zotlabs/Module/Wiki.php:362
msgid "Source"
msgstr "Source"
-#: ../../Zotlabs/Module/Wiki.php:368 ../../addon/gitwiki/Mod_Gitwiki.php:260
+#: ../../Zotlabs/Module/Wiki.php:372
msgid "New page name"
msgstr "Nouveau nom de la page"
-#: ../../Zotlabs/Module/Wiki.php:373 ../../addon/gitwiki/Mod_Gitwiki.php:265
-#: ../../include/conversation.php:1282
+#: ../../Zotlabs/Module/Wiki.php:377 ../../include/conversation.php:1282
msgid "Embed image from photo albums"
msgstr "Intégrer une image d'un album photo"
-#: ../../Zotlabs/Module/Wiki.php:374 ../../addon/gitwiki/Mod_Gitwiki.php:266
-#: ../../include/conversation.php:1385
+#: ../../Zotlabs/Module/Wiki.php:378 ../../include/conversation.php:1388
msgid "Embed an image from your albums"
msgstr "Intégrer une image de votre album photo"
-#: ../../Zotlabs/Module/Wiki.php:376
+#: ../../Zotlabs/Module/Wiki.php:380
#: ../../Zotlabs/Module/Profile_photo.php:465
#: ../../Zotlabs/Module/Cover_photo.php:366
-#: ../../addon/gitwiki/Mod_Gitwiki.php:268 ../../include/conversation.php:1387
-#: ../../include/conversation.php:1434
+#: ../../include/conversation.php:1390 ../../include/conversation.php:1437
msgid "OK"
msgstr "OK"
-#: ../../Zotlabs/Module/Wiki.php:377 ../../addon/gitwiki/Mod_Gitwiki.php:269
-#: ../../include/conversation.php:1318
+#: ../../Zotlabs/Module/Wiki.php:381
+#: ../../Zotlabs/Module/Profile_photo.php:466
+#: ../../Zotlabs/Module/Cover_photo.php:367
+#: ../../include/conversation.php:1320
msgid "Choose images to embed"
msgstr "Choisissez des images à intégrer"
-#: ../../Zotlabs/Module/Wiki.php:378 ../../addon/gitwiki/Mod_Gitwiki.php:270
-#: ../../include/conversation.php:1319
+#: ../../Zotlabs/Module/Wiki.php:382
+#: ../../Zotlabs/Module/Profile_photo.php:467
+#: ../../Zotlabs/Module/Cover_photo.php:368
+#: ../../include/conversation.php:1321
msgid "Choose an album"
msgstr "Choisir un album"
-#: ../../Zotlabs/Module/Wiki.php:379 ../../addon/gitwiki/Mod_Gitwiki.php:271
+#: ../../Zotlabs/Module/Wiki.php:383
+#: ../../Zotlabs/Module/Profile_photo.php:468
+#: ../../Zotlabs/Module/Cover_photo.php:369
msgid "Choose a different album"
msgstr "Choisissez un autre album"
-#: ../../Zotlabs/Module/Wiki.php:380 ../../addon/gitwiki/Mod_Gitwiki.php:272
-#: ../../include/conversation.php:1321
+#: ../../Zotlabs/Module/Wiki.php:384
+#: ../../Zotlabs/Module/Profile_photo.php:469
+#: ../../Zotlabs/Module/Cover_photo.php:370
+#: ../../include/conversation.php:1323
msgid "Error getting album list"
msgstr "Erreur venant de la liste de l'album"
-#: ../../Zotlabs/Module/Wiki.php:381 ../../addon/gitwiki/Mod_Gitwiki.php:273
-#: ../../include/conversation.php:1322
+#: ../../Zotlabs/Module/Wiki.php:385
+#: ../../Zotlabs/Module/Profile_photo.php:470
+#: ../../Zotlabs/Module/Cover_photo.php:371
+#: ../../include/conversation.php:1324
msgid "Error getting photo link"
msgstr "Erreur provenant du lien de la photo"
-#: ../../Zotlabs/Module/Wiki.php:382 ../../addon/gitwiki/Mod_Gitwiki.php:274
-#: ../../include/conversation.php:1323
+#: ../../Zotlabs/Module/Wiki.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:471
+#: ../../Zotlabs/Module/Cover_photo.php:372
+#: ../../include/conversation.php:1325
msgid "Error getting album"
msgstr "Erreur venant de l'album"
-#: ../../Zotlabs/Module/Wiki.php:458 ../../addon/gitwiki/Mod_Gitwiki.php:337
+#: ../../Zotlabs/Module/Wiki.php:462
msgid "Error creating wiki. Invalid name."
msgstr "Erreur lors de la création du wiki. Nom invalide."
-#: ../../Zotlabs/Module/Wiki.php:465
+#: ../../Zotlabs/Module/Wiki.php:469
msgid "A wiki with this name already exists."
msgstr "Ce nom de wiki est déjà pris"
-#: ../../Zotlabs/Module/Wiki.php:478 ../../addon/gitwiki/Mod_Gitwiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:482
msgid "Wiki created, but error creating Home page."
msgstr "Le wiki a été créé, mais une erreur est survenue lors de la création de sa page d'accueil."
-#: ../../Zotlabs/Module/Wiki.php:485 ../../addon/gitwiki/Mod_Gitwiki.php:353
+#: ../../Zotlabs/Module/Wiki.php:489
msgid "Error creating wiki"
msgstr "Erreur lors de la création du wiki."
-#: ../../Zotlabs/Module/Wiki.php:508
+#: ../../Zotlabs/Module/Wiki.php:512
msgid "Error updating wiki. Invalid name."
msgstr "Erreur de mise à jour du wiki. Nom invalide."
-#: ../../Zotlabs/Module/Wiki.php:528
+#: ../../Zotlabs/Module/Wiki.php:532
msgid "Error updating wiki"
msgstr "Erreur de mise à jour du wiki"
-#: ../../Zotlabs/Module/Wiki.php:543
+#: ../../Zotlabs/Module/Wiki.php:547
msgid "Wiki delete permission denied."
msgstr "Droit de supprimer le wiki refusé."
-#: ../../Zotlabs/Module/Wiki.php:553
+#: ../../Zotlabs/Module/Wiki.php:557
msgid "Error deleting wiki"
msgstr "Erreur durant la suppression du wiki"
-#: ../../Zotlabs/Module/Wiki.php:586 ../../addon/gitwiki/Mod_Gitwiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:590
msgid "New page created"
msgstr "Nouvelle page créée"
-#: ../../Zotlabs/Module/Wiki.php:707
+#: ../../Zotlabs/Module/Wiki.php:711
msgid "Cannot delete Home"
msgstr "Impossible de supprimer la racine"
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Current Revision"
msgstr "Version actuelle"
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Selected Revision"
msgstr "Version sélectionnée"
-#: ../../Zotlabs/Module/Wiki.php:821
+#: ../../Zotlabs/Module/Wiki.php:825
msgid "You must be authenticated."
msgstr "Vous devez être connecté."
@@ -5259,23 +5329,23 @@ msgstr "Utiliser"
msgid "Use a photo from your albums"
msgstr "Utiliser une photo de vos albums"
-#: ../../Zotlabs/Module/Profile_photo.php:467
-#: ../../Zotlabs/Module/Cover_photo.php:369
+#: ../../Zotlabs/Module/Profile_photo.php:473
+#: ../../Zotlabs/Module/Cover_photo.php:375
msgid "Select existing photo"
msgstr "Sélectionner une photo existante"
-#: ../../Zotlabs/Module/Profile_photo.php:486
-#: ../../Zotlabs/Module/Cover_photo.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:492
+#: ../../Zotlabs/Module/Cover_photo.php:392
msgid "Crop Image"
msgstr "Recadrer l'image"
-#: ../../Zotlabs/Module/Profile_photo.php:487
-#: ../../Zotlabs/Module/Cover_photo.php:387
+#: ../../Zotlabs/Module/Profile_photo.php:493
+#: ../../Zotlabs/Module/Cover_photo.php:393
msgid "Please adjust the image cropping for optimum viewing."
msgstr "Merci d'ajuster le cadre pour une visualisation optimale."
-#: ../../Zotlabs/Module/Profile_photo.php:489
-#: ../../Zotlabs/Module/Cover_photo.php:389
+#: ../../Zotlabs/Module/Profile_photo.php:495
+#: ../../Zotlabs/Module/Cover_photo.php:395
msgid "Done Editing"
msgstr "J'ai terminé"
@@ -5291,61 +5361,61 @@ msgstr "En ligne"
msgid "Unable to locate original post."
msgstr "Impossible de localiser la publication initiale."
-#: ../../Zotlabs/Module/Item.php:476
+#: ../../Zotlabs/Module/Item.php:477
msgid "Empty post discarded."
msgstr "Publication vide annulée."
-#: ../../Zotlabs/Module/Item.php:867
+#: ../../Zotlabs/Module/Item.php:874
msgid "Duplicate post suppressed."
msgstr "Publication en doublon supprimée."
-#: ../../Zotlabs/Module/Item.php:1012
+#: ../../Zotlabs/Module/Item.php:1019
msgid "System error. Post not saved."
msgstr "Erreur système. Publication non sauvegardée."
-#: ../../Zotlabs/Module/Item.php:1048
+#: ../../Zotlabs/Module/Item.php:1055
msgid "Your comment is awaiting approval."
msgstr "Votre commentaire est en attente de validation."
-#: ../../Zotlabs/Module/Item.php:1153
+#: ../../Zotlabs/Module/Item.php:1160
msgid "Unable to obtain post information from database."
msgstr "Impossible d'obtenir les informations de publication depuis la base de données."
-#: ../../Zotlabs/Module/Item.php:1182
+#: ../../Zotlabs/Module/Item.php:1189
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr "Vous avez atteint votre limite de %1$.0f contributions \"racines\"."
-#: ../../Zotlabs/Module/Item.php:1189
+#: ../../Zotlabs/Module/Item.php:1196
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Vous avez atteint votre limite de %1$.0f pages web."
-#: ../../Zotlabs/Module/Ping.php:320
+#: ../../Zotlabs/Module/Ping.php:330
msgid "sent you a private message"
msgstr "vous a envoyé un message privé"
-#: ../../Zotlabs/Module/Ping.php:372
+#: ../../Zotlabs/Module/Ping.php:383
msgid "added your channel"
msgstr "a ajouté votre canal"
-#: ../../Zotlabs/Module/Ping.php:396
+#: ../../Zotlabs/Module/Ping.php:407
msgid "requires approval"
msgstr "nécessite une approbation"
-#: ../../Zotlabs/Module/Ping.php:406
+#: ../../Zotlabs/Module/Ping.php:417
msgid "g A l F d"
msgstr "g A l F d"
-#: ../../Zotlabs/Module/Ping.php:424
+#: ../../Zotlabs/Module/Ping.php:435
msgid "[today]"
msgstr "[aujourd'hui]"
-#: ../../Zotlabs/Module/Ping.php:433
+#: ../../Zotlabs/Module/Ping.php:444
msgid "posted an event"
msgstr "a publié un événement"
-#: ../../Zotlabs/Module/Ping.php:466
+#: ../../Zotlabs/Module/Ping.php:477
msgid "shared a file with you"
msgstr "a partagé un fichier avec vous"
@@ -5354,7 +5424,8 @@ msgid "Invalid item."
msgstr "Élément invalide."
#: ../../Zotlabs/Module/Page.php:136 ../../Zotlabs/Module/Block.php:77
-#: ../../Zotlabs/Module/Display.php:133
+#: ../../Zotlabs/Module/Display.php:141 ../../Zotlabs/Module/Display.php:158
+#: ../../Zotlabs/Module/Display.php:175
#: ../../Zotlabs/Lib/NativeWikiPage.php:519 ../../Zotlabs/Web/Router.php:167
#: ../../include/help.php:81
msgid "Page not found."
@@ -5435,7 +5506,7 @@ msgstr "Actualiser la photo"
msgid "Fetch updated photo"
msgstr "Récupérer la photo mise à jour"
-#: ../../Zotlabs/Module/Connedit.php:615
+#: ../../Zotlabs/Module/Connedit.php:615 ../../include/conversation.php:1042
msgid "Recent Activity"
msgstr "Activité récente"
@@ -5579,11 +5650,11 @@ msgid ""
msgstr "Ce contact est injoignable à partir de cette adresse. Sa plate-forme ne gère pas la localisation multiple des canaux/contacts."
#: ../../Zotlabs/Module/Connedit.php:850 ../../Zotlabs/Module/Defperms.php:238
-#: ../../Zotlabs/Widget/Settings_menu.php:109
+#: ../../Zotlabs/Widget/Settings_menu.php:117
msgid "Connection Default Permissions"
msgstr "Droits d'accès par défaut des contacts"
-#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4164
+#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4214
#, php-format
msgid "Connection: %s"
msgstr "Contact&nbsp;: %s"
@@ -5718,13 +5789,13 @@ msgid "Bookmark this room"
msgstr "Marquer ce salon comme favori"
#: ../../Zotlabs/Module/Chat.php:205 ../../Zotlabs/Module/Mail.php:241
-#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1313
+#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1315
msgid "Please enter a link URL:"
msgstr "Merci d'entrer l'URL d'un lien&nbsp;:"
#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Module/Mail.php:294
-#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:764
-#: ../../include/conversation.php:1432
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:766
+#: ../../include/conversation.php:1435
msgid "Encrypt text"
msgstr "Chiffrer le texte"
@@ -5758,12 +5829,12 @@ msgid "min"
msgstr "min"
#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:248
-#: ../../include/conversation.php:1831 ../../include/nav.php:401
+#: ../../include/conversation.php:1834 ../../include/nav.php:401
msgid "Photos"
msgstr "Photos"
#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:243
-#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1839
+#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1842
#: ../../include/nav.php:409
msgid "Files"
msgstr "Fichiers"
@@ -5804,7 +5875,7 @@ msgstr "Le menu pourra être utilisé pour stocker des favoris"
msgid "Submit and proceed"
msgstr "Valider et continuer"
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2403
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2406
msgid "Menus"
msgstr "Menus"
@@ -5856,7 +5927,7 @@ msgstr "Titre du menu tel que vu par les visiteurs"
msgid "Allow bookmarks"
msgstr "Autoriser l'usage de favoris"
-#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2404
+#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2407
msgid "Layouts"
msgstr "Mises-en-page"
@@ -5878,11 +5949,11 @@ msgstr "Description de la mise en page"
msgid "Download PDL file"
msgstr "Télécharger le fichier PDL"
-#: ../../Zotlabs/Module/Cloud.php:114
+#: ../../Zotlabs/Module/Cloud.php:120
msgid "Please refresh page"
msgstr "Veuillez rafraîchir la page"
-#: ../../Zotlabs/Module/Cloud.php:117
+#: ../../Zotlabs/Module/Cloud.php:123
msgid "Unknown error"
msgstr "Erreur inconnue"
@@ -5916,16 +5987,16 @@ msgid "Post not found."
msgstr "Publication introuvable."
#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:160
-#: ../../include/bbcode.php:339
+#: ../../include/bbcode.php:352
msgid "post"
msgstr "publication"
#: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146
-#: ../../include/text.php:2012
+#: ../../include/text.php:2013
msgid "comment"
msgstr "commentaire"
-#: ../../Zotlabs/Module/Tagger.php:117
+#: ../../Zotlabs/Module/Tagger.php:119
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s a étiqueté le %3$s de %2$s avec %4$s"
@@ -5960,6 +6031,23 @@ msgid ""
"channel type and privacy settings."
msgstr "Certaines permissions individuelles peuvent avoir été prédéfinies ou verrouillées en fonction de votre type de canal et de vos paramètres de confidentialité."
+#: ../../Zotlabs/Module/Authorize.php:17
+msgid "Unknown App"
+msgstr "App inconnue"
+
+#: ../../Zotlabs/Module/Authorize.php:22
+msgid "Authorize"
+msgstr "Autoriser"
+
+#: ../../Zotlabs/Module/Authorize.php:23
+#, php-format
+msgid "Do you authorize the app %s to access your channel data?"
+msgstr "Autorisez vous l'app %s à accéder aux données de votre canal&nbsp;?"
+
+#: ../../Zotlabs/Module/Authorize.php:25
+msgid "Allow"
+msgstr "Permettre"
+
#: ../../Zotlabs/Module/Group.php:24
msgid "Privacy group created."
msgstr "Groupe de contacts créé."
@@ -5969,7 +6057,7 @@ msgid "Could not create privacy group."
msgstr "Impossible de créer le groupe de contacts."
#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:143
-#: ../../include/items.php:4131
+#: ../../include/items.php:4181
msgid "Privacy group not found."
msgstr "Groupe de contacts introuvable."
@@ -6050,15 +6138,15 @@ msgstr "Statut marital"
msgid "Romantic Partner"
msgstr "Partenaire amoureux"
-#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:775
+#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:772
msgid "Likes"
msgstr "Aime"
-#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:776
+#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:773
msgid "Dislikes"
msgstr "N'aime pas"
-#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:783
+#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:780
msgid "Work/Employment"
msgstr "Travail/Occupation"
@@ -6095,198 +6183,198 @@ msgstr "Profil mis à jour."
msgid "Hide your connections list from viewers of this profile"
msgstr "Cacher la liste de vos contacts pour les visiteurs de votre profile"
-#: ../../Zotlabs/Module/Profiles.php:725
+#: ../../Zotlabs/Module/Profiles.php:722
msgid "Edit Profile Details"
msgstr "Modifier les détails du profil"
-#: ../../Zotlabs/Module/Profiles.php:727
+#: ../../Zotlabs/Module/Profiles.php:724
msgid "View this profile"
msgstr "Voir ce profil"
-#: ../../Zotlabs/Module/Profiles.php:728 ../../Zotlabs/Module/Profiles.php:827
-#: ../../include/channel.php:1320
+#: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824
+#: ../../include/channel.php:1319
msgid "Edit visibility"
msgstr "Changer la visibilité"
-#: ../../Zotlabs/Module/Profiles.php:729
+#: ../../Zotlabs/Module/Profiles.php:726
msgid "Profile Tools"
-msgstr "Ouitls pour votre profile"
+msgstr "Outils pour votre profil"
-#: ../../Zotlabs/Module/Profiles.php:730
+#: ../../Zotlabs/Module/Profiles.php:727
msgid "Change cover photo"
msgstr "Modifier votre bannière"
-#: ../../Zotlabs/Module/Profiles.php:731 ../../include/channel.php:1290
+#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1289
msgid "Change profile photo"
msgstr "Changer la photo du profil"
-#: ../../Zotlabs/Module/Profiles.php:732
+#: ../../Zotlabs/Module/Profiles.php:729
msgid "Create a new profile using these settings"
msgstr "Créer un nouveau profil avec ces paramètres"
-#: ../../Zotlabs/Module/Profiles.php:733
+#: ../../Zotlabs/Module/Profiles.php:730
msgid "Clone this profile"
msgstr "Cloner ce profil"
-#: ../../Zotlabs/Module/Profiles.php:734
+#: ../../Zotlabs/Module/Profiles.php:731
msgid "Delete this profile"
msgstr "Supprimer ce profil"
-#: ../../Zotlabs/Module/Profiles.php:735
+#: ../../Zotlabs/Module/Profiles.php:732
msgid "Add profile things"
msgstr "Ajouter des éléments de profil"
-#: ../../Zotlabs/Module/Profiles.php:736 ../../include/conversation.php:1705
+#: ../../Zotlabs/Module/Profiles.php:733 ../../include/conversation.php:1708
msgid "Personal"
msgstr "Me concernant"
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Relation"
-msgstr "Contacts"
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Relationship"
+msgstr "Relation"
-#: ../../Zotlabs/Module/Profiles.php:739 ../../Zotlabs/Widget/Newmember.php:53
+#: ../../Zotlabs/Module/Profiles.php:736 ../../Zotlabs/Widget/Newmember.php:44
#: ../../include/datetime.php:58
msgid "Miscellaneous"
msgstr "Divers"
-#: ../../Zotlabs/Module/Profiles.php:741
+#: ../../Zotlabs/Module/Profiles.php:738
msgid "Import profile from file"
msgstr "Importer le profil à partir d'un fichier"
-#: ../../Zotlabs/Module/Profiles.php:742
+#: ../../Zotlabs/Module/Profiles.php:739
msgid "Export profile to file"
msgstr "Exporter le profil vers un fichier."
-#: ../../Zotlabs/Module/Profiles.php:743
+#: ../../Zotlabs/Module/Profiles.php:740
msgid "Your gender"
msgstr "Votre genre"
-#: ../../Zotlabs/Module/Profiles.php:744
+#: ../../Zotlabs/Module/Profiles.php:741
msgid "Marital status"
msgstr "Etat civil"
-#: ../../Zotlabs/Module/Profiles.php:745
+#: ../../Zotlabs/Module/Profiles.php:742
msgid "Sexual preference"
msgstr "préférence sexuelle"
-#: ../../Zotlabs/Module/Profiles.php:748
+#: ../../Zotlabs/Module/Profiles.php:745
msgid "Profile name"
-msgstr "Nom du profile"
+msgstr "Nom du profil"
-#: ../../Zotlabs/Module/Profiles.php:750
+#: ../../Zotlabs/Module/Profiles.php:747
msgid "This is your default profile."
msgstr "Ceci est votre profil par défaut."
-#: ../../Zotlabs/Module/Profiles.php:752
+#: ../../Zotlabs/Module/Profiles.php:749
msgid "Your full name"
msgstr "Votre nom complet"
-#: ../../Zotlabs/Module/Profiles.php:753
+#: ../../Zotlabs/Module/Profiles.php:750
msgid "Title/Description"
msgstr "Titre/description"
-#: ../../Zotlabs/Module/Profiles.php:756
+#: ../../Zotlabs/Module/Profiles.php:753
msgid "Street address"
msgstr "Rue"
-#: ../../Zotlabs/Module/Profiles.php:757
+#: ../../Zotlabs/Module/Profiles.php:754
msgid "Locality/City"
msgstr "Ville"
-#: ../../Zotlabs/Module/Profiles.php:758
+#: ../../Zotlabs/Module/Profiles.php:755
msgid "Region/State"
msgstr "Région"
-#: ../../Zotlabs/Module/Profiles.php:759
+#: ../../Zotlabs/Module/Profiles.php:756
msgid "Postal/Zip code"
msgstr "Code postal"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Who (if applicable)"
msgstr "Qui (si applicable)"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Exemples&nbsp;: marie123, Marie Deschamps, marie@exemple.com"
-#: ../../Zotlabs/Module/Profiles.php:766
+#: ../../Zotlabs/Module/Profiles.php:763
msgid "Since (date)"
msgstr "Depuis (date)"
-#: ../../Zotlabs/Module/Profiles.php:769
+#: ../../Zotlabs/Module/Profiles.php:766
msgid "Tell us about yourself"
msgstr "Parlez nous de vous..."
-#: ../../Zotlabs/Module/Profiles.php:770
+#: ../../Zotlabs/Module/Profiles.php:767
#: ../../addon/openid/MysqlProvider.php:68
msgid "Homepage URL"
msgstr "URL de mon site Internet&nbsp;:"
-#: ../../Zotlabs/Module/Profiles.php:771
+#: ../../Zotlabs/Module/Profiles.php:768
msgid "Hometown"
msgstr "Ville de naissance"
-#: ../../Zotlabs/Module/Profiles.php:772
+#: ../../Zotlabs/Module/Profiles.php:769
msgid "Political views"
msgstr "Opinions politiques"
-#: ../../Zotlabs/Module/Profiles.php:773
+#: ../../Zotlabs/Module/Profiles.php:770
msgid "Religious views"
msgstr "Convictions religieuses"
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Keywords used in directory listings"
msgstr "Mots clés pour l'annuaire"
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Example: fishing photography software"
msgstr "Exemple&nbsp;: escrime photographie modélisme"
-#: ../../Zotlabs/Module/Profiles.php:777
+#: ../../Zotlabs/Module/Profiles.php:774
msgid "Musical interests"
msgstr "Goûts musicaux"
-#: ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Profiles.php:775
msgid "Books, literature"
msgstr "Livres, littérature"
-#: ../../Zotlabs/Module/Profiles.php:779
+#: ../../Zotlabs/Module/Profiles.php:776
msgid "Television"
msgstr "Télévision"
-#: ../../Zotlabs/Module/Profiles.php:780
+#: ../../Zotlabs/Module/Profiles.php:777
msgid "Film/Dance/Culture/Entertainment"
msgstr "Cinéma/Danse/Culture/Divertissement"
-#: ../../Zotlabs/Module/Profiles.php:781
+#: ../../Zotlabs/Module/Profiles.php:778
msgid "Hobbies/Interests"
msgstr "Loisirs/Centres d'intêret"
-#: ../../Zotlabs/Module/Profiles.php:782
+#: ../../Zotlabs/Module/Profiles.php:779
msgid "Love/Romance"
msgstr "Amour/Relation amoureuse"
-#: ../../Zotlabs/Module/Profiles.php:784
+#: ../../Zotlabs/Module/Profiles.php:781
msgid "School/Education"
msgstr "Niveau d'étude"
-#: ../../Zotlabs/Module/Profiles.php:785
+#: ../../Zotlabs/Module/Profiles.php:782
msgid "Contact information and social networks"
msgstr "Coordonnées et autres réseaux sociaux"
-#: ../../Zotlabs/Module/Profiles.php:786
+#: ../../Zotlabs/Module/Profiles.php:783
msgid "My other channels"
msgstr "Mes autres canaux"
-#: ../../Zotlabs/Module/Profiles.php:788
+#: ../../Zotlabs/Module/Profiles.php:785
msgid "Communications"
msgstr "Communications"
-#: ../../Zotlabs/Module/Profiles.php:823 ../../include/channel.php:1316
+#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1315
msgid "Profile Image"
msgstr "Image du profil"
-#: ../../Zotlabs/Module/Profiles.php:833 ../../include/channel.php:1297
+#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1296
#: ../../include/nav.php:117
msgid "Edit Profiles"
msgstr "Modifier mes profils"
@@ -6320,11 +6408,11 @@ msgstr "Téléverser une photo de couverture"
msgid "Edit your default profile"
msgstr "Modifier votre profil par défaut"
-#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:43
+#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:34
msgid "View friend suggestions"
msgstr "Voir les suggestions d'amis"
-#: ../../Zotlabs/Module/Go.php:39 ../../Zotlabs/Widget/Newmember.php:42
+#: ../../Zotlabs/Module/Go.php:39
msgid "View the channel directory"
msgstr "Voir l'annuaire des canaux"
@@ -6401,9 +6489,9 @@ msgstr "%d nouvelles relations"
msgid "Delegated Channel"
msgstr "Canaux délégués"
-#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:181
-#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1890
-#: ../../include/features.php:114 ../../include/nav.php:458
+#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:194
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1893
+#: ../../include/features.php:123 ../../include/nav.php:458
msgid "Cards"
msgstr "Cartes"
@@ -6495,7 +6583,7 @@ msgid "Export selected"
msgstr "Export sélectionné"
#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:244
-#: ../../include/conversation.php:1912 ../../include/nav.php:481
+#: ../../include/conversation.php:1915 ../../include/nav.php:481
msgid "Webpages"
msgstr "Pages web"
@@ -6568,7 +6656,7 @@ msgstr "Renommer canal"
msgid "Item is not editable"
msgstr "Elément non modifiable"
-#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:178
+#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:144
msgid "Edit post"
msgstr "Modifier la publication"
@@ -6655,7 +6743,7 @@ msgid "*"
msgstr "*"
#: ../../Zotlabs/Module/Sources.php:96
-#: ../../Zotlabs/Widget/Settings_menu.php:125 ../../include/features.php:274
+#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/features.php:292
msgid "Channel Sources"
msgstr "Sources du canal"
@@ -6746,165 +6834,169 @@ msgstr "Canal indisponible."
msgid "Previous action reversed."
msgstr "Action précédente annulée."
-#: ../../Zotlabs/Module/Like.php:436 ../../addon/diaspora/Receiver.php:1547
-#: ../../addon/pubcrawl/as.php:1394 ../../include/conversation.php:160
+#: ../../Zotlabs/Module/Like.php:438 ../../addon/diaspora/Receiver.php:1529
+#: ../../addon/pubcrawl/as.php:1423 ../../include/conversation.php:160
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "%1$s aime %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:438 ../../addon/pubcrawl/as.php:1396
+#: ../../Zotlabs/Module/Like.php:440 ../../addon/pubcrawl/as.php:1425
#: ../../include/conversation.php:163
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "%1$s n'aime pas %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:440
+#: ../../Zotlabs/Module/Like.php:442
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr "%1$s approuve %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:442
+#: ../../Zotlabs/Module/Like.php:444
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr "%1$s n'est pas d'accord avec %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:444
+#: ../../Zotlabs/Module/Like.php:446
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr "%1$s s'abstient de toute décision sur le %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:446 ../../addon/diaspora/Receiver.php:2031
+#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2072
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%1$s participe à %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2033
+#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2074
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%1$s ne participe pas à %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2035
+#: ../../Zotlabs/Module/Like.php:452 ../../addon/diaspora/Receiver.php:2076
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%1$s participe peut-être à %3$s de %2$s"
-#: ../../Zotlabs/Module/Like.php:562
+#: ../../Zotlabs/Module/Like.php:564
msgid "Action completed."
msgstr "Action terminée."
-#: ../../Zotlabs/Module/Like.php:563
+#: ../../Zotlabs/Module/Like.php:565
msgid "Thank you."
msgstr "Merci."
-#: ../../Zotlabs/Module/Directory.php:250
+#: ../../Zotlabs/Module/Directory.php:106
+msgid "No default suggestions were found."
+msgstr "Aucune suggestion par défaut n'a été trouvée."
+
+#: ../../Zotlabs/Module/Directory.php:255
#, php-format
msgid "%d rating"
msgid_plural "%d ratings"
msgstr[0] "%d évaluation"
msgstr[1] "%d évaluations"
-#: ../../Zotlabs/Module/Directory.php:261
+#: ../../Zotlabs/Module/Directory.php:266
msgid "Gender: "
msgstr "Sexe/genre&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:263
+#: ../../Zotlabs/Module/Directory.php:268
msgid "Status: "
msgstr "État&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:265
+#: ../../Zotlabs/Module/Directory.php:270
msgid "Homepage: "
msgstr "Site web&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1565
+#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1564
msgid "Age:"
msgstr "Age&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1392
+#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1391
#: ../../include/event.php:54 ../../include/event.php:86
msgid "Location:"
msgstr "Emplacement&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:325
+#: ../../Zotlabs/Module/Directory.php:330
msgid "Description:"
msgstr "Description&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:330 ../../include/channel.php:1581
+#: ../../Zotlabs/Module/Directory.php:335 ../../include/channel.php:1593
msgid "Hometown:"
msgstr "Ville natale&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:332 ../../include/channel.php:1589
+#: ../../Zotlabs/Module/Directory.php:337 ../../include/channel.php:1599
msgid "About:"
msgstr "À propos&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:333 ../../Zotlabs/Module/Suggest.php:56
+#: ../../Zotlabs/Module/Directory.php:338 ../../Zotlabs/Module/Suggest.php:56
#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44
-#: ../../include/conversation.php:1052 ../../include/channel.php:1377
-#: ../../include/connections.php:111
+#: ../../include/conversation.php:1052 ../../include/channel.php:1376
+#: ../../include/connections.php:110
msgid "Connect"
msgstr "Ajouter/Suivre"
-#: ../../Zotlabs/Module/Directory.php:334
+#: ../../Zotlabs/Module/Directory.php:339
msgid "Public Forum:"
msgstr "Forum public&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:337
+#: ../../Zotlabs/Module/Directory.php:342
msgid "Keywords: "
msgstr "Mots-clefs&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:340
+#: ../../Zotlabs/Module/Directory.php:345
msgid "Don't suggest"
msgstr "Ne pas suggérer"
-#: ../../Zotlabs/Module/Directory.php:342
+#: ../../Zotlabs/Module/Directory.php:347
msgid "Common connections (estimated):"
msgstr "Connexions communes (estimation) :"
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Global Directory"
msgstr "Annuaire global"
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Local Directory"
msgstr "Annuaire local"
-#: ../../Zotlabs/Module/Directory.php:397
+#: ../../Zotlabs/Module/Directory.php:402
msgid "Finding:"
msgstr "Recherche&nbsp;:"
-#: ../../Zotlabs/Module/Directory.php:400 ../../Zotlabs/Module/Suggest.php:64
+#: ../../Zotlabs/Module/Directory.php:405 ../../Zotlabs/Module/Suggest.php:64
#: ../../include/contact_widgets.php:24
msgid "Channel Suggestions"
msgstr "Canaux suggérés"
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "next page"
msgstr "page suivante"
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "previous page"
msgstr "page précédente"
-#: ../../Zotlabs/Module/Directory.php:403
+#: ../../Zotlabs/Module/Directory.php:408
msgid "Sort options"
msgstr "Options de tri"
-#: ../../Zotlabs/Module/Directory.php:404
+#: ../../Zotlabs/Module/Directory.php:409
msgid "Alphabetic"
msgstr "Alphabétique"
-#: ../../Zotlabs/Module/Directory.php:405
+#: ../../Zotlabs/Module/Directory.php:410
msgid "Reverse Alphabetic"
msgstr "Alphabétique inversé"
-#: ../../Zotlabs/Module/Directory.php:406
+#: ../../Zotlabs/Module/Directory.php:411
msgid "Newest to Oldest"
msgstr "Du plus récent au moins récent"
-#: ../../Zotlabs/Module/Directory.php:407
+#: ../../Zotlabs/Module/Directory.php:412
msgid "Oldest to Newest"
msgstr "Du moins récent du plus récent"
-#: ../../Zotlabs/Module/Directory.php:424
+#: ../../Zotlabs/Module/Directory.php:429
msgid "No entries (some entries may be hidden)."
msgstr "Pas d'entrées (certaines peuvent être cachées)."
@@ -6987,7 +7079,7 @@ msgid "Subject:"
msgstr "Objet&nbsp;:"
#: ../../Zotlabs/Module/Mail.php:287 ../../Zotlabs/Module/Mail.php:429
-#: ../../include/conversation.php:1382
+#: ../../include/conversation.php:1385
msgid "Attach file"
msgstr "Joindre un fichier"
@@ -6996,7 +7088,7 @@ msgid "Send"
msgstr "Envoyer"
#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1430
msgid "Set expiration date"
msgstr "Définir la date d'expiration"
@@ -7218,7 +7310,7 @@ msgstr "oui"
msgid "Membership on this site is by invitation only."
msgstr "L'inscription à ce site se fait uniquement sur invitation."
-#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1563
+#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1570
#: ../../include/nav.php:164
msgid "Register"
msgstr "S'inscrire"
@@ -7234,30 +7326,30 @@ msgstr "Ce site nécessite une vérification par courriel. Après avoir rempli c
msgid "Cover Photos"
msgstr "Photos de couverture"
-#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4508
+#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4558
msgid "female"
msgstr "femme"
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4509
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4559
#, php-format
msgid "%1$s updated her %2$s"
msgstr "%1$s a mis à jour son %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4510
+#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4560
msgid "male"
msgstr "homme"
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4511
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4561
#, php-format
msgid "%1$s updated his %2$s"
msgstr "%1$s a mis à jour son %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4513
+#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4563
#, php-format
msgid "%1$s updated their %2$s"
msgstr "%1$s a mis a jour sa %2$s"
-#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2059
+#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2070
msgid "cover photo"
msgstr "Photo principale"
@@ -7269,7 +7361,7 @@ msgstr "Changer la photo de couverture"
msgid "Documentation Search"
msgstr "Chercher dans la documentation"
-#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1821
+#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1824
#: ../../include/nav.php:391
msgid "About"
msgstr "À propos"
@@ -7294,11 +7386,11 @@ msgstr "Documentation $Projectname"
msgid "Contents"
msgstr "Contenus"
-#: ../../Zotlabs/Module/Display.php:351
+#: ../../Zotlabs/Module/Display.php:394
msgid "Article"
msgstr "Article"
-#: ../../Zotlabs/Module/Display.php:403
+#: ../../Zotlabs/Module/Display.php:446
msgid "Item has been removed."
msgstr "L'élément a été supprimé."
@@ -7543,7 +7635,7 @@ msgid ""
"Password reset failed."
msgstr "La demande n'a pas pu être vérifiée. (Peut-être l'avez vous déjà utilisée.) La réinitialisation a échoué."
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1591
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1598
msgid "Password Reset"
msgstr "Réinitialiser le mot de passe"
@@ -7641,11 +7733,11 @@ msgstr "Partager via Firefox"
msgid "Remote Diagnostics"
msgstr "Diagnostiques à distance"
-#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:390
+#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:417
msgid "Suggest Channels"
msgstr "Suggérer des canaux"
-#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1582
+#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1589
#: ../../include/nav.php:126 ../../include/nav.php:130
msgid "Login"
msgstr "Connexion"
@@ -7654,8 +7746,8 @@ msgstr "Connexion"
msgid "Activity"
msgstr "Activité"
-#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1928
-#: ../../include/features.php:87 ../../include/nav.php:497
+#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1931
+#: ../../include/features.php:96 ../../include/nav.php:497
msgid "Wiki"
msgstr "Wiki"
@@ -7663,8 +7755,8 @@ msgstr "Wiki"
msgid "Channel Home"
msgstr "Mon canal"
-#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1850
-#: ../../include/conversation.php:1853
+#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1853
+#: ../../include/conversation.php:1856
msgid "Events"
msgstr "Événements"
@@ -7821,9 +7913,8 @@ msgctxt "wiki_history"
msgid "Message"
msgstr "Message"
-#: ../../Zotlabs/Lib/NativeWikiPage.php:597
-#: ../../addon/gitwiki/gitwiki_backend.php:579 ../../include/bbcode.php:706
-#: ../../include/bbcode.php:865
+#: ../../Zotlabs/Lib/NativeWikiPage.php:597 ../../include/bbcode.php:744
+#: ../../include/bbcode.php:914
msgid "Different viewers will see this text differently"
msgstr "Ce texte aura un rendu différent en fonction des utilisateurs"
@@ -7945,61 +8036,61 @@ msgstr "Pour ne plus recevoir ces messages, veuillez ajuster vos paramètres de
msgid "To stop receiving these messages, please adjust your %s."
msgstr "Pour ne plus recevoir ces messages, veuillez ajuster votre %s."
-#: ../../Zotlabs/Lib/Enotify.php:120
+#: ../../Zotlabs/Lib/Enotify.php:123
#, php-format
msgid "%s <!item_type!>"
msgstr "%s <!item_type!>"
-#: ../../Zotlabs/Lib/Enotify.php:124
+#: ../../Zotlabs/Lib/Enotify.php:127
#, php-format
msgid "[$Projectname:Notify] New mail received at %s"
msgstr "[$Projectname:Notify] Nouveau mail reçu sur %s"
-#: ../../Zotlabs/Lib/Enotify.php:126
+#: ../../Zotlabs/Lib/Enotify.php:129
#, php-format
-msgid "%1$s, %2$s sent you a new private message at %3$s."
-msgstr "%1$s, vous avez reçu un message privé sur %3$s, de la part de %2$s."
+msgid "%1$s sent you a new private message at %2$s."
+msgstr "%1$s vous a envoyé un nouveau message privé à %2$s."
-#: ../../Zotlabs/Lib/Enotify.php:127
+#: ../../Zotlabs/Lib/Enotify.php:130
#, php-format
msgid "%1$s sent you %2$s."
msgstr "%1$s vous a envoyé %2$s."
-#: ../../Zotlabs/Lib/Enotify.php:127
+#: ../../Zotlabs/Lib/Enotify.php:130
msgid "a private message"
msgstr "un message privé"
-#: ../../Zotlabs/Lib/Enotify.php:128
+#: ../../Zotlabs/Lib/Enotify.php:131
#, php-format
msgid "Please visit %s to view and/or reply to your private messages."
msgstr "Merci de visiter %s pour voir et/ou répondre à vos messages privés."
-#: ../../Zotlabs/Lib/Enotify.php:141
+#: ../../Zotlabs/Lib/Enotify.php:144
msgid "commented on"
msgstr "commenté"
-#: ../../Zotlabs/Lib/Enotify.php:152
+#: ../../Zotlabs/Lib/Enotify.php:155
msgid "liked"
msgstr "aimé"
-#: ../../Zotlabs/Lib/Enotify.php:155
+#: ../../Zotlabs/Lib/Enotify.php:158
msgid "disliked"
msgstr "pas aimé"
-#: ../../Zotlabs/Lib/Enotify.php:198
+#: ../../Zotlabs/Lib/Enotify.php:201
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]a %5$s[/zrl]"
-msgstr "%1$s, %2$s %3$s [zrl=%4$s]a %5$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]a %4$s[/zrl]"
+msgstr "%1$s %2$s [zrl=%3$s]a %4$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:207
+#: ../../Zotlabs/Lib/Enotify.php:209
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]%5$s's %6$s[/zrl]"
-msgstr "%1$s, %2$s %3$s [zrl=%4$s]%5$s's %6$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]%4$s's %5$s[/zrl]"
+msgstr "%1$s %2$s [zrl=%3$s]%4$s de %5$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:217
+#: ../../Zotlabs/Lib/Enotify.php:218
#, php-format
-msgid "%1$s, %2$s %3$s [zrl=%4$s]your %5$s[/zrl]"
-msgstr "%1$s, %2$s %3$s [zrl=%4$s]votre %5$s[/zrl]"
+msgid "%1$s %2$s [zrl=%3$s]your %4$s[/zrl]"
+msgstr "%1$s %2$s [zrl=%3$s]votre %4$s[/zrl]"
#: ../../Zotlabs/Lib/Enotify.php:230
#, php-format
@@ -8013,12 +8104,12 @@ msgstr "[$Projectname:Notify] Commentaire effectué sur la conversation #%1$d pa
#: ../../Zotlabs/Lib/Enotify.php:233
#, php-format
-msgid "%1$s, %2$s commented on an item/conversation you have been following."
-msgstr "%1$s, %2$s a commenté un élément de conversation que vous suivez."
+msgid "%1$s commented on an item/conversation you have been following."
+msgstr "%1$sa commenté un élément ou une conversation que vous suivez."
-#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:318
-#: ../../Zotlabs/Lib/Enotify.php:335 ../../Zotlabs/Lib/Enotify.php:361
-#: ../../Zotlabs/Lib/Enotify.php:379 ../../Zotlabs/Lib/Enotify.php:393
+#: ../../Zotlabs/Lib/Enotify.php:236 ../../Zotlabs/Lib/Enotify.php:317
+#: ../../Zotlabs/Lib/Enotify.php:333 ../../Zotlabs/Lib/Enotify.php:358
+#: ../../Zotlabs/Lib/Enotify.php:375 ../../Zotlabs/Lib/Enotify.php:388
#, php-format
msgid "Please visit %s to view and/or reply to the conversation."
msgstr "Merci de visiter %s pour voir et/ou répondre sur cette conversation."
@@ -8030,152 +8121,150 @@ msgstr "Merci de visiter %spour valider ou rejeter ce commentaire."
#: ../../Zotlabs/Lib/Enotify.php:299
#, php-format
-msgid "%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]"
-msgstr "%1$s, %2$s aiment [zrl=%3$s]votre %4$s[/zrl]"
+msgid "%1$s liked [zrl=%2$s]your %3$s[/zrl]"
+msgstr "%1$s aime [zrl=%2$s]votre %3$s[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:314
+#: ../../Zotlabs/Lib/Enotify.php:313
#, php-format
msgid "[$Projectname:Notify] Like received to conversation #%1$d by %2$s"
msgstr "[$Projectname:Notify] Aime reçu à la convesation #%1$d par %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:315
+#: ../../Zotlabs/Lib/Enotify.php:314
#, php-format
-msgid "%1$s, %2$s liked an item/conversation you created."
-msgstr "%1$s, %2$s a aimé un élément ou une conversation que vous avez créée."
+msgid "%1$s liked an item/conversation you created."
+msgstr "%1$sa commenté un élément ou une conversation que vous avez créée "
-#: ../../Zotlabs/Lib/Enotify.php:326
+#: ../../Zotlabs/Lib/Enotify.php:325
#, php-format
msgid "[$Projectname:Notify] %s posted to your profile wall"
msgstr "[$Projectname:Notify] %s a publié sur le mur de votre profil"
-#: ../../Zotlabs/Lib/Enotify.php:328
+#: ../../Zotlabs/Lib/Enotify.php:327
#, php-format
-msgid "%1$s, %2$s posted to your profile wall at %3$s"
-msgstr "%1$s, %2$s a publié sur votre profil à %3$s"
+msgid "%1$s posted to your profile wall at %2$s"
+msgstr "%1$s a posté sur le mur de votre profil à %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:330
+#: ../../Zotlabs/Lib/Enotify.php:329
#, php-format
-msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]"
-msgstr "%1$s, %2$s a publié sur [zrl=%3$s]votre profil[/zrl]"
+msgid "%1$s posted to [zrl=%2$s]your wall[/zrl]"
+msgstr "%1$s envoyé à [zrl=%2$s]votre mur[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:354
+#: ../../Zotlabs/Lib/Enotify.php:352
#, php-format
msgid "[$Projectname:Notify] %s tagged you"
msgstr "[$Projectname:Notify] %s vous a étiquetté"
-#: ../../Zotlabs/Lib/Enotify.php:355
+#: ../../Zotlabs/Lib/Enotify.php:353
#, php-format
-msgid "%1$s, %2$s tagged you at %3$s"
-msgstr "%1$s, vous avez été étiqueté sur %3$s par %2$s"
+msgid "%1$s tagged you at %2$s"
+msgstr "%1$s vous a étiqueté à %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:356
+#: ../../Zotlabs/Lib/Enotify.php:354
#, php-format
-msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%3$s]vous a étiqueté[/zrl]."
+msgid "%1$s [zrl=%2$s]tagged you[/zrl]."
+msgstr "%1$s [zrl=%2$s]vous a étiqueté[/zrl]."
-#: ../../Zotlabs/Lib/Enotify.php:368
+#: ../../Zotlabs/Lib/Enotify.php:365
#, php-format
msgid "[$Projectname:Notify] %1$s poked you"
msgstr "[$Projectname:Notify] %1$s vous a poké"
-#: ../../Zotlabs/Lib/Enotify.php:369
+#: ../../Zotlabs/Lib/Enotify.php:366
#, php-format
-msgid "%1$s, %2$s poked you at %3$s"
-msgstr "%1$s, %2$s vous a tapoté sur %3$s"
+msgid "%1$s poked you at %2$s"
+msgstr "%1$s vous a tapoté à %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:370
+#: ../../Zotlabs/Lib/Enotify.php:367
#, php-format
-msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]."
-msgstr "%1$s, %2$s [zrl=%2$s]vous a tapoté[/zrl]."
+msgid "%1$s [zrl=%2$s]poked you[/zrl]."
+msgstr "%1$s [zrl=%2$s]vous a tapoté[/zrl]."
-#: ../../Zotlabs/Lib/Enotify.php:386
+#: ../../Zotlabs/Lib/Enotify.php:382
#, php-format
msgid "[$Projectname:Notify] %s tagged your post"
msgstr "[$Projectname:Notify] %s a étiquetté votre publication"
-#: ../../Zotlabs/Lib/Enotify.php:387
+#: ../../Zotlabs/Lib/Enotify.php:383
#, php-format
-msgid "%1$s, %2$s tagged your post at %3$s"
-msgstr "%1$s, %2$s a étiqueté votre publication sur %3$s"
+msgid "%1$s tagged your post at %2$s"
+msgstr "%1$s a étiqueté votre message à %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:388
+#: ../../Zotlabs/Lib/Enotify.php:384
#, php-format
-msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]"
-msgstr "%1$s, %2$s a étiqueté [zrl=%3$s]votre publication[/zrl]"
+msgid "%1$s tagged [zrl=%2$s]your post[/zrl]"
+msgstr "%1$s a étiqueté [zrl=%2$s]votre message[/zrl]"
-#: ../../Zotlabs/Lib/Enotify.php:400
+#: ../../Zotlabs/Lib/Enotify.php:395
msgid "[$Projectname:Notify] Introduction received"
msgstr "[$Projectname:Notify] Demande de relation reçue"
-#: ../../Zotlabs/Lib/Enotify.php:401
+#: ../../Zotlabs/Lib/Enotify.php:396
#, php-format
-msgid "%1$s, you've received an new connection request from '%2$s' at %3$s"
-msgstr "%1$s, vous avez reçu une demande de contact de '%2$s' sur %3$s"
+msgid "You've received an new connection request from '%1$s' at %2$s"
+msgstr "Vous avez reçu une nouvelle demande de connexion de la part de '%1$s' à %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:402
+#: ../../Zotlabs/Lib/Enotify.php:397
#, php-format
-msgid ""
-"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s."
-msgstr "%1$s, vous avez reçu [zrl=%2$s]une demande de contact[/zrl] de %3$s."
+msgid "You've received [zrl=%1$s]a new connection request[/zrl] from %2$s."
+msgstr "Vous avez reçu [zrl=%1$s]une nouvelle demande de connexion[/zrl] de la part de %2$s."
-#: ../../Zotlabs/Lib/Enotify.php:406 ../../Zotlabs/Lib/Enotify.php:425
+#: ../../Zotlabs/Lib/Enotify.php:400 ../../Zotlabs/Lib/Enotify.php:418
#, php-format
msgid "You may visit their profile at %s"
msgstr "Vous pouvez visiter leur profil sur %s"
-#: ../../Zotlabs/Lib/Enotify.php:408
+#: ../../Zotlabs/Lib/Enotify.php:402
#, php-format
msgid "Please visit %s to approve or reject the connection request."
msgstr "Merci de visiter %s pour valider (ou non) cette demande de contact."
-#: ../../Zotlabs/Lib/Enotify.php:415
+#: ../../Zotlabs/Lib/Enotify.php:409
msgid "[$Projectname:Notify] Friend suggestion received"
msgstr "[$Projectname:Notify] Suggestion d'amitié reçue"
-#: ../../Zotlabs/Lib/Enotify.php:416
+#: ../../Zotlabs/Lib/Enotify.php:410
#, php-format
-msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s"
-msgstr "%1$s, vous avez reçu une suggestion d'ami(e) de '%2$s' à %3$s"
+msgid "You've received a friend suggestion from '%1$s' at %2$s"
+msgstr "Vous avez reçu une suggestion d'ami de la part de '%1$s' à %2$s"
-#: ../../Zotlabs/Lib/Enotify.php:417
+#: ../../Zotlabs/Lib/Enotify.php:411
#, php-format
msgid ""
-"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from "
-"%4$s."
-msgstr "%1$s, avez reçu %3$s comme [zrl=%2$s]une suggestion d'ami(e)[/zrl] de %4$s."
+"You've received [zrl=%1$s]a friend suggestion[/zrl] for %2$s from %3$s."
+msgstr "Vous avez reçu [zrl=%1$s]une suggestion d'ami[/zrl] pour %2$s de %3$s."
-#: ../../Zotlabs/Lib/Enotify.php:423
+#: ../../Zotlabs/Lib/Enotify.php:416
msgid "Name:"
msgstr "Nom&nbsp;:"
-#: ../../Zotlabs/Lib/Enotify.php:424
+#: ../../Zotlabs/Lib/Enotify.php:417
msgid "Photo:"
msgstr "Photo&nbsp;:"
-#: ../../Zotlabs/Lib/Enotify.php:427
+#: ../../Zotlabs/Lib/Enotify.php:420
#, php-format
msgid "Please visit %s to approve or reject the suggestion."
msgstr "Merci de visiter %s pour valider ou rejeter cette suggestion."
-#: ../../Zotlabs/Lib/Enotify.php:647
+#: ../../Zotlabs/Lib/Enotify.php:640
msgid "[$Projectname:Notify]"
msgstr "[$Projectname:Notify]"
-#: ../../Zotlabs/Lib/Enotify.php:815
+#: ../../Zotlabs/Lib/Enotify.php:808
msgid "created a new post"
msgstr "a publié un nouveau message"
-#: ../../Zotlabs/Lib/Enotify.php:816
+#: ../../Zotlabs/Lib/Enotify.php:809
#, php-format
msgid "commented on %s's post"
msgstr "a commenté la publication de %s"
-#: ../../Zotlabs/Lib/Enotify.php:823
+#: ../../Zotlabs/Lib/Enotify.php:816
#, php-format
msgid "edited a post dated %s"
msgstr "a édité un post daté du %s"
-#: ../../Zotlabs/Lib/Enotify.php:827
+#: ../../Zotlabs/Lib/Enotify.php:820
#, php-format
msgid "edited a comment dated %s"
msgstr "a édité un commentaire daté du %s"
@@ -8258,11 +8347,11 @@ msgstr "Signature du message incorrecte"
msgid "Add Tag"
msgstr "Ajouter une étiquette"
-#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:510
+#: ../../Zotlabs/Lib/ThreadItem.php:281 ../../include/taxonomy.php:514
msgid "like"
msgstr "aiment"
-#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:511
+#: ../../Zotlabs/Lib/ThreadItem.php:282 ../../include/taxonomy.php:515
msgid "dislike"
msgstr "n'aiment pas"
@@ -8355,51 +8444,51 @@ msgstr "Il s'agit d'une prévisualisation non sauvegardée."
msgid "%s show all"
msgstr "%s montre tout"
-#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/conversation.php:1377
+#: ../../Zotlabs/Lib/ThreadItem.php:753 ../../include/conversation.php:1380
msgid "Bold"
msgstr "Gras"
-#: ../../Zotlabs/Lib/ThreadItem.php:752 ../../include/conversation.php:1378
+#: ../../Zotlabs/Lib/ThreadItem.php:754 ../../include/conversation.php:1381
msgid "Italic"
msgstr "Italique"
-#: ../../Zotlabs/Lib/ThreadItem.php:753 ../../include/conversation.php:1379
+#: ../../Zotlabs/Lib/ThreadItem.php:755 ../../include/conversation.php:1382
msgid "Underline"
msgstr "Souligné"
-#: ../../Zotlabs/Lib/ThreadItem.php:754 ../../include/conversation.php:1380
+#: ../../Zotlabs/Lib/ThreadItem.php:756 ../../include/conversation.php:1383
msgid "Quote"
msgstr "Citation"
-#: ../../Zotlabs/Lib/ThreadItem.php:755 ../../include/conversation.php:1381
+#: ../../Zotlabs/Lib/ThreadItem.php:757 ../../include/conversation.php:1384
msgid "Code"
msgstr "Code"
-#: ../../Zotlabs/Lib/ThreadItem.php:756
+#: ../../Zotlabs/Lib/ThreadItem.php:758
msgid "Image"
msgstr "Image"
-#: ../../Zotlabs/Lib/ThreadItem.php:757
+#: ../../Zotlabs/Lib/ThreadItem.php:759
msgid "Attach File"
msgstr "Joindre fichier"
-#: ../../Zotlabs/Lib/ThreadItem.php:758
+#: ../../Zotlabs/Lib/ThreadItem.php:760
msgid "Insert Link"
msgstr "Insérer un lien"
-#: ../../Zotlabs/Lib/ThreadItem.php:759
+#: ../../Zotlabs/Lib/ThreadItem.php:761
msgid "Video"
msgstr "Vidéo"
-#: ../../Zotlabs/Lib/ThreadItem.php:769
+#: ../../Zotlabs/Lib/ThreadItem.php:771
msgid "Your full name (required)"
msgstr "Votre nom complet (obligatoire)"
-#: ../../Zotlabs/Lib/ThreadItem.php:770
+#: ../../Zotlabs/Lib/ThreadItem.php:772
msgid "Your email address (required)"
msgstr "Votre adresse de courriel (obligatoire)"
-#: ../../Zotlabs/Lib/ThreadItem.php:771
+#: ../../Zotlabs/Lib/ThreadItem.php:773
msgid "Your website URL (optional)"
msgstr "L'adresse de votre site web (optionelle)"
@@ -8419,7 +8508,7 @@ msgstr "Bienvenue %s. L'authentification distante a fonctionné."
msgid "parent"
msgstr "retour"
-#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2821
+#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2828
msgid "Collection"
msgstr "Groupe de contacts"
@@ -8452,6 +8541,10 @@ msgstr "Total"
msgid "Shared"
msgstr "Partagé"
+#: ../../Zotlabs/Storage/Browser.php:277
+msgid "Add Files"
+msgstr "Ajouter des fichiers"
+
#: ../../Zotlabs/Storage/Browser.php:353
#, php-format
msgid "You are using %1$s of your available file storage."
@@ -8559,10 +8652,10 @@ msgid "Select an addressbook to import to"
msgstr "Sélectionner un carnet d'adresses à importer dans"
#: ../../Zotlabs/Widget/Appcategories.php:40
-#: ../../Zotlabs/Widget/Tagcloud.php:25 ../../include/contact_widgets.php:97
-#: ../../include/contact_widgets.php:141 ../../include/contact_widgets.php:186
-#: ../../include/taxonomy.php:344 ../../include/taxonomy.php:426
-#: ../../include/taxonomy.php:446 ../../include/taxonomy.php:467
+#: ../../include/contact_widgets.php:97 ../../include/contact_widgets.php:141
+#: ../../include/contact_widgets.php:186 ../../include/taxonomy.php:348
+#: ../../include/taxonomy.php:430 ../../include/taxonomy.php:450
+#: ../../include/taxonomy.php:471
msgid "Categories"
msgstr "Catégories"
@@ -8617,7 +8710,7 @@ msgid "New Message"
msgstr "Nouveau message"
#: ../../Zotlabs/Widget/Chatroom_list.php:16
-#: ../../include/conversation.php:1864 ../../include/conversation.php:1867
+#: ../../include/conversation.php:1867 ../../include/conversation.php:1870
#: ../../include/nav.php:434 ../../include/nav.php:437
msgid "Chatrooms"
msgstr "Salons de clavardage"
@@ -8660,7 +8753,7 @@ msgstr "Saisissez l'adresse du canal"
msgid "Examples: bob@example.com, https://example.com/barbara"
msgstr "Exemples&nbsp;: pierre@exemple.com, https://exemple.com/sophie"
-#: ../../Zotlabs/Widget/Wiki_list.php:15 ../../addon/gitwiki/gitwiki.php:95
+#: ../../Zotlabs/Widget/Wiki_list.php:15
msgid "Wiki List"
msgstr "Liste de wikis"
@@ -8700,7 +8793,7 @@ msgstr "photo/image"
msgid "Remove term"
msgstr "Retirer le terme"
-#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:354
+#: ../../Zotlabs/Widget/Savedsearch.php:83 ../../include/features.php:381
msgid "Saved Searches"
msgstr "Recherches sauvegardées"
@@ -8713,15 +8806,15 @@ msgid "Notes"
msgstr "Notes"
#: ../../Zotlabs/Widget/Wiki_pages.php:32
-#: ../../Zotlabs/Widget/Wiki_pages.php:89 ../../addon/gitwiki/gitwiki.php:81
+#: ../../Zotlabs/Widget/Wiki_pages.php:89
msgid "Add new page"
msgstr "Ajouter une nouvelle page"
-#: ../../Zotlabs/Widget/Wiki_pages.php:83 ../../addon/gitwiki/gitwiki.php:76
+#: ../../Zotlabs/Widget/Wiki_pages.php:83
msgid "Wiki Pages"
msgstr "Pages wiki"
-#: ../../Zotlabs/Widget/Wiki_pages.php:94 ../../addon/gitwiki/gitwiki.php:82
+#: ../../Zotlabs/Widget/Wiki_pages.php:94
msgid "Page name"
msgstr "Nom de la page"
@@ -8742,7 +8835,7 @@ msgid "See more..."
msgstr "Voir plus..."
#: ../../Zotlabs/Widget/Filer.php:28 ../../include/contact_widgets.php:53
-#: ../../include/features.php:443
+#: ../../include/features.php:470
msgid "Saved Folders"
msgstr "Dossiers sauvegardés"
@@ -8750,6 +8843,63 @@ msgstr "Dossiers sauvegardés"
msgid "Click to show more"
msgstr "Cliquer pour voir plus"
+#: ../../Zotlabs/Widget/Tagcloud.php:22 ../../include/taxonomy.php:388
+#: ../../include/taxonomy.php:409
+msgid "Tags"
+msgstr "Étiquettes"
+
+#: ../../Zotlabs/Widget/Newmember.php:24
+msgid "Profile Creation"
+msgstr "Création de profil"
+
+#: ../../Zotlabs/Widget/Newmember.php:26
+msgid "Upload profile photo"
+msgstr "Téléverser la photo du profil"
+
+#: ../../Zotlabs/Widget/Newmember.php:27
+msgid "Upload cover photo"
+msgstr "Téléverser la photo de couverture"
+
+#: ../../Zotlabs/Widget/Newmember.php:28 ../../include/nav.php:119
+msgid "Edit your profile"
+msgstr "Modifier votre profil"
+
+#: ../../Zotlabs/Widget/Newmember.php:31
+msgid "Find and Connect with others"
+msgstr "Trouver et connecter avec des autres personnes"
+
+#: ../../Zotlabs/Widget/Newmember.php:33
+msgid "View the directory"
+msgstr "Voir l'annuaire"
+
+#: ../../Zotlabs/Widget/Newmember.php:35
+msgid "Manage your connections"
+msgstr "Gérez vos connexions"
+
+#: ../../Zotlabs/Widget/Newmember.php:38
+msgid "Communicate"
+msgstr "Communiquer"
+
+#: ../../Zotlabs/Widget/Newmember.php:40
+msgid "View your channel homepage"
+msgstr "Voir la page d'accueil de votre canal"
+
+#: ../../Zotlabs/Widget/Newmember.php:41
+msgid "View your network stream"
+msgstr "Visualisez votre flux réseau"
+
+#: ../../Zotlabs/Widget/Newmember.php:47
+msgid "Documentation"
+msgstr "Documentation"
+
+#: ../../Zotlabs/Widget/Newmember.php:58
+msgid "View public stream"
+msgstr "Voir le flux public"
+
+#: ../../Zotlabs/Widget/Newmember.php:62 ../../include/features.php:60
+msgid "New Member Links"
+msgstr "Liens pour les nouveaux membres"
+
#: ../../Zotlabs/Widget/Newmember.php:33
msgid "Profile Creation"
msgstr "Création de profil"
@@ -8847,14 +8997,18 @@ msgid "Export channel"
msgstr "Exporter le canal"
#: ../../Zotlabs/Widget/Settings_menu.php:84
-msgid "Connected apps"
-msgstr "Applications connectées"
+msgid "OAuth1 apps"
+msgstr "OAuth1 applications"
+
+#: ../../Zotlabs/Widget/Settings_menu.php:92
+msgid "OAuth2 apps"
+msgstr "OAuth2 applications"
-#: ../../Zotlabs/Widget/Settings_menu.php:100 ../../include/features.php:231
+#: ../../Zotlabs/Widget/Settings_menu.php:108 ../../include/features.php:240
msgid "Permission Groups"
msgstr "Groupes d'accès"
-#: ../../Zotlabs/Widget/Settings_menu.php:117
+#: ../../Zotlabs/Widget/Settings_menu.php:125
msgid "Premium Channel Settings"
msgstr "Paramètres de canal VIP"
@@ -8992,50 +9146,50 @@ msgstr "Désolé, vous n'avez pas de notifications pour le moment."
msgid "Source channel not found."
msgstr "Source du canal introuvable."
-#: ../../boot.php:1562
+#: ../../boot.php:1569
msgid "Create an account to access services and applications"
msgstr "Créer un compte pour accéder aux services et applications"
-#: ../../boot.php:1581 ../../include/nav.php:111 ../../include/nav.php:140
+#: ../../boot.php:1588 ../../include/nav.php:111 ../../include/nav.php:140
#: ../../include/nav.php:159
msgid "Logout"
msgstr "Déconnexion"
-#: ../../boot.php:1585
+#: ../../boot.php:1592
msgid "Login/Email"
msgstr "pseudo / email"
-#: ../../boot.php:1586
+#: ../../boot.php:1593
msgid "Password"
msgstr "Mot de passe"
-#: ../../boot.php:1587
+#: ../../boot.php:1594
msgid "Remember me"
msgstr "Se souvenir de moi"
-#: ../../boot.php:1590
+#: ../../boot.php:1597
msgid "Forgot your password?"
msgstr "Mot de passe oublié&nbsp;?"
-#: ../../boot.php:2347
+#: ../../boot.php:2354
#, php-format
msgid "[$Projectname] Website SSL error for %s"
msgstr "[$Projectname] erreur SSL du site web pour %s"
-#: ../../boot.php:2352
+#: ../../boot.php:2359
msgid "Website SSL certificate is not valid. Please correct."
msgstr "Le certificat SSL n'est pas valide. Corrigez le."
-#: ../../boot.php:2468
+#: ../../boot.php:2475
#, php-format
msgid "[$Projectname] Cron tasks not running on %s"
msgstr "[$Projectname] Tâches Cron inactives sur %s"
-#: ../../boot.php:2473
+#: ../../boot.php:2480
msgid "Cron/Scheduled tasks not running."
msgstr "Les taches planifiées ne tournent pas."
-#: ../../boot.php:2474 ../../include/datetime.php:232
+#: ../../boot.php:2481 ../../include/datetime.php:238
msgid "never"
msgstr "jamais"
@@ -9281,6 +9435,10 @@ msgid ""
" share their own locations with the group."
msgstr "Créez un nouveau rendez-vous et partagez le lien d'accès avec les gens que vous souhaitez inviter au groupe. Ceux qui ouvrent le lien deviennent membres du rendez-vous. Ils peuvent afficher les emplacements des autres membres, ajouter des marqueurs à la carte ou partager leurs propres emplacements avec le groupe."
+#: ../../addon/rendezvous/rendezvous.php:232
+msgid "You have no rendezvous. Press the button above to create a rendezvous!"
+msgstr "Vous n'avez pas de rendez-vous. Appuyez sur le bouton ci-dessus pour créer un rendez-vous !"
+
#: ../../addon/skeleton/skeleton.php:59
msgid "Some setting"
msgstr "Un certain paramètre"
@@ -9293,30 +9451,30 @@ msgstr "Un paramètre"
msgid "Skeleton Settings"
msgstr "Paramètres du squelette"
-#: ../../addon/gnusoc/gnusoc.php:247
+#: ../../addon/gnusoc/gnusoc.php:249
msgid "GNU-Social Protocol Settings updated."
msgstr "Paramètres du protocol GNU-Social mis à jour."
-#: ../../addon/gnusoc/gnusoc.php:266
+#: ../../addon/gnusoc/gnusoc.php:268
msgid ""
"The GNU-Social protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr "Le protocole GNU-Social ne gère pas les canaux localisés sur plusieurs serveurs. Vos contacts sur ce réseau peuvent donc être injoignables à partir des autres emplacements (clones) de ce canal."
-#: ../../addon/gnusoc/gnusoc.php:269
+#: ../../addon/gnusoc/gnusoc.php:271
msgid "Enable the GNU-Social protocol for this channel"
msgstr "Activer le protocole GNU-Social pour ce canal"
-#: ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/gnusoc/gnusoc.php:275
msgid "GNU-Social Protocol Settings"
msgstr "Paramètres du protocol GNU-Social"
-#: ../../addon/gnusoc/gnusoc.php:464
+#: ../../addon/gnusoc/gnusoc.php:471
msgid "Follow"
msgstr "S'abonner"
-#: ../../addon/gnusoc/gnusoc.php:467
+#: ../../addon/gnusoc/gnusoc.php:474
#, php-format
msgid "%1$s is now following %2$s"
msgstr "%1$s est maintenant abonné à %2$s"
@@ -9362,7 +9520,7 @@ msgstr "Retourner ensuite"
msgid "Page to load after image selection."
msgstr "Page à afficher après la sélection de l'image."
-#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1301
+#: ../../addon/openclipatar/openclipatar.php:58 ../../include/channel.php:1300
#: ../../include/nav.php:119
msgid "Edit Profile"
msgstr "Éditeur de profil"
@@ -9851,17 +10009,17 @@ msgstr "Date de naissance"
msgid "OpenID protocol error. No ID returned."
msgstr "Erreur du protocole OpenID. Aucune ID trouvée."
-#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:290
+#: ../../addon/openid/Mod_Openid.php:188 ../../include/auth.php:300
msgid "Login failed."
msgstr "Échec de la connexion."
#: ../../addon/openid/Mod_Id.php:85 ../../include/selectors.php:49
-#: ../../include/selectors.php:66 ../../include/channel.php:1481
+#: ../../include/selectors.php:66 ../../include/channel.php:1480
msgid "Male"
msgstr "Homme"
#: ../../addon/openid/Mod_Id.php:87 ../../include/selectors.php:49
-#: ../../include/selectors.php:66 ../../include/channel.php:1479
+#: ../../include/selectors.php:66 ../../include/channel.php:1478
msgid "Female"
msgstr "Femme"
@@ -10048,39 +10206,39 @@ msgstr "Déclarer un amour éternel pour"
msgid "declared undying love for"
msgstr "A déclaré l'amour éternel pour"
-#: ../../addon/diaspora/diaspora.php:778
+#: ../../addon/diaspora/diaspora.php:779
msgid "Diaspora Protocol Settings updated."
msgstr "Paramètres du protocole Diaspora mis à jour."
-#: ../../addon/diaspora/diaspora.php:797
+#: ../../addon/diaspora/diaspora.php:798
msgid ""
"The Diaspora protocol does not support location independence. Connections "
"you make within that network may be unreachable from alternate channel "
"locations."
msgstr "Le protocole Diaspora ne gère pas les canaux localisés sur plusieurs serveurs. Vos contacts sur ce réseau peuvent donc être injoignables à partir des autres emplacements (clones) de ce canal."
-#: ../../addon/diaspora/diaspora.php:800
+#: ../../addon/diaspora/diaspora.php:801
msgid "Enable the Diaspora protocol for this channel"
msgstr "Activer le protocole Diaspora pour ce canal"
-#: ../../addon/diaspora/diaspora.php:804
+#: ../../addon/diaspora/diaspora.php:805
msgid "Allow any Diaspora member to comment on your public posts"
msgstr "Permettre à tous les membres de Diaspora de commenter vos publications publiques"
-#: ../../addon/diaspora/diaspora.php:808
+#: ../../addon/diaspora/diaspora.php:809
msgid "Prevent your hashtags from being redirected to other sites"
msgstr "Empêcher la redirection de vos mots-clés (hashtags) vers d'autres sites"
-#: ../../addon/diaspora/diaspora.php:812
+#: ../../addon/diaspora/diaspora.php:813
msgid ""
"Sign and forward posts and comments with no existing Diaspora signature"
msgstr "Signer et faire suivre les publications et commentaires n'ayant aucune signature Diaspora"
-#: ../../addon/diaspora/diaspora.php:817
+#: ../../addon/diaspora/diaspora.php:818
msgid "Followed hashtags (comma separated, do not include the #)"
msgstr "Mots-clés suivis (séparer par une virgule, ne pas mettre le #)"
-#: ../../addon/diaspora/diaspora.php:822
+#: ../../addon/diaspora/diaspora.php:823
msgid "Diaspora Protocol Settings"
msgstr "Paramètres du protocole Diaspora"
@@ -10088,7 +10246,7 @@ msgstr "Paramètres du protocole Diaspora"
msgid "No username found in import file."
msgstr "Pas de nom d'utilisateur dans le fichier d'import."
-#: ../../addon/diaspora/import_diaspora.php:41 ../../include/import.php:62
+#: ../../addon/diaspora/import_diaspora.php:41 ../../include/import.php:67
msgid "Unable to create a unique channel address. Import failed."
msgstr "Impossible de créer une adresse de canal unique. Echec de l'import."
@@ -10359,8 +10517,8 @@ msgstr "Mot de passe de connexion Friendica"
msgid "Hubzilla to Friendica Post Settings"
msgstr "Paramètres de publication de Hubzilla vers Friendica"
-#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1397
-#: ../../include/channel.php:1568
+#: ../../addon/jappixmini/jappixmini.php:305 ../../include/channel.php:1396
+#: ../../include/channel.php:1567
msgid "Status:"
msgstr "État&nbsp;:"
@@ -10422,8 +10580,8 @@ msgid "No channels currently blocked"
msgstr "Aucun canal n'est actuellement bloqué"
#: ../../addon/superblock/superblock.php:120
-msgid "\"Superblock\" Settings"
-msgstr "Paramètres \"Superblock\""
+msgid "Superblock Settings"
+msgstr "Paramètres de Superblock"
#: ../../addon/superblock/superblock.php:345
msgid "Block Completely"
@@ -10505,55 +10663,55 @@ msgstr "Taille du fichier journal en octets avant la rotation"
msgid "Number of logfiles to retain"
msgstr "Nombre de fichiers de journal à conserver"
-#: ../../addon/frphotos/frphotos.php:91
+#: ../../addon/frphotos/frphotos.php:92
msgid "Friendica Photo Album Import"
msgstr "Importation de l'album photo Friendica "
-#: ../../addon/frphotos/frphotos.php:92
+#: ../../addon/frphotos/frphotos.php:93
msgid "This will import all your Friendica photo albums to this Red channel."
msgstr "Ceci importera toutes vos albums photos Friendica dans ce canal Hubzilla."
-#: ../../addon/frphotos/frphotos.php:93
+#: ../../addon/frphotos/frphotos.php:94
msgid "Friendica Server base URL"
msgstr "URL de base du serveur Friendica"
-#: ../../addon/frphotos/frphotos.php:94
+#: ../../addon/frphotos/frphotos.php:95
msgid "Friendica Login Username"
msgstr "Identifiant de connexion Friendica"
-#: ../../addon/frphotos/frphotos.php:95
+#: ../../addon/frphotos/frphotos.php:96
msgid "Friendica Login Password"
msgstr "Mot de passe de connexion Friendica"
-#: ../../addon/pubcrawl/as.php:1101 ../../addon/pubcrawl/as.php:1228
-#: ../../addon/pubcrawl/as.php:1403 ../../include/network.php:1774
+#: ../../addon/pubcrawl/as.php:1129 ../../addon/pubcrawl/as.php:1256
+#: ../../addon/pubcrawl/as.php:1432 ../../include/network.php:1775
msgid "ActivityPub"
msgstr "ActivityPub"
-#: ../../addon/pubcrawl/pubcrawl.php:1034
+#: ../../addon/pubcrawl/pubcrawl.php:1050
msgid "ActivityPub Protocol Settings updated."
msgstr "Paramètres du protocole ActivityPub Protocol mise à jour."
-#: ../../addon/pubcrawl/pubcrawl.php:1043
+#: ../../addon/pubcrawl/pubcrawl.php:1059
msgid ""
"The ActivityPub protocol does not support location independence. Connections"
" you make within that network may be unreachable from alternate channel "
"locations."
msgstr "Le protocole ActivityPub ne prend pas en charge l'indépendance de localisation. Les connexions que vous établissez au sein de ce réseau peuvent être inaccessibles à partir d'autres emplacements de canaux."
-#: ../../addon/pubcrawl/pubcrawl.php:1046
+#: ../../addon/pubcrawl/pubcrawl.php:1062
msgid "Enable the ActivityPub protocol for this channel"
msgstr "Activer le protocole ActivityPub pour ce canal."
-#: ../../addon/pubcrawl/pubcrawl.php:1049
+#: ../../addon/pubcrawl/pubcrawl.php:1065
msgid "Send multi-media HTML articles"
msgstr "Envoyer des articles HTML multimédia"
-#: ../../addon/pubcrawl/pubcrawl.php:1049
+#: ../../addon/pubcrawl/pubcrawl.php:1065
msgid "Not supported by some microblog services such as Mastodon"
msgstr "Non pris en charge par certains services de microblog tels que Mastodon."
-#: ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/pubcrawl/pubcrawl.php:1069
msgid "ActivityPub Protocol Settings"
msgstr "Paramètres du protocole ActivityPub "
@@ -10869,7 +11027,7 @@ msgid ""
"details from unknown viewers?</em>) the link potentially included in public "
"postings relayed to GNU social will lead the visitor to a blank page "
"informing the visitor that the access to your profile has been restricted."
-msgstr "Remarque : en raison de vos paramètres de confidentialité (masquer les détails de votre profil aux visiteurs inconnus? ), le lien potentiellement inclus dans les annonces publiques relayées sur GNU-social amènera le visiteur à une page vierge informant le visiteur que l'accès à votre profil a été restreint."
+msgstr "<strong>Remarque</strong>&nbsp;: en raison de vos paramètres de confidentialité (<em>masquer les détails de votre profil aux visiteurs inconnus&nbsp;?</em>), le lien potentiellement inclus dans les annonces publiques relayées sur GNU-social amènera le visiteur à une page vierge informant le visiteur que l'accès à votre profil a été restreint."
#: ../../addon/statusnet/statusnet.php:411
msgid "Allow posting to GNU social"
@@ -10943,7 +11101,7 @@ msgstr "Couleur aléatoire choisie."
msgid "Error creating new game."
msgstr "Erreur lors de la création du nouveau jeu."
-#: ../../addon/chess/chess.php:486 ../../include/channel.php:1152
+#: ../../addon/chess/chess.php:486 ../../include/channel.php:1151
msgid "Requested channel is not available."
msgstr "Canal demandé non disponible."
@@ -11038,6 +11196,78 @@ msgstr "Cacher le bouton et afficher les émoticônes directement."
msgid "Smileybutton Settings"
msgstr "Paramètres du bouton des émoticônes"
+#: ../../addon/cart/myshop.php:138
+msgid "Order Not Found"
+msgstr "Commande introuvable"
+
+#: ../../addon/cart/cart.php:810
+msgid "Order cannot be checked out."
+msgstr "La commande ne peut pas être finalisée."
+
+#: ../../addon/cart/cart.php:1073
+msgid "Enable Shopping Cart"
+msgstr "Activer le panier d'achats"
+
+#: ../../addon/cart/cart.php:1080
+msgid "Enable Test Catalog"
+msgstr "Activer le catalogue de test"
+
+#: ../../addon/cart/cart.php:1088
+msgid "Enable Manual Payments"
+msgstr "Activer les paiements manuels"
+
+#: ../../addon/cart/cart.php:1103
+msgid "Base Cart Settings"
+msgstr "Paramètres de base du panier"
+
+#: ../../addon/cart/cart.php:1151
+msgid "Add Item"
+msgstr "Ajouter un article"
+
+#: ../../addon/cart/cart.php:1165
+msgid "Call cart_post_"
+msgstr "Appeler cart_post_"
+
+#: ../../addon/cart/cart.php:1195
+msgid "Cart Not Enabled (profile: "
+msgstr "Panier non activé (profile:"
+
+#: ../../addon/cart/cart.php:1226 ../../addon/cart/manual_payments.php:36
+msgid "Order not found."
+msgstr "Commande introuvable."
+
+#: ../../addon/cart/cart.php:1262 ../../addon/cart/cart.php:1389
+msgid "No Order Found"
+msgstr "Aucune commande trouvée"
+
+#: ../../addon/cart/cart.php:1270
+msgid "call: "
+msgstr "appel:"
+
+#: ../../addon/cart/cart.php:1273
+msgid "An unknown error has occurred Please start again."
+msgstr "Une erreur inconnue s'est produite. Veuillez recommencer."
+
+#: ../../addon/cart/cart.php:1414
+msgid "Invalid Payment Type. Please start again."
+msgstr "Type de paiement non valable. Recommencez, s'il vous plaît."
+
+#: ../../addon/cart/cart.php:1421
+msgid "Order not found"
+msgstr "Commande non trouvée"
+
+#: ../../addon/cart/manual_payments.php:9
+msgid "Error: order mismatch. Please try again."
+msgstr "Erreur : non-appariement de commande. Veuillez réessayer."
+
+#: ../../addon/cart/manual_payments.php:29
+msgid "Manual payments are not enabled."
+msgstr "Les paiements manuels ne sont pas activés."
+
+#: ../../addon/cart/manual_payments.php:44
+msgid "Finished"
+msgstr "Terminé."
+
#: ../../addon/piwik/piwik.php:85
msgid ""
"This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> "
@@ -11082,156 +11312,156 @@ msgstr "Activer le traqueur d'erreur du frontend JavaScript"
msgid "This feature requires Piwik >= 2.2.0"
msgstr "Cette fonctionnalité requiert une version de Piwik >=2.2.0"
-#: ../../addon/tour/tour.php:75
+#: ../../addon/tour/tour.php:76
msgid "Edit your profile and change settings."
msgstr "Éditer votre profil et changer les paramètres."
-#: ../../addon/tour/tour.php:76
+#: ../../addon/tour/tour.php:77
msgid "Click here to see activity from your connections."
msgstr "Cliquer ici pour voir l'activité de vos contacts."
-#: ../../addon/tour/tour.php:77
+#: ../../addon/tour/tour.php:78
msgid "Click here to see your channel home."
msgstr "Cliquer ici pour voir votre canal principal."
-#: ../../addon/tour/tour.php:78
+#: ../../addon/tour/tour.php:79
msgid "You can access your private messages from here."
msgstr "Vous pouvez accéder à vos messages privés à partir d'ici."
-#: ../../addon/tour/tour.php:79
+#: ../../addon/tour/tour.php:80
msgid "Create new events here."
msgstr "Créer de nouveaux événements ici."
-#: ../../addon/tour/tour.php:80
+#: ../../addon/tour/tour.php:81
msgid ""
"You can accept new connections and change permissions for existing ones "
"here. You can also e.g. create groups of contacts."
msgstr "Vous pouvez accepter de nouveaux contacts et changer les droits d'accès des contacts existants. Vous pouvez également créer des groupes de contacts."
-#: ../../addon/tour/tour.php:81
+#: ../../addon/tour/tour.php:82
msgid "System notifications will arrive here"
msgstr "Les notifications du système arriveront ici."
-#: ../../addon/tour/tour.php:82
+#: ../../addon/tour/tour.php:83
msgid "Search for content and users"
msgstr "Rechercher du contenu ou des utilisateurs"
-#: ../../addon/tour/tour.php:83
+#: ../../addon/tour/tour.php:84
msgid "Browse for new contacts"
msgstr "Rechercher de nouveaux contacts"
-#: ../../addon/tour/tour.php:84
+#: ../../addon/tour/tour.php:85
msgid "Launch installed apps"
msgstr "Démarrer des applications installées"
-#: ../../addon/tour/tour.php:85
+#: ../../addon/tour/tour.php:86
msgid "Looking for help? Click here."
msgstr "Un peu d'aide ? Cliquer ici."
-#: ../../addon/tour/tour.php:86
+#: ../../addon/tour/tour.php:87
msgid ""
"New events have occurred in your network. Click here to see what has "
"happened!"
msgstr "De nouveaux événement se sont produits dans votre réseau. Cliquer ici pour voir ce qui s'est passé !"
-#: ../../addon/tour/tour.php:87
+#: ../../addon/tour/tour.php:88
msgid "You have received a new private message. Click here to see from who!"
msgstr "Vous avez reçu un nouveau message privé. Cliquer ici pour voir qui vous écrit !"
-#: ../../addon/tour/tour.php:88
+#: ../../addon/tour/tour.php:89
msgid "There are events this week. Click here too see which!"
msgstr "Il y a des événements cette semaine. Cliquer ici pour voir lesquels !"
-#: ../../addon/tour/tour.php:89
+#: ../../addon/tour/tour.php:90
msgid "You have received a new introduction. Click here to see who!"
msgstr "Vous avez reçu une nouvelle demande de relation. Cliquer ici pour voir de qui !"
-#: ../../addon/tour/tour.php:90
+#: ../../addon/tour/tour.php:91
msgid ""
"There is a new system notification. Click here to see what has happened!"
msgstr "Vous avez reçu une notification du système. Cliquer ici pour voir ce qui se passe !"
-#: ../../addon/tour/tour.php:93
+#: ../../addon/tour/tour.php:94
msgid "Click here to share text, images, videos and sound."
msgstr "Cliquer ici pour partager du texte, des images, des vidéos ou du son."
-#: ../../addon/tour/tour.php:94
+#: ../../addon/tour/tour.php:95
msgid "You can write an optional title for your update (good for long posts)."
msgstr "Vous pouvez ajouter à votre mise à jour un titre facultatif (pratique pour de longues publications)."
-#: ../../addon/tour/tour.php:95
+#: ../../addon/tour/tour.php:96
msgid "Entering some categories here makes it easier to find your post later."
msgstr "Renseigner certaines catégories ici permet de retrouver plus facilement votre message plus tard."
-#: ../../addon/tour/tour.php:96
+#: ../../addon/tour/tour.php:97
msgid "Share photos, links, location, etc."
msgstr "Partager des photos, des liens, des localisations, etc."
-#: ../../addon/tour/tour.php:97
+#: ../../addon/tour/tour.php:98
msgid ""
"Only want to share content for a while? Make it expire at a certain date."
msgstr "Envie de partager un contenu pour une durée limitée ? Faites-le expirer à une certaine date."
-#: ../../addon/tour/tour.php:98
+#: ../../addon/tour/tour.php:99
msgid "You can password protect content."
msgstr "Vous pouvez protéger un contenu avec un mot de passe."
-#: ../../addon/tour/tour.php:99
+#: ../../addon/tour/tour.php:100
msgid "Choose who you share with."
msgstr "Choisir avec qui vous partagez."
-#: ../../addon/tour/tour.php:101
+#: ../../addon/tour/tour.php:102
msgid "Click here when you are done."
msgstr "Cliquer ici quand vous avez fini."
-#: ../../addon/tour/tour.php:104
+#: ../../addon/tour/tour.php:105
msgid "Adjust from which channels posts should be displayed."
msgstr "Préciser de quels canaux les publications seront affichées."
-#: ../../addon/tour/tour.php:105
+#: ../../addon/tour/tour.php:106
msgid "Only show posts from channels in the specified privacy group."
msgstr "Afficher uniquement les messages des canaux appartenant au groupe de contacts spécifié."
-#: ../../addon/tour/tour.php:109
+#: ../../addon/tour/tour.php:110
msgid "Easily find posts containing tags (keywords preceded by the \"#\" symbol)."
msgstr "Trouvez facilement des publications contenant des tags (mots-clés précédés du symbole \"#\")."
-#: ../../addon/tour/tour.php:110
+#: ../../addon/tour/tour.php:111
msgid "Easily find posts in given category."
msgstr "Trouvez facilement des publications dans une catégorie donnée."
-#: ../../addon/tour/tour.php:111
+#: ../../addon/tour/tour.php:112
msgid "Easily find posts by date."
msgstr "Trouvez facilement des publications en fonction de leur date."
-#: ../../addon/tour/tour.php:112
+#: ../../addon/tour/tour.php:113
msgid ""
"Suggested users who have volounteered to be shown as suggestions, and who we"
" think you might find interesting."
msgstr "Voici des utilisateurs que vous pourriez trouver intéressants. Ces utilisateurs se sont portés volontaires pour être affichés comme exemples."
-#: ../../addon/tour/tour.php:113
+#: ../../addon/tour/tour.php:114
msgid "Here you see channels you have connected to."
msgstr "Retrouvez ici les canaux auxquels vous vous êtes connectés."
-#: ../../addon/tour/tour.php:114
+#: ../../addon/tour/tour.php:115
msgid "Save your search so you can repeat it at a later date."
msgstr "Enregistrer votre recherche de façon à pouvoir la répéter plus tard."
-#: ../../addon/tour/tour.php:117
+#: ../../addon/tour/tour.php:118
msgid ""
"If you see this icon you can be sure that the sender is who it say it is. It"
" is normal that it is not always possible to verify the sender, so the icon "
"will be missing sometimes. There is usually no need to worry about that."
msgstr "Si vous voyez cette icône, vous pouvez être sûr que l'expéditeur est qui il dit qu'il est. Il est normal qu'il ne soit pas toujours possible de vérifier l'expéditeur, donc l'icône manquera parfois. Il n'est généralement pas nécessaire de s'inquiéter à ce sujet."
-#: ../../addon/tour/tour.php:118
+#: ../../addon/tour/tour.php:119
msgid ""
"Danger! It seems someone tried to forge a message! This message is not "
"necessarily from who it says it is from!"
msgstr "Attention ! Il semble que quelqu'un a essayé de contrefaire un message ! Ce message n'a pas nécessairement été envoyé par la personne annoncée !"
-#: ../../addon/tour/tour.php:125
+#: ../../addon/tour/tour.php:126
msgid ""
"Welcome to Hubzilla! Would you like to see a tour of the UI?</p> <p>You can "
"pause it at any time and continue where you left off by reloading the page, "
@@ -11630,11 +11860,11 @@ msgstr "Transsexuel"
msgid "Hermaphrodite"
msgstr "Hermaphrodite"
-#: ../../include/selectors.php:49 ../../include/channel.php:1485
+#: ../../include/selectors.php:49 ../../include/channel.php:1484
msgid "Neuter"
msgstr "Neutre"
-#: ../../include/selectors.php:49 ../../include/channel.php:1487
+#: ../../include/selectors.php:49 ../../include/channel.php:1486
msgid "Non-specific"
msgstr "Non spécifique"
@@ -11817,12 +12047,12 @@ msgstr "Me demander"
#: ../../include/conversation.php:169
#, php-format
msgid "likes %1$s's %2$s"
-msgstr "aime %1$s's %2$s"
+msgstr "aime le %2$s de %1$s"
#: ../../include/conversation.php:172
#, php-format
msgid "doesn't like %1$s's %2$s"
-msgstr "n'aime pas %1$s's %2$s"
+msgstr "n'aime pas le %2$s de%1$s "
#: ../../include/conversation.php:212
#, php-format
@@ -11880,10 +12110,6 @@ msgstr "Suivre la discussion"
msgid "Unfollow Thread"
msgstr "Ne plus suivre la discussion"
-#: ../../include/conversation.php:1042
-msgid "Activity/Posts"
-msgstr "Activité/Publications"
-
#: ../../include/conversation.php:1062
msgid "Edit Connection"
msgstr "Modifier le contact"
@@ -11945,175 +12171,175 @@ msgstr "Spécifier votre emplacement géographique"
msgid "Clear browser location"
msgstr "Supprimer l'emplacement géographique du navigateur"
-#: ../../include/conversation.php:1314
+#: ../../include/conversation.php:1316
msgid "Tag term:"
msgstr "Étiquette&nbsp;:"
-#: ../../include/conversation.php:1315
+#: ../../include/conversation.php:1317
msgid "Where are you right now?"
-msgstr "Où êtes-vous en ce moment&nbsp;?"
+msgstr "Où êtes-vous en ce moment ?"
-#: ../../include/conversation.php:1320
+#: ../../include/conversation.php:1322
msgid "Choose a different album..."
msgstr "Choisissez un autre album"
-#: ../../include/conversation.php:1324
+#: ../../include/conversation.php:1326
msgid "Comments enabled"
msgstr "Commentaires activés"
-#: ../../include/conversation.php:1325
+#: ../../include/conversation.php:1327
msgid "Comments disabled"
msgstr "Commentaires désactivés"
-#: ../../include/conversation.php:1372
+#: ../../include/conversation.php:1375
msgid "Page link name"
msgstr "Nom du lien vers la page"
-#: ../../include/conversation.php:1375
+#: ../../include/conversation.php:1378
msgid "Post as"
msgstr "Publier en tant que"
-#: ../../include/conversation.php:1389
+#: ../../include/conversation.php:1392
msgid "Toggle voting"
msgstr "(Dés)activer le vote"
-#: ../../include/conversation.php:1392
+#: ../../include/conversation.php:1395
msgid "Disable comments"
msgstr "Désactiver les commentaires"
-#: ../../include/conversation.php:1393
+#: ../../include/conversation.php:1396
msgid "Toggle comments"
msgstr "Basculer les commentaires"
-#: ../../include/conversation.php:1401
+#: ../../include/conversation.php:1404
msgid "Categories (optional, comma-separated list)"
msgstr "Catégories (facultatives, séparées par des virgules)"
-#: ../../include/conversation.php:1424
+#: ../../include/conversation.php:1427
msgid "Other networks and post services"
msgstr "Autres réseaux et services de messagerie"
-#: ../../include/conversation.php:1430
+#: ../../include/conversation.php:1433
msgid "Set publish date"
msgstr "Définir la date de publication"
-#: ../../include/conversation.php:1690
+#: ../../include/conversation.php:1693
msgid "Commented Order"
msgstr "Par date de commentaire"
-#: ../../include/conversation.php:1693
+#: ../../include/conversation.php:1696
msgid "Sort by Comment Date"
msgstr "Trier par date de dernier commentaire"
-#: ../../include/conversation.php:1697
+#: ../../include/conversation.php:1700
msgid "Posted Order"
msgstr "Par date de publication"
-#: ../../include/conversation.php:1700
+#: ../../include/conversation.php:1703
msgid "Sort by Post Date"
msgstr "Trier par date de publication"
-#: ../../include/conversation.php:1708
+#: ../../include/conversation.php:1711
msgid "Posts that mention or involve you"
msgstr "Publications qui vous mentionnent ou vous concernent d'une manière ou d'une autre"
-#: ../../include/conversation.php:1717
+#: ../../include/conversation.php:1720
msgid "Activity Stream - by date"
msgstr "Flux d'activité - par date"
-#: ../../include/conversation.php:1723
+#: ../../include/conversation.php:1726
msgid "Starred"
msgstr "Avec étoile"
-#: ../../include/conversation.php:1726
+#: ../../include/conversation.php:1729
msgid "Favourite Posts"
msgstr "Publications préférées"
-#: ../../include/conversation.php:1733
+#: ../../include/conversation.php:1736
msgid "Spam"
msgstr "Indésirable"
-#: ../../include/conversation.php:1736
+#: ../../include/conversation.php:1739
msgid "Posts flagged as SPAM"
msgstr "Publications marquées comme indésirables"
-#: ../../include/conversation.php:1811 ../../include/nav.php:381
+#: ../../include/conversation.php:1814 ../../include/nav.php:381
msgid "Status Messages and Posts"
msgstr "Messages d'état et contributions"
-#: ../../include/conversation.php:1824 ../../include/nav.php:394
+#: ../../include/conversation.php:1827 ../../include/nav.php:394
msgid "Profile Details"
msgstr "Détails du profil"
-#: ../../include/conversation.php:1834 ../../include/nav.php:404
-#: ../../include/photos.php:655
+#: ../../include/conversation.php:1837 ../../include/nav.php:404
+#: ../../include/photos.php:662
msgid "Photo Albums"
msgstr "Albums photo"
-#: ../../include/conversation.php:1842 ../../include/nav.php:412
+#: ../../include/conversation.php:1845 ../../include/nav.php:412
msgid "Files and Storage"
msgstr "Fichiers et Stockage"
-#: ../../include/conversation.php:1879 ../../include/nav.php:447
+#: ../../include/conversation.php:1882 ../../include/nav.php:447
msgid "Bookmarks"
msgstr "Favoris"
-#: ../../include/conversation.php:1882 ../../include/nav.php:450
+#: ../../include/conversation.php:1885 ../../include/nav.php:450
msgid "Saved Bookmarks"
msgstr "Favoris sauvegardés"
-#: ../../include/conversation.php:1893 ../../include/nav.php:461
+#: ../../include/conversation.php:1896 ../../include/nav.php:461
msgid "View Cards"
msgstr "Voir cartes"
-#: ../../include/conversation.php:1901
+#: ../../include/conversation.php:1904
msgid "articles"
msgstr "articles"
-#: ../../include/conversation.php:1904 ../../include/nav.php:472
+#: ../../include/conversation.php:1907 ../../include/nav.php:472
msgid "View Articles"
msgstr "Voir articles"
-#: ../../include/conversation.php:1915 ../../include/nav.php:484
+#: ../../include/conversation.php:1918 ../../include/nav.php:484
msgid "View Webpages"
msgstr "Voir les pages web"
-#: ../../include/conversation.php:1984
+#: ../../include/conversation.php:1987
msgctxt "noun"
msgid "Attending"
msgid_plural "Attending"
msgstr[0] "Participe"
msgstr[1] "Participent"
-#: ../../include/conversation.php:1987
+#: ../../include/conversation.php:1990
msgctxt "noun"
msgid "Not Attending"
msgid_plural "Not Attending"
msgstr[0] "Ne participe pas"
msgstr[1] "Ne participent pas"
-#: ../../include/conversation.php:1990
+#: ../../include/conversation.php:1993
msgctxt "noun"
msgid "Undecided"
msgid_plural "Undecided"
msgstr[0] "Indécis(e)"
msgstr[1] "Indécis(es)"
-#: ../../include/conversation.php:1993
+#: ../../include/conversation.php:1996
msgctxt "noun"
msgid "Agree"
msgid_plural "Agrees"
msgstr[0] "D'accord"
msgstr[1] "D'accord"
-#: ../../include/conversation.php:1996
+#: ../../include/conversation.php:1999
msgctxt "noun"
msgid "Disagree"
msgid_plural "Disagrees"
msgstr[0] "Pas d'accord"
msgstr[1] "Pas d'accord"
-#: ../../include/conversation.php:1999
+#: ../../include/conversation.php:2002
msgctxt "noun"
msgid "Abstain"
msgid_plural "Abstains"
@@ -12141,12 +12367,16 @@ msgstr "Ce site uniquement"
msgid "%1$s's bookmarks"
msgstr "Favoris de %1$s"
-#: ../../include/import.php:41
+#: ../../include/import.php:25
+msgid "Unable to import a removed channel."
+msgstr "Impossible d'importer un canal supprimé."
+
+#: ../../include/import.php:46
msgid ""
"Cannot create a duplicate channel identifier on this system. Import failed."
msgstr "L'import a échoué. Un canal existe déjà avec ce nom"
-#: ../../include/import.php:106
+#: ../../include/import.php:111
msgid "Cloned channel not found. Import failed."
msgstr "Canal cloné non trouvé. Echec de l'import."
@@ -12201,7 +12431,7 @@ msgstr "encourager"
#: ../../include/text.php:1135
msgid "prodded"
-msgstr "encouragé"
+msgstr "à encouragé"
#: ../../include/text.php:1136
msgid "slap"
@@ -12391,7 +12621,7 @@ msgstr "Décembre"
msgid "Unknown Attachment"
msgstr "Pièce jointe inconnue"
-#: ../../include/text.php:1434 ../../include/feedutils.php:852
+#: ../../include/text.php:1434 ../../include/feedutils.php:860
msgid "unknown"
msgstr "Inconnu"
@@ -12407,107 +12637,107 @@ msgstr "retirer du fichier"
msgid "Download binary/encrypted content"
msgstr "Télécharger le contenu binaire/chiffré"
-#: ../../include/text.php:1848 ../../include/language.php:397
+#: ../../include/text.php:1849 ../../include/language.php:397
msgid "default"
msgstr "défaut"
-#: ../../include/text.php:1856
+#: ../../include/text.php:1857
msgid "Page layout"
msgstr "Mise en page"
-#: ../../include/text.php:1856
+#: ../../include/text.php:1857
msgid "You can create your own with the layouts tool"
msgstr "Créez les vôtres avec les outils de mise en page"
-#: ../../include/text.php:1867
+#: ../../include/text.php:1868
msgid "HTML"
msgstr "HTML"
-#: ../../include/text.php:1870
+#: ../../include/text.php:1871
msgid "Comanche Layout"
msgstr "mise en page Comanche"
-#: ../../include/text.php:1875
+#: ../../include/text.php:1876
msgid "PHP"
msgstr "PHP"
-#: ../../include/text.php:1884
+#: ../../include/text.php:1885
msgid "Page content type"
msgstr "Type de contenu de la page"
-#: ../../include/text.php:2017
+#: ../../include/text.php:2018
msgid "activity"
msgstr "activité"
-#: ../../include/text.php:2099
+#: ../../include/text.php:2100
msgid "a-z, 0-9, -, and _ only"
msgstr "a-z, 0-9, -, -, et _ seulement"
-#: ../../include/text.php:2399
+#: ../../include/text.php:2402
msgid "Design Tools"
msgstr "Outils de conception"
-#: ../../include/text.php:2405
+#: ../../include/text.php:2408
msgid "Pages"
msgstr "Pages"
-#: ../../include/text.php:2427
+#: ../../include/text.php:2430
msgid "Import website..."
msgstr "Importer le site web…"
-#: ../../include/text.php:2428
+#: ../../include/text.php:2431
msgid "Select folder to import"
msgstr "Sélectionner le dossier à importer"
-#: ../../include/text.php:2429
+#: ../../include/text.php:2432
msgid "Import from a zipped folder:"
msgstr "Importer à partir d'un dossier zippé :"
-#: ../../include/text.php:2430
+#: ../../include/text.php:2433
msgid "Import from cloud files:"
msgstr "Importer à partir de fichiers dans le cloud :"
-#: ../../include/text.php:2431
+#: ../../include/text.php:2434
msgid "/cloud/channel/path/to/folder"
msgstr "/cloud/channel/chemain/du/repertoire"
-#: ../../include/text.php:2432
+#: ../../include/text.php:2435
msgid "Enter path to website files"
msgstr "Entrer le chemin vers les fichiers du site web"
-#: ../../include/text.php:2433
+#: ../../include/text.php:2436
msgid "Select folder"
msgstr "Sélectionner un répertoire"
-#: ../../include/text.php:2434
+#: ../../include/text.php:2437
msgid "Export website..."
msgstr "Exporter le site web…"
-#: ../../include/text.php:2435
+#: ../../include/text.php:2438
msgid "Export to a zip file"
msgstr "Exporter dans un fichier zip"
-#: ../../include/text.php:2436
+#: ../../include/text.php:2439
msgid "website.zip"
msgstr "website.zip"
-#: ../../include/text.php:2437
+#: ../../include/text.php:2440
msgid "Enter a name for the zip file."
msgstr "Entrer un nom pour le fichier zip."
-#: ../../include/text.php:2438
+#: ../../include/text.php:2441
msgid "Export to cloud files"
msgstr "Exporter dans des fichiers sur le cloud"
-#: ../../include/text.php:2439
+#: ../../include/text.php:2442
msgid "/path/to/export/folder"
msgstr "/chemin/vers/le/dossier/d'export"
-#: ../../include/text.php:2440
+#: ../../include/text.php:2443
msgid "Enter a path to a cloud files destination."
msgstr "Entrer le chemin vers le cloud de fichiers"
-#: ../../include/text.php:2441
+#: ../../include/text.php:2444
msgid "Specify folder"
msgstr "Spécifier un répertoire"
@@ -12555,7 +12785,7 @@ msgstr "Connexions communes"
msgid "View all %d common connections"
msgstr "Voir toutes les connexions communes %d"
-#: ../../include/markdown.php:158 ../../include/bbcode.php:343
+#: ../../include/markdown.php:158 ../../include/bbcode.php:356
#, php-format
msgid "%1$s wrote the following %2$s %3$s"
msgstr "%1$s a écrit %2$s qui suit %3$s"
@@ -12572,23 +12802,27 @@ msgstr "Emplacement du canal introuvable."
msgid "Response from remote channel was incomplete."
msgstr "La réponse du canal distant était incomplète."
-#: ../../include/follow.php:101
+#: ../../include/follow.php:96
+msgid "Premium channel - please visit:"
+msgstr "Canal Premium - s'il vous plaît visitez :"
+
+#: ../../include/follow.php:110
msgid "Channel was deleted and no longer exists."
msgstr "Le canal a été supprimé et n'existe plus."
-#: ../../include/follow.php:156
+#: ../../include/follow.php:165
msgid "Remote channel or protocol unavailable."
msgstr "Canal distant ou protocole indisponible."
-#: ../../include/follow.php:179
+#: ../../include/follow.php:188
msgid "Channel discovery failed."
msgstr "La tentative d'accéder au canal a échoué."
-#: ../../include/follow.php:191
+#: ../../include/follow.php:200
msgid "Protocol disabled."
msgstr "Protocole désactivé."
-#: ../../include/follow.php:202
+#: ../../include/follow.php:211
msgid "Cannot connect to yourself."
msgstr "Ne peut pas se connecter à vous."
@@ -12908,35 +13142,35 @@ msgstr "Vous avez atteint votre limite de %1$.0f méga-octets autorisés pour le
msgid "File upload failed. Possible system limit or action terminated."
msgstr "Envoi du fichier impossible. Limite système ou action avortée."
-#: ../../include/attach.php:959
+#: ../../include/attach.php:969
msgid "Stored file could not be verified. Upload failed."
msgstr "Le fichier stocké n'a pu être vérifié. Echec de l'envoi."
-#: ../../include/attach.php:1033 ../../include/attach.php:1049
+#: ../../include/attach.php:1043 ../../include/attach.php:1059
msgid "Path not available."
msgstr "Chemin non disponible."
-#: ../../include/attach.php:1098 ../../include/attach.php:1263
+#: ../../include/attach.php:1108 ../../include/attach.php:1273
msgid "Empty pathname"
msgstr "Chemin vide"
-#: ../../include/attach.php:1124
+#: ../../include/attach.php:1134
msgid "duplicate filename or path"
msgstr "doublon de chemin ou de fichier"
-#: ../../include/attach.php:1149
+#: ../../include/attach.php:1159
msgid "Path not found."
msgstr "Chemin introuvable."
-#: ../../include/attach.php:1217
+#: ../../include/attach.php:1227
msgid "mkdir failed."
msgstr "mkdir a échoué."
-#: ../../include/attach.php:1221
+#: ../../include/attach.php:1231
msgid "database storage failed."
msgstr "l'écriture dans la base de données a échoué."
-#: ../../include/attach.php:1269
+#: ../../include/attach.php:1279
msgid "Empty path"
msgstr "Chemin vide"
@@ -12950,67 +13184,67 @@ msgstr "Le formulaire n'est plus sécurisé, probablement parce qu'il est ouvert
msgid "(Unknown)"
msgstr "(Inconnu)"
-#: ../../include/items.php:1129
+#: ../../include/items.php:1133
msgid "Visible to anybody on the internet."
msgstr "Visible pour tout le monde sur internet."
-#: ../../include/items.php:1131
+#: ../../include/items.php:1135
msgid "Visible to you only."
msgstr "Visible pour vous seulement."
-#: ../../include/items.php:1133
+#: ../../include/items.php:1137
msgid "Visible to anybody in this network."
msgstr "Visible pour tout le monde sur ce réseau."
-#: ../../include/items.php:1135
+#: ../../include/items.php:1139
msgid "Visible to anybody authenticated."
msgstr "Visible aux utilisateurs authentifiés."
-#: ../../include/items.php:1137
+#: ../../include/items.php:1141
#, php-format
msgid "Visible to anybody on %s."
msgstr "Visible pour tous sur %s."
-#: ../../include/items.php:1139
+#: ../../include/items.php:1143
msgid "Visible to all connections."
msgstr "Visible par tous les contacts."
-#: ../../include/items.php:1141
+#: ../../include/items.php:1145
msgid "Visible to approved connections."
msgstr "Visible par les contacts validés."
-#: ../../include/items.php:1143
+#: ../../include/items.php:1147
msgid "Visible to specific connections."
msgstr "Visible par certains contacts."
-#: ../../include/items.php:4147
+#: ../../include/items.php:4197
msgid "Privacy group is empty."
msgstr "Groupe de contacts vide."
-#: ../../include/items.php:4154
+#: ../../include/items.php:4204
#, php-format
msgid "Privacy group: %s"
msgstr "Groupe de contacts&nbsp;: %s"
-#: ../../include/items.php:4166
+#: ../../include/items.php:4216
msgid "Connection not found."
msgstr "Contact non trouvé."
-#: ../../include/items.php:4515
+#: ../../include/items.php:4565
msgid "profile photo"
msgstr "photo de profil"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
#, php-format
msgid "[Edited %s]"
msgstr "[%s édité]"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
msgctxt "edit_activity"
msgid "Post"
msgstr "Publier"
-#: ../../include/items.php:4706
+#: ../../include/items.php:4756
msgctxt "edit_activity"
msgid "Comment"
msgstr "Commenter"
@@ -13047,120 +13281,120 @@ msgstr "Profil par défaut"
msgid "Unable to retrieve modified identity"
msgstr "Impossible de récupérer l'identité modifiée"
-#: ../../include/channel.php:1298
+#: ../../include/channel.php:1297
msgid "Create New Profile"
msgstr "Créer un nouveau profil"
-#: ../../include/channel.php:1319
+#: ../../include/channel.php:1318
msgid "Visible to everybody"
msgstr "Visible de tous"
-#: ../../include/channel.php:1396 ../../include/channel.php:1524
+#: ../../include/channel.php:1395 ../../include/channel.php:1523
msgid "Gender:"
msgstr "Sexe&nbsp;:"
-#: ../../include/channel.php:1398 ../../include/channel.php:1579
+#: ../../include/channel.php:1397 ../../include/channel.php:1591
msgid "Homepage:"
msgstr "Site Internet&nbsp;:"
-#: ../../include/channel.php:1399
+#: ../../include/channel.php:1398
msgid "Online Now"
msgstr "Connecté"
-#: ../../include/channel.php:1452
+#: ../../include/channel.php:1451
msgid "Change your profile photo"
msgstr "Modifier votre photo de profil"
-#: ../../include/channel.php:1483
+#: ../../include/channel.php:1482
msgid "Trans"
msgstr "Trans"
-#: ../../include/channel.php:1529
+#: ../../include/channel.php:1528
msgid "Like this channel"
msgstr "J'aime ce canal"
-#: ../../include/channel.php:1553
+#: ../../include/channel.php:1552
msgid "j F, Y"
msgstr "j F, Y"
-#: ../../include/channel.php:1554
+#: ../../include/channel.php:1553
msgid "j F"
msgstr "j F"
-#: ../../include/channel.php:1561
+#: ../../include/channel.php:1560
msgid "Birthday:"
msgstr "Date de naissance&nbsp;:"
-#: ../../include/channel.php:1574
+#: ../../include/channel.php:1573
#, php-format
msgid "for %1$d %2$s"
msgstr "depuis %1$d %2$s"
-#: ../../include/channel.php:1577
-msgid "Sexual Preference:"
-msgstr "Orientation sexuelle&nbsp;:"
-
-#: ../../include/channel.php:1583
+#: ../../include/channel.php:1585
msgid "Tags:"
msgstr "Étiquettes&nbsp;:"
-#: ../../include/channel.php:1585
+#: ../../include/channel.php:1589
+msgid "Sexual Preference:"
+msgstr "Orientation sexuelle&nbsp;:"
+
+#: ../../include/channel.php:1595
msgid "Political Views:"
msgstr "Opinions politiques&nbsp;:"
-#: ../../include/channel.php:1587
+#: ../../include/channel.php:1597
msgid "Religion:"
msgstr "Religion&nbsp;:"
-#: ../../include/channel.php:1591
+#: ../../include/channel.php:1601
msgid "Hobbies/Interests:"
msgstr "Occupations/Centres d'intérêt&nbsp;:"
-#: ../../include/channel.php:1593
+#: ../../include/channel.php:1603
msgid "Likes:"
msgstr "Aime&nbsp;:"
-#: ../../include/channel.php:1595
+#: ../../include/channel.php:1605
msgid "Dislikes:"
msgstr "N'aime pas&nbsp;:"
-#: ../../include/channel.php:1597
+#: ../../include/channel.php:1607
msgid "Contact information and Social Networks:"
msgstr "Coordonnées et réseaux sociaux&nbsp;:"
-#: ../../include/channel.php:1599
+#: ../../include/channel.php:1609
msgid "My other channels:"
msgstr "Mes autres canaux&nbsp;:"
-#: ../../include/channel.php:1601
+#: ../../include/channel.php:1611
msgid "Musical interests:"
msgstr "Goûts musicaux&nbsp;:"
-#: ../../include/channel.php:1603
+#: ../../include/channel.php:1613
msgid "Books, literature:"
msgstr "Lectures, goûts littéraires&nbsp;:"
-#: ../../include/channel.php:1605
+#: ../../include/channel.php:1615
msgid "Television:"
msgstr "Télévision&nbsp;:"
-#: ../../include/channel.php:1607
+#: ../../include/channel.php:1617
msgid "Film/dance/culture/entertainment:"
msgstr "Cinéma/danse/culture/divertissement&nsbp;:"
-#: ../../include/channel.php:1609
+#: ../../include/channel.php:1619
msgid "Love/Romance:"
msgstr "Vie sentimentale/amoureuse&nbsp;:"
-#: ../../include/channel.php:1611
+#: ../../include/channel.php:1621
msgid "Work/employment:"
msgstr "Travail/Occupation&nbsp;"
-#: ../../include/channel.php:1613
+#: ../../include/channel.php:1623
msgid "School/education:"
msgstr "Études&nbsp;"
-#: ../../include/channel.php:1636
+#: ../../include/channel.php:1646
msgid "Like this thing"
msgstr "J'aime ceci"
@@ -13200,19 +13434,19 @@ msgstr "En cours"
msgid "Cancelled"
msgstr "Annulé"
-#: ../../include/event.php:1310 ../../include/connections.php:684
+#: ../../include/event.php:1310 ../../include/connections.php:692
msgid "Home, Voice"
msgstr "Domicile, Voix"
-#: ../../include/event.php:1311 ../../include/connections.php:685
+#: ../../include/event.php:1311 ../../include/connections.php:693
msgid "Home, Fax"
msgstr "Domicile, Fax"
-#: ../../include/event.php:1313 ../../include/connections.php:687
+#: ../../include/event.php:1313 ../../include/connections.php:695
msgid "Work, Voice"
msgstr "Travail, Voix"
-#: ../../include/event.php:1314 ../../include/connections.php:688
+#: ../../include/event.php:1314 ../../include/connections.php:696
msgid "Work, Fax"
msgstr "Travail, Fax"
@@ -13220,43 +13454,43 @@ msgstr "Travail, Fax"
msgid "view full size"
msgstr "voir en taille réelle"
-#: ../../include/network.php:1769 ../../include/network.php:1770
+#: ../../include/network.php:1770 ../../include/network.php:1771
msgid "Friendica"
msgstr "Friendica"
-#: ../../include/network.php:1771
+#: ../../include/network.php:1772
msgid "OStatus"
msgstr "OStatus"
-#: ../../include/network.php:1772
+#: ../../include/network.php:1773
msgid "GNU-Social"
msgstr "GNU-Social"
-#: ../../include/network.php:1773
+#: ../../include/network.php:1774
msgid "RSS/Atom"
msgstr "RSS/Atom"
-#: ../../include/network.php:1776
+#: ../../include/network.php:1777
msgid "Diaspora"
msgstr "Diaspora"
-#: ../../include/network.php:1777
+#: ../../include/network.php:1778
msgid "Facebook"
msgstr "Facebook"
-#: ../../include/network.php:1778
+#: ../../include/network.php:1779
msgid "Zot"
msgstr "Zot"
-#: ../../include/network.php:1779
+#: ../../include/network.php:1780
msgid "LinkedIn"
msgstr "Linkedin"
-#: ../../include/network.php:1780
+#: ../../include/network.php:1781
msgid "XMPP/IM"
msgstr "XMPP/IM"
-#: ../../include/network.php:1781
+#: ../../include/network.php:1782
msgid "MySpace"
msgstr "MySpace"
@@ -13298,17 +13532,17 @@ msgstr "Les droits d'accès d'un message %s ne peuvent pas être modifiés %s un
msgid "Cannot locate DNS info for database server '%s'"
msgstr "Impossible de trouver les infos DNS du serveur de BDD '%s'"
-#: ../../include/bbcode.php:198 ../../include/bbcode.php:1151
-#: ../../include/bbcode.php:1154 ../../include/bbcode.php:1159
-#: ../../include/bbcode.php:1162 ../../include/bbcode.php:1165
-#: ../../include/bbcode.php:1168 ../../include/bbcode.php:1173
-#: ../../include/bbcode.php:1176 ../../include/bbcode.php:1181
-#: ../../include/bbcode.php:1184 ../../include/bbcode.php:1187
-#: ../../include/bbcode.php:1190
+#: ../../include/bbcode.php:198 ../../include/bbcode.php:1200
+#: ../../include/bbcode.php:1203 ../../include/bbcode.php:1208
+#: ../../include/bbcode.php:1211 ../../include/bbcode.php:1214
+#: ../../include/bbcode.php:1217 ../../include/bbcode.php:1222
+#: ../../include/bbcode.php:1225 ../../include/bbcode.php:1230
+#: ../../include/bbcode.php:1233 ../../include/bbcode.php:1236
+#: ../../include/bbcode.php:1239
msgid "Image/photo"
msgstr "Image/photo"
-#: ../../include/bbcode.php:237 ../../include/bbcode.php:1201
+#: ../../include/bbcode.php:237 ../../include/bbcode.php:1250
msgid "Encrypted content"
msgstr "Contenu chiffré"
@@ -13324,565 +13558,583 @@ msgid ""
"to install it on this site."
msgstr "Ce message contient un élément installable %s, mais vous n'avez pas le droit de l'installer sur ce site."
-#: ../../include/bbcode.php:335
+#: ../../include/bbcode.php:348
msgid "card"
msgstr "carte"
-#: ../../include/bbcode.php:337
+#: ../../include/bbcode.php:350
msgid "article"
msgstr "article"
-#: ../../include/bbcode.php:420 ../../include/bbcode.php:428
+#: ../../include/bbcode.php:433 ../../include/bbcode.php:441
msgid "Click to open/close"
msgstr "Cliquer pour ouvrir/fermer"
-#: ../../include/bbcode.php:428
+#: ../../include/bbcode.php:441
msgid "spoiler"
msgstr "spoiler"
-#: ../../include/bbcode.php:441
+#: ../../include/bbcode.php:454
msgid "View article"
msgstr "Voir l'article"
-#: ../../include/bbcode.php:441
+#: ../../include/bbcode.php:454
msgid "View summary"
msgstr "Voir le résumé"
-#: ../../include/bbcode.php:1139
+#: ../../include/bbcode.php:1188
msgid "$1 wrote:"
msgstr "$1 a écrit&nbsp;:"
-#: ../../include/oembed.php:328
+#: ../../include/oembed.php:329
msgid " by "
msgstr "par"
-#: ../../include/oembed.php:329
+#: ../../include/oembed.php:330
msgid " on "
msgstr "sur"
-#: ../../include/oembed.php:358
+#: ../../include/oembed.php:359
msgid "Embedded content"
msgstr "Contenu imbriqué"
-#: ../../include/oembed.php:367
+#: ../../include/oembed.php:368
msgid "Embedding disabled"
msgstr "Imbrication désactivée"
-#: ../../include/zid.php:346
+#: ../../include/zid.php:347
#, php-format
msgid "OpenWebAuth: %1$s welcomes %2$s"
msgstr "OpenWebAuth: %1$s accueille favorablement %2$s"
-#: ../../include/features.php:54
+#: ../../include/features.php:56
msgid "General Features"
msgstr "Fonctionnalités générales"
-#: ../../include/features.php:60
+#: ../../include/features.php:61
+msgid "Display new member quick links menu"
+msgstr "Afficher le menu des liens rapides pour les nouveaux membres"
+
+#: ../../include/features.php:69
msgid "Advanced Profiles"
-msgstr "Profils Avancés"
+msgstr "Profils avancés"
-#: ../../include/features.php:61
+#: ../../include/features.php:70
msgid "Additional profile sections and selections"
msgstr "Sections et sélections supplémentaires du profil"
-#: ../../include/features.php:69
+#: ../../include/features.php:78
msgid "Profile Import/Export"
-msgstr "Importer/Exporter le profil"
+msgstr "Importer/exporter le profil"
-#: ../../include/features.php:70
+#: ../../include/features.php:79
msgid "Save and load profile details across sites/channels"
msgstr "Sauvegarder et charger les détails d'un profil entre sites/canaux"
-#: ../../include/features.php:78
+#: ../../include/features.php:87
msgid "Web Pages"
msgstr "Pages web"
-#: ../../include/features.php:79
+#: ../../include/features.php:88
msgid "Provide managed web pages on your channel"
msgstr "Fournir des pages web, sous votre contrôle, sur votre canal"
-#: ../../include/features.php:88
+#: ../../include/features.php:97
msgid "Provide a wiki for your channel"
msgstr "Fournir un wiki pour votre canal."
-#: ../../include/features.php:105
+#: ../../include/features.php:114
msgid "Private Notes"
msgstr "Notes privées"
-#: ../../include/features.php:106
+#: ../../include/features.php:115
msgid "Enables a tool to store notes and reminders (note: not encrypted)"
msgstr "Active un outil pour stocker des notes et des rappels (note&nbsp;:non chiffré)"
-#: ../../include/features.php:115
+#: ../../include/features.php:124
msgid "Create personal planning cards"
msgstr "Créer des cartes de planification personnelle"
-#: ../../include/features.php:125
+#: ../../include/features.php:134
msgid "Create interactive articles"
msgstr "Créer des articles interactifs"
-#: ../../include/features.php:133
+#: ../../include/features.php:142
msgid "Navigation Channel Select"
msgstr "Sélection du canal par la navigation"
-#: ../../include/features.php:134
+#: ../../include/features.php:143
msgid "Change channels directly from within the navigation dropdown menu"
msgstr "Changez de canal directement depuis le menu de navigation déroulant"
-#: ../../include/features.php:142
+#: ../../include/features.php:151
msgid "Photo Location"
msgstr "Site de prise de vue"
-#: ../../include/features.php:143
+#: ../../include/features.php:152
msgid "If location data is available on uploaded photos, link this to a map."
msgstr "Si des informations géographiques sont présentes dans les images téléversées, les lier à une carte."
-#: ../../include/features.php:151
+#: ../../include/features.php:160
msgid "Access Controlled Chatrooms"
msgstr "Accéder au salons de discussions contrôlés."
-#: ../../include/features.php:152
+#: ../../include/features.php:161
msgid "Provide chatrooms and chat services with access control."
msgstr "Fournir des salons de discussions et des services de discussions avec contrôle d'accès."
-#: ../../include/features.php:161
+#: ../../include/features.php:170
msgid "Smart Birthdays"
msgstr "Anniversaires intelligents"
-#: ../../include/features.php:162
+#: ../../include/features.php:171
msgid ""
"Make birthday events timezone aware in case your friends are scattered "
"across the planet."
msgstr "Adapter les anniversaires aux fuseaux horaires, utile pour vos amis sur d'autres continents."
-#: ../../include/features.php:170
+#: ../../include/features.php:179
msgid "Event Timezone Selection"
msgstr "Sélection du fuseau horaire de l'événement"
-#: ../../include/features.php:171
+#: ../../include/features.php:180
msgid "Allow event creation in timezones other than your own."
msgstr "Autorise la création d’événements sur d'autres fuseaux horaires que le vôtre."
-#: ../../include/features.php:180
+#: ../../include/features.php:189
msgid "Premium Channel"
msgstr "Canal VIP"
-#: ../../include/features.php:181
+#: ../../include/features.php:190
msgid ""
"Allows you to set restrictions and terms on those that connect with your "
"channel"
msgstr "Vous permet d'appliquer des règles et restrictions aux contacts de votre canal"
-#: ../../include/features.php:189
+#: ../../include/features.php:198
msgid "Advanced Directory Search"
msgstr "Recherche avancée dans les répertoires"
-#: ../../include/features.php:190
+#: ../../include/features.php:199
msgid "Allows creation of complex directory search queries"
msgstr "Autoriser la création d'entrées complexes de recherche de répertoire"
-#: ../../include/features.php:198
+#: ../../include/features.php:207
msgid "Advanced Theme and Layout Settings"
msgstr "Paramètres avancés du thème et de l'agencement."
-#: ../../include/features.php:199
+#: ../../include/features.php:208
msgid "Allows fine tuning of themes and page layouts"
msgstr "Autoriser la personnalisation fine des thèmes et des agencements."
-#: ../../include/features.php:208
+#: ../../include/features.php:217
msgid "Access Control and Permissions"
msgstr "Contrôle d'accès et autorisations"
-#: ../../include/features.php:212 ../../include/group.php:328
+#: ../../include/features.php:221 ../../include/group.php:328
msgid "Privacy Groups"
msgstr "Groupes de contacts"
-#: ../../include/features.php:213
+#: ../../include/features.php:222
msgid "Enable management and selection of privacy groups"
msgstr "Active la gestion et la sélection des groupes de contacts"
-#: ../../include/features.php:221
+#: ../../include/features.php:230
msgid "Multiple Profiles"
msgstr "Profils multiples"
-#: ../../include/features.php:222
+#: ../../include/features.php:231
msgid "Ability to create multiple profiles"
msgstr "Possibilité de créer plusieurs profils"
-#: ../../include/features.php:232
+#: ../../include/features.php:241
msgid "Provide alternate connection permission roles."
msgstr "Fournir des rôles d'accès différents pour ce contact."
-#: ../../include/features.php:240
-msgid "OAuth Clients"
-msgstr "Clients OAuth"
+#: ../../include/features.php:249
+msgid "OAuth1 Clients"
+msgstr "Clients OAuth1"
-#: ../../include/features.php:241
-msgid "Manage authenticatication tokens for mobile and remote apps."
-msgstr "Gérer les jetons d'authentification pour les applications mobiles et distantes."
+#: ../../include/features.php:250
+msgid "Manage OAuth1 authenticatication tokens for mobile and remote apps."
+msgstr "Gérer les jetons d'authentification OAuth1 pour les applications mobiles et distantes."
-#: ../../include/features.php:249
+#: ../../include/features.php:258
+msgid "OAuth2 Clients"
+msgstr "Clients OAuth2"
+
+#: ../../include/features.php:259
+msgid "Manage OAuth2 authenticatication tokens for mobile and remote apps."
+msgstr "Gérer les jetons d'authentification OAuth2 pour les applications mobiles et distantes."
+
+#: ../../include/features.php:267
msgid "Access Tokens"
msgstr "Jetons d'accès."
-#: ../../include/features.php:250
+#: ../../include/features.php:268
msgid "Create access tokens so that non-members can access private content."
msgstr "Créez des jetons d'accès pour que les non-membres puissent accéder au contenu privé."
-#: ../../include/features.php:261
+#: ../../include/features.php:279
msgid "Post Composition Features"
msgstr "Fonctionnalités de composition"
-#: ../../include/features.php:265
+#: ../../include/features.php:283
msgid "Large Photos"
msgstr "Grandes photos"
-#: ../../include/features.php:266
+#: ../../include/features.php:284
msgid ""
"Include large (1024px) photo thumbnails in posts. If not enabled, use small "
"(640px) photo thumbnails"
msgstr "Inclure de grands aperçus (1024px) dans les messages. Si désactivé, inclure de petits aperçus (640px)."
-#: ../../include/features.php:275
+#: ../../include/features.php:293
msgid "Automatically import channel content from other channels or feeds"
msgstr "Importe automatiquement le contenus d'autres canaux ou flux dans le canal actif"
-#: ../../include/features.php:283
+#: ../../include/features.php:301
msgid "Even More Encryption"
msgstr "Encore plus de chiffrement"
-#: ../../include/features.php:284
+#: ../../include/features.php:302
msgid ""
"Allow optional encryption of content end-to-end with a shared secret key"
msgstr "Permettre le chiffrement optionnel du contenu de bout en bout au moyen d'un secret partagé"
-#: ../../include/features.php:292
+#: ../../include/features.php:310
msgid "Enable Voting Tools"
msgstr "Activer les outils de vote"
-#: ../../include/features.php:293
+#: ../../include/features.php:311
msgid "Provide a class of post which others can vote on"
msgstr "Fournit un type de publication sur lequel les utilisateurs peuvent voter"
-#: ../../include/features.php:301
+#: ../../include/features.php:319
msgid "Disable Comments"
msgstr "Désactiver les commentaires"
-#: ../../include/features.php:302
+#: ../../include/features.php:320
msgid "Provide the option to disable comments for a post"
msgstr "Fournir la possibilité de désactiver les commentaires pour une publication."
-#: ../../include/features.php:310
+#: ../../include/features.php:328
msgid "Delayed Posting"
msgstr "Publication plus tard"
-#: ../../include/features.php:311
+#: ../../include/features.php:329
msgid "Allow posts to be published at a later date"
msgstr "Permettre de publier des messages à une date programmée"
-#: ../../include/features.php:319
+#: ../../include/features.php:337
msgid "Content Expiration"
msgstr "Expiration du contenu"
-#: ../../include/features.php:320
+#: ../../include/features.php:338
msgid "Remove posts/comments and/or private messages at a future time"
msgstr "Supprimer les contributions/commentaires et/ou messages privés plus tard"
-#: ../../include/features.php:328
+#: ../../include/features.php:346
msgid "Suppress Duplicate Posts/Comments"
msgstr "Supprimer les publications/commentaires en doublon"
-#: ../../include/features.php:329
+#: ../../include/features.php:347
msgid ""
"Prevent posts with identical content to be published with less than two "
"minutes in between submissions."
msgstr "Empêcher des messages aux contenus identiques d'être publiés à moins de deux minutes d'intervalle"
-#: ../../include/features.php:340
+#: ../../include/features.php:355
+msgid "Auto-save drafts of posts and comments"
+msgstr "Sauvegarde automatique des brouillons de messages et commentaires"
+
+#: ../../include/features.php:356
+msgid ""
+"Automatically saves post and comment drafts in local browser storage to help"
+" prevent accidental loss of compositions"
+msgstr "Enregistre automatiquement les brouillons de messages et de commentaires dans le stockage local du navigateur pour aider à prévenir la perte accidentelle de compositions."
+
+#: ../../include/features.php:367
msgid "Network and Stream Filtering"
msgstr "Filtrage du réseau et des flux"
-#: ../../include/features.php:344
+#: ../../include/features.php:371
msgid "Search by Date"
msgstr "Chercher par date"
-#: ../../include/features.php:345
+#: ../../include/features.php:372
msgid "Ability to select posts by date ranges"
msgstr "Pouvoir choisir des publications par date"
-#: ../../include/features.php:355
+#: ../../include/features.php:382
msgid "Save search terms for re-use"
msgstr "Sauvegarder des termes de recherche pour utilisation ultérieure"
-#: ../../include/features.php:363
+#: ../../include/features.php:390
msgid "Network Personal Tab"
msgstr "Onglet \"Me concernant\""
-#: ../../include/features.php:364
+#: ../../include/features.php:391
msgid "Enable tab to display only Network posts that you've interacted on"
msgstr "Activer un onglet affichant seulement les publications du réseau sur lesquelles vous êtes intervenu"
-#: ../../include/features.php:372
+#: ../../include/features.php:399
msgid "Network New Tab"
msgstr "Onglet \"nouveautés réseau\""
-#: ../../include/features.php:373
+#: ../../include/features.php:400
msgid "Enable tab to display all new Network activity"
msgstr "Activer un onglet présentant toute l'activité récente sur le réseau"
-#: ../../include/features.php:381
+#: ../../include/features.php:408
msgid "Affinity Tool"
msgstr "Gérer l'affinité"
-#: ../../include/features.php:382
+#: ../../include/features.php:409
msgid "Filter stream activity by depth of relationships"
msgstr "Filtrer le flux d'activité en fonction de la profondeur des relations"
-#: ../../include/features.php:391
+#: ../../include/features.php:418
msgid "Show friend and connection suggestions"
msgstr "Afficher les suggestions de mise en contact"
-#: ../../include/features.php:399
+#: ../../include/features.php:426
msgid "Connection Filtering"
msgstr "Filtrage des contacts"
-#: ../../include/features.php:400
+#: ../../include/features.php:427
msgid "Filter incoming posts from connections based on keywords/content"
msgstr "Filtrer les publications entrantes de mes contacts sur la base de mots-clefs"
-#: ../../include/features.php:412
+#: ../../include/features.php:439
msgid "Post/Comment Tools"
msgstr "Gérer les publications/commentaires"
-#: ../../include/features.php:416
+#: ../../include/features.php:443
msgid "Community Tagging"
msgstr "Etiquetage communautaire"
-#: ../../include/features.php:417
+#: ../../include/features.php:444
msgid "Ability to tag existing posts"
msgstr "Permettre de marquer les publications existantes"
-#: ../../include/features.php:425
+#: ../../include/features.php:452
msgid "Post Categories"
msgstr "Catégoriser les publications"
-#: ../../include/features.php:426
+#: ../../include/features.php:453
msgid "Add categories to your posts"
msgstr "Ajouter des catégories à vos publications"
-#: ../../include/features.php:434
+#: ../../include/features.php:461
msgid "Emoji Reactions"
msgstr "Réactions par émoticônes"
-#: ../../include/features.php:435
+#: ../../include/features.php:462
msgid "Add emoji reaction ability to posts"
msgstr "Ajouter la possibilité de réagir aux publications par émoticônes"
-#: ../../include/features.php:444
+#: ../../include/features.php:471
msgid "Ability to file posts under folders"
msgstr "Permettre de classer les publications dans des dossiers"
-#: ../../include/features.php:452
+#: ../../include/features.php:479
msgid "Dislike Posts"
msgstr "\"Ne pas aimer\" les publications"
-#: ../../include/features.php:453
+#: ../../include/features.php:480
msgid "Ability to dislike posts/comments"
msgstr "Possibilité de \"ne pas aimer\" les publications/commentaires"
-#: ../../include/features.php:461
+#: ../../include/features.php:488
msgid "Star Posts"
msgstr "Pouvoir mettre en avant les publications"
-#: ../../include/features.php:462
+#: ../../include/features.php:489
msgid "Ability to mark special posts with a star indicator"
msgstr "Pouvoir marquer certaines publications d'une étoile"
-#: ../../include/features.php:470
+#: ../../include/features.php:497
msgid "Tag Cloud"
msgstr "Nuage de tags"
-#: ../../include/features.php:471
+#: ../../include/features.php:498
msgid "Provide a personal tag cloud on your channel page"
msgstr "Afficher un nuage de vos tags sur votre canal"
-#: ../../include/taxonomy.php:384 ../../include/taxonomy.php:405
-msgid "Tags"
-msgstr "Étiquettes"
-
-#: ../../include/taxonomy.php:487
+#: ../../include/taxonomy.php:491
msgid "Keywords"
msgstr "Mots-clefs"
-#: ../../include/taxonomy.php:508
+#: ../../include/taxonomy.php:512
msgid "have"
msgstr "ont"
-#: ../../include/taxonomy.php:508
+#: ../../include/taxonomy.php:512
msgid "has"
msgstr "a"
-#: ../../include/taxonomy.php:509
+#: ../../include/taxonomy.php:513
msgid "want"
msgstr "veulent"
-#: ../../include/taxonomy.php:509
+#: ../../include/taxonomy.php:513
msgid "wants"
msgstr "veut"
-#: ../../include/taxonomy.php:510
+#: ../../include/taxonomy.php:514
msgid "likes"
msgstr "aime"
-#: ../../include/taxonomy.php:511
+#: ../../include/taxonomy.php:515
msgid "dislikes"
msgstr "n'aime pas"
-#: ../../include/account.php:35
+#: ../../include/account.php:36
msgid "Not a valid email address"
msgstr "Ce n'est pas une adresse de courriel valide"
-#: ../../include/account.php:37
+#: ../../include/account.php:38
msgid "Your email domain is not among those allowed on this site"
msgstr "Votre domaine de courriel ne fait pas partie de ceux autorisés par ce site"
-#: ../../include/account.php:43
+#: ../../include/account.php:44
msgid "Your email address is already registered at this site."
msgstr "Votre adresse de courriel est déjà inscrite sur ce site."
-#: ../../include/account.php:75
+#: ../../include/account.php:76
msgid "An invitation is required."
msgstr "Une invitation est requise."
-#: ../../include/account.php:79
+#: ../../include/account.php:80
msgid "Invitation could not be verified."
msgstr "Votre invitation n'a pas pu être vérifiée."
-#: ../../include/account.php:157
+#: ../../include/account.php:158
msgid "Please enter the required information."
msgstr "Merci d'entrer les informations requises."
-#: ../../include/account.php:224
+#: ../../include/account.php:225
msgid "Failed to store account information."
msgstr "Impossible de stocker les informations liées au compte."
-#: ../../include/account.php:313
+#: ../../include/account.php:314
#, php-format
msgid "Registration confirmation for %s"
msgstr "Confirmation de l'inscription pour %s"
-#: ../../include/account.php:382
+#: ../../include/account.php:383
#, php-format
msgid "Registration request at %s"
msgstr "Demande d'inscription sur %s"
-#: ../../include/account.php:404
+#: ../../include/account.php:405
msgid "your registration password"
msgstr "votre mot de passe d'inscription"
-#: ../../include/account.php:410 ../../include/account.php:472
+#: ../../include/account.php:411 ../../include/account.php:473
#, php-format
msgid "Registration details for %s"
msgstr "Détails de l'inscription pour %s"
-#: ../../include/account.php:483
+#: ../../include/account.php:484
msgid "Account approved."
msgstr "Compte validé."
-#: ../../include/account.php:523
+#: ../../include/account.php:524
#, php-format
msgid "Registration revoked for %s"
msgstr "Inscription révoquée pour %s"
-#: ../../include/account.php:802 ../../include/account.php:804
+#: ../../include/account.php:803 ../../include/account.php:805
msgid "Click here to upgrade."
msgstr "Cliquez ici pour mettre à jour."
-#: ../../include/account.php:810
+#: ../../include/account.php:811
msgid "This action exceeds the limits set by your subscription plan."
msgstr "Cette action outrepasserait les limites prévues par votre forfait."
-#: ../../include/account.php:815
+#: ../../include/account.php:816
msgid "This action is not available under your subscription plan."
msgstr "Cette action n'est pas disponible avec votre forfait."
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "Birthday"
msgstr "Anniversaire"
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "Age: "
msgstr "Age&nbsp;:"
-#: ../../include/datetime.php:134
+#: ../../include/datetime.php:140
msgid "YYYY-MM-DD or MM-DD"
msgstr "AAAA-MM-JJ ou MM-JJ"
-#: ../../include/datetime.php:238
+#: ../../include/datetime.php:244
msgid "less than a second ago"
msgstr "à l'instant"
-#: ../../include/datetime.php:256
+#: ../../include/datetime.php:262
#, php-format
msgctxt "e.g. 22 hours ago, 1 minute ago"
msgid "%1$d %2$s ago"
msgstr "il y a %1$d %2$s"
-#: ../../include/datetime.php:267
+#: ../../include/datetime.php:273
msgctxt "relative_date"
msgid "year"
msgid_plural "years"
msgstr[0] "an"
msgstr[1] "ans"
-#: ../../include/datetime.php:270
+#: ../../include/datetime.php:276
msgctxt "relative_date"
msgid "month"
msgid_plural "months"
msgstr[0] "mois"
msgstr[1] "mois"
-#: ../../include/datetime.php:273
+#: ../../include/datetime.php:279
msgctxt "relative_date"
msgid "week"
msgid_plural "weeks"
msgstr[0] "semaine"
msgstr[1] "semaines"
-#: ../../include/datetime.php:276
+#: ../../include/datetime.php:282
msgctxt "relative_date"
msgid "day"
msgid_plural "days"
msgstr[0] "jour"
msgstr[1] "jours"
-#: ../../include/datetime.php:279
+#: ../../include/datetime.php:285
msgctxt "relative_date"
msgid "hour"
msgid_plural "hours"
msgstr[0] "heure"
msgstr[1] "heures"
-#: ../../include/datetime.php:282
+#: ../../include/datetime.php:288
msgctxt "relative_date"
msgid "minute"
msgid_plural "minutes"
msgstr[0] "minute"
msgstr[1] "minutes"
-#: ../../include/datetime.php:285
+#: ../../include/datetime.php:291
msgctxt "relative_date"
msgid "second"
msgid_plural "seconds"
msgstr[0] "seconde"
msgstr[1] "secondes"
-#: ../../include/datetime.php:514
+#: ../../include/datetime.php:520
#, php-format
msgid "%1$s's birthday"
msgstr "Anniversaire de %1$s"
-#: ../../include/datetime.php:515
+#: ../../include/datetime.php:521
#, php-format
msgid "Happy Birthday %1$s"
msgstr "Joyeux Anniversaire %1$s"
@@ -13976,34 +14228,34 @@ msgstr "L'image est vide."
msgid "Photo storage failed."
msgstr "Le stockage de l'image a échoué."
-#: ../../include/photos.php:364
+#: ../../include/photos.php:371
msgid "a new photo"
msgstr "une nouvelle photo"
-#: ../../include/photos.php:368
+#: ../../include/photos.php:375
#, php-format
msgctxt "photo_upload"
msgid "%1$s posted %2$s to %3$s"
msgstr "%1$s a publié %2$s pour %3$s"
-#: ../../include/photos.php:660
+#: ../../include/photos.php:667
msgid "Upload New Photos"
msgstr "Ajouter des photos"
-#: ../../include/zot.php:767
+#: ../../include/zot.php:772
msgid "Invalid data packet"
msgstr "Paquet de données invalide"
-#: ../../include/zot.php:794
+#: ../../include/zot.php:799
msgid "Unable to verify channel signature"
msgstr "Impossible de vérifier la signature du canal"
-#: ../../include/zot.php:2529
+#: ../../include/zot.php:2552
#, php-format
msgid "Unable to verify site signature for %s"
msgstr "Impossible de vérifier la signature de site pour %s"
-#: ../../include/zot.php:4180
+#: ../../include/zot.php:4206
msgid "invalid target signature"
msgstr "signature de la cible invalide"
@@ -14034,23 +14286,27 @@ msgstr "Créer un groupe de contacts"
msgid "Channels not in any privacy group"
msgstr "Contacts n'étant dans aucun groupe de contacts"
-#: ../../include/connections.php:128
+#: ../../include/connections.php:133
msgid "New window"
msgstr "Nouvelle fenêtre"
-#: ../../include/connections.php:129
+#: ../../include/connections.php:134
msgid "Open the selected location in a different window or browser tab"
msgstr "Ouvrir l'emplacement dans une fenêtre ou un onglet différent"
-#: ../../include/auth.php:148
+#: ../../include/auth.php:152
+msgid "Delegation session ended."
+msgstr "La séance de délégation a pris fin."
+
+#: ../../include/auth.php:156
msgid "Logged out."
msgstr "Deconnecté."
-#: ../../include/auth.php:263
+#: ../../include/auth.php:273
msgid "Email validation is incomplete. Please check your email."
msgstr "La validation du courriel est incomplète. Veuillez vérifier l'adresse courriel."
-#: ../../include/auth.php:279
+#: ../../include/auth.php:289
msgid "Failed authentication"
msgstr "Échec de l'authentification"
diff --git a/view/fr/hstrings.php b/view/fr/hstrings.php
index f7fe764cd..6941f6321 100644
--- a/view/fr/hstrings.php
+++ b/view/fr/hstrings.php
@@ -7,7 +7,7 @@ function string_plural_select_fr($n){
App::$rtl = 0;
App::$strings["Can view my channel stream and posts"] = "Peut voir mon canal et mes publications";
App::$strings["Can send me their channel stream and posts"] = "Peuvent m'envoyer leur flux et les publications de leur canal";
-App::$strings["Can view my default channel profile"] = "Peut voir le profil par défaut du canal.";
+App::$strings["Can view my default channel profile"] = "Peut voir le profil par défaut du canal";
App::$strings["Can view my connections"] = "Peut voir mes contacts";
App::$strings["Can view my file storage and photos"] = "Peut voir mes fichiers et photos";
App::$strings["Can upload/modify my file storage and photos"] = "Peut télécharger/modifier mes fichiers et mes photos";
@@ -15,15 +15,16 @@ App::$strings["Can view my channel webpages"] = "Peut voir les pages web de mon
App::$strings["Can view my wiki pages"] = "Peut voir les pages de mon wiki";
App::$strings["Can create/edit my channel webpages"] = "Peut créer ou modifier les pages web de mon canal";
App::$strings["Can write to my wiki pages"] = "Peut écrire sur mon wiki";
-App::$strings["Can post on my channel (wall) page"] = "Peut écrire sur le mur de mon canal (mur)";
+App::$strings["Can post on my channel (wall) page"] = "Peut poster sur mon canal (\"mur\")";
App::$strings["Can comment on or like my posts"] = "Peuvent commenter et/ou aimer mes publications";
App::$strings["Can send me private mail messages"] = "Peuvent m'envoyer des messages privés";
-App::$strings["Can like/dislike profiles and profile things"] = "Peut aimer ou détester des profiles";
+App::$strings["Can like/dislike profiles and profile things"] = "Peut aimer ou détester des profils";
App::$strings["Can forward to all my channel connections via @+ mentions in posts"] = "Peut faire suivre à tous mes contacts avec la mention @+ dans une publication";
App::$strings["Can chat with me"] = "Peut discuter avec moi";
App::$strings["Can source my public posts in derived channels"] = "Peut rediriger mes publications publiques vers des canaux dérivés";
App::$strings["Can administer my channel"] = "Peut administrer mon canal";
App::$strings["Social Networking"] = "Réseau social";
+App::$strings["Social - Party"] = "Social - Fête";
App::$strings["Social - Mostly Public"] = "Social - principalement public";
App::$strings["Social - Restricted"] = "Social - restreint";
App::$strings["Social - Private"] = "Social - privé";
@@ -362,11 +363,10 @@ App::$strings["Error: PDO database PHP module required but not installed."] = "E
App::$strings["Error: mb_string PHP module required but not installed."] = "Erreur&nbsp;: le module mb_string de PHP est requis, mais pas installé.";
App::$strings["Error: xml PHP module required for DAV but not installed."] = "Erreur&nbsp;: le module xml de PHP est requis pour le DAV, mais pas installé.";
App::$strings["Error: zip PHP module required but not installed."] = "Erreur&nbsp;: le module zip de PHP est requis, mais pas installé.";
+App::$strings[".htconfig.php is writable"] = "Le fichier .htconfig.php est accessible en écriture";
App::$strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "L'installeur web a besoin de créer un fichier \".htconfig.php\" à la racine de votre serveur web, mais en est incapable.";
App::$strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "C'est généralement lié à un problème de droits d'accès, à cause duquel le serveur web est interdit d'écriture dans le répertoire concerné - alors que votre propre utilisateur a le droit.";
-App::$strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Au terme de cette procédure, nous vous transmettrons un texte à sauvegarder dans un fichier nommé .htconfig.php, à la racine de votre installation de \$Projectname.";
-App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Autrement, vous pouvez contourner toute cette procédure et réaliser l'installation manuellement. Merci de consulter le fichier \"install/INSTALL.txt\" pour les instructions détaillées.";
-App::$strings[".htconfig.php is writable"] = "Le fichier .htconfig.php est accessible en écriture";
+App::$strings["Please see install/INSTALL.txt for additional information."] = "Merci de vous reporter à install/INSTALL.txt pour des informations supplémentaires.";
App::$strings["This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Ce logiciel utilise Smarty3 comme moteur de modèles pour afficher ses vues Web. Smarty3 compile ses modèles en PHP pour accélérer le rendu.";
App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Afin de stocker ces modèles compilés, le serveur Web doit disposer d'un accès en écriture au répertoire %s selon le dossier Web racine.";
App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Merci de vous assurer que l'utilisateur sous lequel le serveur web tourne (le plus souvent, www-data) a bien l'autorisation d'écrire dans ce répertoire.";
@@ -551,8 +551,6 @@ App::$strings["Publicly visible description of this site. Displayed on siteinfo
App::$strings["System language"] = "Langue du système";
App::$strings["System theme"] = "Thème du système";
App::$strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Thème par défaut - il peut être changé pour chaque profil utilisateur - <a href='#' id='cnftheme'>modifier le thème</a>";
-App::$strings["Mobile system theme"] = "Thème par défaut pour les mobiles";
-App::$strings["Theme for mobile devices"] = "Thème pour les mobiles";
App::$strings["Allow Feeds as Connections"] = "Autoriser les Flux (RSS) comme contacts";
App::$strings["(Heavy system resource usage)"] = "(Impact important sur les ressources)";
App::$strings["Maximum image size"] = "Taille maximale des images";
@@ -612,6 +610,7 @@ App::$strings["Maximum Load Average"] = "Charge maximale moyenne";
App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Charge système maximale au-delà de laquelle distribution et scrutation sont reportées - par défaut 50.";
App::$strings["Expiration period in days for imported (grid/network) content"] = "Délai d'expiration pour le contenu importé (réseau)";
App::$strings["0 for no expiration of imported content"] = "0 pour ne pas expirer le contenu importé";
+App::$strings["Do not expire any posts which have comments less than this many days ago"] = "Ne pas considérer comme expirés les messages qui ont reçu des commentaires depuis moins de ce nombre de jours";
App::$strings["Public servers: Optional landing (marketing) webpage for new registrants"] = "Serveurs publics : page Web facultative d'atterrissage (marketing) pour les nouveaux inscrits.";
App::$strings["Create this page first. Default is %s/register"] = "Créez d'abord cette page. La valeur par défaut est %s /register";
App::$strings["Page to display after creating a new channel"] = "Page à afficher après la création d'un nouveau canal";
@@ -763,9 +762,10 @@ App::$strings["New connections"] = "Nouveaux contacts";
App::$strings["System Registrations"] = "Inscriptions système";
App::$strings["Unseen shared files"] = "Fichiers partagés non vus";
App::$strings["Unseen public activity"] = "Activité publique non vue";
+App::$strings["Unseen likes and dislikes"] = "Aime et n'aime pas non consultés";
App::$strings["Email notification hub (hostname)"] = "Concentrateur de notification par courriel (nom d'hôte)";
App::$strings["If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s"] = "Si votre canal est dupliqué sur plusieurs hubs, définissez cet emplacement comme votre emplacement préféré. Cela empêchera les notifications par courriel en double. Exemple : %s";
-App::$strings["Also show new wall posts, private messages and connections under Notices"] = "Afficher également les nouvelles publications sur le mur, les messages privés et les contacts dans Notifications";
+App::$strings["Show new wall posts, private messages and connections under Notices"] = "Montrer les nouveaux envois, messages privés et les nouvelles connexions dans Notifications";
App::$strings["Notify me of events this many days in advance"] = "Me prévenir d’événements à venir tant de jours en avance";
App::$strings["Must be greater than 0"] = "Doit être supérieur à 0";
App::$strings["Advanced Account/Page Type Settings"] = "Paramètres avancés de compte/type de page";
@@ -779,6 +779,8 @@ App::$strings["Remove this channel."] = "Supprimer ce canal";
App::$strings["Firefox Share \$Projectname provider"] = "Connecteur \$Projectname pour Firefox Share";
App::$strings["Start calendar week on Monday"] = "Commencer la semaine du calendrier le lundi";
App::$strings["Additional Features"] = "Fonctionnalités additionnelles";
+App::$strings["Your technical skill level"] = "Votre niveau technique";
+App::$strings["Used to provide a member experience and additional features consistent with your comfort level"] = "Utilisé pour offrir une expérience de membre et des fonctions supplémentaires compatibles avec votre niveau de confort.";
App::$strings["This channel is limited to %d tokens"] = "Ce canal est limité à %d jetons";
App::$strings["Name and Password are required."] = "Le nom et le mot de passe sont requis";
App::$strings["Token saved."] = "Jeton sauvegardé";
@@ -789,6 +791,22 @@ App::$strings["Login Name"] = "Nom d'utilisateur";
App::$strings["Login Password"] = "Mot de passe";
App::$strings["Expires (yyyy-mm-dd)"] = "Date d'expiration sous la forme année mois jour (AAAA-MM-JJ)";
App::$strings["Their Settings"] = "Leurs paramètres";
+App::$strings["Name and Secret are required"] = "Un nom et un secret sont requis";
+App::$strings["Add OAuth2 application"] = "Ajouter une application OAuth2";
+App::$strings["Name of application"] = "Nom de l'application";
+App::$strings["Consumer Secret"] = "Secret client";
+App::$strings["Automatically generated - change if desired. Max length 20"] = "Généré automatiquement - à changer si besoin. Longueur maximale 20 caractères.";
+App::$strings["Redirect"] = "Redirection";
+App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirection - laissez vide, sauf si votre application le requiert spécifiquement";
+App::$strings["Grant Types"] = "Types de bourses";
+App::$strings["leave blank unless your application sepcifically requires this"] = "Laisser vide, sauf si votre application le requiert spécifiquement";
+App::$strings["Authorization scope"] = "Portée de l'autorisation";
+App::$strings["OAuth2 Application not found."] = "Application OAuth2 introuvable";
+App::$strings["Add application"] = "Ajouter une application";
+App::$strings["Connected OAuth2 Apps"] = "Applications OAuth2 connectées";
+App::$strings["Client key starts with"] = "La clef partagée commence par";
+App::$strings["No name"] = "Sans nom";
+App::$strings["Remove authorization"] = "Révoquer l'autorisation";
App::$strings["Not valid email."] = "Adresse de courriel non valide.";
App::$strings["Protected email address. Cannot change to that email."] = "Adresse de courriel protégée. Impossible de l'utiliser.";
App::$strings["System failure storing new email. Please try again."] = "Défaillance système lors du stockage de la nouvelle adresse de courriel. Merci d'essayer à nouveau.";
@@ -803,8 +821,6 @@ App::$strings["Current Password"] = "Mot de passe actuel";
App::$strings["Enter New Password"] = "Entrez votre nouveau mot de passe";
App::$strings["Confirm New Password"] = "Confirmez le nouveau mot de passe";
App::$strings["Leave password fields blank unless changing"] = "Laissez les mots de passe vides si vous ne voulez pas les modifier";
-App::$strings["Your technical skill level"] = "Votre niveau technique";
-App::$strings["Used to provide a member experience and additional features consistent with your comfort level"] = "Utilisé pour offrir une expérience de membre et des fonctions supplémentaires compatibles avec votre niveau de confort.";
App::$strings["Remove Account"] = "Supprimer le compte";
App::$strings["Remove this account including all its channels"] = "Supprimer ce compte et tous ses canaux";
App::$strings["Affinity Slider settings updated."] = "Paramètres de la réglette d'affinité mis à jour.";
@@ -845,20 +861,11 @@ App::$strings["click to expand content exceeding this height"] = "cliquer pour d
App::$strings["Grid page max height of content (in pixels)"] = "Hauteur maximale du contenu sur la page du réseau (en pixels)";
App::$strings["Name is required"] = "Le nom est requis";
App::$strings["Key and Secret are required"] = "Clef et secret sont requis";
-App::$strings["Add application"] = "Ajouter une application";
-App::$strings["Name of application"] = "Nom de l'application";
App::$strings["Consumer Key"] = "Clef client";
-App::$strings["Automatically generated - change if desired. Max length 20"] = "Généré automatiquement - à changer si besoin. Longueur maximale 20 caractères.";
-App::$strings["Consumer Secret"] = "Secret client";
-App::$strings["Redirect"] = "Redirection";
-App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirection - laissez vide, sauf si votre application le requiert spécifiquement";
App::$strings["Icon url"] = "URL de l'icône";
App::$strings["Optional"] = "Facultatif";
App::$strings["Application not found."] = "Application introuvable.";
App::$strings["Connected Apps"] = "Applications connectées";
-App::$strings["Client key starts with"] = "La clef partagée commence par";
-App::$strings["No name"] = "Sans nom";
-App::$strings["Remove authorization"] = "Révoquer l'autorisation";
App::$strings["View Photo"] = "Voir la photo";
App::$strings["Edit Album"] = "Modifier l'album";
App::$strings["Upload"] = "Envoyer";
@@ -880,7 +887,7 @@ App::$strings["Permissions"] = "Droits d'accès";
App::$strings["Add Thing to your Profile"] = "Ajouter l'élément à votre profil";
App::$strings["No more system notifications."] = "Pas d'autre notification du système.";
App::$strings["System Notifications"] = "Notifications du système";
-App::$strings["Channel added."] = "Canal ajouté.";
+App::$strings["Connection added."] = "Connexion ajoutée.";
App::$strings["Your service plan only allows %d channels."] = "Votre forfait n'autorise que %d canaux.";
App::$strings["No channel. Import failed."] = "Pas de canal. Echec de l'import.";
App::$strings["Import completed."] = "L'import est terminé.";
@@ -915,19 +922,22 @@ App::$strings["Create new app"] = "Créer une application";
App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s est %2\$s";
App::$strings["Mood"] = "Humeur";
App::$strings["Set your current mood and tell your friends"] = "Indiquez votre humeur du moment à vos amis";
+App::$strings["Active"] = "Active";
App::$strings["Blocked"] = "Bloqué(e)";
App::$strings["Ignored"] = "Ignoré(e)";
App::$strings["Hidden"] = "Caché";
App::$strings["Archived/Unreachable"] = "Archivé/Injoignable";
App::$strings["New"] = "Nouveautés";
App::$strings["All"] = "Tous";
+App::$strings["Active Connections"] = "Connexions actives";
+App::$strings["Show active connections"] = "Voir les connexions actives";
App::$strings["New Connections"] = "Nouveaux contacts";
App::$strings["Show pending (new) connections"] = "Voir les (nouveaux) contacts en attente";
-App::$strings["Show all connections"] = "Voir tous les contacts";
App::$strings["Only show blocked connections"] = "Ne montrer que les contacts bloqués";
App::$strings["Only show ignored connections"] = "Ne montrer que les contacts ignorés";
App::$strings["Only show archived/unreachable connections"] = "Ne montrer que les contacts archivés/injoignables";
App::$strings["Only show hidden connections"] = "Ne montrer que les contacts cachés";
+App::$strings["Show all connections"] = "Voir tous les contacts";
App::$strings["Pending approval"] = "En attente de validation";
App::$strings["Archived"] = "Archivé";
App::$strings["Not connected at this location"] = "Contact introuvable à cette adresse";
@@ -969,10 +979,10 @@ App::$strings["Upload Photos"] = "Téléverser des photos";
App::$strings["Enter an album name"] = "Entrer un nom d'album";
App::$strings["or select an existing album (doubleclick)"] = "ou sélectionner un album existant (double-clic)";
App::$strings["Create a status post for this upload"] = "Créer une publication de statut pour cet envoi";
-App::$strings["Caption (optional):"] = "Légende (facultative)";
-App::$strings["Description (optional):"] = "Description (facultative)";
+App::$strings["Description (optional)"] = "Description (facultative)";
App::$strings["Show Newest First"] = "Les plus récent(e)s en premier";
App::$strings["Show Oldest First"] = "Les moins récent(e)s en premier";
+App::$strings["Add Photos"] = "Ajouter des photos";
App::$strings["Permission denied. Access to this item may be restricted."] = "Accès refusé. L'accès à cet élément peut avoir été restreint.";
App::$strings["Photo not available"] = "Photo non disponible";
App::$strings["Use as profile photo"] = "Utiliser comme photo du profil";
@@ -985,7 +995,6 @@ App::$strings["Rotate CCW (left)"] = "Rotation anti-horaire (gauche)";
App::$strings["Move photo to album"] = "Déplacer la photo dans l'album";
App::$strings["Enter a new album name"] = "Entrer un nouveau nom d'album";
App::$strings["or select an existing one (doubleclick)"] = "ou en sélectionner un existant (double-clic)";
-App::$strings["Caption"] = "Titre/légende";
App::$strings["Add a Tag"] = "Ajouter une étiquette";
App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Exemple&nbsp;: @marc, @Barbara_Jensen, @charles@exemple.com, #Ile_de_France, #marathon";
App::$strings["Flag as adult in album view"] = "Marquer comme \"adulte\" dans l'affichage de l'album";
@@ -1260,6 +1269,10 @@ App::$strings["Warning: Changing some settings could render your channel inopera
App::$strings["If enabled, connection requests will be approved without your interaction"] = "Si cette option est activée, les demandes de connexion seront approuvées sans votre intervention.";
App::$strings["Automatic approval settings"] = "Paramètres d'approbation automatique";
App::$strings["Some individual permissions may have been preset or locked based on your channel type and privacy settings."] = "Certaines permissions individuelles peuvent avoir été prédéfinies ou verrouillées en fonction de votre type de canal et de vos paramètres de confidentialité.";
+App::$strings["Unknown App"] = "App inconnue";
+App::$strings["Authorize"] = "Autoriser";
+App::$strings["Do you authorize the app %s to access your channel data?"] = "Autorisez vous l'app %s à accéder aux données de votre canal&nbsp;?";
+App::$strings["Allow"] = "Permettre";
App::$strings["Privacy group created."] = "Groupe de contacts créé.";
App::$strings["Could not create privacy group."] = "Impossible de créer le groupe de contacts.";
App::$strings["Privacy group not found."] = "Groupe de contacts introuvable.";
@@ -1296,7 +1309,7 @@ App::$strings["Hide your connections list from viewers of this profile"] = "Cach
App::$strings["Edit Profile Details"] = "Modifier les détails du profil";
App::$strings["View this profile"] = "Voir ce profil";
App::$strings["Edit visibility"] = "Changer la visibilité";
-App::$strings["Profile Tools"] = "Ouitls pour votre profile";
+App::$strings["Profile Tools"] = "Outils pour votre profil";
App::$strings["Change cover photo"] = "Modifier votre bannière";
App::$strings["Change profile photo"] = "Changer la photo du profil";
App::$strings["Create a new profile using these settings"] = "Créer un nouveau profil avec ces paramètres";
@@ -1304,14 +1317,14 @@ App::$strings["Clone this profile"] = "Cloner ce profil";
App::$strings["Delete this profile"] = "Supprimer ce profil";
App::$strings["Add profile things"] = "Ajouter des éléments de profil";
App::$strings["Personal"] = "Me concernant";
-App::$strings["Relation"] = "Contacts";
+App::$strings["Relationship"] = "Relation";
App::$strings["Miscellaneous"] = "Divers";
App::$strings["Import profile from file"] = "Importer le profil à partir d'un fichier";
App::$strings["Export profile to file"] = "Exporter le profil vers un fichier.";
App::$strings["Your gender"] = "Votre genre";
App::$strings["Marital status"] = "Etat civil";
App::$strings["Sexual preference"] = "préférence sexuelle";
-App::$strings["Profile name"] = "Nom du profile";
+App::$strings["Profile name"] = "Nom du profil";
App::$strings["This is your default profile."] = "Ceci est votre profil par défaut.";
App::$strings["Your full name"] = "Votre nom complet";
App::$strings["Title/Description"] = "Titre/description";
@@ -1458,6 +1471,7 @@ App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s ne participe pas
App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s participe peut-être à %3\$s de %2\$s";
App::$strings["Action completed."] = "Action terminée.";
App::$strings["Thank you."] = "Merci.";
+App::$strings["No default suggestions were found."] = "Aucune suggestion par défaut n'a été trouvée.";
App::$strings["%d rating"] = array(
0 => "%d évaluation",
1 => "%d évaluations",
@@ -1729,44 +1743,44 @@ App::$strings["To stop receiving these messages, please adjust your Notification
App::$strings["To stop receiving these messages, please adjust your %s."] = "Pour ne plus recevoir ces messages, veuillez ajuster votre %s.";
App::$strings["%s <!item_type!>"] = "%s <!item_type!>";
App::$strings["[\$Projectname:Notify] New mail received at %s"] = "[\$Projectname:Notify] Nouveau mail reçu sur %s";
-App::$strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, vous avez reçu un message privé sur %3\$s, de la part de %2\$s.";
+App::$strings["%1\$s sent you a new private message at %2\$s."] = "%1\$s vous a envoyé un nouveau message privé à %2\$s.";
App::$strings["%1\$s sent you %2\$s."] = "%1\$s vous a envoyé %2\$s.";
App::$strings["a private message"] = "un message privé";
App::$strings["Please visit %s to view and/or reply to your private messages."] = "Merci de visiter %s pour voir et/ou répondre à vos messages privés.";
App::$strings["commented on"] = "commenté";
App::$strings["liked"] = "aimé";
App::$strings["disliked"] = "pas aimé";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]a %5\$s[/zrl]"] = "%1\$s, %2\$s %3\$s [zrl=%4\$s]a %5\$s[/zrl]";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]%5\$s's %6\$s[/zrl]"] = "%1\$s, %2\$s %3\$s [zrl=%4\$s]%5\$s's %6\$s[/zrl]";
-App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]your %5\$s[/zrl]"] = "%1\$s, %2\$s %3\$s [zrl=%4\$s]votre %5\$s[/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s %2\$s [zrl=%3\$s]a %4\$s[/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s %2\$s [zrl=%3\$s]%4\$s de %5\$s[/zrl]";
+App::$strings["%1\$s %2\$s [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s %2\$s [zrl=%3\$s]votre %4\$s[/zrl]";
App::$strings["[\$Projectname:Notify] Moderated Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Notification] Commentaire modéré pour la conversation n°%1\$d par %2\$s";
App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Notify] Commentaire effectué sur la conversation #%1\$d par %2\$s";
-App::$strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s a commenté un élément de conversation que vous suivez.";
+App::$strings["%1\$s commented on an item/conversation you have been following."] = "%1\$sa commenté un élément ou une conversation que vous suivez.";
App::$strings["Please visit %s to view and/or reply to the conversation."] = "Merci de visiter %s pour voir et/ou répondre sur cette conversation.";
App::$strings["Please visit %s to approve or reject this comment."] = "Merci de visiter %spour valider ou rejeter ce commentaire.";
-App::$strings["%1\$s, %2\$s liked [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s aiment [zrl=%3\$s]votre %4\$s[/zrl]";
+App::$strings["%1\$s liked [zrl=%2\$s]your %3\$s[/zrl]"] = "%1\$s aime [zrl=%2\$s]votre %3\$s[/zrl]";
App::$strings["[\$Projectname:Notify] Like received to conversation #%1\$d by %2\$s"] = "[\$Projectname:Notify] Aime reçu à la convesation #%1\$d par %2\$s";
-App::$strings["%1\$s, %2\$s liked an item/conversation you created."] = "%1\$s, %2\$s a aimé un élément ou une conversation que vous avez créée.";
+App::$strings["%1\$s liked an item/conversation you created."] = "%1\$sa commenté un élément ou une conversation que vous avez créée ";
App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Notify] %s a publié sur le mur de votre profil";
-App::$strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s a publié sur votre profil à %3\$s";
-App::$strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s a publié sur [zrl=%3\$s]votre profil[/zrl]";
+App::$strings["%1\$s posted to your profile wall at %2\$s"] = "%1\$s a posté sur le mur de votre profil à %2\$s";
+App::$strings["%1\$s posted to [zrl=%2\$s]your wall[/zrl]"] = "%1\$s envoyé à [zrl=%2\$s]votre mur[/zrl]";
App::$strings["[\$Projectname:Notify] %s tagged you"] = "[\$Projectname:Notify] %s vous a étiquetté";
-App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, vous avez été étiqueté sur %3\$s par %2\$s";
-App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]vous a étiqueté[/zrl].";
+App::$strings["%1\$s tagged you at %2\$s"] = "%1\$s vous a étiqueté à %2\$s";
+App::$strings["%1\$s [zrl=%2\$s]tagged you[/zrl]."] = "%1\$s [zrl=%2\$s]vous a étiqueté[/zrl].";
App::$strings["[\$Projectname:Notify] %1\$s poked you"] = "[\$Projectname:Notify] %1\$s vous a poké";
-App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s vous a tapoté sur %3\$s";
-App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]vous a tapoté[/zrl].";
+App::$strings["%1\$s poked you at %2\$s"] = "%1\$s vous a tapoté à %2\$s";
+App::$strings["%1\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s [zrl=%2\$s]vous a tapoté[/zrl].";
App::$strings["[\$Projectname:Notify] %s tagged your post"] = "[\$Projectname:Notify] %s a étiquetté votre publication";
-App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s a étiqueté votre publication sur %3\$s";
-App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s a étiqueté [zrl=%3\$s]votre publication[/zrl]";
+App::$strings["%1\$s tagged your post at %2\$s"] = "%1\$s a étiqueté votre message à %2\$s";
+App::$strings["%1\$s tagged [zrl=%2\$s]your post[/zrl]"] = "%1\$s a étiqueté [zrl=%2\$s]votre message[/zrl]";
App::$strings["[\$Projectname:Notify] Introduction received"] = "[\$Projectname:Notify] Demande de relation reçue";
-App::$strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, vous avez reçu une demande de contact de '%2\$s' sur %3\$s";
-App::$strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, vous avez reçu [zrl=%2\$s]une demande de contact[/zrl] de %3\$s.";
+App::$strings["You've received an new connection request from '%1\$s' at %2\$s"] = "Vous avez reçu une nouvelle demande de connexion de la part de '%1\$s' à %2\$s";
+App::$strings["You've received [zrl=%1\$s]a new connection request[/zrl] from %2\$s."] = "Vous avez reçu [zrl=%1\$s]une nouvelle demande de connexion[/zrl] de la part de %2\$s.";
App::$strings["You may visit their profile at %s"] = "Vous pouvez visiter leur profil sur %s";
App::$strings["Please visit %s to approve or reject the connection request."] = "Merci de visiter %s pour valider (ou non) cette demande de contact.";
App::$strings["[\$Projectname:Notify] Friend suggestion received"] = "[\$Projectname:Notify] Suggestion d'amitié reçue";
-App::$strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, vous avez reçu une suggestion d'ami(e) de '%2\$s' à %3\$s";
-App::$strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, avez reçu %3\$s comme [zrl=%2\$s]une suggestion d'ami(e)[/zrl] de %4\$s.";
+App::$strings["You've received a friend suggestion from '%1\$s' at %2\$s"] = "Vous avez reçu une suggestion d'ami de la part de '%1\$s' à %2\$s";
+App::$strings["You've received [zrl=%1\$s]a friend suggestion[/zrl] for %2\$s from %3\$s."] = "Vous avez reçu [zrl=%1\$s]une suggestion d'ami[/zrl] pour %2\$s de %3\$s.";
App::$strings["Name:"] = "Nom&nbsp;:";
App::$strings["Photo:"] = "Photo&nbsp;:";
App::$strings["Please visit %s to approve or reject the suggestion."] = "Merci de visiter %s pour valider ou rejeter cette suggestion.";
@@ -1842,6 +1856,7 @@ App::$strings["Schedule Inbox"] = "Calendrier - Messages entrants";
App::$strings["Schedule Outbox"] = "Calendrier - Messages sortants";
App::$strings["Total"] = "Total";
App::$strings["Shared"] = "Partagé";
+App::$strings["Add Files"] = "Ajouter des fichiers";
App::$strings["You are using %1\$s of your available file storage."] = "Vous utilisez %1\$s de votre espace de stockage.";
App::$strings["You are using %1\$s of %2\$s available file storage. (%3\$s&#37;)"] = "Vous utilisez %1\$s sur %2\$s d'espace disponible. (%3\$s&#37;)";
App::$strings["WARNING:"] = "AVERTISSEMENT&nbsp;:";
@@ -1913,17 +1928,19 @@ App::$strings["Suggestions"] = "Suggestions";
App::$strings["See more..."] = "Voir plus...";
App::$strings["Saved Folders"] = "Dossiers sauvegardés";
App::$strings["Click to show more"] = "Cliquer pour voir plus";
+App::$strings["Tags"] = "Étiquettes";
App::$strings["Profile Creation"] = "Création de profil";
App::$strings["Upload profile photo"] = "Téléverser la photo du profil";
App::$strings["Upload cover photo"] = "Téléverser la photo de couverture";
App::$strings["Edit your profile"] = "Modifier votre profil";
App::$strings["Find and Connect with others"] = "Trouver et connecter avec des autres personnes";
+App::$strings["View the directory"] = "Voir l'annuaire";
App::$strings["Manage your connections"] = "Gérez vos connexions";
App::$strings["Communicate"] = "Communiquer";
App::$strings["View your channel homepage"] = "Voir la page d'accueil de votre canal";
App::$strings["View your network stream"] = "Visualisez votre flux réseau";
App::$strings["Documentation"] = "Documentation";
-App::$strings["View public stream. Warning: not moderated"] = "Voir le flux public. Avertissement : non modéré";
+App::$strings["View public stream"] = "Voir le flux public";
App::$strings["New Member Links"] = "Liens pour les nouveaux membres";
App::$strings["Member registrations waiting for confirmation"] = "Inscriptions en attente d'approbation";
App::$strings["Inspect queue"] = "Analyser la file d'attente";
@@ -1937,7 +1954,8 @@ App::$strings["Addon settings"] = "Paramètres de greffon";
App::$strings["Display settings"] = "Paramètres d'affichage";
App::$strings["Manage locations"] = "Gérer les emplacements";
App::$strings["Export channel"] = "Exporter le canal";
-App::$strings["Connected apps"] = "Applications connectées";
+App::$strings["OAuth1 apps"] = "OAuth1 applications";
+App::$strings["OAuth2 apps"] = "OAuth2 applications";
App::$strings["Permission Groups"] = "Groupes d'accès";
App::$strings["Premium Channel Settings"] = "Paramètres de canal VIP";
App::$strings["Bookmarked Chatrooms"] = "Salons favoris";
@@ -2032,6 +2050,7 @@ App::$strings["Reminder note"] = "Note de rappel";
App::$strings["Enter a note to be displayed when you are within the specified proximity..."] = "Saisissez une note à afficher quand vous serez à la distance indiquée...";
App::$strings["Add new rendezvous"] = "Ajouter un nouveau rendezvous";
App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Créez un nouveau rendez-vous et partagez le lien d'accès avec les gens que vous souhaitez inviter au groupe. Ceux qui ouvrent le lien deviennent membres du rendez-vous. Ils peuvent afficher les emplacements des autres membres, ajouter des marqueurs à la carte ou partager leurs propres emplacements avec le groupe.";
+App::$strings["You have no rendezvous. Press the button above to create a rendezvous!"] = "Vous n'avez pas de rendez-vous. Appuyez sur le bouton ci-dessus pour créer un rendez-vous !";
App::$strings["Some setting"] = "Un certain paramètre";
App::$strings["A setting"] = "Un paramètre";
App::$strings["Skeleton Settings"] = "Paramètres du squelette";
@@ -2305,7 +2324,7 @@ App::$strings["Configuration Help"] = "Aide pour la configuration";
App::$strings["Jappix Mini Settings"] = "Paramètres de Jappix mini";
App::$strings["Currently blocked"] = "Actuellement bloqué";
App::$strings["No channels currently blocked"] = "Aucun canal n'est actuellement bloqué";
-App::$strings["\"Superblock\" Settings"] = "Paramètres \"Superblock\"";
+App::$strings["Superblock Settings"] = "Paramètres de Superblock";
App::$strings["Block Completely"] = "Bloquer complètement";
App::$strings["superblock settings updated"] = "Les paramètres du superblock ont été mis à jour";
App::$strings["Federate"] = "Fédérer";
@@ -2404,7 +2423,7 @@ App::$strings["Cancel Connection Process"] = "Annuler le processus de prise de c
App::$strings["Current GNU social API is"] = "L'API GNU-social courante est";
App::$strings["Cancel GNU social Connection"] = "Annuler la connexion GNU-social";
App::$strings["Currently connected to: "] = "Actuellement connecté à :";
-App::$strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "Remarque : en raison de vos paramètres de confidentialité (masquer les détails de votre profil aux visiteurs inconnus? ), le lien potentiellement inclus dans les annonces publiques relayées sur GNU-social amènera le visiteur à une page vierge informant le visiteur que l'accès à votre profil a été restreint.";
+App::$strings["<strong>Note</strong>: Due your privacy settings (<em>Hide your profile details from unknown viewers?</em>) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "<strong>Remarque</strong>&nbsp;: en raison de vos paramètres de confidentialité (<em>masquer les détails de votre profil aux visiteurs inconnus&nbsp;?</em>), le lien potentiellement inclus dans les annonces publiques relayées sur GNU-social amènera le visiteur à une page vierge informant le visiteur que l'accès à votre profil a été restreint.";
App::$strings["Allow posting to GNU social"] = "Autoriser la publication sur GNU-social";
App::$strings["If enabled your public postings can be posted to the associated GNU-social account"] = "Si cette option est activée, vos publications publiques peuvent être publiées sur le compte GNU-social associé.";
App::$strings["Post to GNU social by default"] = "Par défaut, publier sur GNU-social";
@@ -2442,6 +2461,24 @@ App::$strings["Twitter Post Settings"] = "Paramètres des publications Twitter";
App::$strings["Deactivate the feature"] = "Désactiver la fonctionnalité";
App::$strings["Hide the button and show the smilies directly."] = "Cacher le bouton et afficher les émoticônes directement.";
App::$strings["Smileybutton Settings"] = "Paramètres du bouton des émoticônes";
+App::$strings["Order Not Found"] = "Commande introuvable";
+App::$strings["Order cannot be checked out."] = "La commande ne peut pas être finalisée.";
+App::$strings["Enable Shopping Cart"] = "Activer le panier d'achats";
+App::$strings["Enable Test Catalog"] = "Activer le catalogue de test";
+App::$strings["Enable Manual Payments"] = "Activer les paiements manuels";
+App::$strings["Base Cart Settings"] = "Paramètres de base du panier";
+App::$strings["Add Item"] = "Ajouter un article";
+App::$strings["Call cart_post_"] = "Appeler cart_post_";
+App::$strings["Cart Not Enabled (profile: "] = "Panier non activé (profile:";
+App::$strings["Order not found."] = "Commande introuvable.";
+App::$strings["No Order Found"] = "Aucune commande trouvée";
+App::$strings["call: "] = "appel:";
+App::$strings["An unknown error has occurred Please start again."] = "Une erreur inconnue s'est produite. Veuillez recommencer.";
+App::$strings["Invalid Payment Type. Please start again."] = "Type de paiement non valable. Recommencez, s'il vous plaît.";
+App::$strings["Order not found"] = "Commande non trouvée";
+App::$strings["Error: order mismatch. Please try again."] = "Erreur : non-appariement de commande. Veuillez réessayer.";
+App::$strings["Manual payments are not enabled."] = "Les paiements manuels ne sont pas activés.";
+App::$strings["Finished"] = "Terminé.";
App::$strings["This website is tracked using the <a href='http://www.piwik.org'>Piwik</a> analytics tool."] = "Ce site web est surveillé grâce à l'outil d'analyse <a href='http://www.piwik.org'>Piwik</a>.";
App::$strings["If you do not want that your visits are logged this way you <a href='%s'>can set a cookie to prevent Piwik from tracking further visits of the site</a> (opt-out)."] = "Si vous ne souhaitez pas que vos visites soient enregistrées de cette façon, <a href='%s'>vous pouvez\ndéfinir un cookie pour empêcher Piwik de suivre davantage de visites du site</a> (opt-out).";
App::$strings["Piwik Base URL"] = "URL de base Piwik";
@@ -2626,8 +2663,8 @@ App::$strings["Uncertain"] = "Incertain";
App::$strings["It's complicated"] = "C'est compliqué";
App::$strings["Don't care"] = "S'en fiche";
App::$strings["Ask me"] = "Me demander";
-App::$strings["likes %1\$s's %2\$s"] = "aime %1\$s's %2\$s";
-App::$strings["doesn't like %1\$s's %2\$s"] = "n'aime pas %1\$s's %2\$s";
+App::$strings["likes %1\$s's %2\$s"] = "aime le %2\$s de %1\$s";
+App::$strings["doesn't like %1\$s's %2\$s"] = "n'aime pas le %2\$s de%1\$s ";
App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s ajoute %2\$s à ses contacts";
App::$strings["%1\$s poked %2\$s"] = "%1\$s a tapoté %2\$s";
App::$strings["poked"] = "a tapoté";
@@ -2641,7 +2678,6 @@ App::$strings["Delete Selected Items"] = "Supprimer les éléments selectionnés
App::$strings["View Source"] = "Voir source";
App::$strings["Follow Thread"] = "Suivre la discussion";
App::$strings["Unfollow Thread"] = "Ne plus suivre la discussion";
-App::$strings["Activity/Posts"] = "Activité/Publications";
App::$strings["Edit Connection"] = "Modifier le contact";
App::$strings["Message"] = "Message";
App::$strings["%s likes this."] = "%s aime ça.";
@@ -2664,7 +2700,7 @@ App::$strings["%s don't like this."] = "%s n'aime pas ça.";
App::$strings["Set your location"] = "Spécifier votre emplacement géographique";
App::$strings["Clear browser location"] = "Supprimer l'emplacement géographique du navigateur";
App::$strings["Tag term:"] = "Étiquette&nbsp;:";
-App::$strings["Where are you right now?"] = "Où êtes-vous en ce moment&nbsp;?";
+App::$strings["Where are you right now?"] = "Où êtes-vous en ce moment ?";
App::$strings["Choose a different album..."] = "Choisissez un autre album";
App::$strings["Comments enabled"] = "Commentaires activés";
App::$strings["Comments disabled"] = "Commentaires désactivés";
@@ -2725,6 +2761,7 @@ App::$strings["Safe Mode"] = "Mode sûr";
App::$strings["Public Forums Only"] = "Les forums publics uniquement";
App::$strings["This Website Only"] = "Ce site uniquement";
App::$strings["%1\$s's bookmarks"] = "Favoris de %1\$s";
+App::$strings["Unable to import a removed channel."] = "Impossible d'importer un canal supprimé.";
App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "L'import a échoué. Un canal existe déjà avec ce nom";
App::$strings["Cloned channel not found. Import failed."] = "Canal cloné non trouvé. Echec de l'import.";
App::$strings["prev"] = "préc.";
@@ -2739,7 +2776,7 @@ App::$strings["poke"] = "tapoter";
App::$strings["ping"] = "ping";
App::$strings["pinged"] = "pingé";
App::$strings["prod"] = "encourager";
-App::$strings["prodded"] = "encouragé";
+App::$strings["prodded"] = "à encouragé";
App::$strings["slap"] = "giffler";
App::$strings["slapped"] = "gifflé(e)";
App::$strings["finger"] = "pointer";
@@ -2834,6 +2871,7 @@ App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s a écrit %2\$s q
App::$strings["Channel is blocked on this site."] = "Ce canal est bloqué sur ce site.";
App::$strings["Channel location missing."] = "Emplacement du canal introuvable.";
App::$strings["Response from remote channel was incomplete."] = "La réponse du canal distant était incomplète.";
+App::$strings["Premium channel - please visit:"] = "Canal Premium - s'il vous plaît visitez :";
App::$strings["Channel was deleted and no longer exists."] = "Le canal a été supprimé et n'existe plus.";
App::$strings["Remote channel or protocol unavailable."] = "Canal distant ou protocole indisponible.";
App::$strings["Channel discovery failed."] = "La tentative d'accéder au canal a échoué.";
@@ -2958,8 +2996,8 @@ App::$strings["j F, Y"] = "j F, Y";
App::$strings["j F"] = "j F";
App::$strings["Birthday:"] = "Date de naissance&nbsp;:";
App::$strings["for %1\$d %2\$s"] = "depuis %1\$d %2\$s";
-App::$strings["Sexual Preference:"] = "Orientation sexuelle&nbsp;:";
App::$strings["Tags:"] = "Étiquettes&nbsp;:";
+App::$strings["Sexual Preference:"] = "Orientation sexuelle&nbsp;:";
App::$strings["Political Views:"] = "Opinions politiques&nbsp;:";
App::$strings["Religion:"] = "Religion&nbsp;:";
App::$strings["Hobbies/Interests:"] = "Occupations/Centres d'intérêt&nbsp;:";
@@ -3024,9 +3062,10 @@ App::$strings["Embedded content"] = "Contenu imbriqué";
App::$strings["Embedding disabled"] = "Imbrication désactivée";
App::$strings["OpenWebAuth: %1\$s welcomes %2\$s"] = "OpenWebAuth: %1\$s accueille favorablement %2\$s";
App::$strings["General Features"] = "Fonctionnalités générales";
-App::$strings["Advanced Profiles"] = "Profils Avancés";
+App::$strings["Display new member quick links menu"] = "Afficher le menu des liens rapides pour les nouveaux membres";
+App::$strings["Advanced Profiles"] = "Profils avancés";
App::$strings["Additional profile sections and selections"] = "Sections et sélections supplémentaires du profil";
-App::$strings["Profile Import/Export"] = "Importer/Exporter le profil";
+App::$strings["Profile Import/Export"] = "Importer/exporter le profil";
App::$strings["Save and load profile details across sites/channels"] = "Sauvegarder et charger les détails d'un profil entre sites/canaux";
App::$strings["Web Pages"] = "Pages web";
App::$strings["Provide managed web pages on your channel"] = "Fournir des pages web, sous votre contrôle, sur votre canal";
@@ -3057,8 +3096,10 @@ App::$strings["Enable management and selection of privacy groups"] = "Active la
App::$strings["Multiple Profiles"] = "Profils multiples";
App::$strings["Ability to create multiple profiles"] = "Possibilité de créer plusieurs profils";
App::$strings["Provide alternate connection permission roles."] = "Fournir des rôles d'accès différents pour ce contact.";
-App::$strings["OAuth Clients"] = "Clients OAuth";
-App::$strings["Manage authenticatication tokens for mobile and remote apps."] = "Gérer les jetons d'authentification pour les applications mobiles et distantes.";
+App::$strings["OAuth1 Clients"] = "Clients OAuth1";
+App::$strings["Manage OAuth1 authenticatication tokens for mobile and remote apps."] = "Gérer les jetons d'authentification OAuth1 pour les applications mobiles et distantes.";
+App::$strings["OAuth2 Clients"] = "Clients OAuth2";
+App::$strings["Manage OAuth2 authenticatication tokens for mobile and remote apps."] = "Gérer les jetons d'authentification OAuth2 pour les applications mobiles et distantes.";
App::$strings["Access Tokens"] = "Jetons d'accès.";
App::$strings["Create access tokens so that non-members can access private content."] = "Créez des jetons d'accès pour que les non-membres puissent accéder au contenu privé.";
App::$strings["Post Composition Features"] = "Fonctionnalités de composition";
@@ -3077,6 +3118,8 @@ App::$strings["Content Expiration"] = "Expiration du contenu";
App::$strings["Remove posts/comments and/or private messages at a future time"] = "Supprimer les contributions/commentaires et/ou messages privés plus tard";
App::$strings["Suppress Duplicate Posts/Comments"] = "Supprimer les publications/commentaires en doublon";
App::$strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Empêcher des messages aux contenus identiques d'être publiés à moins de deux minutes d'intervalle";
+App::$strings["Auto-save drafts of posts and comments"] = "Sauvegarde automatique des brouillons de messages et commentaires";
+App::$strings["Automatically saves post and comment drafts in local browser storage to help prevent accidental loss of compositions"] = "Enregistre automatiquement les brouillons de messages et de commentaires dans le stockage local du navigateur pour aider à prévenir la perte accidentelle de compositions.";
App::$strings["Network and Stream Filtering"] = "Filtrage du réseau et des flux";
App::$strings["Search by Date"] = "Chercher par date";
App::$strings["Ability to select posts by date ranges"] = "Pouvoir choisir des publications par date";
@@ -3104,7 +3147,6 @@ App::$strings["Star Posts"] = "Pouvoir mettre en avant les publications";
App::$strings["Ability to mark special posts with a star indicator"] = "Pouvoir marquer certaines publications d'une étoile";
App::$strings["Tag Cloud"] = "Nuage de tags";
App::$strings["Provide a personal tag cloud on your channel page"] = "Afficher un nuage de vos tags sur votre canal";
-App::$strings["Tags"] = "Étiquettes";
App::$strings["Keywords"] = "Mots-clefs";
App::$strings["have"] = "ont";
App::$strings["has"] = "a";
@@ -3200,6 +3242,7 @@ App::$strings["Add privacy group"] = "Créer un groupe de contacts";
App::$strings["Channels not in any privacy group"] = "Contacts n'étant dans aucun groupe de contacts";
App::$strings["New window"] = "Nouvelle fenêtre";
App::$strings["Open the selected location in a different window or browser tab"] = "Ouvrir l'emplacement dans une fenêtre ou un onglet différent";
+App::$strings["Delegation session ended."] = "La séance de délégation a pris fin.";
App::$strings["Logged out."] = "Deconnecté.";
App::$strings["Email validation is incomplete. Please check your email."] = "La validation du courriel est incomplète. Veuillez vérifier l'adresse courriel.";
App::$strings["Failed authentication"] = "Échec de l'authentification";
diff --git a/view/it/hmessages.po b/view/it/hmessages.po
index 5f9ec9cc6..d591108fa 100644
--- a/view/it/hmessages.po
+++ b/view/it/hmessages.po
@@ -4,15 +4,15 @@
#
# Translators:
# Davide Pesenti <mrjive@mrjive.it>, 2015-2016,2018
-# Paolo Wave <pynolo@tarine.net>, 2015-2016
+# Paolo Wave <pynolo@tarine.net>, 2015-2016,2018
# Paolo Wave <pynolo@tarine.net>, 2015
msgid ""
msgstr ""
"Project-Id-Version: Redmatrix\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-03-01 08:51+0100\n"
-"PO-Revision-Date: 2018-03-01 17:14+0000\n"
-"Last-Translator: fabrixxm <fabrix.xm@gmail.com>\n"
+"POT-Creation-Date: 2018-04-18 08:37+0200\n"
+"PO-Revision-Date: 2018-04-19 07:57+0000\n"
+"Last-Translator: Davide Pesenti <mrjive@mrjive.it>\n"
"Language-Team: Italian (http://www.transifex.com/Friendica/red-matrix/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -92,75 +92,79 @@ msgstr "Può usare i miei post pubblici per creare canali derivati"
msgid "Can administer my channel"
msgstr "Può amministrare il mio canale"
-#: ../../Zotlabs/Access/PermissionRoles.php:265
+#: ../../Zotlabs/Access/PermissionRoles.php:283
msgid "Social Networking"
msgstr "Social network"
-#: ../../Zotlabs/Access/PermissionRoles.php:266
+#: ../../Zotlabs/Access/PermissionRoles.php:284
+msgid "Social - Party"
+msgstr "Social - Party"
+
+#: ../../Zotlabs/Access/PermissionRoles.php:285
msgid "Social - Mostly Public"
msgstr "Social - Prevalentemente pubblico"
-#: ../../Zotlabs/Access/PermissionRoles.php:267
+#: ../../Zotlabs/Access/PermissionRoles.php:286
msgid "Social - Restricted"
msgstr "Social - Con restrizioni"
-#: ../../Zotlabs/Access/PermissionRoles.php:268
+#: ../../Zotlabs/Access/PermissionRoles.php:287
msgid "Social - Private"
msgstr "Social - Privato"
-#: ../../Zotlabs/Access/PermissionRoles.php:271
+#: ../../Zotlabs/Access/PermissionRoles.php:290
msgid "Community Forum"
msgstr "Forum di discussione"
-#: ../../Zotlabs/Access/PermissionRoles.php:272
+#: ../../Zotlabs/Access/PermissionRoles.php:291
msgid "Forum - Mostly Public"
msgstr "Social - Prevalentemente pubblico"
-#: ../../Zotlabs/Access/PermissionRoles.php:273
+#: ../../Zotlabs/Access/PermissionRoles.php:292
msgid "Forum - Restricted"
msgstr "Forum - Con restrizioni"
-#: ../../Zotlabs/Access/PermissionRoles.php:274
+#: ../../Zotlabs/Access/PermissionRoles.php:293
msgid "Forum - Private"
msgstr "Forum - Privato"
-#: ../../Zotlabs/Access/PermissionRoles.php:277
+#: ../../Zotlabs/Access/PermissionRoles.php:296
msgid "Feed Republish"
msgstr "Aggregatore di feed esterni"
-#: ../../Zotlabs/Access/PermissionRoles.php:278
+#: ../../Zotlabs/Access/PermissionRoles.php:297
msgid "Feed - Mostly Public"
msgstr "Feed - Prevalentemente pubblico"
-#: ../../Zotlabs/Access/PermissionRoles.php:279
+#: ../../Zotlabs/Access/PermissionRoles.php:298
msgid "Feed - Restricted"
msgstr "Feed - Con restrizioni"
-#: ../../Zotlabs/Access/PermissionRoles.php:282
+#: ../../Zotlabs/Access/PermissionRoles.php:301
msgid "Special Purpose"
msgstr "Per finalità speciali"
-#: ../../Zotlabs/Access/PermissionRoles.php:283
+#: ../../Zotlabs/Access/PermissionRoles.php:302
msgid "Special - Celebrity/Soapbox"
msgstr "Speciale - Pagina per fan"
-#: ../../Zotlabs/Access/PermissionRoles.php:284
+#: ../../Zotlabs/Access/PermissionRoles.php:303
msgid "Special - Group Repository"
msgstr "Speciale - Repository di gruppo"
-#: ../../Zotlabs/Access/PermissionRoles.php:287
-#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:130
-#: ../../Zotlabs/Module/Settings/Channel.php:473
-#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:798
+#: ../../Zotlabs/Access/PermissionRoles.php:306
+#: ../../Zotlabs/Module/Cdav.php:1182 ../../Zotlabs/Module/New_channel.php:144
+#: ../../Zotlabs/Module/Settings/Channel.php:479
+#: ../../Zotlabs/Module/Connedit.php:918 ../../Zotlabs/Module/Profiles.php:795
#: ../../Zotlabs/Module/Register.php:224 ../../include/selectors.php:49
#: ../../include/selectors.php:66 ../../include/selectors.php:104
#: ../../include/selectors.php:140 ../../include/event.php:1315
-#: ../../include/event.php:1322 ../../include/connections.php:689
-#: ../../include/connections.php:696
+#: ../../include/event.php:1322 ../../include/connections.php:697
+#: ../../include/connections.php:704
msgid "Other"
msgstr "Altro"
-#: ../../Zotlabs/Access/PermissionRoles.php:288
+#: ../../Zotlabs/Access/PermissionRoles.php:307
msgid "Custom/Expert Mode"
msgstr "Personalizzazione per esperti"
@@ -170,7 +174,7 @@ msgstr "Personalizzazione per esperti"
#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Profile.php:20
#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Editwebpage.php:32
#: ../../Zotlabs/Module/Cards.php:33 ../../Zotlabs/Module/Webpages.php:33
-#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1198
+#: ../../Zotlabs/Module/Filestorage.php:51 ../../include/channel.php:1197
msgid "Requested profile is not available."
msgstr "Il profilo richiesto non è disponibile."
@@ -181,26 +185,27 @@ msgstr "Il profilo richiesto non è disponibile."
#: ../../Zotlabs/Module/Channel.php:248 ../../Zotlabs/Module/Channel.php:288
#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Locs.php:87
#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Events.php:271
-#: ../../Zotlabs/Module/Appman.php:86 ../../Zotlabs/Module/Regmod.php:21
+#: ../../Zotlabs/Module/Appman.php:87 ../../Zotlabs/Module/Regmod.php:21
#: ../../Zotlabs/Module/Article_edit.php:51
-#: ../../Zotlabs/Module/New_channel.php:77
-#: ../../Zotlabs/Module/New_channel.php:102
+#: ../../Zotlabs/Module/New_channel.php:91
+#: ../../Zotlabs/Module/New_channel.php:116
#: ../../Zotlabs/Module/Sharedwithme.php:16 ../../Zotlabs/Module/Setup.php:209
#: ../../Zotlabs/Module/Moderate.php:13
-#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:275
-#: ../../Zotlabs/Module/Thing.php:295 ../../Zotlabs/Module/Thing.php:336
+#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Thing.php:280
+#: ../../Zotlabs/Module/Thing.php:300 ../../Zotlabs/Module/Thing.php:341
#: ../../Zotlabs/Module/Api.php:24 ../../Zotlabs/Module/Editblock.php:67
#: ../../Zotlabs/Module/Profile.php:85 ../../Zotlabs/Module/Profile.php:101
#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Connections.php:29
#: ../../Zotlabs/Module/Viewsrc.php:19 ../../Zotlabs/Module/Bookmarks.php:64
#: ../../Zotlabs/Module/Photos.php:69 ../../Zotlabs/Module/Wiki.php:50
-#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:273 ../../Zotlabs/Module/Wiki.php:404
#: ../../Zotlabs/Module/Pdledit.php:29 ../../Zotlabs/Module/Poke.php:149
#: ../../Zotlabs/Module/Profile_photo.php:302
#: ../../Zotlabs/Module/Profile_photo.php:315
#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Item.php:229
#: ../../Zotlabs/Module/Item.php:246 ../../Zotlabs/Module/Item.php:256
-#: ../../Zotlabs/Module/Item.php:1099 ../../Zotlabs/Module/Page.php:34
+#: ../../Zotlabs/Module/Item.php:1106 ../../Zotlabs/Module/Page.php:34
#: ../../Zotlabs/Module/Page.php:133 ../../Zotlabs/Module/Connedit.php:389
#: ../../Zotlabs/Module/Chat.php:100 ../../Zotlabs/Module/Chat.php:105
#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Layouts.php:71
@@ -219,7 +224,7 @@ msgstr "Il profilo richiesto non è disponibile."
#: ../../Zotlabs/Module/Register.php:77
#: ../../Zotlabs/Module/Cover_photo.php:281
#: ../../Zotlabs/Module/Cover_photo.php:294
-#: ../../Zotlabs/Module/Display.php:406 ../../Zotlabs/Module/Network.php:15
+#: ../../Zotlabs/Module/Display.php:449 ../../Zotlabs/Module/Network.php:15
#: ../../Zotlabs/Module/Filestorage.php:15
#: ../../Zotlabs/Module/Filestorage.php:70
#: ../../Zotlabs/Module/Filestorage.php:85
@@ -231,15 +236,14 @@ msgstr "Il profilo richiesto non è disponibile."
#: ../../Zotlabs/Module/Notifications.php:11
#: ../../Zotlabs/Lib/Chatroom.php:133 ../../Zotlabs/Web/WebServer.php:123
#: ../../addon/keepout/keepout.php:36 ../../addon/openid/Mod_Id.php:53
-#: ../../addon/gitwiki/Mod_Gitwiki.php:196
-#: ../../addon/gitwiki/Mod_Gitwiki.php:292 ../../addon/pumpio/pumpio.php:40
-#: ../../include/attach.php:150 ../../include/attach.php:197
-#: ../../include/attach.php:270 ../../include/attach.php:284
-#: ../../include/attach.php:293 ../../include/attach.php:366
-#: ../../include/attach.php:380 ../../include/attach.php:387
-#: ../../include/attach.php:469 ../../include/attach.php:1019
-#: ../../include/attach.php:1093 ../../include/attach.php:1258
-#: ../../include/items.php:3656 ../../include/photos.php:27
+#: ../../addon/pumpio/pumpio.php:40 ../../include/attach.php:150
+#: ../../include/attach.php:197 ../../include/attach.php:270
+#: ../../include/attach.php:284 ../../include/attach.php:293
+#: ../../include/attach.php:366 ../../include/attach.php:380
+#: ../../include/attach.php:387 ../../include/attach.php:469
+#: ../../include/attach.php:1029 ../../include/attach.php:1103
+#: ../../include/attach.php:1268 ../../include/items.php:3706
+#: ../../include/photos.php:27
msgid "Permission denied."
msgstr "Permesso negato."
@@ -248,7 +252,7 @@ msgstr "Permesso negato."
msgid "Block Name"
msgstr "Nome del block"
-#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2402
+#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2422
msgid "Blocks"
msgstr "Block"
@@ -267,9 +271,9 @@ msgid "Edited"
msgstr "Modificato"
#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Articles.php:96
-#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:146
+#: ../../Zotlabs/Module/Cdav.php:1185 ../../Zotlabs/Module/New_channel.php:160
#: ../../Zotlabs/Module/Connedit.php:921 ../../Zotlabs/Module/Menu.php:118
-#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Module/Profiles.php:798
#: ../../Zotlabs/Module/Cards.php:100 ../../Zotlabs/Module/Webpages.php:239
#: ../../Zotlabs/Storage/Browser.php:276 ../../Zotlabs/Storage/Browser.php:382
#: ../../Zotlabs/Widget/Cdav.php:128 ../../Zotlabs/Widget/Cdav.php:165
@@ -278,43 +282,44 @@ msgstr "Crea"
#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Editlayout.php:114
#: ../../Zotlabs/Module/Article_edit.php:99
-#: ../../Zotlabs/Module/Admin/Profs.php:154
-#: ../../Zotlabs/Module/Settings/Oauth.php:149
-#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Module/Editblock.php:114
-#: ../../Zotlabs/Module/Connections.php:265
-#: ../../Zotlabs/Module/Connections.php:303
-#: ../../Zotlabs/Module/Connections.php:323 ../../Zotlabs/Module/Wiki.php:202
-#: ../../Zotlabs/Module/Wiki.php:358 ../../Zotlabs/Module/Menu.php:112
+#: ../../Zotlabs/Module/Admin/Profs.php:175
+#: ../../Zotlabs/Module/Settings/Oauth2.php:149
+#: ../../Zotlabs/Module/Settings/Oauth.php:150
+#: ../../Zotlabs/Module/Thing.php:266 ../../Zotlabs/Module/Editblock.php:114
+#: ../../Zotlabs/Module/Connections.php:281
+#: ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Connections.php:339 ../../Zotlabs/Module/Wiki.php:202
+#: ../../Zotlabs/Module/Wiki.php:362 ../../Zotlabs/Module/Menu.php:112
#: ../../Zotlabs/Module/Layouts.php:193
#: ../../Zotlabs/Module/Editwebpage.php:142
-#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Editpost.php:85
-#: ../../Zotlabs/Module/Card_edit.php:99 ../../Zotlabs/Lib/Apps.php:409
-#: ../../Zotlabs/Lib/ThreadItem.php:121 ../../Zotlabs/Storage/Browser.php:288
-#: ../../Zotlabs/Widget/Cdav.php:126 ../../Zotlabs/Widget/Cdav.php:162
-#: ../../addon/gitwiki/Mod_Gitwiki.php:151
-#: ../../addon/gitwiki/Mod_Gitwiki.php:252 ../../include/channel.php:1297
-#: ../../include/channel.php:1301 ../../include/menu.php:113
+#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Card_edit.php:99
+#: ../../Zotlabs/Lib/Apps.php:409 ../../Zotlabs/Lib/ThreadItem.php:121
+#: ../../Zotlabs/Storage/Browser.php:288 ../../Zotlabs/Widget/Cdav.php:126
+#: ../../Zotlabs/Widget/Cdav.php:162 ../../include/channel.php:1296
+#: ../../include/channel.php:1300 ../../include/menu.php:113
msgid "Edit"
msgstr "Modifica"
#: ../../Zotlabs/Module/Blocks.php:161 ../../Zotlabs/Module/Photos.php:1102
-#: ../../Zotlabs/Module/Layouts.php:194 ../../Zotlabs/Module/Webpages.php:241
-#: ../../Zotlabs/Widget/Cdav.php:124 ../../include/conversation.php:1363
+#: ../../Zotlabs/Module/Wiki.php:287 ../../Zotlabs/Module/Layouts.php:194
+#: ../../Zotlabs/Module/Webpages.php:241 ../../Zotlabs/Widget/Cdav.php:124
+#: ../../include/conversation.php:1366
msgid "Share"
msgstr "Condividi"
#: ../../Zotlabs/Module/Blocks.php:162 ../../Zotlabs/Module/Editlayout.php:138
#: ../../Zotlabs/Module/Cdav.php:897 ../../Zotlabs/Module/Cdav.php:1187
#: ../../Zotlabs/Module/Article_edit.php:129
-#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Admin/Accounts.php:175
#: ../../Zotlabs/Module/Admin/Channels.php:149
-#: ../../Zotlabs/Module/Admin/Profs.php:155
-#: ../../Zotlabs/Module/Settings/Oauth.php:150
-#: ../../Zotlabs/Module/Thing.php:262 ../../Zotlabs/Module/Editblock.php:139
-#: ../../Zotlabs/Module/Connections.php:273
+#: ../../Zotlabs/Module/Admin/Profs.php:176
+#: ../../Zotlabs/Module/Settings/Oauth2.php:150
+#: ../../Zotlabs/Module/Settings/Oauth.php:151
+#: ../../Zotlabs/Module/Thing.php:267 ../../Zotlabs/Module/Editblock.php:139
+#: ../../Zotlabs/Module/Connections.php:289
#: ../../Zotlabs/Module/Photos.php:1203 ../../Zotlabs/Module/Connedit.php:654
#: ../../Zotlabs/Module/Connedit.php:923 ../../Zotlabs/Module/Group.php:179
-#: ../../Zotlabs/Module/Profiles.php:803
+#: ../../Zotlabs/Module/Profiles.php:800
#: ../../Zotlabs/Module/Editwebpage.php:167
#: ../../Zotlabs/Module/Webpages.php:242
#: ../../Zotlabs/Module/Card_edit.php:129 ../../Zotlabs/Lib/Apps.php:410
@@ -326,7 +331,6 @@ msgstr "Elimina"
#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Events.php:694
#: ../../Zotlabs/Module/Wiki.php:204 ../../Zotlabs/Module/Layouts.php:198
#: ../../Zotlabs/Module/Webpages.php:246 ../../Zotlabs/Module/Pubsites.php:60
-#: ../../addon/gitwiki/Mod_Gitwiki.php:153
msgid "View"
msgstr "Guarda"
@@ -403,30 +407,31 @@ msgstr "3. Clicca su [Aggiungi]"
#: ../../Zotlabs/Module/Invite.php:151 ../../Zotlabs/Module/Locs.php:121
#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Events.php:493
-#: ../../Zotlabs/Module/Appman.php:152
+#: ../../Zotlabs/Module/Appman.php:153
#: ../../Zotlabs/Module/Import_items.php:129
#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:349
#: ../../Zotlabs/Module/Connect.php:98
#: ../../Zotlabs/Module/Admin/Features.php:66
#: ../../Zotlabs/Module/Admin/Plugins.php:438
-#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:168
#: ../../Zotlabs/Module/Admin/Logs.php:84
#: ../../Zotlabs/Module/Admin/Channels.php:147
#: ../../Zotlabs/Module/Admin/Themes.php:158
-#: ../../Zotlabs/Module/Admin/Site.php:289
-#: ../../Zotlabs/Module/Admin/Profs.php:157
+#: ../../Zotlabs/Module/Admin/Site.php:296
+#: ../../Zotlabs/Module/Admin/Profs.php:178
#: ../../Zotlabs/Module/Admin/Account_edit.php:74
#: ../../Zotlabs/Module/Admin/Security.php:104
-#: ../../Zotlabs/Module/Settings/Permcats.php:110
-#: ../../Zotlabs/Module/Settings/Channel.php:488
-#: ../../Zotlabs/Module/Settings/Features.php:47
+#: ../../Zotlabs/Module/Settings/Permcats.php:115
+#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Features.php:79
#: ../../Zotlabs/Module/Settings/Tokens.php:168
+#: ../../Zotlabs/Module/Settings/Oauth2.php:84
#: ../../Zotlabs/Module/Settings/Account.php:118
#: ../../Zotlabs/Module/Settings/Featured.php:54
#: ../../Zotlabs/Module/Settings/Display.php:192
-#: ../../Zotlabs/Module/Settings/Oauth.php:87
-#: ../../Zotlabs/Module/Thing.php:321 ../../Zotlabs/Module/Thing.php:374
-#: ../../Zotlabs/Module/Import.php:529 ../../Zotlabs/Module/Cal.php:345
+#: ../../Zotlabs/Module/Settings/Oauth.php:88
+#: ../../Zotlabs/Module/Thing.php:326 ../../Zotlabs/Module/Thing.php:379
+#: ../../Zotlabs/Module/Import.php:530 ../../Zotlabs/Module/Cal.php:345
#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Photos.php:1082
#: ../../Zotlabs/Module/Photos.php:1122 ../../Zotlabs/Module/Photos.php:1240
#: ../../Zotlabs/Module/Wiki.php:206 ../../Zotlabs/Module/Pdledit.php:98
@@ -434,17 +439,17 @@ msgstr "3. Clicca su [Aggiungi]"
#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:242
#: ../../Zotlabs/Module/Email_validation.php:40
#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Defperms.php:249
-#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:726
-#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149
-#: ../../Zotlabs/Module/Xchan.php:15 ../../Zotlabs/Module/Mail.php:431
-#: ../../Zotlabs/Module/Filestorage.php:160 ../../Zotlabs/Module/Rate.php:166
-#: ../../Zotlabs/Lib/ThreadItem.php:750
+#: ../../Zotlabs/Module/Group.php:87 ../../Zotlabs/Module/Profiles.php:723
+#: ../../Zotlabs/Module/Editpost.php:85 ../../Zotlabs/Module/Sources.php:114
+#: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Xchan.php:15
+#: ../../Zotlabs/Module/Mail.php:431 ../../Zotlabs/Module/Filestorage.php:160
+#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Lib/ThreadItem.php:752
#: ../../Zotlabs/Widget/Eventstools.php:16
#: ../../Zotlabs/Widget/Wiki_pages.php:40
#: ../../Zotlabs/Widget/Wiki_pages.php:97
#: ../../view/theme/redbasic_c/php/config.php:95
#: ../../view/theme/redbasic/php/config.php:93
-#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:273
+#: ../../addon/skeleton/skeleton.php:65 ../../addon/gnusoc/gnusoc.php:275
#: ../../addon/planets/planets.php:153
#: ../../addon/openclipatar/openclipatar.php:53
#: ../../addon/wppost/wppost.php:113 ../../addon/nsfw/nsfw.php:92
@@ -452,8 +457,7 @@ msgstr "3. Clicca su [Aggiungi]"
#: ../../addon/likebanner/likebanner.php:57
#: ../../addon/redphotos/redphotos.php:136 ../../addon/irc/irc.php:53
#: ../../addon/ljpost/ljpost.php:86 ../../addon/startpage/startpage.php:113
-#: ../../addon/diaspora/diaspora.php:822
-#: ../../addon/gitwiki/Mod_Gitwiki.php:155
+#: ../../addon/diaspora/diaspora.php:823
#: ../../addon/rainbowtag/rainbowtag.php:85 ../../addon/hzfiles/hzfiles.php:84
#: ../../addon/visage/visage.php:170 ../../addon/nsabait/nsabait.php:161
#: ../../addon/mailtest/mailtest.php:100
@@ -461,7 +465,7 @@ msgstr "3. Clicca su [Aggiungi]"
#: ../../addon/rtof/rtof.php:101 ../../addon/jappixmini/jappixmini.php:371
#: ../../addon/superblock/superblock.php:120 ../../addon/nofed/nofed.php:80
#: ../../addon/redred/redred.php:119 ../../addon/logrot/logrot.php:35
-#: ../../addon/frphotos/frphotos.php:96 ../../addon/pubcrawl/pubcrawl.php:1053
+#: ../../addon/frphotos/frphotos.php:97 ../../addon/pubcrawl/pubcrawl.php:1069
#: ../../addon/chords/Mod_Chords.php:60 ../../addon/libertree/libertree.php:85
#: ../../addon/flattrwidget/flattrwidget.php:124
#: ../../addon/statusnet/statusnet.php:322
@@ -470,15 +474,16 @@ msgstr "3. Clicca su [Aggiungi]"
#: ../../addon/statusnet/statusnet.php:900 ../../addon/twitter/twitter.php:218
#: ../../addon/twitter/twitter.php:265
#: ../../addon/smileybutton/smileybutton.php:219
-#: ../../addon/piwik/piwik.php:95 ../../addon/pageheader/pageheader.php:48
+#: ../../addon/cart/cart.php:1104 ../../addon/piwik/piwik.php:95
+#: ../../addon/pageheader/pageheader.php:48
#: ../../addon/authchoose/authchoose.php:71 ../../addon/xmpp/xmpp.php:69
#: ../../addon/pumpio/pumpio.php:237 ../../addon/redfiles/redfiles.php:124
#: ../../addon/hubwall/hubwall.php:95 ../../include/js_strings.php:22
msgid "Submit"
msgstr "Salva"
-#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:179
-#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:124
+#: ../../Zotlabs/Module/Articles.php:38 ../../Zotlabs/Module/Articles.php:191
+#: ../../Zotlabs/Lib/Apps.php:229 ../../include/features.php:133
#: ../../include/nav.php:469
msgid "Articles"
msgstr "Articoli"
@@ -513,11 +518,11 @@ msgstr "Modifica il layout"
#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:86
#: ../../Zotlabs/Module/Import_items.php:120
-#: ../../Zotlabs/Module/Cloud.php:111 ../../Zotlabs/Module/Group.php:74
+#: ../../Zotlabs/Module/Cloud.php:117 ../../Zotlabs/Module/Group.php:74
#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:68
#: ../../Zotlabs/Module/Like.php:296 ../../Zotlabs/Web/WebServer.php:122
#: ../../addon/redphotos/redphotos.php:119 ../../addon/hzfiles/hzfiles.php:73
-#: ../../addon/frphotos/frphotos.php:81 ../../addon/redfiles/redfiles.php:109
+#: ../../addon/frphotos/frphotos.php:82 ../../addon/redfiles/redfiles.php:109
#: ../../include/items.php:358
msgid "Permission denied"
msgstr "Permesso negato"
@@ -530,7 +535,7 @@ msgstr "Indentificativo del profilo non valido."
msgid "Profile Visibility Editor"
msgstr "Modifica la visibilità del profilo"
-#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1634
+#: ../../Zotlabs/Module/Profperm.php:113 ../../include/channel.php:1644
msgid "Profile"
msgstr "Profilo"
@@ -543,7 +548,7 @@ msgid "Visible To"
msgstr "Visibile a"
#: ../../Zotlabs/Module/Profperm.php:140
-#: ../../Zotlabs/Module/Connections.php:140
+#: ../../Zotlabs/Module/Connections.php:200
msgid "All Connections"
msgstr "Tutti i contatti"
@@ -558,9 +563,9 @@ msgstr "Sommario:"
#: ../../Zotlabs/Module/Cdav.php:786 ../../Zotlabs/Module/Cdav.php:787
#: ../../Zotlabs/Module/Cdav.php:794 ../../Zotlabs/Module/Embedphotos.php:146
#: ../../Zotlabs/Module/Photos.php:817 ../../Zotlabs/Module/Photos.php:1273
-#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:832
+#: ../../Zotlabs/Lib/Apps.php:754 ../../Zotlabs/Lib/Apps.php:833
#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Widget/Portfolio.php:95
-#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:853
+#: ../../Zotlabs/Widget/Album.php:84 ../../addon/pubcrawl/as.php:878
#: ../../include/conversation.php:1160
msgid "Unknown"
msgstr "Sconosciuto"
@@ -598,14 +603,14 @@ msgid "End date and time"
msgstr "Data e ora di fine"
#: ../../Zotlabs/Module/Cdav.php:871 ../../Zotlabs/Module/Events.php:473
-#: ../../Zotlabs/Module/Appman.php:142 ../../Zotlabs/Module/Rbmark.php:101
+#: ../../Zotlabs/Module/Appman.php:143 ../../Zotlabs/Module/Rbmark.php:101
#: ../../addon/rendezvous/rendezvous.php:173
msgid "Description"
msgstr "Descrizione"
#: ../../Zotlabs/Module/Cdav.php:872 ../../Zotlabs/Module/Locs.php:117
#: ../../Zotlabs/Module/Events.php:475 ../../Zotlabs/Module/Profiles.php:509
-#: ../../Zotlabs/Module/Profiles.php:737 ../../Zotlabs/Module/Pubsites.php:52
+#: ../../Zotlabs/Module/Profiles.php:734 ../../Zotlabs/Module/Pubsites.php:52
#: ../../include/js_strings.php:25
msgid "Location"
msgstr "Posizione geografica"
@@ -670,17 +675,17 @@ msgstr "Elimina tutto"
#: ../../Zotlabs/Module/Cdav.php:899 ../../Zotlabs/Module/Cdav.php:1188
#: ../../Zotlabs/Module/Admin/Plugins.php:423
-#: ../../Zotlabs/Module/Settings/Oauth.php:88
-#: ../../Zotlabs/Module/Settings/Oauth.php:114
-#: ../../Zotlabs/Module/Wiki.php:345 ../../Zotlabs/Module/Wiki.php:375
+#: ../../Zotlabs/Module/Settings/Oauth2.php:85
+#: ../../Zotlabs/Module/Settings/Oauth2.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:89
+#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Wiki.php:347 ../../Zotlabs/Module/Wiki.php:379
#: ../../Zotlabs/Module/Profile_photo.php:464
#: ../../Zotlabs/Module/Connedit.php:924 ../../Zotlabs/Module/Fbrowser.php:66
-#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:804
-#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:365
+#: ../../Zotlabs/Module/Fbrowser.php:88 ../../Zotlabs/Module/Profiles.php:801
+#: ../../Zotlabs/Module/Filer.php:55 ../../Zotlabs/Module/Cover_photo.php:366
#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138
-#: ../../addon/gitwiki/Mod_Gitwiki.php:244
-#: ../../addon/gitwiki/Mod_Gitwiki.php:267 ../../include/conversation.php:1386
-#: ../../include/conversation.php:1435
+#: ../../include/conversation.php:1389 ../../include/conversation.php:1438
msgid "Cancel"
msgstr "Annulla"
@@ -691,14 +696,15 @@ msgstr "Spiacenti! La modifica di eventi ricorrenti non è ancora disponibile."
#: ../../Zotlabs/Module/Cdav.php:1170
#: ../../Zotlabs/Module/Sharedwithme.php:105
#: ../../Zotlabs/Module/Admin/Channels.php:159
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-#: ../../Zotlabs/Module/Settings/Oauth.php:115
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+#: ../../Zotlabs/Module/Settings/Oauth.php:116
#: ../../Zotlabs/Module/Wiki.php:209 ../../Zotlabs/Module/Connedit.php:906
#: ../../Zotlabs/Module/Chat.php:251 ../../Zotlabs/Lib/NativeWikiPage.php:558
#: ../../Zotlabs/Storage/Browser.php:283
#: ../../Zotlabs/Widget/Wiki_page_history.php:22
#: ../../addon/rendezvous/rendezvous.php:172
-#: ../../addon/gitwiki/Mod_Gitwiki.php:158
msgid "Name"
msgstr "Nome"
@@ -711,76 +717,78 @@ msgid "Title"
msgstr "Titolo"
#: ../../Zotlabs/Module/Cdav.php:1173 ../../Zotlabs/Module/Connedit.php:909
-#: ../../Zotlabs/Module/Profiles.php:789
+#: ../../Zotlabs/Module/Profiles.php:786
msgid "Phone"
msgstr "Telefono"
#: ../../Zotlabs/Module/Cdav.php:1174
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
-#: ../../Zotlabs/Module/Admin/Accounts.php:182
-#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:790
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:183
+#: ../../Zotlabs/Module/Connedit.php:910 ../../Zotlabs/Module/Profiles.php:787
#: ../../addon/openid/MysqlProvider.php:56
#: ../../addon/openid/MysqlProvider.php:57 ../../addon/rtof/rtof.php:93
-#: ../../addon/redred/redred.php:107 ../../include/network.php:1775
+#: ../../addon/redred/redred.php:107 ../../include/network.php:1769
msgid "Email"
msgstr "Email"
#: ../../Zotlabs/Module/Cdav.php:1175 ../../Zotlabs/Module/Connedit.php:911
-#: ../../Zotlabs/Module/Profiles.php:791
+#: ../../Zotlabs/Module/Profiles.php:788
msgid "Instant messenger"
msgstr "Messaggistica istantanea"
#: ../../Zotlabs/Module/Cdav.php:1176 ../../Zotlabs/Module/Connedit.php:912
-#: ../../Zotlabs/Module/Profiles.php:792
+#: ../../Zotlabs/Module/Profiles.php:789
msgid "Website"
msgstr "Sito web"
#: ../../Zotlabs/Module/Cdav.php:1177 ../../Zotlabs/Module/Locs.php:118
#: ../../Zotlabs/Module/Admin/Channels.php:160
#: ../../Zotlabs/Module/Connedit.php:913 ../../Zotlabs/Module/Profiles.php:502
-#: ../../Zotlabs/Module/Profiles.php:793
+#: ../../Zotlabs/Module/Profiles.php:790
msgid "Address"
msgstr "Indirizzo"
#: ../../Zotlabs/Module/Cdav.php:1178 ../../Zotlabs/Module/Connedit.php:914
-#: ../../Zotlabs/Module/Profiles.php:794
+#: ../../Zotlabs/Module/Profiles.php:791
msgid "Note"
msgstr "Nota"
#: ../../Zotlabs/Module/Cdav.php:1179 ../../Zotlabs/Module/Connedit.php:915
-#: ../../Zotlabs/Module/Profiles.php:795 ../../include/event.php:1308
-#: ../../include/connections.php:682
+#: ../../Zotlabs/Module/Profiles.php:792 ../../include/event.php:1308
+#: ../../include/connections.php:690
msgid "Mobile"
msgstr "Mobile"
#: ../../Zotlabs/Module/Cdav.php:1180 ../../Zotlabs/Module/Connedit.php:916
-#: ../../Zotlabs/Module/Profiles.php:796 ../../include/event.php:1309
-#: ../../include/connections.php:683
+#: ../../Zotlabs/Module/Profiles.php:793 ../../include/event.php:1309
+#: ../../include/connections.php:691
msgid "Home"
msgstr "Bacheca"
#: ../../Zotlabs/Module/Cdav.php:1181 ../../Zotlabs/Module/Connedit.php:917
-#: ../../Zotlabs/Module/Profiles.php:797 ../../include/event.php:1312
-#: ../../include/connections.php:686
+#: ../../Zotlabs/Module/Profiles.php:794 ../../include/event.php:1312
+#: ../../include/connections.php:694
msgid "Work"
msgstr "Lavoro"
#: ../../Zotlabs/Module/Cdav.php:1183 ../../Zotlabs/Module/Connedit.php:919
-#: ../../Zotlabs/Module/Profiles.php:799
+#: ../../Zotlabs/Module/Profiles.php:796
#: ../../addon/jappixmini/jappixmini.php:368
msgid "Add Contact"
msgstr "Aggiungi contatto"
#: ../../Zotlabs/Module/Cdav.php:1184 ../../Zotlabs/Module/Connedit.php:920
-#: ../../Zotlabs/Module/Profiles.php:800
+#: ../../Zotlabs/Module/Profiles.php:797
msgid "Add Field"
msgstr "Aggiungi campo"
#: ../../Zotlabs/Module/Cdav.php:1186
#: ../../Zotlabs/Module/Admin/Plugins.php:453
-#: ../../Zotlabs/Module/Settings/Oauth.php:42
-#: ../../Zotlabs/Module/Settings/Oauth.php:113
-#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:802
+#: ../../Zotlabs/Module/Settings/Oauth2.php:39
+#: ../../Zotlabs/Module/Settings/Oauth2.php:112
+#: ../../Zotlabs/Module/Settings/Oauth.php:43
+#: ../../Zotlabs/Module/Settings/Oauth.php:114
+#: ../../Zotlabs/Module/Connedit.php:922 ../../Zotlabs/Module/Profiles.php:799
#: ../../Zotlabs/Lib/Apps.php:393
msgid "Update"
msgstr "Aggiorna"
@@ -810,7 +818,7 @@ msgid "ZIP Code"
msgstr "CAP"
#: ../../Zotlabs/Module/Cdav.php:1195 ../../Zotlabs/Module/Connedit.php:931
-#: ../../Zotlabs/Module/Profiles.php:760
+#: ../../Zotlabs/Module/Profiles.php:757
msgid "Country"
msgstr "Nazione"
@@ -826,8 +834,8 @@ msgstr "Rubrica predefinita"
msgid "This site is not a directory server"
msgstr "Questo non è un directory server"
-#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Chat.php:25
-#: ../../addon/gitwiki/Mod_Gitwiki.php:28 ../../addon/chess/chess.php:508
+#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Ochannel.php:32
+#: ../../Zotlabs/Module/Chat.php:25 ../../addon/chess/chess.php:508
msgid "You must be logged in to see this page."
msgstr "Devi aver effettuato l'accesso per vedere questa pagina."
@@ -905,11 +913,11 @@ msgstr "Questi contenuti potranno essere importati o ripristinati visitando <a h
#: ../../Zotlabs/Module/Hq.php:140
msgid "Welcome to Hubzilla!"
-msgstr ""
+msgstr "Benvenuto su Hubzilla!"
#: ../../Zotlabs/Module/Hq.php:140
msgid "You have got no unseen posts..."
-msgstr ""
+msgstr "Non hai post non letti..."
#: ../../Zotlabs/Module/Search.php:17 ../../Zotlabs/Module/Photos.php:540
#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Directory.php:63
@@ -918,24 +926,24 @@ msgstr ""
msgid "Public access denied."
msgstr "Accesso pubblico negato."
-#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:319
+#: ../../Zotlabs/Module/Search.php:44 ../../Zotlabs/Module/Connections.php:335
#: ../../Zotlabs/Lib/Apps.php:256 ../../Zotlabs/Widget/Sitesearch.php:31
#: ../../include/text.php:1051 ../../include/text.php:1063
#: ../../include/acl_selectors.php:118 ../../include/nav.php:179
msgid "Search"
msgstr "Cerca"
-#: ../../Zotlabs/Module/Search.php:226
+#: ../../Zotlabs/Module/Search.php:230
#, php-format
msgid "Items tagged with: %s"
msgstr "Elementi taggati con: %s"
-#: ../../Zotlabs/Module/Search.php:228
+#: ../../Zotlabs/Module/Search.php:232
#, php-format
msgid "Search results for: %s"
msgstr "Risultati ricerca: %s"
-#: ../../Zotlabs/Module/Pubstream.php:93
+#: ../../Zotlabs/Module/Pubstream.php:95
#: ../../Zotlabs/Widget/Notifications.php:131
msgid "Public Stream"
msgstr "Flusso pubblico"
@@ -1036,7 +1044,7 @@ msgid "Menu Item Permissions"
msgstr "Permessi del menu"
#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231
-#: ../../Zotlabs/Module/Settings/Channel.php:521
+#: ../../Zotlabs/Module/Settings/Channel.php:528
msgid "(click to open/close)"
msgstr "(clicca per aprire/chiudere)"
@@ -1060,8 +1068,8 @@ msgstr "Usa l'autenticazione tramite il tuo hub, se disponibile"
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
#: ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Admin/Site.php:252
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:99 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1070,7 +1078,7 @@ msgstr "Usa l'autenticazione tramite il tuo hub, se disponibile"
#: ../../Zotlabs/Module/Defperms.php:180 ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1079,10 +1087,10 @@ msgstr "Usa l'autenticazione tramite il tuo hub, se disponibile"
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
-#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
+#: ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
#: ../../addon/jappixmini/jappixmini.php:351
@@ -1099,11 +1107,12 @@ msgstr "Usa l'autenticazione tramite il tuo hub, se disponibile"
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
#: ../../addon/smileybutton/smileybutton.php:215
-#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
-#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
-#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145
+#: ../../addon/cart/cart.php:1075 ../../addon/cart/cart.php:1082
+#: ../../addon/cart/cart.php:1090 ../../addon/authchoose/authchoose.php:67
+#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
+#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "No"
msgstr "No"
@@ -1111,8 +1120,8 @@ msgstr "No"
#: ../../Zotlabs/Module/Mitem.php:240 ../../Zotlabs/Module/Mitem.php:241
#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:471
#: ../../Zotlabs/Module/Removeme.php:63
-#: ../../Zotlabs/Module/Admin/Site.php:254
-#: ../../Zotlabs/Module/Settings/Channel.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Settings/Channel.php:307
#: ../../Zotlabs/Module/Settings/Display.php:100
#: ../../Zotlabs/Module/Api.php:98 ../../Zotlabs/Module/Photos.php:697
#: ../../Zotlabs/Module/Wiki.php:218 ../../Zotlabs/Module/Wiki.php:219
@@ -1121,7 +1130,7 @@ msgstr "No"
#: ../../Zotlabs/Module/Profiles.php:681
#: ../../Zotlabs/Module/Filestorage.php:155
#: ../../Zotlabs/Module/Filestorage.php:163
-#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1587
+#: ../../Zotlabs/Storage/Browser.php:397 ../../boot.php:1594
#: ../../view/theme/redbasic_c/php/config.php:100
#: ../../view/theme/redbasic_c/php/config.php:115
#: ../../view/theme/redbasic/php/config.php:98
@@ -1130,10 +1139,10 @@ msgstr "No"
#: ../../addon/nsfw/nsfw.php:84 ../../addon/ijpost/ijpost.php:73
#: ../../addon/ijpost/ijpost.php:85 ../../addon/dwpost/dwpost.php:73
#: ../../addon/dwpost/dwpost.php:85 ../../addon/ljpost/ljpost.php:70
-#: ../../addon/ljpost/ljpost.php:82 ../../addon/gitwiki/Mod_Gitwiki.php:166
-#: ../../addon/rainbowtag/rainbowtag.php:81 ../../addon/visage/visage.php:166
-#: ../../addon/nsabait/nsabait.php:157 ../../addon/rtof/rtof.php:81
-#: ../../addon/rtof/rtof.php:85 ../../addon/jappixmini/jappixmini.php:309
+#: ../../addon/ljpost/ljpost.php:82 ../../addon/rainbowtag/rainbowtag.php:81
+#: ../../addon/visage/visage.php:166 ../../addon/nsabait/nsabait.php:157
+#: ../../addon/rtof/rtof.php:81 ../../addon/rtof/rtof.php:85
+#: ../../addon/jappixmini/jappixmini.php:309
#: ../../addon/jappixmini/jappixmini.php:313
#: ../../addon/jappixmini/jappixmini.php:343
#: ../../addon/jappixmini/jappixmini.php:351
@@ -1150,11 +1159,12 @@ msgstr "No"
#: ../../addon/twitter/twitter.php:252 ../../addon/twitter/twitter.php:261
#: ../../addon/smileybutton/smileybutton.php:211
#: ../../addon/smileybutton/smileybutton.php:215
-#: ../../addon/authchoose/authchoose.php:67 ../../addon/xmpp/xmpp.php:53
-#: ../../addon/pumpio/pumpio.php:219 ../../addon/pumpio/pumpio.php:223
-#: ../../addon/pumpio/pumpio.php:227 ../../addon/pumpio/pumpio.php:231
-#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144
-#: ../../include/dir_fns.php:145
+#: ../../addon/cart/cart.php:1075 ../../addon/cart/cart.php:1082
+#: ../../addon/cart/cart.php:1090 ../../addon/authchoose/authchoose.php:67
+#: ../../addon/xmpp/xmpp.php:53 ../../addon/pumpio/pumpio.php:219
+#: ../../addon/pumpio/pumpio.php:223 ../../addon/pumpio/pumpio.php:227
+#: ../../addon/pumpio/pumpio.php:231 ../../include/dir_fns.php:143
+#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145
msgid "Yes"
msgstr "Sì"
@@ -1264,8 +1274,8 @@ msgid "Event not found."
msgstr "Evento non trovato."
#: ../../Zotlabs/Module/Events.php:260 ../../Zotlabs/Module/Tagger.php:73
-#: ../../Zotlabs/Module/Like.php:385 ../../include/conversation.php:119
-#: ../../include/text.php:2007 ../../include/event.php:1153
+#: ../../Zotlabs/Module/Like.php:386 ../../include/conversation.php:119
+#: ../../include/text.php:2008 ../../include/event.php:1153
msgid "event"
msgstr "l'evento"
@@ -1274,9 +1284,9 @@ msgid "Edit event title"
msgstr "Modifica il titolo dell'evento"
#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:465
-#: ../../Zotlabs/Module/Appman.php:140 ../../Zotlabs/Module/Appman.php:141
-#: ../../Zotlabs/Module/Profiles.php:748 ../../Zotlabs/Module/Profiles.php:752
-#: ../../include/datetime.php:205
+#: ../../Zotlabs/Module/Appman.php:141 ../../Zotlabs/Module/Appman.php:142
+#: ../../Zotlabs/Module/Profiles.php:745 ../../Zotlabs/Module/Profiles.php:749
+#: ../../include/datetime.php:211
msgid "Required"
msgstr "Obbligatorio"
@@ -1327,12 +1337,12 @@ msgid "Edit Location"
msgstr "Modifica il luogo"
#: ../../Zotlabs/Module/Events.php:478 ../../Zotlabs/Module/Photos.php:1123
-#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:760
-#: ../../include/conversation.php:1330
+#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Lib/ThreadItem.php:762
+#: ../../include/conversation.php:1333
msgid "Preview"
msgstr "Anteprima"
-#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1402
+#: ../../Zotlabs/Module/Events.php:479 ../../include/conversation.php:1405
msgid "Permission settings"
msgstr "Permessi dei tuoi contatti"
@@ -1357,7 +1367,7 @@ msgid "Delete event"
msgstr "Elimina l'evento"
#: ../../Zotlabs/Module/Events.php:660 ../../Zotlabs/Module/Cal.php:315
-#: ../../include/text.php:1826
+#: ../../include/text.php:1827
msgid "Link to Source"
msgstr "Link al sito d'origine"
@@ -1374,7 +1384,7 @@ msgid "Create Event"
msgstr "Crea un evento"
#: ../../Zotlabs/Module/Events.php:691 ../../Zotlabs/Module/Cal.php:341
-#: ../../include/channel.php:1637
+#: ../../include/channel.php:1647
msgid "Export"
msgstr "Esporta"
@@ -1386,55 +1396,55 @@ msgstr "Evento eliminato"
msgid "Failed to remove event"
msgstr "Impossibile eliminare l'evento"
-#: ../../Zotlabs/Module/Appman.php:38 ../../Zotlabs/Module/Appman.php:55
+#: ../../Zotlabs/Module/Appman.php:39 ../../Zotlabs/Module/Appman.php:56
msgid "App installed."
msgstr "App installata"
-#: ../../Zotlabs/Module/Appman.php:48
+#: ../../Zotlabs/Module/Appman.php:49
msgid "Malformed app."
msgstr "L'app contiene errori"
-#: ../../Zotlabs/Module/Appman.php:129
+#: ../../Zotlabs/Module/Appman.php:130
msgid "Embed code"
msgstr "Inserisci il codice"
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Edit App"
msgstr "Modifica app"
-#: ../../Zotlabs/Module/Appman.php:135
+#: ../../Zotlabs/Module/Appman.php:136
msgid "Create App"
msgstr "Crea una app"
-#: ../../Zotlabs/Module/Appman.php:140
+#: ../../Zotlabs/Module/Appman.php:141
msgid "Name of app"
msgstr "Nome app"
-#: ../../Zotlabs/Module/Appman.php:141
+#: ../../Zotlabs/Module/Appman.php:142
msgid "Location (URL) of app"
msgstr "Indirizzo (URL) della app"
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "Photo icon URL"
msgstr "URL icona"
-#: ../../Zotlabs/Module/Appman.php:143
+#: ../../Zotlabs/Module/Appman.php:144
msgid "80 x 80 pixels - optional"
msgstr "80 x 80 pixel - facoltativa"
-#: ../../Zotlabs/Module/Appman.php:144
+#: ../../Zotlabs/Module/Appman.php:145
msgid "Categories (optional, comma separated list)"
msgstr "Categorie (facoltative, lista separata da virgole)"
-#: ../../Zotlabs/Module/Appman.php:145
+#: ../../Zotlabs/Module/Appman.php:146
msgid "Version ID"
msgstr "ID versione"
-#: ../../Zotlabs/Module/Appman.php:146
+#: ../../Zotlabs/Module/Appman.php:147
msgid "Price of app"
msgstr "Prezzo app"
-#: ../../Zotlabs/Module/Appman.php:147
+#: ../../Zotlabs/Module/Appman.php:148
msgid "Location (URL) to purchase app"
msgstr "Indirizzo (URL) per acquistare la app"
@@ -1447,18 +1457,18 @@ msgid "Hub not found."
msgstr "Hub non trovato."
#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Tagger.php:69
-#: ../../Zotlabs/Module/Like.php:383
+#: ../../Zotlabs/Module/Like.php:384
#: ../../addon/redphotos/redphotohelper.php:71
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:116 ../../include/text.php:2004
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1388
+#: ../../include/conversation.php:116 ../../include/text.php:2005
msgid "photo"
msgstr "la foto"
-#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:383
-#: ../../addon/diaspora/Receiver.php:1518 ../../addon/pubcrawl/as.php:1359
-#: ../../include/conversation.php:144 ../../include/text.php:2010
+#: ../../Zotlabs/Module/Subthread.php:111 ../../Zotlabs/Module/Like.php:384
+#: ../../addon/diaspora/Receiver.php:1500 ../../addon/pubcrawl/as.php:1388
+#: ../../include/conversation.php:144 ../../include/text.php:2011
msgid "status"
-msgstr "il messaggio di stato"
+msgstr "messaggio di stato"
#: ../../Zotlabs/Module/Subthread.php:142
#, php-format
@@ -1486,8 +1496,9 @@ msgid "Insert web link"
msgstr "Inserisci un indirizzo web"
#: ../../Zotlabs/Module/Article_edit.php:117
-#: ../../Zotlabs/Module/Editblock.php:129
-#: ../../Zotlabs/Module/Card_edit.php:117 ../../include/conversation.php:1398
+#: ../../Zotlabs/Module/Editblock.php:129 ../../Zotlabs/Module/Photos.php:698
+#: ../../Zotlabs/Module/Photos.php:1068 ../../Zotlabs/Module/Card_edit.php:117
+#: ../../include/conversation.php:1401
msgid "Title (optional)"
msgstr "Titolo (facoltativo)"
@@ -1510,7 +1521,6 @@ msgid "Imported file is empty."
msgstr "Il file da importare è vuoto."
#: ../../Zotlabs/Module/Import_items.php:93
-#: ../../Zotlabs/Module/Import.php:121
#, php-format
msgid "Warning: Database versions differ by %1$d updates."
msgstr "Attenzione: le versioni di database differiscono di %1$d aggiornamenti."
@@ -1529,32 +1539,32 @@ msgid ""
msgstr "Usa questa funzionalità per importare i vecchi contenuti e i post da un file esportato in precedenza."
#: ../../Zotlabs/Module/Import_items.php:127
-#: ../../Zotlabs/Module/Import.php:516
+#: ../../Zotlabs/Module/Import.php:517
msgid "File to Upload"
msgstr "File da caricare"
-#: ../../Zotlabs/Module/New_channel.php:119
+#: ../../Zotlabs/Module/New_channel.php:133
#: ../../Zotlabs/Module/Manage.php:138
#, php-format
msgid "You have created %1$.0f of %2$.0f allowed channels."
msgstr "Hai creato %1$.0f dei %2$.0f canali permessi."
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Name or caption"
msgstr "Nome o titolo"
-#: ../../Zotlabs/Module/New_channel.php:132
+#: ../../Zotlabs/Module/New_channel.php:146
#: ../../Zotlabs/Module/Register.php:254
msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""
msgstr "Per esempio: \"Mario Rossi\", \"Lisa e le sue ricette\", \"Il campionato\", \"Il gruppo di escursionismo\""
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
msgid "Choose a short nickname"
msgstr "Scegli un nome breve"
-#: ../../Zotlabs/Module/New_channel.php:134
+#: ../../Zotlabs/Module/New_channel.php:148
#: ../../Zotlabs/Module/Register.php:256
#, php-format
msgid ""
@@ -1562,40 +1572,40 @@ msgid ""
"e.g. nickname%s"
msgstr "Il nome breve sarà usato per creare un indirizzo facile da ricordare per il tuo canale, per esempio nickname%s"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Channel role and privacy"
msgstr "Tipo di canale e privacy"
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Select a channel role with your privacy requirements."
msgstr "Scegli il tipo di canale che vuoi e la privacy da applicare."
-#: ../../Zotlabs/Module/New_channel.php:135
+#: ../../Zotlabs/Module/New_channel.php:149
#: ../../Zotlabs/Module/Register.php:257
msgid "Read more about roles"
msgstr "Maggiori informazioni sui ruoli"
-#: ../../Zotlabs/Module/New_channel.php:138
+#: ../../Zotlabs/Module/New_channel.php:152
msgid "Create Channel"
msgstr "Crea un canale"
-#: ../../Zotlabs/Module/New_channel.php:139
+#: ../../Zotlabs/Module/New_channel.php:153
msgid ""
"A channel is your identity on this network. It can represent a person, a "
"blog, or a forum to name a few. Channels can make connections with other "
"channels to share information with highly detailed permissions."
msgstr "Un canale è la tua identità su questa rete. Può rappresentare una persona, un blog o un forum, per esempio. Il tuo canale può essere in contatto con altri canali per condividere contenuti con permessi anche molto dettagliati."
-#: ../../Zotlabs/Module/New_channel.php:140
+#: ../../Zotlabs/Module/New_channel.php:154
msgid ""
"or <a href=\"import\">import an existing channel</a> from another location."
msgstr "oppure <a href=\"import\">importa un canale esistente</a> da un altro server/hub."
-#: ../../Zotlabs/Module/New_channel.php:145
+#: ../../Zotlabs/Module/New_channel.php:159
msgid "Validate"
-msgstr ""
+msgstr "Validazione"
#: ../../Zotlabs/Module/Removeme.php:35
msgid ""
@@ -1639,7 +1649,7 @@ msgid ""
msgstr "L'impostazione predefinita è che sia eliminata solo l'istanza del canale presente su questo hub, non gli eventuali cloni"
#: ../../Zotlabs/Module/Removeme.php:64
-#: ../../Zotlabs/Module/Settings/Channel.php:592
+#: ../../Zotlabs/Module/Settings/Channel.php:600
msgid "Remove Channel"
msgstr "Elimina questo canale"
@@ -1698,7 +1708,7 @@ msgid ""
msgstr "Potresti dover importare il file 'install/schema_xxx.sql' manualmente usando un client per collegarti al db."
#: ../../Zotlabs/Module/Setup.php:198 ../../Zotlabs/Module/Setup.php:262
-#: ../../Zotlabs/Module/Setup.php:745
+#: ../../Zotlabs/Module/Setup.php:749
msgid "Please see the file \"install/INSTALL.txt\"."
msgstr "Leggi il file 'install/INSTALL.txt'."
@@ -1912,7 +1922,7 @@ msgstr "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato"
#: ../../Zotlabs/Module/Setup.php:513 ../../Zotlabs/Module/Setup.php:516
msgid "exec"
-msgstr ""
+msgstr "exec"
#: ../../Zotlabs/Module/Setup.php:513
msgid ""
@@ -1922,7 +1932,7 @@ msgstr "Errore: exec è richiesto ma non è installato o è stato disabilitato n
#: ../../Zotlabs/Module/Setup.php:519 ../../Zotlabs/Module/Setup.php:522
msgid "shell_exec"
-msgstr ""
+msgstr "shell_exec"
#: ../../Zotlabs/Module/Setup.php:519
msgid ""
@@ -1959,115 +1969,107 @@ msgstr "Errore: il modulo xml PHP è richiesto per DAV ma non è installato."
msgid "Error: zip PHP module required but not installed."
msgstr "Errore: il modulo zip del PHP necessario ma non installato."
-#: ../../Zotlabs/Module/Setup.php:569
+#: ../../Zotlabs/Module/Setup.php:570 ../../Zotlabs/Module/Setup.php:579
+msgid ".htconfig.php is writable"
+msgstr ".htconfig.php è scrivibile"
+
+#: ../../Zotlabs/Module/Setup.php:575
msgid ""
"The web installer needs to be able to create a file called \".htconfig.php\""
" in the top folder of your web server and it is unable to do so."
msgstr "L'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella di Hubzilla ma non è in grado di farlo."
-#: ../../Zotlabs/Module/Setup.php:570
+#: ../../Zotlabs/Module/Setup.php:576
msgid ""
"This is most often a permission setting, as the web server may not be able "
"to write files in your folder - even if you can."
msgstr "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi."
-#: ../../Zotlabs/Module/Setup.php:571
-msgid ""
-"At the end of this procedure, we will give you a text to save in a file "
-"named .htconfig.php in your Red top folder."
-msgstr "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di Hubzilla."
+#: ../../Zotlabs/Module/Setup.php:577
+msgid "Please see install/INSTALL.txt for additional information."
+msgstr "Leggi il file 'install/INSTALL.txt' per maggiori informazioni."
-#: ../../Zotlabs/Module/Setup.php:572
-msgid ""
-"You can alternatively skip this procedure and perform a manual installation."
-" Please see the file \"install/INSTALL.txt\" for instructions."
-msgstr "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni."
-
-#: ../../Zotlabs/Module/Setup.php:575
-msgid ".htconfig.php is writable"
-msgstr ".htconfig.php è scrivibile"
-
-#: ../../Zotlabs/Module/Setup.php:589
+#: ../../Zotlabs/Module/Setup.php:593
msgid ""
"This software uses the Smarty3 template engine to render its web views. "
"Smarty3 compiles templates to PHP to speed up rendering."
msgstr "Questo software usa lo Smarty3 template engine per visualizzare le web views. Smarty3 compila i template in PHP per accelerarne la visualizzazione."
-#: ../../Zotlabs/Module/Setup.php:590
+#: ../../Zotlabs/Module/Setup.php:594
#, php-format
msgid ""
"In order to store these compiled templates, the web server needs to have "
"write access to the directory %s under the top level web folder."
msgstr "Per poter memorizzare questi template, il server web deve avere i diritti di scrittura sulla directory %s"
-#: ../../Zotlabs/Module/Setup.php:591 ../../Zotlabs/Module/Setup.php:612
+#: ../../Zotlabs/Module/Setup.php:595 ../../Zotlabs/Module/Setup.php:616
msgid ""
"Please ensure that the user that your web server runs as (e.g. www-data) has"
" write access to this folder."
msgstr "Assicurati che il tuo web server sia in esecuzione con un utente che ha diritto di scrittura su quella cartella (ad esempio www-data)."
-#: ../../Zotlabs/Module/Setup.php:592
+#: ../../Zotlabs/Module/Setup.php:596
#, php-format
msgid ""
"Note: as a security measure, you should give the web server write access to "
"%s only--not the template files (.tpl) that it contains."
msgstr "Nota bene: come precauzione, dovresti dare i diritti di scrittura solamente su %s e non sui file template (.tpl) che contiene."
-#: ../../Zotlabs/Module/Setup.php:595
+#: ../../Zotlabs/Module/Setup.php:599
#, php-format
msgid "%s is writable"
msgstr "%s è scrivibile"
-#: ../../Zotlabs/Module/Setup.php:611
+#: ../../Zotlabs/Module/Setup.php:615
msgid ""
"This software uses the store directory to save uploaded files. The web "
"server needs to have write access to the store directory under the top level"
" web folder"
msgstr "Questo software salva i file caricati nelle directory sul filesystem. Il server web necessita di permessi di scrittura sulle directory alla radice della cartella web"
-#: ../../Zotlabs/Module/Setup.php:615
+#: ../../Zotlabs/Module/Setup.php:619
msgid "store is writable"
msgstr "l'archivio è scrivibile"
-#: ../../Zotlabs/Module/Setup.php:647
+#: ../../Zotlabs/Module/Setup.php:651
msgid ""
"SSL certificate cannot be validated. Fix certificate or disable https access"
" to this site."
msgstr "Il certificato SSL non può essere validato. Correggi l'errore o disabilita l'accesso https al sito."
-#: ../../Zotlabs/Module/Setup.php:648
+#: ../../Zotlabs/Module/Setup.php:652
msgid ""
"If you have https access to your website or allow connections to TCP port "
"443 (the https: port), you MUST use a browser-valid certificate. You MUST "
"NOT use self-signed certificates!"
msgstr "Se abiliti https per il tuo sito o permetti connessioni TCP su port 443 (quella di https), DEVI usare un certificato riconosciuto dai browser internet. NON DEVI usare certificati self-signed generati da te!"
-#: ../../Zotlabs/Module/Setup.php:649
+#: ../../Zotlabs/Module/Setup.php:653
msgid ""
"This restriction is incorporated because public posts from you may for "
"example contain references to images on your own hub."
msgstr "Questa restrizione è necessaria perché i tuoi post pubblici potrebbero contenere riferimenti a immagini sul tuo server."
-#: ../../Zotlabs/Module/Setup.php:650
+#: ../../Zotlabs/Module/Setup.php:654
msgid ""
"If your certificate is not recognized, members of other sites (who may "
"themselves have valid certificates) will get a warning message on their own "
"site complaining about security issues."
msgstr "Se il tuo certificato non è riconosciuto, gli utenti che ti seguono da altri siti (che avranno certificati validi) riceveranno gravi avvisi di sicurezza dal browser."
-#: ../../Zotlabs/Module/Setup.php:651
+#: ../../Zotlabs/Module/Setup.php:655
msgid ""
"This can cause usability issues elsewhere (not just on your own site) so we "
"must insist on this requirement."
msgstr "Ciò può creare seri problemi di usabilità (non solo sul tuo sito), quindi dobbiamo insistere su questo punto."
-#: ../../Zotlabs/Module/Setup.php:652
+#: ../../Zotlabs/Module/Setup.php:656
msgid ""
"Providers are available that issue free certificates which are browser-"
"valid."
msgstr "Eventualmente, considera che esistono provider che rilasciano certificati gratuiti riconosciuti dai browser."
-#: ../../Zotlabs/Module/Setup.php:654
+#: ../../Zotlabs/Module/Setup.php:658
msgid ""
"If you are confident that the certificate is valid and signed by a trusted "
"authority, check to see if you have failed to install an intermediate cert. "
@@ -2075,37 +2077,37 @@ msgid ""
"server communications."
msgstr "Se credi che il certificato sia valido e firmato da una authority, verifica se hai sbagliato a installare i certificati intermedi. Normalmente non sono richiesti dai browser, ma sono necessari per la comunicazione server-to-server."
-#: ../../Zotlabs/Module/Setup.php:656
+#: ../../Zotlabs/Module/Setup.php:660
msgid "SSL certificate validation"
msgstr "Validazione del certificato SSL"
-#: ../../Zotlabs/Module/Setup.php:662
+#: ../../Zotlabs/Module/Setup.php:666
msgid ""
"Url rewrite in .htaccess is not working. Check your server "
"configuration.Test: "
msgstr "In .htaccess la funzionalità url rewrite non funziona. Controlla la configurazione del server. Test:"
-#: ../../Zotlabs/Module/Setup.php:665
+#: ../../Zotlabs/Module/Setup.php:669
msgid "Url rewrite is working"
msgstr "Url rewrite funziona correttamente"
-#: ../../Zotlabs/Module/Setup.php:679
+#: ../../Zotlabs/Module/Setup.php:683
msgid ""
"The database configuration file \".htconfig.php\" could not be written. "
"Please use the enclosed text to create a configuration file in your web "
"server root."
msgstr "Il file di configurazione del database \".htconfig.php\" non puo' essere scritto. Usa il testo qui di seguito per creare questo file di configurazione nella cartella principale del tuo sito."
-#: ../../Zotlabs/Module/Setup.php:703
+#: ../../Zotlabs/Module/Setup.php:707
#: ../../addon/rendezvous/rendezvous.php:401
msgid "Errors encountered creating database tables."
msgstr "La creazione delle tabelle del database ha generato errori."
-#: ../../Zotlabs/Module/Setup.php:743
+#: ../../Zotlabs/Module/Setup.php:747
msgid "<h1>What next?</h1>"
msgstr "<h1>E ora?</h1>"
-#: ../../Zotlabs/Module/Setup.php:744
+#: ../../Zotlabs/Module/Setup.php:748
msgid ""
"IMPORTANT: You will need to [manually] setup a scheduled task for the "
"poller."
@@ -2184,13 +2186,13 @@ msgstr "Ultimo scambio dati"
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "Off"
msgstr "Off"
#: ../../Zotlabs/Module/Admin/Features.php:55
#: ../../Zotlabs/Module/Admin/Features.php:56
-#: ../../Zotlabs/Module/Settings/Features.php:38
+#: ../../Zotlabs/Module/Settings/Features.php:65
msgid "On"
msgstr "On"
@@ -2244,11 +2246,11 @@ msgid "No failed updates."
msgstr "Nessun aggiornamento fallito."
#: ../../Zotlabs/Module/Admin/Plugins.php:259
-#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:89
+#: ../../Zotlabs/Module/Admin/Themes.php:72 ../../Zotlabs/Module/Thing.php:94
#: ../../Zotlabs/Module/Viewsrc.php:25 ../../Zotlabs/Module/Display.php:46
-#: ../../Zotlabs/Module/Display.php:410
+#: ../../Zotlabs/Module/Display.php:453
#: ../../Zotlabs/Module/Filestorage.php:24 ../../Zotlabs/Module/Admin.php:62
-#: ../../include/items.php:3569
+#: ../../include/items.php:3619
msgid "Item not found."
msgstr "Elemento non trovato."
@@ -2274,12 +2276,12 @@ msgstr "Attiva"
#: ../../Zotlabs/Module/Admin/Plugins.php:341
#: ../../Zotlabs/Module/Admin/Plugins.php:436
-#: ../../Zotlabs/Module/Admin/Accounts.php:165
+#: ../../Zotlabs/Module/Admin/Accounts.php:166
#: ../../Zotlabs/Module/Admin/Logs.php:82
#: ../../Zotlabs/Module/Admin/Channels.php:145
#: ../../Zotlabs/Module/Admin/Themes.php:122
#: ../../Zotlabs/Module/Admin/Themes.php:156
-#: ../../Zotlabs/Module/Admin/Site.php:287
+#: ../../Zotlabs/Module/Admin/Site.php:294
#: ../../Zotlabs/Module/Admin/Security.php:86
#: ../../Zotlabs/Module/Admin.php:136
msgid "Administration"
@@ -2298,8 +2300,8 @@ msgstr "Attiva/disattiva"
#: ../../Zotlabs/Module/Admin/Plugins.php:344
#: ../../Zotlabs/Module/Admin/Themes.php:125 ../../Zotlabs/Lib/Apps.php:242
-#: ../../Zotlabs/Widget/Newmember.php:55
-#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/nav.php:105
+#: ../../Zotlabs/Widget/Newmember.php:46
+#: ../../Zotlabs/Widget/Settings_menu.php:141 ../../include/nav.php:105
#: ../../include/nav.php:192
msgid "Settings"
msgstr "Impostazioni"
@@ -2407,7 +2409,7 @@ msgstr[1] "%s account eliminati"
msgid "Account not found"
msgstr "Account non trovato"
-#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2462
+#: ../../Zotlabs/Module/Admin/Accounts.php:91 ../../include/channel.php:2473
#, php-format
msgid "Account '%s' deleted"
msgstr "Account '%s' eliminato"
@@ -2422,79 +2424,80 @@ msgstr "Aggiunto un blocco verso '%s'"
msgid "Account '%s' unblocked"
msgstr "Rimosso il blocco verso '%s'"
-#: ../../Zotlabs/Module/Admin/Accounts.php:166
-#: ../../Zotlabs/Module/Admin/Accounts.php:179
+#: ../../Zotlabs/Module/Admin/Accounts.php:167
+#: ../../Zotlabs/Module/Admin/Accounts.php:180
#: ../../Zotlabs/Module/Admin.php:96 ../../Zotlabs/Widget/Admin.php:23
msgid "Accounts"
msgstr "Account"
-#: ../../Zotlabs/Module/Admin/Accounts.php:168
+#: ../../Zotlabs/Module/Admin/Accounts.php:169
#: ../../Zotlabs/Module/Admin/Channels.php:148
msgid "select all"
msgstr "seleziona tutti"
-#: ../../Zotlabs/Module/Admin/Accounts.php:169
+#: ../../Zotlabs/Module/Admin/Accounts.php:170
msgid "Registrations waiting for confirm"
msgstr "Registrazioni in attesa di conferma"
-#: ../../Zotlabs/Module/Admin/Accounts.php:170
+#: ../../Zotlabs/Module/Admin/Accounts.php:171
msgid "Request date"
msgstr "Data richiesta"
-#: ../../Zotlabs/Module/Admin/Accounts.php:171
+#: ../../Zotlabs/Module/Admin/Accounts.php:172
msgid "No registrations."
msgstr "Nessuna registrazione."
-#: ../../Zotlabs/Module/Admin/Accounts.php:172
-#: ../../Zotlabs/Module/Connections.php:287 ../../include/conversation.php:732
+#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Connections.php:303 ../../include/conversation.php:732
msgid "Approve"
msgstr "Approva"
-#: ../../Zotlabs/Module/Admin/Accounts.php:173
+#: ../../Zotlabs/Module/Admin/Accounts.php:174
+#: ../../Zotlabs/Module/Authorize.php:26
msgid "Deny"
msgstr "Nega"
-#: ../../Zotlabs/Module/Admin/Accounts.php:175
+#: ../../Zotlabs/Module/Admin/Accounts.php:176
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Block"
msgstr "Blocca"
-#: ../../Zotlabs/Module/Admin/Accounts.php:176
+#: ../../Zotlabs/Module/Admin/Accounts.php:177
#: ../../Zotlabs/Module/Connedit.php:622
msgid "Unblock"
msgstr "Sblocca"
-#: ../../Zotlabs/Module/Admin/Accounts.php:181
+#: ../../Zotlabs/Module/Admin/Accounts.php:182
msgid "ID"
msgstr "ID"
-#: ../../Zotlabs/Module/Admin/Accounts.php:183 ../../include/group.php:284
+#: ../../Zotlabs/Module/Admin/Accounts.php:184 ../../include/group.php:284
msgid "All Channels"
msgstr "Tutti i canali"
-#: ../../Zotlabs/Module/Admin/Accounts.php:184
+#: ../../Zotlabs/Module/Admin/Accounts.php:185
msgid "Register date"
msgstr "Data registrazione"
-#: ../../Zotlabs/Module/Admin/Accounts.php:185
+#: ../../Zotlabs/Module/Admin/Accounts.php:186
msgid "Last login"
msgstr "Ultimo accesso"
-#: ../../Zotlabs/Module/Admin/Accounts.php:186
+#: ../../Zotlabs/Module/Admin/Accounts.php:187
msgid "Expires"
msgstr "Con scadenza"
-#: ../../Zotlabs/Module/Admin/Accounts.php:187
+#: ../../Zotlabs/Module/Admin/Accounts.php:188
msgid "Service Class"
msgstr "Classe dell'account"
-#: ../../Zotlabs/Module/Admin/Accounts.php:189
+#: ../../Zotlabs/Module/Admin/Accounts.php:190
msgid ""
"Selected accounts will be deleted!\\n\\nEverything these accounts had posted"
" on this site will be permanently deleted!\\n\\nAre you sure?"
msgstr "Gli account selezionati saranno eliminati!\\n\\nTutto ciò che hanno caricato o pubblicato su questo sito sarà eliminato definitivamente!\\n\\nVuoi confermare?"
-#: ../../Zotlabs/Module/Admin/Accounts.php:190
+#: ../../Zotlabs/Module/Admin/Accounts.php:191
msgid ""
"The account {0} will be deleted!\\n\\nEverything this account has posted on "
"this site will be permanently deleted!\\n\\nAre you sure?"
@@ -2603,7 +2606,7 @@ msgid "Disallow Code"
msgstr "Non permettere codice"
#: ../../Zotlabs/Module/Admin/Channels.php:154
-#: ../../include/conversation.php:1808 ../../include/nav.php:378
+#: ../../include/conversation.php:1811 ../../include/nav.php:378
msgid "Channel"
msgstr "Canale"
@@ -2648,552 +2651,549 @@ msgstr "[Sperimentale]"
msgid "[Unsupported]"
msgstr "[Non supportato]"
-#: ../../Zotlabs/Module/Admin/Site.php:158
+#: ../../Zotlabs/Module/Admin/Site.php:165
msgid "Site settings updated."
msgstr "Impostazioni del sito salvate correttamente."
-#: ../../Zotlabs/Module/Admin/Site.php:184
+#: ../../Zotlabs/Module/Admin/Site.php:191
#: ../../view/theme/redbasic_c/php/config.php:15
-#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3082
+#: ../../view/theme/redbasic/php/config.php:15 ../../include/text.php:3106
msgid "Default"
msgstr "Predefinito"
-#: ../../Zotlabs/Module/Admin/Site.php:195
+#: ../../Zotlabs/Module/Admin/Site.php:202
#: ../../Zotlabs/Module/Settings/Display.php:130
#, php-format
msgid "%s - (Incompatible)"
msgstr "%s - (Incompatibile)"
-#: ../../Zotlabs/Module/Admin/Site.php:202
+#: ../../Zotlabs/Module/Admin/Site.php:209
msgid "mobile"
msgstr "mobile"
-#: ../../Zotlabs/Module/Admin/Site.php:204
+#: ../../Zotlabs/Module/Admin/Site.php:211
msgid "experimental"
msgstr "sperimentale"
-#: ../../Zotlabs/Module/Admin/Site.php:206
+#: ../../Zotlabs/Module/Admin/Site.php:213
msgid "unsupported"
msgstr "non supportato"
-#: ../../Zotlabs/Module/Admin/Site.php:253
+#: ../../Zotlabs/Module/Admin/Site.php:260
msgid "Yes - with approval"
msgstr "Sì - con approvazione"
-#: ../../Zotlabs/Module/Admin/Site.php:259
+#: ../../Zotlabs/Module/Admin/Site.php:266
msgid "My site is not a public server"
msgstr "Non è un server pubblico"
-#: ../../Zotlabs/Module/Admin/Site.php:260
+#: ../../Zotlabs/Module/Admin/Site.php:267
msgid "My site has paid access only"
msgstr "È un servizio a pagamento"
-#: ../../Zotlabs/Module/Admin/Site.php:261
+#: ../../Zotlabs/Module/Admin/Site.php:268
msgid "My site has free access only"
msgstr "È un servizio gratuito"
-#: ../../Zotlabs/Module/Admin/Site.php:262
+#: ../../Zotlabs/Module/Admin/Site.php:269
msgid "My site offers free accounts with optional paid upgrades"
msgstr "È un servizio gratuito con opzioni aggiuntive a pagamento"
-#: ../../Zotlabs/Module/Admin/Site.php:274
+#: ../../Zotlabs/Module/Admin/Site.php:281
msgid "Beginner/Basic"
msgstr "Principiante"
-#: ../../Zotlabs/Module/Admin/Site.php:275
+#: ../../Zotlabs/Module/Admin/Site.php:282
msgid "Novice - not skilled but willing to learn"
msgstr "Novizio - disposto a imparare"
-#: ../../Zotlabs/Module/Admin/Site.php:276
+#: ../../Zotlabs/Module/Admin/Site.php:283
msgid "Intermediate - somewhat comfortable"
msgstr "Intermedio - con alcune conoscenze tecniche"
-#: ../../Zotlabs/Module/Admin/Site.php:277
+#: ../../Zotlabs/Module/Admin/Site.php:284
msgid "Advanced - very comfortable"
msgstr "Avanzato - a mio agio con gli aspetti tecnici"
-#: ../../Zotlabs/Module/Admin/Site.php:278
+#: ../../Zotlabs/Module/Admin/Site.php:285
msgid "Expert - I can write computer code"
msgstr "Esperto - posso scrivere codice"
-#: ../../Zotlabs/Module/Admin/Site.php:279
+#: ../../Zotlabs/Module/Admin/Site.php:286
msgid "Wizard - I probably know more than you do"
msgstr "Genio - probabilmente ne so più di te!"
-#: ../../Zotlabs/Module/Admin/Site.php:288 ../../Zotlabs/Widget/Admin.php:22
+#: ../../Zotlabs/Module/Admin/Site.php:295 ../../Zotlabs/Widget/Admin.php:22
msgid "Site"
msgstr "Sito"
-#: ../../Zotlabs/Module/Admin/Site.php:290
+#: ../../Zotlabs/Module/Admin/Site.php:297
#: ../../Zotlabs/Module/Register.php:269
msgid "Registration"
msgstr "Registrazione"
-#: ../../Zotlabs/Module/Admin/Site.php:291
+#: ../../Zotlabs/Module/Admin/Site.php:298
msgid "File upload"
msgstr "Caricamento file"
-#: ../../Zotlabs/Module/Admin/Site.php:292
+#: ../../Zotlabs/Module/Admin/Site.php:299
msgid "Policies"
msgstr "Politiche"
-#: ../../Zotlabs/Module/Admin/Site.php:293
+#: ../../Zotlabs/Module/Admin/Site.php:300
#: ../../include/contact_widgets.php:16
msgid "Advanced"
msgstr "Avanzate"
-#: ../../Zotlabs/Module/Admin/Site.php:297
+#: ../../Zotlabs/Module/Admin/Site.php:304
#: ../../addon/statusnet/statusnet.php:891
msgid "Site name"
msgstr "Nome del sito"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Site default technical skill level"
msgstr "Livello tecnico predefinito per gli utenti del sito"
-#: ../../Zotlabs/Module/Admin/Site.php:299
+#: ../../Zotlabs/Module/Admin/Site.php:306
msgid "Used to provide a member experience matched to technical comfort level"
msgstr "Utile a fornire agli utenti un livello tecnico del sito che rispetti le loro conoscenze"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Lock the technical skill level setting"
msgstr "Il livello tecnico non potrà essere modificato"
-#: ../../Zotlabs/Module/Admin/Site.php:301
+#: ../../Zotlabs/Module/Admin/Site.php:308
msgid "Members can set their own technical comfort level by default"
msgstr "Gli utenti possono scegliere il livello tecnico preferito"
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Banner/Logo"
msgstr "Banner o logo"
-#: ../../Zotlabs/Module/Admin/Site.php:303
+#: ../../Zotlabs/Module/Admin/Site.php:310
msgid "Unfiltered HTML/CSS/JS is allowed"
-msgstr ""
+msgstr "È permesso un contenuto HTML/CSS/JS non filtrato"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid "Administrator Information"
msgstr "Informazioni sull'amministratore"
-#: ../../Zotlabs/Module/Admin/Site.php:304
+#: ../../Zotlabs/Module/Admin/Site.php:311
msgid ""
"Contact information for site administrators. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Informazioni per contattare gli amministratori del sito. Saranno mostrate sulla pagina di informazioni. È consentito il BBcode"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
#: ../../Zotlabs/Module/Siteinfo.php:21
msgid "Site Information"
msgstr "Informazioni sul sito"
-#: ../../Zotlabs/Module/Admin/Site.php:305
+#: ../../Zotlabs/Module/Admin/Site.php:312
msgid ""
"Publicly visible description of this site. Displayed on siteinfo page. "
"BBCode can be used here"
msgstr "Descrizione del sito, visibile pubblicamente. Visualizzata sulla pagina siteinfo. Puoi usare il BBCode"
-#: ../../Zotlabs/Module/Admin/Site.php:306
+#: ../../Zotlabs/Module/Admin/Site.php:313
msgid "System language"
msgstr "Lingua di sistema"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid "System theme"
msgstr "Tema di sistema"
-#: ../../Zotlabs/Module/Admin/Site.php:307
+#: ../../Zotlabs/Module/Admin/Site.php:314
msgid ""
"Default system theme - may be over-ridden by user profiles - <a href='#' "
"id='cnftheme'>change theme settings</a>"
msgstr "Il tema di sistema può essere cambiato dai profili dei singoli utenti - <a href='#' id='cnftheme'>Cambia le impostazioni del tema</a>"
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Mobile system theme"
-msgstr "Tema di sistema per dispositivi mobili"
-
-#: ../../Zotlabs/Module/Admin/Site.php:308
-msgid "Theme for mobile devices"
-msgstr "Tema per i dispositivi mobili"
-
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "Allow Feeds as Connections"
msgstr "Permetti di aggiungere i feed come contatti"
-#: ../../Zotlabs/Module/Admin/Site.php:310
+#: ../../Zotlabs/Module/Admin/Site.php:317
msgid "(Heavy system resource usage)"
msgstr "(Uso intenso delle risorse di sistema!)"
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid "Maximum image size"
msgstr "Dimensione massima immagini"
-#: ../../Zotlabs/Module/Admin/Site.php:311
+#: ../../Zotlabs/Module/Admin/Site.php:318
msgid ""
"Maximum size in bytes of uploaded images. Default is 0, which means no "
"limits."
msgstr "Massima dimensione in byte delle immagini caricate. Il default è 0, cioè nessun limite."
-#: ../../Zotlabs/Module/Admin/Site.php:312
+#: ../../Zotlabs/Module/Admin/Site.php:319
msgid "Does this site allow new member registration?"
msgstr "Questo sito permette a nuovi utenti di registrarsi?"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid "Invitation only"
msgstr "Solo con invito"
-#: ../../Zotlabs/Module/Admin/Site.php:313
+#: ../../Zotlabs/Module/Admin/Site.php:320
msgid ""
"Only allow new member registrations with an invitation code. Above register "
"policy must be set to Yes."
msgstr "La registrazione è permessa solo a chi possiede un codice di invito. Funziona solo se la possibilità di registrarsi è impostata a 'Sì'."
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age"
-msgstr ""
+msgstr "Età minima"
-#: ../../Zotlabs/Module/Admin/Site.php:314
+#: ../../Zotlabs/Module/Admin/Site.php:321
msgid "Minimum age (in years) for who may register on this site."
-msgstr ""
+msgstr "L'età minima (in anni) richiesta per registrarsi su questo sito."
-#: ../../Zotlabs/Module/Admin/Site.php:315
+#: ../../Zotlabs/Module/Admin/Site.php:322
msgid "Which best describes the types of account offered by this hub?"
msgstr "Come descriveresti il tipo di servizio proposto da questo server?"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Register text"
msgstr "Testo di registrazione"
-#: ../../Zotlabs/Module/Admin/Site.php:316
+#: ../../Zotlabs/Module/Admin/Site.php:323
msgid "Will be displayed prominently on the registration page."
msgstr "Sarà mostrato ben visibile nella pagina di registrazione."
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid "Site homepage to show visitors (default: login box)"
msgstr "Homepage del sito da mostrare ai navigatori (predefinito: modulo di login)"
-#: ../../Zotlabs/Module/Admin/Site.php:317
+#: ../../Zotlabs/Module/Admin/Site.php:324
msgid ""
"example: 'public' to show public stream, 'page/sys/home' to show a system "
"webpage called 'home' or 'include:home.html' to include a file."
msgstr "esempio: 'public' per mostrare i contenuti pubblici degli utenti, 'page/sys/home' per mostrare la pagina web definita come 'home' oppure 'include:home.html' per mostrare il contenuto di un file."
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid "Preserve site homepage URL"
msgstr "Conserva l'URL della homepage"
-#: ../../Zotlabs/Module/Admin/Site.php:318
+#: ../../Zotlabs/Module/Admin/Site.php:325
msgid ""
"Present the site homepage in a frame at the original location instead of "
"redirecting"
msgstr "Presenta la homepage del sito in un frame all'indirizzo attuale invece di un redirect."
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid "Accounts abandoned after x days"
msgstr "Account abbandonati dopo X giorni"
-#: ../../Zotlabs/Module/Admin/Site.php:319
+#: ../../Zotlabs/Module/Admin/Site.php:326
msgid ""
"Will not waste system resources polling external sites for abandonded "
"accounts. Enter 0 for no time limit."
msgstr "Eviterà di sprecare risorse di sistema controllando se i siti esterni hanno account abbandonati. Immettere 0 per non imporre nessun limite di tempo."
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid "Allowed friend domains"
msgstr "Domini fidati e consentiti"
-#: ../../Zotlabs/Module/Admin/Site.php:320
+#: ../../Zotlabs/Module/Admin/Site.php:327
msgid ""
"Comma separated list of domains which are allowed to establish friendships "
"with this site. Wildcards are accepted. Empty to allow any domains"
msgstr "Elenco separato da virgola dei domini che possono stabilire amicizie con questo sito. Sono accettati caratteri jolly. Lascia vuoto per accettare connessioni da qualsiasi dominio."
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid "Verify Email Addresses"
msgstr "Verifica l'indirizzo email"
-#: ../../Zotlabs/Module/Admin/Site.php:321
+#: ../../Zotlabs/Module/Admin/Site.php:328
msgid ""
"Check to verify email addresses used in account registration (recommended)."
msgstr "Attiva per richiedere la verifica degli indirizzi email dei nuovi utenti (consigliato)."
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid "Force publish"
msgstr "Forza la publicazione del profilo"
-#: ../../Zotlabs/Module/Admin/Site.php:322
+#: ../../Zotlabs/Module/Admin/Site.php:329
msgid ""
"Check to force all profiles on this site to be listed in the site directory."
msgstr "Seleziona per pubblicare sui directory server <strong>tutti</strong> i profili registrati su questo sito."
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid "Import Public Streams"
msgstr "Suggerisci contenuti pubblici della rete Hubzilla"
-#: ../../Zotlabs/Module/Admin/Site.php:323
+#: ../../Zotlabs/Module/Admin/Site.php:330
msgid ""
"Import and allow access to public content pulled from other sites. Warning: "
"this content is unmoderated."
msgstr "Suggerisci e visualizza i post pubblici presenti su altri siti Hubzilla. Attenzione: i contenuti potrebbero essere inappropriati perché non sottoposti a moderazione."
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid "Site only Public Streams"
-msgstr ""
+msgstr "Solo i flussi pubblici su questo sito"
-#: ../../Zotlabs/Module/Admin/Site.php:324
+#: ../../Zotlabs/Module/Admin/Site.php:331
msgid ""
"Allow access to public content originating only from this site if Imported "
"Public Streams are disabled."
-msgstr ""
+msgstr "Consenti l'accesso a contenuti pubblici originati solo da questo sito se se è disabilitata l'importazione di flussi pubblici."
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid "Allow anybody on the internet to access the Public streams"
-msgstr ""
+msgstr "Permetti a chiunque su internet di accedere ai flussi pubblici"
-#: ../../Zotlabs/Module/Admin/Site.php:325
+#: ../../Zotlabs/Module/Admin/Site.php:332
msgid ""
"Disable to require authentication before viewing. Warning: this content is "
"unmoderated."
-msgstr ""
+msgstr "Disabilita per richiedere di autenticarsi prima di visualizzare. Attenzione: questo contenuto non è moderato."
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid "Login on Homepage"
msgstr "Login sulla homepage"
-#: ../../Zotlabs/Module/Admin/Site.php:326
+#: ../../Zotlabs/Module/Admin/Site.php:333
msgid ""
"Present a login box to visitors on the home page if no other content has "
"been configured."
msgstr "Presenta il modulo di login ai visitatori sulla homepage in mancanza di altri contenuti."
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid "Enable context help"
msgstr "Abilita la guida contestuale"
-#: ../../Zotlabs/Module/Admin/Site.php:327
+#: ../../Zotlabs/Module/Admin/Site.php:334
msgid ""
"Display contextual help for the current page when the help button is "
"pressed."
msgstr "Quando è premuto, il bottone della guida mostra quella relativa alla pagina corrente"
-#: ../../Zotlabs/Module/Admin/Site.php:329
+#: ../../Zotlabs/Module/Admin/Site.php:336
msgid "Reply-to email address for system generated email."
msgstr "Indirizzo Reply-to per mail generate dal sistema."
-#: ../../Zotlabs/Module/Admin/Site.php:330
+#: ../../Zotlabs/Module/Admin/Site.php:337
msgid "Sender (From) email address for system generated email."
msgstr "Indirzzo email del mittente (From) per mail generate dal sistema."
-#: ../../Zotlabs/Module/Admin/Site.php:331
+#: ../../Zotlabs/Module/Admin/Site.php:338
msgid "Name of email sender for system generated email."
msgstr "Nome del mittente per mail generate dal sistema"
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Directory Server URL"
msgstr "URL del directory server"
-#: ../../Zotlabs/Module/Admin/Site.php:333
+#: ../../Zotlabs/Module/Admin/Site.php:340
msgid "Default directory server"
msgstr "Directory server predefinito"
-#: ../../Zotlabs/Module/Admin/Site.php:335
+#: ../../Zotlabs/Module/Admin/Site.php:342
msgid "Proxy user"
msgstr "Utente proxy"
-#: ../../Zotlabs/Module/Admin/Site.php:336
+#: ../../Zotlabs/Module/Admin/Site.php:343
msgid "Proxy URL"
msgstr "URL proxy"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Network timeout"
msgstr "Timeout rete"
-#: ../../Zotlabs/Module/Admin/Site.php:337
+#: ../../Zotlabs/Module/Admin/Site.php:344
msgid "Value is in seconds. Set to 0 for unlimited (not recommended)."
msgstr "Valore in secondi. Imposta a 0 per illimitato (sconsigliato)."
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid "Delivery interval"
msgstr "Recapito ritardato"
-#: ../../Zotlabs/Module/Admin/Site.php:338
+#: ../../Zotlabs/Module/Admin/Site.php:345
msgid ""
"Delay background delivery processes by this many seconds to reduce system "
"load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 "
"for large dedicated servers."
msgstr "Numero di secondi di cui può essere ritardato il recapito, per ridurre il carico di sistema. Consigliati: 4-5 secondi per hosting condiviso, 2-3 per i VPS, 0-1 per grandi server dedicati."
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid "Deliveries per process"
msgstr "Tentativi di recapito per processo"
-#: ../../Zotlabs/Module/Admin/Site.php:339
+#: ../../Zotlabs/Module/Admin/Site.php:346
msgid ""
"Number of deliveries to attempt in a single operating system process. Adjust"
" if necessary to tune system performance. Recommend: 1-5."
msgstr "Numero di tentativi di recapito da tentare per ciascun processo. Può essere modificato per migliorare le performance di sistema. Raccomandato: 1-5"
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid "Queue Threshold"
-msgstr ""
+msgstr "Threshold della coda"
-#: ../../Zotlabs/Module/Admin/Site.php:340
+#: ../../Zotlabs/Module/Admin/Site.php:347
msgid ""
"Always defer immediate delivery if queue contains more than this number of "
"entries."
msgstr "Rinvia la consegna immediata se la coda contiene più di questo numero di elementi."
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid "Poll interval"
msgstr "Intervallo di polling"
-#: ../../Zotlabs/Module/Admin/Site.php:341
+#: ../../Zotlabs/Module/Admin/Site.php:348
msgid ""
"Delay background polling processes by this many seconds to reduce system "
"load. If 0, use delivery interval."
msgstr "Numero di secondi di cui può essere ritardato il polling in background, per ridurre il carico del sistema. Se 0, verrà usato lo stesso valore del 'Recapito ritardato'."
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid "Path to ImageMagick convert program"
msgstr "Percorso del comando convert di ImageMagic"
-#: ../../Zotlabs/Module/Admin/Site.php:342
+#: ../../Zotlabs/Module/Admin/Site.php:349
msgid ""
"If set, use this program to generate photo thumbnails for huge images ( > "
"4000 pixels in either dimension), otherwise memory exhaustion may occur. "
"Example: /usr/bin/convert"
msgstr "Se impostato, utilizza questo programma per generare le anteprime di immagini molto grandi ( > 4000 pixel in larghezza o altezza), per evitare di esaurire la memoria. Esempio: /user/bin/convert"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "Allow SVG thumbnails in file browser"
msgstr "Permetti le anteprime SVG nell'elenco dei file"
-#: ../../Zotlabs/Module/Admin/Site.php:343
+#: ../../Zotlabs/Module/Admin/Site.php:350
msgid "WARNING: SVG images may contain malicious code."
msgstr "ATTENZIONE: le immagini SVG potrebbero contenere codice malevolo."
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid "Maximum Load Average"
msgstr "Carico massimo medio"
-#: ../../Zotlabs/Module/Admin/Site.php:344
+#: ../../Zotlabs/Module/Admin/Site.php:351
msgid ""
"Maximum system load before delivery and poll processes are deferred - "
"default 50."
msgstr "Carico di sistema massimo perché i processi di recapito e polling siano ritardati - il valore predefinito è 50."
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "Expiration period in days for imported (grid/network) content"
msgstr "Scadenza dei contenuti importati da altri siti (in giorni)"
-#: ../../Zotlabs/Module/Admin/Site.php:345
+#: ../../Zotlabs/Module/Admin/Site.php:352
msgid "0 for no expiration of imported content"
msgstr "0 per non avere scadenza"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:353
+msgid ""
+"Do not expire any posts which have comments less than this many days ago"
+msgstr "Non far scadere nessun post che ha commenti più recenti di questo numero di giorni"
+
+#: ../../Zotlabs/Module/Admin/Site.php:355
msgid ""
"Public servers: Optional landing (marketing) webpage for new registrants"
-msgstr ""
+msgstr "Server pubblici: Landing page (marketing) opzionale per utenti appena registrati"
-#: ../../Zotlabs/Module/Admin/Site.php:347
+#: ../../Zotlabs/Module/Admin/Site.php:355
#, php-format
msgid "Create this page first. Default is %s/register"
-msgstr ""
+msgstr "Crea questa pagina prima. Il default è %s/register"
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Page to display after creating a new channel"
-msgstr ""
+msgstr "Pagina da visualizzare dopo la creazione di un nuovo canale"
-#: ../../Zotlabs/Module/Admin/Site.php:348
+#: ../../Zotlabs/Module/Admin/Site.php:356
msgid "Recommend: profiles, go, or settings"
msgstr ""
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Optional: site location"
-msgstr ""
+msgstr "Opzionale: site location"
-#: ../../Zotlabs/Module/Admin/Site.php:350
+#: ../../Zotlabs/Module/Admin/Site.php:358
msgid "Region or country"
-msgstr ""
+msgstr "Regione o Paese"
-#: ../../Zotlabs/Module/Admin/Profs.php:69
+#: ../../Zotlabs/Module/Admin/Profs.php:89
msgid "New Profile Field"
msgstr "Nuovo campo del profilo"
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "Field nickname"
msgstr "Nome breve del campo"
-#: ../../Zotlabs/Module/Admin/Profs.php:70
#: ../../Zotlabs/Module/Admin/Profs.php:90
+#: ../../Zotlabs/Module/Admin/Profs.php:110
msgid "System name of field"
msgstr "Nome di sistema del campo"
-#: ../../Zotlabs/Module/Admin/Profs.php:71
#: ../../Zotlabs/Module/Admin/Profs.php:91
+#: ../../Zotlabs/Module/Admin/Profs.php:111
msgid "Input type"
msgstr "Tipo di dati"
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Field Name"
msgstr "Nome del campo"
-#: ../../Zotlabs/Module/Admin/Profs.php:72
#: ../../Zotlabs/Module/Admin/Profs.php:92
+#: ../../Zotlabs/Module/Admin/Profs.php:112
msgid "Label on profile pages"
msgstr "Etichetta da mostrare sulla pagina del profilo"
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Help text"
msgstr "Testo di aiuto"
-#: ../../Zotlabs/Module/Admin/Profs.php:73
#: ../../Zotlabs/Module/Admin/Profs.php:93
+#: ../../Zotlabs/Module/Admin/Profs.php:113
msgid "Additional info (optional)"
msgstr "Informazioni aggiuntive (facoltative)"
-#: ../../Zotlabs/Module/Admin/Profs.php:74
-#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32
+#: ../../Zotlabs/Module/Admin/Profs.php:94
+#: ../../Zotlabs/Module/Admin/Profs.php:114 ../../Zotlabs/Module/Rbmark.php:32
#: ../../Zotlabs/Module/Rbmark.php:104 ../../Zotlabs/Module/Filer.php:53
#: ../../Zotlabs/Widget/Notes.php:18 ../../include/text.php:1052
#: ../../include/text.php:1064
msgid "Save"
msgstr "Salva"
-#: ../../Zotlabs/Module/Admin/Profs.php:83
+#: ../../Zotlabs/Module/Admin/Profs.php:103
msgid "Field definition not found"
msgstr "Impossibile trovare la definizione del campo"
-#: ../../Zotlabs/Module/Admin/Profs.php:89
+#: ../../Zotlabs/Module/Admin/Profs.php:109
msgid "Edit Profile Field"
msgstr "Modifica campo del profilo"
-#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../Zotlabs/Widget/Admin.php:30
+#: ../../Zotlabs/Module/Admin/Profs.php:168 ../../Zotlabs/Widget/Admin.php:30
msgid "Profile Fields"
msgstr "Campi del profilo"
-#: ../../Zotlabs/Module/Admin/Profs.php:148
+#: ../../Zotlabs/Module/Admin/Profs.php:169
msgid "Basic Profile Fields"
msgstr "Campi base del profilo"
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "Advanced Profile Fields"
msgstr "Campi avanzati del profilo"
-#: ../../Zotlabs/Module/Admin/Profs.php:149
+#: ../../Zotlabs/Module/Admin/Profs.php:170
msgid "(In addition to basic fields)"
msgstr "(In aggiunta ai campi di base)"
-#: ../../Zotlabs/Module/Admin/Profs.php:151
+#: ../../Zotlabs/Module/Admin/Profs.php:172
msgid "All available fields"
msgstr "Tutti i campi disponibili"
-#: ../../Zotlabs/Module/Admin/Profs.php:152
+#: ../../Zotlabs/Module/Admin/Profs.php:173
msgid "Custom Fields"
msgstr "Campi personalizzati"
-#: ../../Zotlabs/Module/Admin/Profs.php:156
+#: ../../Zotlabs/Module/Admin/Profs.php:177
msgid "Create Custom Field"
msgstr "Aggiungi campo personalizzato"
@@ -3361,51 +3361,55 @@ msgctxt "acl"
msgid "Profile"
msgstr "Profilo"
-#: ../../Zotlabs/Module/Moderate.php:55
+#: ../../Zotlabs/Module/Moderate.php:62
msgid "Comment approved"
msgstr "Commento approvato"
-#: ../../Zotlabs/Module/Moderate.php:59
+#: ../../Zotlabs/Module/Moderate.php:66
msgid "Comment deleted"
msgstr "Commento eliminato"
-#: ../../Zotlabs/Module/Settings/Permcats.php:37
-msgid "Permission category saved."
+#: ../../Zotlabs/Module/Settings/Permcats.php:23
+msgid "Permission Name is required."
msgstr ""
-#: ../../Zotlabs/Module/Settings/Permcats.php:61
+#: ../../Zotlabs/Module/Settings/Permcats.php:42
+msgid "Permission category saved."
+msgstr "Categoria di permessi salvata"
+
+#: ../../Zotlabs/Module/Settings/Permcats.php:66
msgid ""
"Use this form to create permission rules for various classes of people or "
"connections."
-msgstr ""
+msgstr "Usa questo modulo per definire i permessi specifici per classi di persone o connessioni."
-#: ../../Zotlabs/Module/Settings/Permcats.php:94
+#: ../../Zotlabs/Module/Settings/Permcats.php:99
msgid "Permission Categories"
-msgstr ""
+msgstr "Categorie di permessi"
-#: ../../Zotlabs/Module/Settings/Permcats.php:102
+#: ../../Zotlabs/Module/Settings/Permcats.php:107
msgid "Permission Name"
-msgstr ""
+msgstr "Nome del permesso"
-#: ../../Zotlabs/Module/Settings/Permcats.php:103
+#: ../../Zotlabs/Module/Settings/Permcats.php:108
#: ../../Zotlabs/Module/Settings/Tokens.php:161
#: ../../Zotlabs/Module/Connedit.php:891 ../../Zotlabs/Module/Defperms.php:250
msgid "My Settings"
msgstr "Permessi che concedo"
-#: ../../Zotlabs/Module/Settings/Permcats.php:105
+#: ../../Zotlabs/Module/Settings/Permcats.php:110
#: ../../Zotlabs/Module/Settings/Tokens.php:163
#: ../../Zotlabs/Module/Connedit.php:886 ../../Zotlabs/Module/Defperms.php:248
msgid "inherited"
msgstr "derivato"
-#: ../../Zotlabs/Module/Settings/Permcats.php:108
+#: ../../Zotlabs/Module/Settings/Permcats.php:113
#: ../../Zotlabs/Module/Settings/Tokens.php:166
#: ../../Zotlabs/Module/Connedit.php:893 ../../Zotlabs/Module/Defperms.php:253
msgid "Individual Permissions"
msgstr "Permessi individuali"
-#: ../../Zotlabs/Module/Settings/Permcats.php:109
+#: ../../Zotlabs/Module/Settings/Permcats.php:114
#: ../../Zotlabs/Module/Settings/Tokens.php:167
#: ../../Zotlabs/Module/Connedit.php:894
msgid ""
@@ -3426,7 +3430,7 @@ msgstr "Alcuni permessi derivano dalle <a href=\"settings\"><strong>impostazioni
msgid "Friends"
msgstr "Amici"
-#: ../../Zotlabs/Module/Settings/Channel.php:262
+#: ../../Zotlabs/Module/Settings/Channel.php:264
#: ../../Zotlabs/Module/Defperms.php:103
#: ../../addon/rendezvous/rendezvous.php:82
#: ../../addon/openstreetmap/openstreetmap.php:184
@@ -3436,409 +3440,424 @@ msgstr "Amici"
msgid "Settings updated."
msgstr "Impostazioni aggiornate."
-#: ../../Zotlabs/Module/Settings/Channel.php:323
+#: ../../Zotlabs/Module/Settings/Channel.php:325
msgid "Nobody except yourself"
msgstr "Nessuno tranne te"
-#: ../../Zotlabs/Module/Settings/Channel.php:324
+#: ../../Zotlabs/Module/Settings/Channel.php:326
msgid "Only those you specifically allow"
msgstr "Solo chi riceve il mio permesso"
-#: ../../Zotlabs/Module/Settings/Channel.php:325
+#: ../../Zotlabs/Module/Settings/Channel.php:327
msgid "Approved connections"
msgstr "Contatti approvati"
-#: ../../Zotlabs/Module/Settings/Channel.php:326
+#: ../../Zotlabs/Module/Settings/Channel.php:328
msgid "Any connections"
msgstr "Tutti i contatti"
-#: ../../Zotlabs/Module/Settings/Channel.php:327
+#: ../../Zotlabs/Module/Settings/Channel.php:329
msgid "Anybody on this website"
msgstr "Chiunque su questo hub"
-#: ../../Zotlabs/Module/Settings/Channel.php:328
+#: ../../Zotlabs/Module/Settings/Channel.php:330
msgid "Anybody in this network"
msgstr "Chiunque su questa rete"
-#: ../../Zotlabs/Module/Settings/Channel.php:329
+#: ../../Zotlabs/Module/Settings/Channel.php:331
msgid "Anybody authenticated"
msgstr "Chiunque abbia effettuato l'accesso"
-#: ../../Zotlabs/Module/Settings/Channel.php:330
+#: ../../Zotlabs/Module/Settings/Channel.php:332
msgid "Anybody on the internet"
msgstr "Chiunque su internet"
-#: ../../Zotlabs/Module/Settings/Channel.php:405
+#: ../../Zotlabs/Module/Settings/Channel.php:407
msgid "Publish your default profile in the network directory"
msgstr "Mostra il mio profilo predefinito negli elenchi pubblici dei canali"
-#: ../../Zotlabs/Module/Settings/Channel.php:410
+#: ../../Zotlabs/Module/Settings/Channel.php:412
msgid "Allow us to suggest you as a potential friend to new members?"
msgstr "Vuoi essere suggerito come amico ai nuovi membri?"
-#: ../../Zotlabs/Module/Settings/Channel.php:414
+#: ../../Zotlabs/Module/Settings/Channel.php:416
msgid "or"
msgstr "o"
-#: ../../Zotlabs/Module/Settings/Channel.php:419
+#: ../../Zotlabs/Module/Settings/Channel.php:425
msgid "Your channel address is"
msgstr "L'indirizzo del tuo canale è"
-#: ../../Zotlabs/Module/Settings/Channel.php:422
+#: ../../Zotlabs/Module/Settings/Channel.php:428
msgid "Your files/photos are accessible via WebDAV at"
-msgstr ""
+msgstr "I tuoi file/foto sono accessibili via WebDAV all'indirizzo"
-#: ../../Zotlabs/Module/Settings/Channel.php:486
+#: ../../Zotlabs/Module/Settings/Channel.php:493
msgid "Channel Settings"
msgstr "Impostazioni del canale"
-#: ../../Zotlabs/Module/Settings/Channel.php:493
+#: ../../Zotlabs/Module/Settings/Channel.php:500
msgid "Basic Settings"
msgstr "Impostazioni di base"
-#: ../../Zotlabs/Module/Settings/Channel.php:494
-#: ../../include/channel.php:1522
+#: ../../Zotlabs/Module/Settings/Channel.php:501
+#: ../../include/channel.php:1521
msgid "Full Name:"
msgstr "Nome completo:"
-#: ../../Zotlabs/Module/Settings/Channel.php:495
+#: ../../Zotlabs/Module/Settings/Channel.php:502
#: ../../Zotlabs/Module/Settings/Account.php:119
msgid "Email Address:"
msgstr "Indirizzo email:"
-#: ../../Zotlabs/Module/Settings/Channel.php:496
+#: ../../Zotlabs/Module/Settings/Channel.php:503
msgid "Your Timezone:"
msgstr "Il tuo fuso orario:"
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Default Post Location:"
msgstr "Località predefinita:"
-#: ../../Zotlabs/Module/Settings/Channel.php:497
+#: ../../Zotlabs/Module/Settings/Channel.php:504
msgid "Geographical location to display on your posts"
msgstr "La posizione geografica da mostrare sui tuoi post"
-#: ../../Zotlabs/Module/Settings/Channel.php:498
+#: ../../Zotlabs/Module/Settings/Channel.php:505
msgid "Use Browser Location:"
msgstr "Usa la località rilevata dal browser:"
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid "Adult Content"
msgstr "Contenuto per adulti"
-#: ../../Zotlabs/Module/Settings/Channel.php:500
+#: ../../Zotlabs/Module/Settings/Channel.php:507
msgid ""
"This channel frequently or regularly publishes adult content. (Please tag "
"any adult material and/or nudity with #NSFW)"
msgstr "Questo canale pubblica frequentemente contenuto per adulti. (I contenuti per adulti vanno taggati #NSFW - Not Safe For Work)"
-#: ../../Zotlabs/Module/Settings/Channel.php:502
+#: ../../Zotlabs/Module/Settings/Channel.php:509
msgid "Security and Privacy Settings"
msgstr "Impostazioni di sicurezza e privacy"
-#: ../../Zotlabs/Module/Settings/Channel.php:504
+#: ../../Zotlabs/Module/Settings/Channel.php:511
msgid "Your permissions are already configured. Click to view/adjust"
msgstr "I tuoi permessi sono già stati configurati. Clicca per vederli o modificarli"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Hide my online presence"
msgstr "Nascondi la mia presenza online"
-#: ../../Zotlabs/Module/Settings/Channel.php:506
+#: ../../Zotlabs/Module/Settings/Channel.php:513
msgid "Prevents displaying in your profile that you are online"
msgstr "Non mostrare sul tuo profilo quando sei online"
-#: ../../Zotlabs/Module/Settings/Channel.php:508
+#: ../../Zotlabs/Module/Settings/Channel.php:515
msgid "Simple Privacy Settings:"
msgstr "Impostazioni di privacy semplificate"
-#: ../../Zotlabs/Module/Settings/Channel.php:509
+#: ../../Zotlabs/Module/Settings/Channel.php:516
msgid ""
"Very Public - <em>extremely permissive (should be used with caution)</em>"
msgstr "Tutto pubblico - <em>estremamente permissivo (da usare con cautela)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:510
+#: ../../Zotlabs/Module/Settings/Channel.php:517
msgid ""
"Typical - <em>default public, privacy when desired (similar to social "
"network permissions but with improved privacy)</em>"
msgstr "Standard - <em>contenuti normalmente pubblici, ma anche privati se necessario (simile ai social network ma con privacy migliorata)</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:511
+#: ../../Zotlabs/Module/Settings/Channel.php:518
msgid "Private - <em>default private, never open or public</em>"
msgstr "Privato - <em>contenuti normalmente privati, nulla è aperto o pubblico</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:512
+#: ../../Zotlabs/Module/Settings/Channel.php:519
msgid "Blocked - <em>default blocked to/from everybody</em>"
msgstr "Bloccato - <em>bloccato in invio e ricezione dei contenuti</em>"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid "Allow others to tag your posts"
msgstr "Permetti ad altri di taggare i tuoi post"
-#: ../../Zotlabs/Module/Settings/Channel.php:514
+#: ../../Zotlabs/Module/Settings/Channel.php:521
msgid ""
"Often used by the community to retro-actively flag inappropriate content"
msgstr "Usato spesso dalla comunità per marcare contenuti inappropriati già esistenti"
-#: ../../Zotlabs/Module/Settings/Channel.php:516
+#: ../../Zotlabs/Module/Settings/Channel.php:523
msgid "Channel Permission Limits"
msgstr "Limiti sui permessi del canale"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "Expire other channel content after this many days"
msgstr "Giorni dopo cui mettere in scadenza gli altri contenuti del canale"
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "0 or blank to use the website limit."
msgstr "0 o vuoto per usare i valori predefiniti."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
#, php-format
msgid "This website expires after %d days."
msgstr "Per questo sito la scadenza è %d giorni. "
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "This website does not expire imported content."
msgstr "I contenuti di questo sito non hanno scadenza."
-#: ../../Zotlabs/Module/Settings/Channel.php:518
+#: ../../Zotlabs/Module/Settings/Channel.php:525
msgid "The website limit takes precedence if lower than your limit."
msgstr "Il limite del server ha la precedenza, se minore di quello impostato da te."
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "Maximum Friend Requests/Day:"
msgstr "Numero massimo giornaliero di richieste di amicizia:"
-#: ../../Zotlabs/Module/Settings/Channel.php:519
+#: ../../Zotlabs/Module/Settings/Channel.php:526
msgid "May reduce spam activity"
msgstr "Serve a ridurre lo spam"
-#: ../../Zotlabs/Module/Settings/Channel.php:520
+#: ../../Zotlabs/Module/Settings/Channel.php:527
msgid "Default Privacy Group"
-msgstr ""
+msgstr "Privacy Group predefinito"
-#: ../../Zotlabs/Module/Settings/Channel.php:522
+#: ../../Zotlabs/Module/Settings/Channel.php:529
msgid "Use my default audience setting for the type of object published"
msgstr "Mostra ai contatti secondo le impostazioni standard per questo tipo di contenuto"
-#: ../../Zotlabs/Module/Settings/Channel.php:523
+#: ../../Zotlabs/Module/Settings/Channel.php:530
msgid "Profile to assign new connections"
-msgstr ""
+msgstr "Profilo da associare ai nuovi contatti"
-#: ../../Zotlabs/Module/Settings/Channel.php:532
+#: ../../Zotlabs/Module/Settings/Channel.php:539
msgid "Channel permissions category:"
msgstr "Categorie di permessi dei canali:"
-#: ../../Zotlabs/Module/Settings/Channel.php:533
+#: ../../Zotlabs/Module/Settings/Channel.php:540
msgid "Default Permissions Group"
-msgstr ""
+msgstr "Permission Group predefinito"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Maximum private messages per day from unknown people:"
msgstr "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:"
-#: ../../Zotlabs/Module/Settings/Channel.php:539
+#: ../../Zotlabs/Module/Settings/Channel.php:546
msgid "Useful to reduce spamming"
msgstr "Serve e ridurre lo spam"
-#: ../../Zotlabs/Module/Settings/Channel.php:542
+#: ../../Zotlabs/Module/Settings/Channel.php:549
#: ../../Zotlabs/Lib/Enotify.php:68
msgid "Notification Settings"
msgstr "Impostazioni di notifica"
-#: ../../Zotlabs/Module/Settings/Channel.php:543
+#: ../../Zotlabs/Module/Settings/Channel.php:550
msgid "By default post a status message when:"
msgstr "Pubblica un messaggio di stato quando:"
-#: ../../Zotlabs/Module/Settings/Channel.php:544
+#: ../../Zotlabs/Module/Settings/Channel.php:551
msgid "accepting a friend request"
msgstr "accetto una nuova amicizia"
-#: ../../Zotlabs/Module/Settings/Channel.php:545
+#: ../../Zotlabs/Module/Settings/Channel.php:552
msgid "joining a forum/community"
msgstr "entro a far parte di un forum"
-#: ../../Zotlabs/Module/Settings/Channel.php:546
+#: ../../Zotlabs/Module/Settings/Channel.php:553
msgid "making an <em>interesting</em> profile change"
msgstr "faccio un cambiamento <em>interessante</em> al mio profilo"
-#: ../../Zotlabs/Module/Settings/Channel.php:547
+#: ../../Zotlabs/Module/Settings/Channel.php:554
msgid "Send a notification email when:"
msgstr "Invia una email di notifica quando:"
-#: ../../Zotlabs/Module/Settings/Channel.php:548
+#: ../../Zotlabs/Module/Settings/Channel.php:555
msgid "You receive a connection request"
msgstr "Ricevi una richiesta di entrare in contatto"
-#: ../../Zotlabs/Module/Settings/Channel.php:549
+#: ../../Zotlabs/Module/Settings/Channel.php:556
msgid "Your connections are confirmed"
msgstr "I tuoi contatti sono confermati"
-#: ../../Zotlabs/Module/Settings/Channel.php:550
+#: ../../Zotlabs/Module/Settings/Channel.php:557
msgid "Someone writes on your profile wall"
msgstr "Qualcuno scrive sulla tua bacheca"
-#: ../../Zotlabs/Module/Settings/Channel.php:551
+#: ../../Zotlabs/Module/Settings/Channel.php:558
msgid "Someone writes a followup comment"
msgstr "Qualcuno scrive un commento dopo di te"
-#: ../../Zotlabs/Module/Settings/Channel.php:552
+#: ../../Zotlabs/Module/Settings/Channel.php:559
msgid "You receive a private message"
msgstr "Ricevi un messaggio privato"
-#: ../../Zotlabs/Module/Settings/Channel.php:553
+#: ../../Zotlabs/Module/Settings/Channel.php:560
msgid "You receive a friend suggestion"
msgstr "Ti viene suggerito un amico"
-#: ../../Zotlabs/Module/Settings/Channel.php:554
+#: ../../Zotlabs/Module/Settings/Channel.php:561
msgid "You are tagged in a post"
msgstr "Sei taggato in un post"
-#: ../../Zotlabs/Module/Settings/Channel.php:555
+#: ../../Zotlabs/Module/Settings/Channel.php:562
msgid "You are poked/prodded/etc. in a post"
msgstr "Ricevi un poke in un post"
-#: ../../Zotlabs/Module/Settings/Channel.php:557
+#: ../../Zotlabs/Module/Settings/Channel.php:564
msgid "Someone likes your post/comment"
msgstr "Qualcuno mette mi piace al tuo post/commento"
-#: ../../Zotlabs/Module/Settings/Channel.php:560
+#: ../../Zotlabs/Module/Settings/Channel.php:567
msgid "Show visual notifications including:"
msgstr "Mostra queste notifiche a schermo:"
-#: ../../Zotlabs/Module/Settings/Channel.php:562
+#: ../../Zotlabs/Module/Settings/Channel.php:569
msgid "Unseen grid activity"
msgstr "Nuove attività nella rete"
-#: ../../Zotlabs/Module/Settings/Channel.php:563
+#: ../../Zotlabs/Module/Settings/Channel.php:570
msgid "Unseen channel activity"
msgstr "Novità nei canali"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
+#: ../../Zotlabs/Module/Settings/Channel.php:571
msgid "Unseen private messages"
msgstr "Nuovi messaggi privati"
-#: ../../Zotlabs/Module/Settings/Channel.php:564
-#: ../../Zotlabs/Module/Settings/Channel.php:569
-#: ../../Zotlabs/Module/Settings/Channel.php:570
#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:576
+#: ../../Zotlabs/Module/Settings/Channel.php:577
+#: ../../Zotlabs/Module/Settings/Channel.php:578
#: ../../addon/jappixmini/jappixmini.php:343
msgid "Recommended"
msgstr "Consigliato"
-#: ../../Zotlabs/Module/Settings/Channel.php:565
+#: ../../Zotlabs/Module/Settings/Channel.php:572
msgid "Upcoming events"
msgstr "Prossimi eventi"
-#: ../../Zotlabs/Module/Settings/Channel.php:566
+#: ../../Zotlabs/Module/Settings/Channel.php:573
msgid "Events today"
msgstr "Eventi di oggi"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Upcoming birthdays"
msgstr "Prossimi compleanni"
-#: ../../Zotlabs/Module/Settings/Channel.php:567
+#: ../../Zotlabs/Module/Settings/Channel.php:574
msgid "Not available in all themes"
msgstr "Non disponibile in tutti i temi"
-#: ../../Zotlabs/Module/Settings/Channel.php:568
+#: ../../Zotlabs/Module/Settings/Channel.php:575
msgid "System (personal) notifications"
msgstr "Notifiche personali dal sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:569
+#: ../../Zotlabs/Module/Settings/Channel.php:576
msgid "System info messages"
msgstr "Notifiche di sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:570
+#: ../../Zotlabs/Module/Settings/Channel.php:577
msgid "System critical alerts"
msgstr "Avvisi critici di sistema"
-#: ../../Zotlabs/Module/Settings/Channel.php:571
+#: ../../Zotlabs/Module/Settings/Channel.php:578
msgid "New connections"
msgstr "Nuovi contatti"
-#: ../../Zotlabs/Module/Settings/Channel.php:572
+#: ../../Zotlabs/Module/Settings/Channel.php:579
msgid "System Registrations"
msgstr "Registrazioni"
-#: ../../Zotlabs/Module/Settings/Channel.php:573
+#: ../../Zotlabs/Module/Settings/Channel.php:580
msgid "Unseen shared files"
-msgstr ""
+msgstr "File condivisi non ancora visitati"
-#: ../../Zotlabs/Module/Settings/Channel.php:574
+#: ../../Zotlabs/Module/Settings/Channel.php:581
msgid "Unseen public activity"
msgstr "Attività pubblica non letta"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:582
+msgid "Unseen likes and dislikes"
+msgstr "Mi piace e non mi piace da leggere"
+
+#: ../../Zotlabs/Module/Settings/Channel.php:583
msgid "Email notification hub (hostname)"
-msgstr ""
+msgstr "Hub di notifica (hostname)"
-#: ../../Zotlabs/Module/Settings/Channel.php:575
+#: ../../Zotlabs/Module/Settings/Channel.php:583
#, php-format
msgid ""
"If your channel is mirrored to multiple hubs, set this to your preferred "
"location. This will prevent duplicate email notifications. Example: %s"
-msgstr ""
+msgstr "Se il tuo canale è replicato su molti hub, scegli qui da dove saranno inviati i messaggi. Serve ad evitare di ricevere notifiche duplicate. Esempio: %s"
-#: ../../Zotlabs/Module/Settings/Channel.php:576
-msgid ""
-"Also show new wall posts, private messages and connections under Notices"
-msgstr "Mostra negli avvisi anche i nuovi post, i messaggi privati e i nuovi contatti"
+#: ../../Zotlabs/Module/Settings/Channel.php:584
+msgid "Show new wall posts, private messages and connections under Notices"
+msgstr "Mostra i nuovi post in bacheca, i messaggi privati e le connessioni come Notifiche"
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Notify me of events this many days in advance"
msgstr "Giorni di anticipo per notificare gli eventi"
-#: ../../Zotlabs/Module/Settings/Channel.php:578
+#: ../../Zotlabs/Module/Settings/Channel.php:586
msgid "Must be greater than 0"
msgstr "Maggiore di 0"
-#: ../../Zotlabs/Module/Settings/Channel.php:584
+#: ../../Zotlabs/Module/Settings/Channel.php:592
msgid "Advanced Account/Page Type Settings"
msgstr "Impostazioni avanzate"
-#: ../../Zotlabs/Module/Settings/Channel.php:585
+#: ../../Zotlabs/Module/Settings/Channel.php:593
msgid "Change the behaviour of this account for special situations"
msgstr "Cambia il funzionamento di questo account per necessità particolari"
-#: ../../Zotlabs/Module/Settings/Channel.php:587
+#: ../../Zotlabs/Module/Settings/Channel.php:595
msgid "Miscellaneous Settings"
msgstr "Impostazioni varie"
-#: ../../Zotlabs/Module/Settings/Channel.php:588
+#: ../../Zotlabs/Module/Settings/Channel.php:596
msgid "Default photo upload folder"
msgstr "Cartella predefinita per le foto caricate"
-#: ../../Zotlabs/Module/Settings/Channel.php:588
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:596
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "%Y - current year, %m - current month"
msgstr "%Y - anno corrente, %m - mese corrente"
-#: ../../Zotlabs/Module/Settings/Channel.php:589
+#: ../../Zotlabs/Module/Settings/Channel.php:597
msgid "Default file upload folder"
msgstr "Cartella predefinita per i file caricati"
-#: ../../Zotlabs/Module/Settings/Channel.php:591
+#: ../../Zotlabs/Module/Settings/Channel.php:599
msgid "Personal menu to display in your channel pages"
msgstr "Menu personale da mostrare sulle pagine del tuo canale"
-#: ../../Zotlabs/Module/Settings/Channel.php:593
+#: ../../Zotlabs/Module/Settings/Channel.php:601
msgid "Remove this channel."
msgstr "Elimina questo canale."
-#: ../../Zotlabs/Module/Settings/Channel.php:594
+#: ../../Zotlabs/Module/Settings/Channel.php:602
msgid "Firefox Share $Projectname provider"
msgstr "Attiva Firefox Share per $Projectname"
-#: ../../Zotlabs/Module/Settings/Channel.php:595
+#: ../../Zotlabs/Module/Settings/Channel.php:603
msgid "Start calendar week on Monday"
-msgstr ""
+msgstr "Inizia la settimana nel calendario da lunedì"
-#: ../../Zotlabs/Module/Settings/Features.php:45
+#: ../../Zotlabs/Module/Settings/Features.php:73
msgid "Additional Features"
msgstr "Funzionalità opzionali"
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid "Your technical skill level"
+msgstr "Il tuo livello tecnico"
+
+#: ../../Zotlabs/Module/Settings/Features.php:74
+#: ../../Zotlabs/Module/Settings/Account.php:116
+msgid ""
+"Used to provide a member experience and additional features consistent with "
+"your comfort level"
+msgstr "Serve ad adeguare l'interfaccia e le funzionalità mostrate alla tua dimestichezza"
+
#: ../../Zotlabs/Module/Settings/Tokens.php:31
#, php-format
msgid "This channel is limited to %d tokens"
@@ -3867,7 +3886,7 @@ msgid ""
msgstr "Puoi anche fornire un accesso simile a <em>dropbox</em> agli amici o ai colleghi aggiungendo la password all'url che vuoi comunicare, come mostrato sotto. Esempi:"
#: ../../Zotlabs/Module/Settings/Tokens.php:150
-#: ../../Zotlabs/Widget/Settings_menu.php:92
+#: ../../Zotlabs/Widget/Settings_menu.php:100
msgid "Guest Access Tokens"
msgstr "Token di accesso ospite"
@@ -3888,6 +3907,98 @@ msgstr "Con scadenza (aaaa-mm-gg)"
msgid "Their Settings"
msgstr "Permessi concessi a te"
+#: ../../Zotlabs/Module/Settings/Oauth2.php:35
+msgid "Name and Secret are required"
+msgstr "Nome e Password sono obbligatori"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:83
+msgid "Add OAuth2 application"
+msgstr "Aggiungi applicazione OAuth2"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:86
+#: ../../Zotlabs/Module/Settings/Oauth2.php:114
+#: ../../Zotlabs/Module/Settings/Oauth.php:90
+msgid "Name of application"
+msgstr "Nome dell'applicazione"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+#: ../../Zotlabs/Module/Settings/Oauth.php:118
+#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
+msgid "Consumer Secret"
+msgstr "Consumer Secret"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:87
+#: ../../Zotlabs/Module/Settings/Oauth2.php:115
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:92
+msgid "Automatically generated - change if desired. Max length 20"
+msgstr "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:119
+msgid "Redirect"
+msgstr "Redirect"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:88
+#: ../../Zotlabs/Module/Settings/Oauth2.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:93
+msgid ""
+"Redirect URI - leave blank unless your application specifically requires "
+"this"
+msgstr "URI di riderezione - lasciare vuoto se non richiesto specificamente dall'applicazione"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+msgid "Grant Types"
+msgstr ""
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:89
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:117
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "leave blank unless your application sepcifically requires this"
+msgstr "lascia bianco a meno che la applicazione non lo richieda esplicitamente"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:90
+#: ../../Zotlabs/Module/Settings/Oauth2.php:118
+msgid "Authorization scope"
+msgstr "Ambito dell'autorizzazione"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:102
+msgid "OAuth2 Application not found."
+msgstr "Applicazione OAuth2 non trovata."
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:111
+#: ../../Zotlabs/Module/Settings/Oauth2.php:148
+#: ../../Zotlabs/Module/Settings/Oauth.php:87
+#: ../../Zotlabs/Module/Settings/Oauth.php:113
+#: ../../Zotlabs/Module/Settings/Oauth.php:149
+msgid "Add application"
+msgstr "Aggiungi una app"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:147
+msgid "Connected OAuth2 Apps"
+msgstr "Applicazioni OAuth2 connesse"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:151
+#: ../../Zotlabs/Module/Settings/Oauth.php:152
+msgid "Client key starts with"
+msgstr "La client key inizia con"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:152
+#: ../../Zotlabs/Module/Settings/Oauth.php:153
+msgid "No name"
+msgstr "Nessun nome"
+
+#: ../../Zotlabs/Module/Settings/Oauth2.php:153
+#: ../../Zotlabs/Module/Settings/Oauth.php:154
+msgid "Remove authorization"
+msgstr "Revoca l'autorizzazione"
+
#: ../../Zotlabs/Module/Settings/Account.php:20
msgid "Not valid email."
msgstr "Email non valida."
@@ -3944,16 +4055,6 @@ msgstr "Conferma la nuova password"
msgid "Leave password fields blank unless changing"
msgstr "Lascia vuoti questi campi per non cambiare la password"
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid "Your technical skill level"
-msgstr "Il tuo livello tecnico"
-
-#: ../../Zotlabs/Module/Settings/Account.php:116
-msgid ""
-"Used to provide a member experience and additional features consistent with "
-"your comfort level"
-msgstr ""
-
#: ../../Zotlabs/Module/Settings/Account.php:120
#: ../../Zotlabs/Module/Removeaccount.php:61
msgid "Remove Account"
@@ -3965,7 +4066,7 @@ msgstr "Elimina questo account e tutti i suoi canali"
#: ../../Zotlabs/Module/Settings/Featured.php:23
msgid "Affinity Slider settings updated."
-msgstr ""
+msgstr "Impostazioni dell'Affinity Slider salvate."
#: ../../Zotlabs/Module/Settings/Featured.php:38
msgid "No feature settings configured"
@@ -3973,31 +4074,31 @@ msgstr "Non hai componenti aggiuntivi da personalizzare"
#: ../../Zotlabs/Module/Settings/Featured.php:45
msgid "Default maximum affinity level"
-msgstr ""
+msgstr "Livello di affinità predefinito massimo "
#: ../../Zotlabs/Module/Settings/Featured.php:45
msgid "0-99 default 99"
-msgstr ""
+msgstr "0-99 predefinito 99"
#: ../../Zotlabs/Module/Settings/Featured.php:50
msgid "Default minimum affinity level"
-msgstr ""
+msgstr "Livello di affinità predefinito minimo"
#: ../../Zotlabs/Module/Settings/Featured.php:50
msgid "0-99 - default 0"
-msgstr ""
+msgstr "0-99 - predefinito 0"
#: ../../Zotlabs/Module/Settings/Featured.php:54
msgid "Affinity Slider Settings"
-msgstr ""
+msgstr "Impostazioni dell'Affinity Slider"
-#: ../../Zotlabs/Module/Settings/Featured.php:64
+#: ../../Zotlabs/Module/Settings/Featured.php:67
msgid "Addon Settings"
-msgstr ""
+msgstr "Impostazioni del componente aggiuntivo"
-#: ../../Zotlabs/Module/Settings/Featured.php:65
+#: ../../Zotlabs/Module/Settings/Featured.php:68
msgid "Please save/submit changes to any panel before opening another."
-msgstr ""
+msgstr "Salva/invia i cambiamenti prima di cambiare pannello."
#: ../../Zotlabs/Module/Settings/Display.php:139
#, php-format
@@ -4064,19 +4165,19 @@ msgstr "Mostra le faccine (smilies) come immagini"
#: ../../Zotlabs/Module/Settings/Display.php:204
msgid "Provide channel menu in navigation bar"
-msgstr ""
+msgstr "Visualizza il menu del canale nella barra di navigazione"
#: ../../Zotlabs/Module/Settings/Display.php:204
msgid "Default: channel menu located in app menu"
-msgstr ""
+msgstr "Predefinito: menu del canale nel menu delle app"
#: ../../Zotlabs/Module/Settings/Display.php:205
msgid "Manual conversation updates"
-msgstr ""
+msgstr "Aggiornamenti manuali alla conversazione"
#: ../../Zotlabs/Module/Settings/Display.php:205
msgid "Default is on, turning this off may increase screen jumping"
-msgstr ""
+msgstr "Se non è attiva può causare scorrimenti imprevisti della pagina"
#: ../../Zotlabs/Module/Settings/Display.php:206
msgid "Link post titles to source"
@@ -4112,82 +4213,38 @@ msgstr "dovrai cliccare sul post per mostrare i contenuti di dimensioni maggiori
msgid "Grid page max height of content (in pixels)"
msgstr "Altezza massima dei contenuti della tua rete (in pixel)"
-#: ../../Zotlabs/Module/Settings/Oauth.php:34
+#: ../../Zotlabs/Module/Settings/Oauth.php:35
msgid "Name is required"
msgstr "Il nome è obbligatorio"
-#: ../../Zotlabs/Module/Settings/Oauth.php:38
+#: ../../Zotlabs/Module/Settings/Oauth.php:39
msgid "Key and Secret are required"
msgstr "Key e Secret sono richiesti"
-#: ../../Zotlabs/Module/Settings/Oauth.php:86
-#: ../../Zotlabs/Module/Settings/Oauth.php:112
-#: ../../Zotlabs/Module/Settings/Oauth.php:148
-msgid "Add application"
-msgstr "Aggiungi una app"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:89
-msgid "Name of application"
-msgstr "Nome dell'applicazione"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:116
+#: ../../Zotlabs/Module/Settings/Oauth.php:91
+#: ../../Zotlabs/Module/Settings/Oauth.php:117
#: ../../addon/statusnet/statusnet.php:894 ../../addon/twitter/twitter.php:781
msgid "Consumer Key"
msgstr "Consumer Key"
-#: ../../Zotlabs/Module/Settings/Oauth.php:90
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-msgid "Automatically generated - change if desired. Max length 20"
-msgstr "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:91
-#: ../../Zotlabs/Module/Settings/Oauth.php:117
-#: ../../addon/statusnet/statusnet.php:893 ../../addon/twitter/twitter.php:782
-msgid "Consumer Secret"
-msgstr "Consumer Secret"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-#: ../../Zotlabs/Module/Settings/Oauth.php:118
-msgid "Redirect"
-msgstr "Redirect"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:92
-msgid ""
-"Redirect URI - leave blank unless your application specifically requires "
-"this"
-msgstr "URI di riderezione - lasciare vuoto se non richiesto specificamente dall'applicazione"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
-#: ../../Zotlabs/Module/Settings/Oauth.php:119
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
+#: ../../Zotlabs/Module/Settings/Oauth.php:120
msgid "Icon url"
msgstr "Url icona"
-#: ../../Zotlabs/Module/Settings/Oauth.php:93
+#: ../../Zotlabs/Module/Settings/Oauth.php:94
#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147
msgid "Optional"
msgstr "Facoltativo"
-#: ../../Zotlabs/Module/Settings/Oauth.php:104
+#: ../../Zotlabs/Module/Settings/Oauth.php:105
msgid "Application not found."
msgstr "Applicazione non trovata."
-#: ../../Zotlabs/Module/Settings/Oauth.php:147
+#: ../../Zotlabs/Module/Settings/Oauth.php:148
msgid "Connected Apps"
msgstr "App connesse"
-#: ../../Zotlabs/Module/Settings/Oauth.php:151
-msgid "Client key starts with"
-msgstr "La client key inizia con"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:152
-msgid "No name"
-msgstr "Nessun nome"
-
-#: ../../Zotlabs/Module/Settings/Oauth.php:153
-msgid "Remove authorization"
-msgstr "Revoca l'autorizzazione"
-
#: ../../Zotlabs/Module/Embedphotos.php:140
#: ../../Zotlabs/Module/Photos.php:811 ../../Zotlabs/Module/Photos.php:1350
#: ../../Zotlabs/Widget/Portfolio.php:87 ../../Zotlabs/Widget/Album.php:78
@@ -4201,13 +4258,12 @@ msgid "Edit Album"
msgstr "Modifica album"
#: ../../Zotlabs/Module/Embedphotos.php:158
-#: ../../Zotlabs/Module/Photos.php:712 ../../Zotlabs/Module/Photos.php:844
-#: ../../Zotlabs/Module/Photos.php:1381
+#: ../../Zotlabs/Module/Photos.php:712
#: ../../Zotlabs/Module/Profile_photo.php:458
-#: ../../Zotlabs/Module/Cover_photo.php:361
-#: ../../Zotlabs/Storage/Browser.php:277 ../../Zotlabs/Storage/Browser.php:384
-#: ../../Zotlabs/Widget/Cdav.php:133 ../../Zotlabs/Widget/Cdav.php:169
-#: ../../Zotlabs/Widget/Portfolio.php:110 ../../Zotlabs/Widget/Album.php:97
+#: ../../Zotlabs/Module/Cover_photo.php:362
+#: ../../Zotlabs/Storage/Browser.php:384 ../../Zotlabs/Widget/Cdav.php:133
+#: ../../Zotlabs/Widget/Cdav.php:169 ../../Zotlabs/Widget/Portfolio.php:110
+#: ../../Zotlabs/Widget/Album.php:97
msgid "Upload"
msgstr "Carica"
@@ -4215,60 +4271,60 @@ msgstr "Carica"
msgid "Some blurb about what to do when you're new here"
msgstr "Qualche suggerimento per i nuovi utenti su cosa fare"
-#: ../../Zotlabs/Module/Thing.php:115
+#: ../../Zotlabs/Module/Thing.php:120
msgid "Thing updated"
msgstr "L'oggetto è stato aggiornato"
-#: ../../Zotlabs/Module/Thing.php:167
+#: ../../Zotlabs/Module/Thing.php:172
msgid "Object store: failed"
msgstr "Impossibile memorizzare l'oggetto."
-#: ../../Zotlabs/Module/Thing.php:171
+#: ../../Zotlabs/Module/Thing.php:176
msgid "Thing added"
msgstr "L'Oggetto è stato aggiunto"
-#: ../../Zotlabs/Module/Thing.php:197
+#: ../../Zotlabs/Module/Thing.php:202
#, php-format
msgid "OBJ: %1$s %2$s %3$s"
msgstr "OBJ: %1$s %2$s %3$s"
-#: ../../Zotlabs/Module/Thing.php:260
+#: ../../Zotlabs/Module/Thing.php:265
msgid "Show Thing"
msgstr "Mostra l'oggetto"
-#: ../../Zotlabs/Module/Thing.php:267
+#: ../../Zotlabs/Module/Thing.php:272
msgid "item not found."
msgstr "non trovato."
-#: ../../Zotlabs/Module/Thing.php:300
+#: ../../Zotlabs/Module/Thing.php:305
msgid "Edit Thing"
msgstr "Modifica l'oggetto"
-#: ../../Zotlabs/Module/Thing.php:302 ../../Zotlabs/Module/Thing.php:359
+#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:364
msgid "Select a profile"
msgstr "Scegli un profilo"
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Post an activity"
msgstr "Pubblica un'attività"
-#: ../../Zotlabs/Module/Thing.php:306 ../../Zotlabs/Module/Thing.php:362
+#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:367
msgid "Only sends to viewers of the applicable profile"
msgstr "Invia solo a chi può vedere il profilo scelto"
-#: ../../Zotlabs/Module/Thing.php:308 ../../Zotlabs/Module/Thing.php:364
+#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:369
msgid "Name of thing e.g. something"
msgstr "Nome dell'oggetto"
-#: ../../Zotlabs/Module/Thing.php:310 ../../Zotlabs/Module/Thing.php:365
+#: ../../Zotlabs/Module/Thing.php:315 ../../Zotlabs/Module/Thing.php:370
msgid "URL of thing (optional)"
msgstr "Indirizzo web dell'oggetto (facoltativo)"
-#: ../../Zotlabs/Module/Thing.php:312 ../../Zotlabs/Module/Thing.php:366
+#: ../../Zotlabs/Module/Thing.php:317 ../../Zotlabs/Module/Thing.php:371
msgid "URL for photo of thing (optional)"
msgstr "Indirizzo di un'immagine dell'oggetto (facoltativo)"
-#: ../../Zotlabs/Module/Thing.php:314 ../../Zotlabs/Module/Thing.php:367
+#: ../../Zotlabs/Module/Thing.php:319 ../../Zotlabs/Module/Thing.php:372
#: ../../Zotlabs/Module/Photos.php:702 ../../Zotlabs/Module/Photos.php:1071
#: ../../Zotlabs/Module/Connedit.php:676 ../../Zotlabs/Module/Chat.php:235
#: ../../Zotlabs/Module/Filestorage.php:147
@@ -4276,7 +4332,7 @@ msgstr "Indirizzo di un'immagine dell'oggetto (facoltativo)"
msgid "Permissions"
msgstr "Permessi"
-#: ../../Zotlabs/Module/Thing.php:357
+#: ../../Zotlabs/Module/Thing.php:362
msgid "Add Thing to your Profile"
msgstr "Aggiungi l'oggetto al tuo profilo"
@@ -4290,56 +4346,56 @@ msgstr "Non ci sono nuove notifiche di sistema."
msgid "System Notifications"
msgstr "Notifiche di sistema"
-#: ../../Zotlabs/Module/Follow.php:31
-msgid "Channel added."
-msgstr "Canale aggiunto."
+#: ../../Zotlabs/Module/Follow.php:36
+msgid "Connection added."
+msgstr "Contatto aggiunto."
-#: ../../Zotlabs/Module/Import.php:143
+#: ../../Zotlabs/Module/Import.php:144
#, php-format
msgid "Your service plan only allows %d channels."
msgstr "Il tuo account permette di creare al massimo %d canali."
-#: ../../Zotlabs/Module/Import.php:157
+#: ../../Zotlabs/Module/Import.php:158
msgid "No channel. Import failed."
msgstr "Nessun canale. Import fallito."
-#: ../../Zotlabs/Module/Import.php:481
+#: ../../Zotlabs/Module/Import.php:482
#: ../../addon/diaspora/import_diaspora.php:139
msgid "Import completed."
msgstr "L'importazione è terminata con successo."
-#: ../../Zotlabs/Module/Import.php:509
+#: ../../Zotlabs/Module/Import.php:510
msgid "You must be logged in to use this feature."
msgstr "Per questa funzionalità devi aver effettuato l'accesso."
-#: ../../Zotlabs/Module/Import.php:514
+#: ../../Zotlabs/Module/Import.php:515
msgid "Import Channel"
msgstr "Importa un canale"
-#: ../../Zotlabs/Module/Import.php:515
+#: ../../Zotlabs/Module/Import.php:516
msgid ""
"Use this form to import an existing channel from a different server/hub. You"
" may retrieve the channel identity from the old server/hub via the network "
"or provide an export file."
msgstr "Usa questo modulo per importare un tuo canale da un altro hub. Puoi ottenere i dati identificativi del canale direttamente dall'altro hub oppure tramite un file esportato in precedenza."
-#: ../../Zotlabs/Module/Import.php:517
+#: ../../Zotlabs/Module/Import.php:518
msgid "Or provide the old server/hub details"
msgstr "Oppure fornisci i dettagli del vecchio hub"
-#: ../../Zotlabs/Module/Import.php:518
+#: ../../Zotlabs/Module/Import.php:519
msgid "Your old identity address (xyz@example.com)"
msgstr "Il tuo vecchio identificativo (per esempio pippo@esempio.com)"
-#: ../../Zotlabs/Module/Import.php:519
+#: ../../Zotlabs/Module/Import.php:520
msgid "Your old login email address"
msgstr "L'email che usavi per accedere sul vecchio hub"
-#: ../../Zotlabs/Module/Import.php:520
+#: ../../Zotlabs/Module/Import.php:521
msgid "Your old login password"
msgstr "La password per il vecchio hub"
-#: ../../Zotlabs/Module/Import.php:521
+#: ../../Zotlabs/Module/Import.php:522
msgid ""
"For either option, please choose whether to make this hub your new primary "
"address, or whether your old location should continue this role. You will be"
@@ -4347,19 +4403,19 @@ msgid ""
"primary location for files, photos, and media."
msgstr "Scegli se vuoi spostare il tuo indirizzo primario su questo hub, oppure se preferisci che quello vecchio resti tale. Potrai pubblicare da entrambi i hub, ma solamente uno sarà indicato come la posizione su cui risiedono i tuoi file, foto, ecc."
-#: ../../Zotlabs/Module/Import.php:522
+#: ../../Zotlabs/Module/Import.php:523
msgid "Make this hub my primary location"
msgstr "Rendi questo hub il mio indirizzo primario"
-#: ../../Zotlabs/Module/Import.php:523
+#: ../../Zotlabs/Module/Import.php:524
msgid "Move this channel (disable all previous locations)"
-msgstr ""
+msgstr "Sposta questo canale (disabilita le posizioni precedenti)"
-#: ../../Zotlabs/Module/Import.php:524
+#: ../../Zotlabs/Module/Import.php:525
msgid "Import a few months of posts if possible (limited by available memory"
-msgstr ""
+msgstr "Importa alcune mesi di post se possibile (dipende dalla memoria disponibile"
-#: ../../Zotlabs/Module/Import.php:525
+#: ../../Zotlabs/Module/Import.php:526
msgid ""
"This process may take several minutes to complete. Please submit the form "
"only once and leave this page open until finished."
@@ -4369,16 +4425,16 @@ msgstr "Questa funzione potrebbe impiegare molto tempo a terminare. Per favore l
msgid "Authentication failed."
msgstr "Autenticazione fallita."
-#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1583
-#: ../../include/channel.php:2307
+#: ../../Zotlabs/Module/Rmagic.php:75 ../../boot.php:1590
+#: ../../include/channel.php:2318
msgid "Remote Authentication"
msgstr "Accedi tramite il tuo hub"
-#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2308
+#: ../../Zotlabs/Module/Rmagic.php:76 ../../include/channel.php:2319
msgid "Enter your channel address (e.g. channel@example.com)"
msgstr "Inserisci l'indirizzo del tuo canale (ad esempio lucia@esempio.com)"
-#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2309
+#: ../../Zotlabs/Module/Rmagic.php:77 ../../include/channel.php:2320
msgid "Authenticate"
msgstr "Accedi"
@@ -4386,7 +4442,7 @@ msgstr "Accedi"
msgid "Permissions denied."
msgstr "Permesso negato."
-#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2426
+#: ../../Zotlabs/Module/Cal.php:344 ../../include/text.php:2446
msgid "Import"
msgstr "Importa"
@@ -4418,7 +4474,7 @@ msgstr "Modifica il block"
#: ../../Zotlabs/Module/Profile.php:93
msgid "vcard"
-msgstr ""
+msgstr "vcard"
#: ../../Zotlabs/Module/Apps.php:48 ../../Zotlabs/Lib/Apps.php:228
msgid "Apps"
@@ -4426,11 +4482,11 @@ msgstr "App"
#: ../../Zotlabs/Module/Apps.php:51
msgid "Manage apps"
-msgstr ""
+msgstr "Gestisci le app"
#: ../../Zotlabs/Module/Apps.php:52
msgid "Create new app"
-msgstr ""
+msgstr "Crea nuova app"
#: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:268
#, php-format
@@ -4446,155 +4502,169 @@ msgstr "Umore"
msgid "Set your current mood and tell your friends"
msgstr "Scegli il tuo umore attuale per mostrarlo agli amici"
-#: ../../Zotlabs/Module/Connections.php:54
-#: ../../Zotlabs/Module/Connections.php:156
-#: ../../Zotlabs/Module/Connections.php:245
+#: ../../Zotlabs/Module/Connections.php:55
+#: ../../Zotlabs/Module/Connections.php:112
+#: ../../Zotlabs/Module/Connections.php:256
+msgid "Active"
+msgstr "Attivo"
+
+#: ../../Zotlabs/Module/Connections.php:60
+#: ../../Zotlabs/Module/Connections.php:164
+#: ../../Zotlabs/Module/Connections.php:261
msgid "Blocked"
msgstr "Bloccati"
-#: ../../Zotlabs/Module/Connections.php:59
-#: ../../Zotlabs/Module/Connections.php:163
-#: ../../Zotlabs/Module/Connections.php:244
+#: ../../Zotlabs/Module/Connections.php:65
+#: ../../Zotlabs/Module/Connections.php:171
+#: ../../Zotlabs/Module/Connections.php:260
msgid "Ignored"
msgstr "Ignorati"
-#: ../../Zotlabs/Module/Connections.php:64
-#: ../../Zotlabs/Module/Connections.php:177
-#: ../../Zotlabs/Module/Connections.php:243
+#: ../../Zotlabs/Module/Connections.php:70
+#: ../../Zotlabs/Module/Connections.php:185
+#: ../../Zotlabs/Module/Connections.php:259
msgid "Hidden"
msgstr "Nascosti"
-#: ../../Zotlabs/Module/Connections.php:69
-#: ../../Zotlabs/Module/Connections.php:170
+#: ../../Zotlabs/Module/Connections.php:75
+#: ../../Zotlabs/Module/Connections.php:178
msgid "Archived/Unreachable"
-msgstr ""
+msgstr "Archiviato/Irraggiungibile"
-#: ../../Zotlabs/Module/Connections.php:74
-#: ../../Zotlabs/Module/Connections.php:83 ../../Zotlabs/Module/Menu.php:116
+#: ../../Zotlabs/Module/Connections.php:80
+#: ../../Zotlabs/Module/Connections.php:89 ../../Zotlabs/Module/Menu.php:116
#: ../../Zotlabs/Module/Notifications.php:52
-#: ../../include/conversation.php:1714
+#: ../../include/conversation.php:1717
msgid "New"
msgstr "Novità"
-#: ../../Zotlabs/Module/Connections.php:88
-#: ../../Zotlabs/Module/Connections.php:102
+#: ../../Zotlabs/Module/Connections.php:94
+#: ../../Zotlabs/Module/Connections.php:108
#: ../../Zotlabs/Module/Connedit.php:713 ../../Zotlabs/Widget/Affinity.php:26
msgid "All"
msgstr "Tutti"
-#: ../../Zotlabs/Module/Connections.php:133
+#: ../../Zotlabs/Module/Connections.php:140
+msgid "Active Connections"
+msgstr "Contatto Attivo"
+
+#: ../../Zotlabs/Module/Connections.php:143
+msgid "Show active connections"
+msgstr "Mostra i contatti atttivi"
+
+#: ../../Zotlabs/Module/Connections.php:147
#: ../../Zotlabs/Widget/Notifications.php:84
msgid "New Connections"
msgstr "Nuovi contatti"
-#: ../../Zotlabs/Module/Connections.php:136
+#: ../../Zotlabs/Module/Connections.php:150
msgid "Show pending (new) connections"
msgstr "Richieste di contatto in attesa"
-#: ../../Zotlabs/Module/Connections.php:143
-msgid "Show all connections"
-msgstr "Mostra tutti i contatti"
-
-#: ../../Zotlabs/Module/Connections.php:159
+#: ../../Zotlabs/Module/Connections.php:167
msgid "Only show blocked connections"
msgstr "Mostra solo i contatti bloccati"
-#: ../../Zotlabs/Module/Connections.php:166
+#: ../../Zotlabs/Module/Connections.php:174
msgid "Only show ignored connections"
msgstr "Mostra solo i contatti ignorati"
-#: ../../Zotlabs/Module/Connections.php:173
+#: ../../Zotlabs/Module/Connections.php:181
msgid "Only show archived/unreachable connections"
-msgstr ""
+msgstr "Mostra solo i contatti archiviati/irraggiungibili"
-#: ../../Zotlabs/Module/Connections.php:180
+#: ../../Zotlabs/Module/Connections.php:188
msgid "Only show hidden connections"
msgstr "Mostra solo i contatti nascosti"
-#: ../../Zotlabs/Module/Connections.php:241
+#: ../../Zotlabs/Module/Connections.php:203
+msgid "Show all connections"
+msgstr "Mostra tutti i contatti"
+
+#: ../../Zotlabs/Module/Connections.php:257
msgid "Pending approval"
msgstr "In attesa di conferma"
-#: ../../Zotlabs/Module/Connections.php:242
+#: ../../Zotlabs/Module/Connections.php:258
msgid "Archived"
msgstr "Archiviati"
-#: ../../Zotlabs/Module/Connections.php:246
+#: ../../Zotlabs/Module/Connections.php:262
msgid "Not connected at this location"
-msgstr ""
+msgstr "Non connesso a questa location"
-#: ../../Zotlabs/Module/Connections.php:263
+#: ../../Zotlabs/Module/Connections.php:279
#, php-format
msgid "%1$s [%2$s]"
msgstr "%1$s [%2$s]"
-#: ../../Zotlabs/Module/Connections.php:264
+#: ../../Zotlabs/Module/Connections.php:280
msgid "Edit connection"
msgstr "Modifica il contatto"
-#: ../../Zotlabs/Module/Connections.php:266
+#: ../../Zotlabs/Module/Connections.php:282
msgid "Delete connection"
msgstr "Elimina il contatto"
-#: ../../Zotlabs/Module/Connections.php:275
+#: ../../Zotlabs/Module/Connections.php:291
msgid "Channel address"
msgstr "Indirizzo del canale"
-#: ../../Zotlabs/Module/Connections.php:277
+#: ../../Zotlabs/Module/Connections.php:293
msgid "Network"
msgstr "Network"
-#: ../../Zotlabs/Module/Connections.php:280
+#: ../../Zotlabs/Module/Connections.php:296
msgid "Call"
-msgstr ""
+msgstr "Chiama"
-#: ../../Zotlabs/Module/Connections.php:282
+#: ../../Zotlabs/Module/Connections.php:298
msgid "Status"
msgstr "Stato"
-#: ../../Zotlabs/Module/Connections.php:284
+#: ../../Zotlabs/Module/Connections.php:300
msgid "Connected"
msgstr "In contatto"
-#: ../../Zotlabs/Module/Connections.php:286
+#: ../../Zotlabs/Module/Connections.php:302
msgid "Approve connection"
msgstr "Approva questo contatto"
-#: ../../Zotlabs/Module/Connections.php:288
+#: ../../Zotlabs/Module/Connections.php:304
msgid "Ignore connection"
msgstr "Ignora il contatto"
-#: ../../Zotlabs/Module/Connections.php:289
+#: ../../Zotlabs/Module/Connections.php:305
#: ../../Zotlabs/Module/Connedit.php:630
msgid "Ignore"
msgstr "Ignora"
-#: ../../Zotlabs/Module/Connections.php:290
+#: ../../Zotlabs/Module/Connections.php:306
msgid "Recent activity"
msgstr "Attività recenti"
-#: ../../Zotlabs/Module/Connections.php:315 ../../Zotlabs/Lib/Apps.php:235
+#: ../../Zotlabs/Module/Connections.php:331 ../../Zotlabs/Lib/Apps.php:235
#: ../../include/text.php:973
msgid "Connections"
msgstr "Contatti"
-#: ../../Zotlabs/Module/Connections.php:320
+#: ../../Zotlabs/Module/Connections.php:336
msgid "Search your connections"
msgstr "Cerca tra i contatti"
-#: ../../Zotlabs/Module/Connections.php:321
+#: ../../Zotlabs/Module/Connections.php:337
msgid "Connections search"
msgstr "Ricerca tra i contatti"
-#: ../../Zotlabs/Module/Connections.php:322
-#: ../../Zotlabs/Module/Directory.php:396
-#: ../../Zotlabs/Module/Directory.php:401 ../../include/contact_widgets.php:23
+#: ../../Zotlabs/Module/Connections.php:338
+#: ../../Zotlabs/Module/Directory.php:401
+#: ../../Zotlabs/Module/Directory.php:406 ../../include/contact_widgets.php:23
msgid "Find"
msgstr "Cerca"
#: ../../Zotlabs/Module/Viewsrc.php:43
msgid "item"
-msgstr ""
+msgstr "elemento"
#: ../../Zotlabs/Module/Viewsrc.php:55
msgid "Source of Item"
@@ -4690,13 +4760,9 @@ msgstr "o seleziona un album esistente (doppio click)"
msgid "Create a status post for this upload"
msgstr "Pubblica sulla bacheca"
-#: ../../Zotlabs/Module/Photos.php:698
-msgid "Caption (optional):"
-msgstr "Titolo (facoltativo):"
-
#: ../../Zotlabs/Module/Photos.php:699
-msgid "Description (optional):"
-msgstr "Descrizione (facoltativa):"
+msgid "Description (optional)"
+msgstr "Descrizione (opzionale)"
#: ../../Zotlabs/Module/Photos.php:785
msgid "Show Newest First"
@@ -4706,6 +4772,10 @@ msgstr "Prima i più recenti"
msgid "Show Oldest First"
msgstr "Prima i più vecchi"
+#: ../../Zotlabs/Module/Photos.php:844 ../../Zotlabs/Module/Photos.php:1381
+msgid "Add Photos"
+msgstr "Aggiungi foto"
+
#: ../../Zotlabs/Module/Photos.php:892
msgid "Permission denied. Access to this item may be restricted."
msgstr "Permesso negato. L'accesso a questo elemento può essere stato limitato."
@@ -4754,10 +4824,6 @@ msgstr "Inserisci il nome del nuovo album"
msgid "or select an existing one (doubleclick)"
msgstr "o seleziona uno esistente (doppio click)"
-#: ../../Zotlabs/Module/Photos.php:1068
-msgid "Caption"
-msgstr "Didascalia"
-
#: ../../Zotlabs/Module/Photos.php:1070
msgid "Add a Tag"
msgstr "Aggiungi tag"
@@ -4784,24 +4850,24 @@ msgid "Please wait"
msgstr "Attendere"
#: ../../Zotlabs/Module/Photos.php:1119 ../../Zotlabs/Module/Photos.php:1237
-#: ../../Zotlabs/Lib/ThreadItem.php:747
+#: ../../Zotlabs/Lib/ThreadItem.php:749
msgid "This is you"
msgstr "Questo sei tu"
#: ../../Zotlabs/Module/Photos.php:1121 ../../Zotlabs/Module/Photos.php:1239
-#: ../../Zotlabs/Lib/ThreadItem.php:749 ../../include/js_strings.php:6
+#: ../../Zotlabs/Lib/ThreadItem.php:751 ../../include/js_strings.php:6
msgid "Comment"
msgstr "Commento"
#: ../../Zotlabs/Module/Photos.php:1137 ../../include/conversation.php:618
msgctxt "title"
msgid "Likes"
-msgstr "Mi piace"
+msgstr "\"Mi piace\""
#: ../../Zotlabs/Module/Photos.php:1137 ../../include/conversation.php:618
msgctxt "title"
msgid "Dislikes"
-msgstr "Non mi piace"
+msgstr "\"Non mi piace\""
#: ../../Zotlabs/Module/Photos.php:1138 ../../include/conversation.php:619
msgctxt "title"
@@ -4839,21 +4905,21 @@ msgid "View all"
msgstr "Vedi tutto"
#: ../../Zotlabs/Module/Photos.php:1160 ../../Zotlabs/Lib/ThreadItem.php:205
-#: ../../include/conversation.php:1978 ../../include/channel.php:1540
-#: ../../include/taxonomy.php:597
+#: ../../include/conversation.php:1981 ../../include/channel.php:1539
+#: ../../include/taxonomy.php:660
msgctxt "noun"
msgid "Like"
msgid_plural "Likes"
msgstr[0] "Mi piace"
-msgstr[1] "Mi piace"
+msgstr[1] "\"Mi piace\""
#: ../../Zotlabs/Module/Photos.php:1165 ../../Zotlabs/Lib/ThreadItem.php:210
-#: ../../include/conversation.php:1981
+#: ../../include/conversation.php:1984
msgctxt "noun"
msgid "Dislike"
msgid_plural "Dislikes"
msgstr[0] "Non mi piace"
-msgstr[1] "Non mi piace"
+msgstr[1] "\"Non mi piace\""
#: ../../Zotlabs/Module/Photos.php:1265
msgid "Photo Tools"
@@ -4870,12 +4936,12 @@ msgstr "Mappa"
#: ../../Zotlabs/Module/Photos.php:1287 ../../Zotlabs/Lib/ThreadItem.php:415
msgctxt "noun"
msgid "Likes"
-msgstr "Mi piace"
+msgstr "\"Mi piace\""
#: ../../Zotlabs/Module/Photos.php:1288 ../../Zotlabs/Lib/ThreadItem.php:416
msgctxt "noun"
msgid "Dislikes"
-msgstr "Non mi piace"
+msgstr "\"Non mi piace\""
#: ../../Zotlabs/Module/Photos.php:1293 ../../Zotlabs/Lib/ThreadItem.php:421
#: ../../include/acl_selectors.php:125
@@ -4883,231 +4949,238 @@ msgid "Close"
msgstr "Chiudi"
#: ../../Zotlabs/Module/Photos.php:1365 ../../Zotlabs/Module/Photos.php:1378
-#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:656
+#: ../../Zotlabs/Module/Photos.php:1379 ../../include/photos.php:663
msgid "Recent Photos"
msgstr "Foto recenti"
-#: ../../Zotlabs/Module/Wiki.php:30
+#: ../../Zotlabs/Module/Wiki.php:30 ../../addon/cart/cart.php:1135
msgid "Profile Unavailable."
-msgstr ""
+msgstr "Profilo non dispobibile"
-#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:108
-#: ../../addon/gitwiki/Mod_Gitwiki.php:42
+#: ../../Zotlabs/Module/Wiki.php:44 ../../Zotlabs/Module/Cloud.php:114
msgid "Not found"
msgstr "Non trovato"
-#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/gitwiki/Mod_Gitwiki.php:62
+#: ../../Zotlabs/Module/Wiki.php:68 ../../addon/cart/myshop.php:114
+#: ../../addon/cart/cart.php:1204 ../../addon/cart/manual_payments.php:58
msgid "Invalid channel"
msgstr "Canale non valido"
-#: ../../Zotlabs/Module/Wiki.php:124 ../../addon/gitwiki/Mod_Gitwiki.php:107
+#: ../../Zotlabs/Module/Wiki.php:124
msgid "Error retrieving wiki"
msgstr "Errore caricamento wiki"
-#: ../../Zotlabs/Module/Wiki.php:131 ../../addon/gitwiki/Mod_Gitwiki.php:114
+#: ../../Zotlabs/Module/Wiki.php:131
msgid "Error creating zip file export folder"
msgstr "Errore nella creazione della cartella per l'esportazione in zip"
-#: ../../Zotlabs/Module/Wiki.php:182 ../../addon/gitwiki/Mod_Gitwiki.php:132
+#: ../../Zotlabs/Module/Wiki.php:182
msgid "Error downloading wiki: "
msgstr "Errore scaricamento wiki:"
-#: ../../Zotlabs/Module/Wiki.php:197 ../../addon/gitwiki/Mod_Gitwiki.php:146
-#: ../../include/conversation.php:1925 ../../include/nav.php:494
+#: ../../Zotlabs/Module/Wiki.php:197 ../../include/conversation.php:1928
+#: ../../include/nav.php:494
msgid "Wikis"
msgstr "Pagine wiki"
-#: ../../Zotlabs/Module/Wiki.php:203 ../../addon/gitwiki/Mod_Gitwiki.php:152
+#: ../../Zotlabs/Module/Wiki.php:203
msgid "Download"
msgstr "Scarica"
#: ../../Zotlabs/Module/Wiki.php:205 ../../Zotlabs/Module/Chat.php:256
-#: ../../Zotlabs/Module/Profiles.php:834 ../../Zotlabs/Module/Manage.php:145
-#: ../../addon/gitwiki/Mod_Gitwiki.php:154
+#: ../../Zotlabs/Module/Profiles.php:831 ../../Zotlabs/Module/Manage.php:145
msgid "Create New"
msgstr "Crea nuova"
-#: ../../Zotlabs/Module/Wiki.php:207 ../../addon/gitwiki/Mod_Gitwiki.php:156
+#: ../../Zotlabs/Module/Wiki.php:207
msgid "Wiki name"
msgstr "Nome wiki"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../addon/gitwiki/Mod_Gitwiki.php:157
+#: ../../Zotlabs/Module/Wiki.php:208
msgid "Content type"
-msgstr ""
+msgstr "Tipo di contenuto"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../addon/mdpost/mdpost.php:40
-#: ../../include/text.php:1868
+#: ../../include/text.php:1869
msgid "Markdown"
-msgstr ""
+msgstr "Markdown"
-#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Module/Wiki.php:350
#: ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1866
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1867
msgid "BBcode"
-msgstr ""
+msgstr "BBCode"
#: ../../Zotlabs/Module/Wiki.php:208 ../../Zotlabs/Widget/Wiki_pages.php:36
-#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1869
+#: ../../Zotlabs/Widget/Wiki_pages.php:93 ../../include/text.php:1870
msgid "Text"
-msgstr ""
+msgstr "Testo"
#: ../../Zotlabs/Module/Wiki.php:210 ../../Zotlabs/Storage/Browser.php:284
-#: ../../addon/gitwiki/Mod_Gitwiki.php:159
msgid "Type"
msgstr "Tipo"
#: ../../Zotlabs/Module/Wiki.php:211
msgid "Any&nbsp;type"
-msgstr ""
+msgstr "Qualsiasi&nbsp;tipo"
#: ../../Zotlabs/Module/Wiki.php:218
msgid "Lock content type"
-msgstr ""
+msgstr "Blocca il tipo di contenuto"
-#: ../../Zotlabs/Module/Wiki.php:219 ../../addon/gitwiki/Mod_Gitwiki.php:166
+#: ../../Zotlabs/Module/Wiki.php:219
msgid "Create a status post for this wiki"
-msgstr ""
+msgstr "Crea un messaggio di stato per questo wiki"
#: ../../Zotlabs/Module/Wiki.php:220
msgid "Edit Wiki Name"
-msgstr ""
+msgstr "Modifica il nome del Wiki"
-#: ../../Zotlabs/Module/Wiki.php:262 ../../addon/gitwiki/Mod_Gitwiki.php:185
+#: ../../Zotlabs/Module/Wiki.php:262
msgid "Wiki not found"
-msgstr ""
+msgstr "Wiki non trovato"
-#: ../../Zotlabs/Module/Wiki.php:286 ../../addon/gitwiki/Mod_Gitwiki.php:210
+#: ../../Zotlabs/Module/Wiki.php:286
msgid "Rename page"
-msgstr ""
+msgstr "Rinomina la pagina"
-#: ../../Zotlabs/Module/Wiki.php:305 ../../addon/gitwiki/Mod_Gitwiki.php:214
+#: ../../Zotlabs/Module/Wiki.php:307
msgid "Error retrieving page content"
msgstr "Errore nel caricamento del contenuto della pagina"
-#: ../../Zotlabs/Module/Wiki.php:313 ../../Zotlabs/Module/Wiki.php:315
+#: ../../Zotlabs/Module/Wiki.php:315 ../../Zotlabs/Module/Wiki.php:317
msgid "New page"
-msgstr ""
+msgstr "Nuova pagina"
-#: ../../Zotlabs/Module/Wiki.php:343 ../../addon/gitwiki/Mod_Gitwiki.php:242
+#: ../../Zotlabs/Module/Wiki.php:345
msgid "Revision Comparison"
msgstr "Confronto tra revisioni"
-#: ../../Zotlabs/Module/Wiki.php:344 ../../addon/gitwiki/Mod_Gitwiki.php:243
+#: ../../Zotlabs/Module/Wiki.php:346
msgid "Revert"
msgstr "Ripristina"
-#: ../../Zotlabs/Module/Wiki.php:351
+#: ../../Zotlabs/Module/Wiki.php:353
msgid "Short description of your changes (optional)"
-msgstr ""
+msgstr "Breve descrizione delle tue modifiche (opzionale)"
-#: ../../Zotlabs/Module/Wiki.php:358 ../../addon/gitwiki/Mod_Gitwiki.php:252
+#: ../../Zotlabs/Module/Wiki.php:362
msgid "Source"
msgstr "Sorgente"
-#: ../../Zotlabs/Module/Wiki.php:368 ../../addon/gitwiki/Mod_Gitwiki.php:260
+#: ../../Zotlabs/Module/Wiki.php:372
msgid "New page name"
-msgstr ""
+msgstr "Nome della nuova pagina"
-#: ../../Zotlabs/Module/Wiki.php:373 ../../addon/gitwiki/Mod_Gitwiki.php:265
-#: ../../include/conversation.php:1282
+#: ../../Zotlabs/Module/Wiki.php:377 ../../include/conversation.php:1282
msgid "Embed image from photo albums"
msgstr "Inserisci un'immagine dall'album foto"
-#: ../../Zotlabs/Module/Wiki.php:374 ../../addon/gitwiki/Mod_Gitwiki.php:266
-#: ../../include/conversation.php:1385
+#: ../../Zotlabs/Module/Wiki.php:378 ../../include/conversation.php:1388
msgid "Embed an image from your albums"
msgstr "Inserisci un'immagine dai tuoi album"
-#: ../../Zotlabs/Module/Wiki.php:376
+#: ../../Zotlabs/Module/Wiki.php:380
#: ../../Zotlabs/Module/Profile_photo.php:465
-#: ../../Zotlabs/Module/Cover_photo.php:366
-#: ../../addon/gitwiki/Mod_Gitwiki.php:268 ../../include/conversation.php:1387
-#: ../../include/conversation.php:1434
+#: ../../Zotlabs/Module/Cover_photo.php:367
+#: ../../include/conversation.php:1390 ../../include/conversation.php:1437
msgid "OK"
msgstr "OK"
-#: ../../Zotlabs/Module/Wiki.php:377 ../../addon/gitwiki/Mod_Gitwiki.php:269
-#: ../../include/conversation.php:1318
+#: ../../Zotlabs/Module/Wiki.php:381
+#: ../../Zotlabs/Module/Profile_photo.php:466
+#: ../../Zotlabs/Module/Cover_photo.php:368
+#: ../../include/conversation.php:1320
msgid "Choose images to embed"
msgstr "Scegli le immagini da inserire"
-#: ../../Zotlabs/Module/Wiki.php:378 ../../addon/gitwiki/Mod_Gitwiki.php:270
-#: ../../include/conversation.php:1319
+#: ../../Zotlabs/Module/Wiki.php:382
+#: ../../Zotlabs/Module/Profile_photo.php:467
+#: ../../Zotlabs/Module/Cover_photo.php:369
+#: ../../include/conversation.php:1321
msgid "Choose an album"
msgstr "Scegli un album"
-#: ../../Zotlabs/Module/Wiki.php:379 ../../addon/gitwiki/Mod_Gitwiki.php:271
+#: ../../Zotlabs/Module/Wiki.php:383
+#: ../../Zotlabs/Module/Profile_photo.php:468
+#: ../../Zotlabs/Module/Cover_photo.php:370
msgid "Choose a different album"
-msgstr ""
+msgstr "Scegli un album diverso"
-#: ../../Zotlabs/Module/Wiki.php:380 ../../addon/gitwiki/Mod_Gitwiki.php:272
-#: ../../include/conversation.php:1321
+#: ../../Zotlabs/Module/Wiki.php:384
+#: ../../Zotlabs/Module/Profile_photo.php:469
+#: ../../Zotlabs/Module/Cover_photo.php:371
+#: ../../include/conversation.php:1323
msgid "Error getting album list"
msgstr "Errore nell'ottenere l'elenco degli album"
-#: ../../Zotlabs/Module/Wiki.php:381 ../../addon/gitwiki/Mod_Gitwiki.php:273
-#: ../../include/conversation.php:1322
+#: ../../Zotlabs/Module/Wiki.php:385
+#: ../../Zotlabs/Module/Profile_photo.php:470
+#: ../../Zotlabs/Module/Cover_photo.php:372
+#: ../../include/conversation.php:1324
msgid "Error getting photo link"
msgstr "Errore nell'ottenere il link alla foto"
-#: ../../Zotlabs/Module/Wiki.php:382 ../../addon/gitwiki/Mod_Gitwiki.php:274
-#: ../../include/conversation.php:1323
+#: ../../Zotlabs/Module/Wiki.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:471
+#: ../../Zotlabs/Module/Cover_photo.php:373
+#: ../../include/conversation.php:1325
msgid "Error getting album"
msgstr "Errore nell'ottenere l'album"
-#: ../../Zotlabs/Module/Wiki.php:458 ../../addon/gitwiki/Mod_Gitwiki.php:337
+#: ../../Zotlabs/Module/Wiki.php:462
msgid "Error creating wiki. Invalid name."
msgstr "Errore nella creazione. Nome non valido."
-#: ../../Zotlabs/Module/Wiki.php:465
+#: ../../Zotlabs/Module/Wiki.php:469
msgid "A wiki with this name already exists."
-msgstr ""
+msgstr "Un Wiki con questo nome esiste già"
-#: ../../Zotlabs/Module/Wiki.php:478 ../../addon/gitwiki/Mod_Gitwiki.php:348
+#: ../../Zotlabs/Module/Wiki.php:482
msgid "Wiki created, but error creating Home page."
-msgstr ""
+msgstr "Wiki creato, ma c'è stato un errore nella creazione della Home page."
-#: ../../Zotlabs/Module/Wiki.php:485 ../../addon/gitwiki/Mod_Gitwiki.php:353
+#: ../../Zotlabs/Module/Wiki.php:489
msgid "Error creating wiki"
-msgstr ""
+msgstr "Errore nella creazione del Wiki"
-#: ../../Zotlabs/Module/Wiki.php:508
+#: ../../Zotlabs/Module/Wiki.php:512
msgid "Error updating wiki. Invalid name."
-msgstr ""
+msgstr "Errore nell'aggiornamento del Wiki. Nome non valido."
-#: ../../Zotlabs/Module/Wiki.php:528
+#: ../../Zotlabs/Module/Wiki.php:532
msgid "Error updating wiki"
-msgstr ""
+msgstr "Errore nell'aggiornamento del Wiki"
-#: ../../Zotlabs/Module/Wiki.php:543
+#: ../../Zotlabs/Module/Wiki.php:547
msgid "Wiki delete permission denied."
-msgstr ""
+msgstr "Permesso negato nell'eliminare del Wiki"
-#: ../../Zotlabs/Module/Wiki.php:553
+#: ../../Zotlabs/Module/Wiki.php:557
msgid "Error deleting wiki"
-msgstr ""
+msgstr "Errore nell'eliminare il Wiki"
-#: ../../Zotlabs/Module/Wiki.php:586 ../../addon/gitwiki/Mod_Gitwiki.php:400
+#: ../../Zotlabs/Module/Wiki.php:590
msgid "New page created"
-msgstr ""
+msgstr "Nuova pagina creata"
-#: ../../Zotlabs/Module/Wiki.php:707
+#: ../../Zotlabs/Module/Wiki.php:711
msgid "Cannot delete Home"
-msgstr ""
+msgstr "Non è possibile eliminare la Home"
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Current Revision"
-msgstr ""
+msgstr "Revisione corrente"
-#: ../../Zotlabs/Module/Wiki.php:771
+#: ../../Zotlabs/Module/Wiki.php:775
msgid "Selected Revision"
-msgstr ""
+msgstr "Revisione selezionata"
-#: ../../Zotlabs/Module/Wiki.php:821
+#: ../../Zotlabs/Module/Wiki.php:825
msgid "You must be authenticated."
-msgstr ""
+msgstr "Devi autenticarti."
#: ../../Zotlabs/Module/Chanview.php:139
msgid "toggle full screen mode"
@@ -5127,7 +5200,7 @@ msgstr "Modifica i layout di sistema"
#: ../../Zotlabs/Module/Pdledit.php:68
msgid "(modified)"
-msgstr ""
+msgstr "(modificato)"
#: ../../Zotlabs/Module/Pdledit.php:68 ../../Zotlabs/Module/Lostpass.php:133
msgid "Reset"
@@ -5147,11 +5220,11 @@ msgstr "Guida al layout"
#: ../../Zotlabs/Module/Pdledit.php:93
msgid "Edit another layout"
-msgstr ""
+msgstr "Modifica un altro layout"
#: ../../Zotlabs/Module/Pdledit.php:94
msgid "System layout"
-msgstr ""
+msgstr "Layout di sistema"
#: ../../Zotlabs/Module/Poke.php:182 ../../Zotlabs/Lib/Apps.php:254
#: ../../include/conversation.php:1092
@@ -5228,12 +5301,12 @@ msgid "Photo not available."
msgstr "Foto non disponibile."
#: ../../Zotlabs/Module/Profile_photo.php:455
-#: ../../Zotlabs/Module/Cover_photo.php:358
+#: ../../Zotlabs/Module/Cover_photo.php:359
msgid "Upload File:"
msgstr "Carica un file:"
#: ../../Zotlabs/Module/Profile_photo.php:456
-#: ../../Zotlabs/Module/Cover_photo.php:359
+#: ../../Zotlabs/Module/Cover_photo.php:360
msgid "Select a profile:"
msgstr "Seleziona un profilo:"
@@ -5243,7 +5316,7 @@ msgstr "Usa la foto per il profilo"
#: ../../Zotlabs/Module/Profile_photo.php:457
msgid "Change Profile Photo"
-msgstr ""
+msgstr "Cambia la foto del profilo"
#: ../../Zotlabs/Module/Profile_photo.php:458
msgid "Use"
@@ -5251,28 +5324,28 @@ msgstr "Usa"
#: ../../Zotlabs/Module/Profile_photo.php:462
#: ../../Zotlabs/Module/Profile_photo.php:463
-#: ../../Zotlabs/Module/Cover_photo.php:363
#: ../../Zotlabs/Module/Cover_photo.php:364
+#: ../../Zotlabs/Module/Cover_photo.php:365
msgid "Use a photo from your albums"
-msgstr ""
+msgstr "Usa una foto presa dai tuoi album"
-#: ../../Zotlabs/Module/Profile_photo.php:467
-#: ../../Zotlabs/Module/Cover_photo.php:369
+#: ../../Zotlabs/Module/Profile_photo.php:473
+#: ../../Zotlabs/Module/Cover_photo.php:376
msgid "Select existing photo"
-msgstr ""
+msgstr "Seleziona una foto esistente"
-#: ../../Zotlabs/Module/Profile_photo.php:486
-#: ../../Zotlabs/Module/Cover_photo.php:386
+#: ../../Zotlabs/Module/Profile_photo.php:492
+#: ../../Zotlabs/Module/Cover_photo.php:393
msgid "Crop Image"
msgstr "Ritaglia immagine"
-#: ../../Zotlabs/Module/Profile_photo.php:487
-#: ../../Zotlabs/Module/Cover_photo.php:387
+#: ../../Zotlabs/Module/Profile_photo.php:493
+#: ../../Zotlabs/Module/Cover_photo.php:394
msgid "Please adjust the image cropping for optimum viewing."
msgstr "Ritaglia l'immagine per migliorarne la visualizzazione."
-#: ../../Zotlabs/Module/Profile_photo.php:489
-#: ../../Zotlabs/Module/Cover_photo.php:389
+#: ../../Zotlabs/Module/Profile_photo.php:495
+#: ../../Zotlabs/Module/Cover_photo.php:396
msgid "Done Editing"
msgstr "Modifica terminata"
@@ -5288,70 +5361,71 @@ msgstr "Online"
msgid "Unable to locate original post."
msgstr "Impossibile trovare il messaggio originale."
-#: ../../Zotlabs/Module/Item.php:476
+#: ../../Zotlabs/Module/Item.php:477
msgid "Empty post discarded."
msgstr "Il post vuoto è stato ignorato."
-#: ../../Zotlabs/Module/Item.php:867
+#: ../../Zotlabs/Module/Item.php:874
msgid "Duplicate post suppressed."
msgstr "I post duplicati sono scartati."
-#: ../../Zotlabs/Module/Item.php:1012
+#: ../../Zotlabs/Module/Item.php:1019
msgid "System error. Post not saved."
msgstr "Errore di sistema. Post non salvato."
-#: ../../Zotlabs/Module/Item.php:1048
+#: ../../Zotlabs/Module/Item.php:1055
msgid "Your comment is awaiting approval."
-msgstr ""
+msgstr "Il tuo contenuto è in attesa di approvazione."
-#: ../../Zotlabs/Module/Item.php:1153
+#: ../../Zotlabs/Module/Item.php:1160
msgid "Unable to obtain post information from database."
msgstr "Impossibile caricare il post dal database."
-#: ../../Zotlabs/Module/Item.php:1182
+#: ../../Zotlabs/Module/Item.php:1189
#, php-format
msgid "You have reached your limit of %1$.0f top level posts."
msgstr "Hai raggiunto il limite massimo di %1$.0f post sulla pagina principale."
-#: ../../Zotlabs/Module/Item.php:1189
+#: ../../Zotlabs/Module/Item.php:1196
#, php-format
msgid "You have reached your limit of %1$.0f webpages."
msgstr "Hai raggiunto il limite massimo di %1$.0f pagine web."
-#: ../../Zotlabs/Module/Ping.php:320
+#: ../../Zotlabs/Module/Ping.php:330
msgid "sent you a private message"
msgstr "ti ha inviato un messaggio privato"
-#: ../../Zotlabs/Module/Ping.php:372
+#: ../../Zotlabs/Module/Ping.php:383
msgid "added your channel"
msgstr "ha aggiunto il tuo canale"
-#: ../../Zotlabs/Module/Ping.php:396
+#: ../../Zotlabs/Module/Ping.php:407
msgid "requires approval"
-msgstr ""
+msgstr "richiede approvazione"
-#: ../../Zotlabs/Module/Ping.php:406
+#: ../../Zotlabs/Module/Ping.php:417
msgid "g A l F d"
msgstr "g A l d F"
-#: ../../Zotlabs/Module/Ping.php:424
+#: ../../Zotlabs/Module/Ping.php:435
msgid "[today]"
msgstr "[oggi]"
-#: ../../Zotlabs/Module/Ping.php:433
+#: ../../Zotlabs/Module/Ping.php:444
msgid "posted an event"
msgstr "ha creato un evento"
-#: ../../Zotlabs/Module/Ping.php:466
+#: ../../Zotlabs/Module/Ping.php:477
msgid "shared a file with you"
-msgstr ""
+msgstr "ha condiviso un file con te"
#: ../../Zotlabs/Module/Page.php:39 ../../Zotlabs/Module/Block.php:29
msgid "Invalid item."
msgstr "Elemento non valido."
#: ../../Zotlabs/Module/Page.php:136 ../../Zotlabs/Module/Block.php:77
-#: ../../Zotlabs/Module/Display.php:133
+#: ../../Zotlabs/Module/Display.php:141 ../../Zotlabs/Module/Display.php:158
+#: ../../Zotlabs/Module/Display.php:175
#: ../../Zotlabs/Lib/NativeWikiPage.php:519 ../../Zotlabs/Web/Router.php:167
#: ../../include/help.php:81
msgid "Page not found."
@@ -5426,13 +5500,13 @@ msgstr "Guarda e modifica i permessi assegnati"
#: ../../Zotlabs/Module/Connedit.php:608
msgid "Refresh Photo"
-msgstr ""
+msgstr "Ricarica la foto"
#: ../../Zotlabs/Module/Connedit.php:611
msgid "Fetch updated photo"
-msgstr ""
+msgstr "Aggiorna la foto"
-#: ../../Zotlabs/Module/Connedit.php:615
+#: ../../Zotlabs/Module/Connedit.php:615 ../../include/conversation.php:1042
msgid "Recent Activity"
msgstr "Attività recenti"
@@ -5499,23 +5573,23 @@ msgstr "Elimina questo contatto"
#: ../../Zotlabs/Module/Connedit.php:665
msgid "Fetch Vcard"
-msgstr ""
+msgstr "Aggiorna la Vcard"
#: ../../Zotlabs/Module/Connedit.php:668
msgid "Fetch electronic calling card for this connection"
-msgstr ""
+msgstr "Scarica la scheda con le informazioni di questo contatto"
#: ../../Zotlabs/Module/Connedit.php:679
msgid "Open Individual Permissions section by default"
-msgstr ""
+msgstr "Apri automaticamente la sezione Permessi individuali"
#: ../../Zotlabs/Module/Connedit.php:702
msgid "Affinity"
-msgstr ""
+msgstr "Affinità"
#: ../../Zotlabs/Module/Connedit.php:705
msgid "Open Set Affinity section by default"
-msgstr ""
+msgstr "Apri la sezione Imposta affinità per default"
#: ../../Zotlabs/Module/Connedit.php:709 ../../Zotlabs/Widget/Affinity.php:22
msgid "Me"
@@ -5531,11 +5605,11 @@ msgstr "Conoscenti"
#: ../../Zotlabs/Module/Connedit.php:739
msgid "Filter"
-msgstr ""
+msgstr "Filtra"
#: ../../Zotlabs/Module/Connedit.php:742
msgid "Open Custom Filter section by default"
-msgstr ""
+msgstr "Apri automaticamente la sezione con i Filtri personalizzati"
#: ../../Zotlabs/Module/Connedit.php:779
msgid "Approve this connection"
@@ -5559,31 +5633,31 @@ msgstr "Affinità e profilo"
#: ../../Zotlabs/Module/Connedit.php:838
msgid "This connection is unreachable from this location."
-msgstr ""
+msgstr "Questo contatto non è raggiungibile dal server in uso"
#: ../../Zotlabs/Module/Connedit.php:839
msgid "This connection may be unreachable from other channel locations."
-msgstr ""
+msgstr "Questo contatto potrebbe non essere raggiungibile da altri canali"
#: ../../Zotlabs/Module/Connedit.php:841
msgid "Location independence is not supported by their network."
-msgstr ""
+msgstr "Nella loro rete la location independence non è supportata."
#: ../../Zotlabs/Module/Connedit.php:847
msgid ""
"This connection is unreachable from this location. Location independence is "
"not supported by their network."
-msgstr ""
+msgstr "Il contatto indicato non è raggiungibile. Nella loro rete la location independence non è supportata."
#: ../../Zotlabs/Module/Connedit.php:850 ../../Zotlabs/Module/Defperms.php:238
-#: ../../Zotlabs/Widget/Settings_menu.php:109
+#: ../../Zotlabs/Widget/Settings_menu.php:117
msgid "Connection Default Permissions"
msgstr "Permessi predefiniti dei nuovi contatti"
-#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4164
+#: ../../Zotlabs/Module/Connedit.php:850 ../../include/items.php:4214
#, php-format
-msgid "Connection: %s"
-msgstr "Contatto: %s"
+msgid "%1$s tagged %2$s's %3$s with %4$s"
+msgstr "%1$s ha taggato %3$s di %2$s con %4$s"
#: ../../Zotlabs/Module/Connedit.php:851 ../../Zotlabs/Module/Defperms.php:239
msgid "Apply these permissions automatically"
@@ -5595,16 +5669,16 @@ msgstr "Le richieste di entrare in contatto saranno approvate in automatico"
#: ../../Zotlabs/Module/Connedit.php:852 ../../Zotlabs/Module/Defperms.php:240
msgid "Permission role"
-msgstr ""
+msgstr "Ruolo"
#: ../../Zotlabs/Module/Connedit.php:852 ../../Zotlabs/Module/Defperms.php:240
#: ../../Zotlabs/Widget/Notifications.php:151 ../../include/nav.php:284
msgid "Loading"
-msgstr ""
+msgstr "Sto caricando"
#: ../../Zotlabs/Module/Connedit.php:853 ../../Zotlabs/Module/Defperms.php:241
msgid "Add permission role"
-msgstr ""
+msgstr "Aggiungi un ruolo"
#: ../../Zotlabs/Module/Connedit.php:860
msgid "This connection's primary address is"
@@ -5616,13 +5690,13 @@ msgstr "Indirizzi disponibili"
#: ../../Zotlabs/Module/Connedit.php:866 ../../Zotlabs/Module/Defperms.php:245
msgid ""
-"The permissions indicated on this page will be applied to all new "
-"connections."
-msgstr "I permessi indicati su questa pagina saranno applicati a tutti i nuovi contatti da ora in poi."
+"Some individual permissions may have been preset or locked based on your "
+"channel type and privacy settings."
+msgstr ""
#: ../../Zotlabs/Module/Connedit.php:867
msgid "Connection Tools"
-msgstr "Gestione dei contatti"
+msgstr "Gestione del contatto"
#: ../../Zotlabs/Module/Connedit.php:869
msgid "Slide to adjust your degree of friendship"
@@ -5688,7 +5762,7 @@ msgstr "Ultimo aggiornamento:"
#: ../../Zotlabs/Module/Connedit.php:904
msgid "Details"
-msgstr ""
+msgstr "Dettagli"
#: ../../Zotlabs/Module/Chat.php:181
msgid "Room not found"
@@ -5715,13 +5789,13 @@ msgid "Bookmark this room"
msgstr "Aggiungi questa chat ai segnalibri"
#: ../../Zotlabs/Module/Chat.php:205 ../../Zotlabs/Module/Mail.php:241
-#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1313
+#: ../../Zotlabs/Module/Mail.php:362 ../../include/conversation.php:1315
msgid "Please enter a link URL:"
msgstr "Inserisci l'indirizzo del link:"
#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Module/Mail.php:294
-#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:764
-#: ../../include/conversation.php:1432
+#: ../../Zotlabs/Module/Mail.php:436 ../../Zotlabs/Lib/ThreadItem.php:766
+#: ../../include/conversation.php:1435
msgid "Encrypt text"
msgstr "Cifratura del messaggio"
@@ -5755,53 +5829,54 @@ msgid "min"
msgstr "min"
#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:248
-#: ../../include/conversation.php:1831 ../../include/nav.php:401
+#: ../../include/conversation.php:1834 ../../include/nav.php:401
msgid "Photos"
msgstr "Foto"
#: ../../Zotlabs/Module/Fbrowser.php:85 ../../Zotlabs/Lib/Apps.php:243
-#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1839
+#: ../../Zotlabs/Storage/Browser.php:272 ../../include/conversation.php:1842
#: ../../include/nav.php:409
msgid "Files"
msgstr "Archivio file"
-#: ../../Zotlabs/Module/Menu.php:49
-msgid "Unable to update menu."
-msgstr "Impossibile aggiornare il menù."
+#: ../../Zotlabs/Module/Profiles.php:594
+msgid "Profile updated."
+msgstr "Profilo aggiornato."
-#: ../../Zotlabs/Module/Menu.php:60
-msgid "Unable to create menu."
-msgstr "Impossibile creare il menù."
+#: ../../Zotlabs/Module/Profiles.php:678
+msgid "Hide your connections list from viewers of this profile"
+msgstr "Nascondi la tua lista di contatti ai visitatori di questo profilo"
-#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110
-msgid "Menu Name"
-msgstr "Nome del menu"
+#: ../../Zotlabs/Module/Profiles.php:725
+msgid "Edit Profile Details"
+msgstr "Modifica i dettagli del profilo"
-#: ../../Zotlabs/Module/Menu.php:98
-msgid "Unique name (not visible on webpage) - required"
-msgstr "Nome unico (non visibile sulla pagina) - obbligatorio"
+#: ../../Zotlabs/Module/Profiles.php:727
+msgid "View this profile"
+msgstr "Guarda questo profilo"
-#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111
-msgid "Menu Title"
-msgstr "Titolo del menu"
+#: ../../Zotlabs/Module/Profiles.php:728 ../../Zotlabs/Module/Profiles.php:827
+#: ../../include/channel.php:1320
+msgid "Edit visibility"
+msgstr "Cambia la visibilità"
-#: ../../Zotlabs/Module/Menu.php:99
-msgid "Visible on webpage - leave empty for no title"
-msgstr "Visibile sulla pagina - lascia vuoto per non avere un titolo"
+#: ../../Zotlabs/Module/Profiles.php:729
+msgid "Profile Tools"
+msgstr "Gestione del profilo"
-#: ../../Zotlabs/Module/Menu.php:100
-msgid "Allow Bookmarks"
-msgstr "Permetti i segnalibri"
+#: ../../Zotlabs/Module/Profiles.php:730
+msgid "Change cover photo"
+msgstr "Cambia la copertina del canale"
-#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157
-msgid "Menu may be used to store saved bookmarks"
-msgstr "Puoi salvare i segnalibri nei menù"
+#: ../../Zotlabs/Module/Profiles.php:731 ../../include/channel.php:1290
+msgid "Change profile photo"
+msgstr "Cambia la foto del profilo"
-#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159
-msgid "Submit and proceed"
-msgstr "Salva e procedi"
+#: ../../Zotlabs/Module/Profiles.php:732
+msgid "Create a new profile using these settings"
+msgstr "Crea un nuovo profilo usando queste impostazioni"
-#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2403
+#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2423
msgid "Menus"
msgstr "Menù"
@@ -5809,13 +5884,14 @@ msgstr "Menù"
msgid "Bookmarks allowed"
msgstr "Permetti segnalibri"
-#: ../../Zotlabs/Module/Menu.php:119
-msgid "Delete this menu"
-msgstr "Elimina questo menù"
+#: ../../Zotlabs/Module/Profiles.php:739 ../../Zotlabs/Widget/Newmember.php:53
+#: ../../include/datetime.php:58
+msgid "Miscellaneous"
+msgstr "Altro"
-#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154
-msgid "Edit menu contents"
-msgstr "Modifica i contenuti del menù"
+#: ../../Zotlabs/Module/Profiles.php:741
+msgid "Import profile from file"
+msgstr "Importa il profilo da un file"
#: ../../Zotlabs/Module/Menu.php:121
msgid "Edit this menu"
@@ -5853,7 +5929,7 @@ msgstr "Titolo del menù come comparirà a tutti"
msgid "Allow bookmarks"
msgstr "Permetti l'invio di segnalibri"
-#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2404
+#: ../../Zotlabs/Module/Layouts.php:184 ../../include/text.php:2424
msgid "Layouts"
msgstr "Layout"
@@ -5875,22 +5951,22 @@ msgstr "Descrizione del layout"
msgid "Download PDL file"
msgstr "Scarica il file PDL"
-#: ../../Zotlabs/Module/Cloud.php:114
+#: ../../Zotlabs/Module/Cloud.php:120
msgid "Please refresh page"
-msgstr ""
+msgstr "Per favore ricarica la pagina"
-#: ../../Zotlabs/Module/Cloud.php:117
+#: ../../Zotlabs/Module/Cloud.php:123
msgid "Unknown error"
-msgstr ""
+msgstr "Errore sconosciuto"
#: ../../Zotlabs/Module/Email_validation.php:24
#: ../../Zotlabs/Module/Email_resend.php:12
msgid "Token verification failed."
-msgstr ""
+msgstr "Verifica del token fallita"
#: ../../Zotlabs/Module/Email_validation.php:36
msgid "Email Verification Required"
-msgstr ""
+msgstr "È richiesta una verifica della mail"
#: ../../Zotlabs/Module/Email_validation.php:37
#, php-format
@@ -5898,31 +5974,31 @@ msgid ""
"A verification token was sent to your email address [%s]. Enter that token "
"here to complete the account verification step. Please allow a few minutes "
"for delivery, and check your spam folder if you do not see the message."
-msgstr ""
+msgstr "Un token di verifica è stato spedito al tuo indirizzo email [%s]. Inserisci il token qui per completare la verifica dell'account. Per favore attendi qualche minuti e controlla lo spam se non vedi il messaggio."
#: ../../Zotlabs/Module/Email_validation.php:38
msgid "Resend Email"
-msgstr ""
+msgstr "Reinvia la mail"
#: ../../Zotlabs/Module/Email_validation.php:41
msgid "Validation token"
-msgstr ""
+msgstr "Token di validazione"
#: ../../Zotlabs/Module/Tagger.php:48
msgid "Post not found."
-msgstr ""
+msgstr "Post non trovato."
#: ../../Zotlabs/Module/Tagger.php:77 ../../include/markdown.php:160
-#: ../../include/bbcode.php:339
+#: ../../include/bbcode.php:352
msgid "post"
msgstr "il post"
#: ../../Zotlabs/Module/Tagger.php:79 ../../include/conversation.php:146
-#: ../../include/text.php:2012
+#: ../../include/text.php:2013
msgid "comment"
msgstr "il commento"
-#: ../../Zotlabs/Module/Tagger.php:117
+#: ../../Zotlabs/Module/Tagger.php:119
#, php-format
msgid "%1$s tagged %2$s's %3$s with %4$s"
msgstr "%1$s ha taggato %3$s di %2$s con %4$s"
@@ -5945,11 +6021,11 @@ msgstr "Attenzione: alcune delle impostazioni, se cambiate, potrebbero rendere q
#: ../../Zotlabs/Module/Defperms.php:239
msgid ""
"If enabled, connection requests will be approved without your interaction"
-msgstr ""
+msgstr "Se abilitato, le richieste di contatto saranno approvate automaticamente"
#: ../../Zotlabs/Module/Defperms.php:246
msgid "Automatic approval settings"
-msgstr ""
+msgstr "Impostazioni di approvazione automatica"
#: ../../Zotlabs/Module/Defperms.php:254
msgid ""
@@ -5957,6 +6033,23 @@ msgid ""
"channel type and privacy settings."
msgstr ""
+#: ../../Zotlabs/Module/Authorize.php:17
+msgid "Unknown App"
+msgstr "Applicazione sconosciuta"
+
+#: ../../Zotlabs/Module/Authorize.php:22
+msgid "Authorize"
+msgstr "Autorizza"
+
+#: ../../Zotlabs/Module/Authorize.php:23
+#, php-format
+msgid "Do you authorize the app %s to access your channel data?"
+msgstr "Autorizzi la app %s ad accedere ai dati del tuo canale?"
+
+#: ../../Zotlabs/Module/Authorize.php:25
+msgid "Allow"
+msgstr "Autorizza"
+
#: ../../Zotlabs/Module/Group.php:24
msgid "Privacy group created."
msgstr "Gruppo di canali creato."
@@ -5966,7 +6059,7 @@ msgid "Could not create privacy group."
msgstr "Impossibile creare il gruppo di canali."
#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:143
-#: ../../include/items.php:4131
+#: ../../include/items.php:4181
msgid "Privacy group not found."
msgstr "Gruppo di canali non trovato."
@@ -6047,15 +6140,15 @@ msgstr "Stato sentimentale"
msgid "Romantic Partner"
msgstr "Partner affettivo"
-#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:775
+#: ../../Zotlabs/Module/Profiles.php:467 ../../Zotlabs/Module/Profiles.php:772
msgid "Likes"
-msgstr "Mi piace"
+msgstr "\"Mi piace\""
-#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:776
+#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:773
msgid "Dislikes"
-msgstr "Non mi piace"
+msgstr "\"Non mi piace\""
-#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:783
+#: ../../Zotlabs/Module/Profiles.php:475 ../../Zotlabs/Module/Profiles.php:780
msgid "Work/Employment"
msgstr "Lavoro/impiego"
@@ -6092,264 +6185,264 @@ msgstr "Profilo aggiornato."
msgid "Hide your connections list from viewers of this profile"
msgstr "Nascondi la tua lista di contatti ai visitatori di questo profilo"
-#: ../../Zotlabs/Module/Profiles.php:725
+#: ../../Zotlabs/Module/Profiles.php:722
msgid "Edit Profile Details"
msgstr "Modifica i dettagli del profilo"
-#: ../../Zotlabs/Module/Profiles.php:727
+#: ../../Zotlabs/Module/Profiles.php:724
msgid "View this profile"
msgstr "Guarda questo profilo"
-#: ../../Zotlabs/Module/Profiles.php:728 ../../Zotlabs/Module/Profiles.php:827
-#: ../../include/channel.php:1320
+#: ../../Zotlabs/Module/Profiles.php:725 ../../Zotlabs/Module/Profiles.php:824
+#: ../../include/channel.php:1319
msgid "Edit visibility"
msgstr "Cambia la visibilità"
-#: ../../Zotlabs/Module/Profiles.php:729
+#: ../../Zotlabs/Module/Profiles.php:726
msgid "Profile Tools"
msgstr "Gestione del profilo"
-#: ../../Zotlabs/Module/Profiles.php:730
+#: ../../Zotlabs/Module/Profiles.php:727
msgid "Change cover photo"
msgstr "Cambia la copertina del canale"
-#: ../../Zotlabs/Module/Profiles.php:731 ../../include/channel.php:1290
+#: ../../Zotlabs/Module/Profiles.php:728 ../../include/channel.php:1289
msgid "Change profile photo"
msgstr "Cambia la foto del profilo"
-#: ../../Zotlabs/Module/Profiles.php:732
+#: ../../Zotlabs/Module/Profiles.php:729
msgid "Create a new profile using these settings"
msgstr "Crea un nuovo profilo usando queste impostazioni"
-#: ../../Zotlabs/Module/Profiles.php:733
+#: ../../Zotlabs/Module/Profiles.php:730
msgid "Clone this profile"
msgstr "Clona questo profilo"
-#: ../../Zotlabs/Module/Profiles.php:734
+#: ../../Zotlabs/Module/Profiles.php:731
msgid "Delete this profile"
msgstr "Elimina questo profilo"
-#: ../../Zotlabs/Module/Profiles.php:735
+#: ../../Zotlabs/Module/Profiles.php:732
msgid "Add profile things"
msgstr "Aggiungi oggetti al profilo"
-#: ../../Zotlabs/Module/Profiles.php:736 ../../include/conversation.php:1705
+#: ../../Zotlabs/Module/Profiles.php:733 ../../include/conversation.php:1708
msgid "Personal"
msgstr "Personali"
-#: ../../Zotlabs/Module/Profiles.php:738
-msgid "Relation"
+#: ../../Zotlabs/Module/Profiles.php:735
+msgid "Relationship"
msgstr "Relazione"
-#: ../../Zotlabs/Module/Profiles.php:739 ../../Zotlabs/Widget/Newmember.php:53
+#: ../../Zotlabs/Module/Profiles.php:736 ../../Zotlabs/Widget/Newmember.php:44
#: ../../include/datetime.php:58
msgid "Miscellaneous"
msgstr "Altro"
-#: ../../Zotlabs/Module/Profiles.php:741
+#: ../../Zotlabs/Module/Profiles.php:738
msgid "Import profile from file"
msgstr "Importa il profilo da un file"
-#: ../../Zotlabs/Module/Profiles.php:742
+#: ../../Zotlabs/Module/Profiles.php:739
msgid "Export profile to file"
msgstr "Esporta il profilo in un file"
-#: ../../Zotlabs/Module/Profiles.php:743
+#: ../../Zotlabs/Module/Profiles.php:740
msgid "Your gender"
msgstr "Sesso"
-#: ../../Zotlabs/Module/Profiles.php:744
+#: ../../Zotlabs/Module/Profiles.php:741
msgid "Marital status"
msgstr "Stato civile"
-#: ../../Zotlabs/Module/Profiles.php:745
+#: ../../Zotlabs/Module/Profiles.php:742
msgid "Sexual preference"
msgstr "Preferenze sessuali"
-#: ../../Zotlabs/Module/Profiles.php:748
+#: ../../Zotlabs/Module/Profiles.php:745
msgid "Profile name"
msgstr "Nome del profilo"
-#: ../../Zotlabs/Module/Profiles.php:750
+#: ../../Zotlabs/Module/Profiles.php:747
msgid "This is your default profile."
msgstr "Questo è il tuo profilo predefinito."
-#: ../../Zotlabs/Module/Profiles.php:752
+#: ../../Zotlabs/Module/Profiles.php:749
msgid "Your full name"
msgstr "Il tuo nome completo"
-#: ../../Zotlabs/Module/Profiles.php:753
+#: ../../Zotlabs/Module/Profiles.php:750
msgid "Title/Description"
msgstr "Titolo/descrizione"
-#: ../../Zotlabs/Module/Profiles.php:756
+#: ../../Zotlabs/Module/Profiles.php:753
msgid "Street address"
msgstr "Indirizzo (via/piazza)"
-#: ../../Zotlabs/Module/Profiles.php:757
+#: ../../Zotlabs/Module/Profiles.php:754
msgid "Locality/City"
msgstr "Località"
-#: ../../Zotlabs/Module/Profiles.php:758
+#: ../../Zotlabs/Module/Profiles.php:755
msgid "Region/State"
msgstr "Regione/stato"
-#: ../../Zotlabs/Module/Profiles.php:759
+#: ../../Zotlabs/Module/Profiles.php:756
msgid "Postal/Zip code"
msgstr "CAP"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Who (if applicable)"
msgstr "Con chi (se possibile)"
-#: ../../Zotlabs/Module/Profiles.php:765
+#: ../../Zotlabs/Module/Profiles.php:762
msgid "Examples: cathy123, Cathy Williams, cathy@example.com"
msgstr "Per esempio: cathy123, Cathy Williams, cathy@example.com"
-#: ../../Zotlabs/Module/Profiles.php:766
+#: ../../Zotlabs/Module/Profiles.php:763
msgid "Since (date)"
msgstr "dal (data)"
-#: ../../Zotlabs/Module/Profiles.php:769
+#: ../../Zotlabs/Module/Profiles.php:766
msgid "Tell us about yourself"
msgstr "Raccontaci di te..."
-#: ../../Zotlabs/Module/Profiles.php:770
+#: ../../Zotlabs/Module/Profiles.php:767
#: ../../addon/openid/MysqlProvider.php:68
msgid "Homepage URL"
msgstr "Indirizzo home page"
-#: ../../Zotlabs/Module/Profiles.php:771
+#: ../../Zotlabs/Module/Profiles.php:768
msgid "Hometown"
msgstr "Città dove vivo"
-#: ../../Zotlabs/Module/Profiles.php:772
+#: ../../Zotlabs/Module/Profiles.php:769
msgid "Political views"
msgstr "Orientamento politico"
-#: ../../Zotlabs/Module/Profiles.php:773
+#: ../../Zotlabs/Module/Profiles.php:770
msgid "Religious views"
msgstr "Orientamento religioso"
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Keywords used in directory listings"
msgstr "Parole chiavi mostrate nell'elenco dei canali"
-#: ../../Zotlabs/Module/Profiles.php:774
+#: ../../Zotlabs/Module/Profiles.php:771
msgid "Example: fishing photography software"
msgstr "Per esempio: pesca fotografia programmazione"
-#: ../../Zotlabs/Module/Profiles.php:777
+#: ../../Zotlabs/Module/Profiles.php:774
msgid "Musical interests"
msgstr "Interessi musicali"
-#: ../../Zotlabs/Module/Profiles.php:778
+#: ../../Zotlabs/Module/Profiles.php:775
msgid "Books, literature"
msgstr "Libri, letteratura"
-#: ../../Zotlabs/Module/Profiles.php:779
+#: ../../Zotlabs/Module/Profiles.php:776
msgid "Television"
msgstr "Televisione"
-#: ../../Zotlabs/Module/Profiles.php:780
+#: ../../Zotlabs/Module/Profiles.php:777
msgid "Film/Dance/Culture/Entertainment"
msgstr "Film, danza, cultura, intrattenimento"
-#: ../../Zotlabs/Module/Profiles.php:781
+#: ../../Zotlabs/Module/Profiles.php:778
msgid "Hobbies/Interests"
msgstr "Hobby/interessi"
-#: ../../Zotlabs/Module/Profiles.php:782
+#: ../../Zotlabs/Module/Profiles.php:779
msgid "Love/Romance"
msgstr "Amore"
-#: ../../Zotlabs/Module/Profiles.php:784
+#: ../../Zotlabs/Module/Profiles.php:781
msgid "School/Education"
msgstr "Scuola/educazione"
-#: ../../Zotlabs/Module/Profiles.php:785
+#: ../../Zotlabs/Module/Profiles.php:782
msgid "Contact information and social networks"
msgstr "Contatti e social network"
-#: ../../Zotlabs/Module/Profiles.php:786
+#: ../../Zotlabs/Module/Profiles.php:783
msgid "My other channels"
msgstr "I miei altri canali"
-#: ../../Zotlabs/Module/Profiles.php:788
+#: ../../Zotlabs/Module/Profiles.php:785
msgid "Communications"
-msgstr ""
+msgstr "Comunicazioni"
-#: ../../Zotlabs/Module/Profiles.php:823 ../../include/channel.php:1316
+#: ../../Zotlabs/Module/Profiles.php:820 ../../include/channel.php:1315
msgid "Profile Image"
msgstr "Immagine del profilo"
-#: ../../Zotlabs/Module/Profiles.php:833 ../../include/channel.php:1297
+#: ../../Zotlabs/Module/Profiles.php:830 ../../include/channel.php:1296
#: ../../include/nav.php:117
msgid "Edit Profiles"
msgstr "Modifica i tuoi profili"
#: ../../Zotlabs/Module/Go.php:21
msgid "This page is available only to site members"
-msgstr ""
+msgstr "Questa pagina è accessibile solo agli utenti registrati"
#: ../../Zotlabs/Module/Go.php:27
msgid "Welcome"
-msgstr ""
+msgstr "Benvenuto"
#: ../../Zotlabs/Module/Go.php:29
msgid "What would you like to do?"
-msgstr ""
+msgstr "Vorresti farlo?"
#: ../../Zotlabs/Module/Go.php:31
msgid ""
"Please bookmark this page if you would like to return to it in the future"
-msgstr ""
+msgstr "Per favore metti questa pagina nei preferiti se vuoi ritornarci in futuro"
#: ../../Zotlabs/Module/Go.php:35
msgid "Upload a profile photo"
-msgstr ""
+msgstr "Carica una foto per il profilo"
#: ../../Zotlabs/Module/Go.php:36
msgid "Upload a cover photo"
-msgstr ""
+msgstr "Carica una foto di copertina"
#: ../../Zotlabs/Module/Go.php:37
msgid "Edit your default profile"
-msgstr ""
+msgstr "Modifica il tuo profilo predefinito"
-#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:43
+#: ../../Zotlabs/Module/Go.php:38 ../../Zotlabs/Widget/Newmember.php:34
msgid "View friend suggestions"
-msgstr ""
+msgstr "Guarda i suggerimenti di amicizia"
-#: ../../Zotlabs/Module/Go.php:39 ../../Zotlabs/Widget/Newmember.php:42
+#: ../../Zotlabs/Module/Go.php:39
msgid "View the channel directory"
-msgstr ""
+msgstr "Guarda l'elenco dei canali"
#: ../../Zotlabs/Module/Go.php:40
msgid "View/edit your channel settings"
-msgstr ""
+msgstr "Guarda/modifica le impostazioni del tuo canale"
#: ../../Zotlabs/Module/Go.php:41
msgid "View the site or project documentation"
-msgstr ""
+msgstr "Guarda la documentazione del sito o del progetto"
#: ../../Zotlabs/Module/Go.php:42
msgid "Visit your channel homepage"
-msgstr ""
+msgstr "Visita la pagina iniziale del tuo canale"
#: ../../Zotlabs/Module/Go.php:43
msgid ""
"View your connections and/or add somebody whose address you already know"
-msgstr ""
+msgstr "Guarda i tuoi contatti e/o aggiungine qualcuno di cui hai l'indirizzo"
#: ../../Zotlabs/Module/Go.php:44
msgid ""
"View your personal stream (this may be empty until you add some connections)"
-msgstr ""
+msgstr "Guarda il tuo flusso personale (potrebbe essere vuoto finché non aggiungi connessioni)"
#: ../../Zotlabs/Module/Go.php:52
msgid "View the public stream. Warning: this content is not moderated"
-msgstr ""
+msgstr "Vedi il flusso pubblico. Attenzione: contenuti non moderati"
#: ../../Zotlabs/Module/Editwebpage.php:139
msgid "Page link"
@@ -6398,15 +6491,15 @@ msgstr "%d nuove richieste di entrare in contatto"
msgid "Delegated Channel"
msgstr "Canale delegato"
-#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:181
-#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1890
-#: ../../include/features.php:114 ../../include/nav.php:458
+#: ../../Zotlabs/Module/Cards.php:42 ../../Zotlabs/Module/Cards.php:194
+#: ../../Zotlabs/Lib/Apps.php:230 ../../include/conversation.php:1893
+#: ../../include/features.php:123 ../../include/nav.php:458
msgid "Cards"
msgstr "Card"
#: ../../Zotlabs/Module/Cards.php:99
msgid "Add Card"
-msgstr ""
+msgstr "Aggiungi card"
#: ../../Zotlabs/Module/Dirsearch.php:33
msgid "This directory server requires an access token"
@@ -6414,11 +6507,11 @@ msgstr "Questo directory server necessita di un token di autenticazione"
#: ../../Zotlabs/Module/Siteinfo.php:18
msgid "About this site"
-msgstr ""
+msgstr "Informazioni su questo sito"
#: ../../Zotlabs/Module/Siteinfo.php:19
msgid "Site Name"
-msgstr ""
+msgstr "Nome del sito"
#: ../../Zotlabs/Module/Siteinfo.php:23
msgid "Administrator"
@@ -6430,11 +6523,11 @@ msgstr "Condizioni d'Uso"
#: ../../Zotlabs/Module/Siteinfo.php:26
msgid "Software and Project information"
-msgstr ""
+msgstr "Informazioni sul software e sul progetto"
#: ../../Zotlabs/Module/Siteinfo.php:27
msgid "This site is powered by $Projectname"
-msgstr ""
+msgstr "Questo sito è costruito con $Projectname"
#: ../../Zotlabs/Module/Siteinfo.php:28
msgid ""
@@ -6448,11 +6541,11 @@ msgstr "Versione %s"
#: ../../Zotlabs/Module/Siteinfo.php:31
msgid "Project homepage"
-msgstr ""
+msgstr "Homepage del progetto"
#: ../../Zotlabs/Module/Siteinfo.php:32
msgid "Developer homepage"
-msgstr ""
+msgstr "Homepege dello sviluppatore"
#: ../../Zotlabs/Module/Ratings.php:70
msgid "No ratings"
@@ -6492,7 +6585,7 @@ msgid "Export selected"
msgstr "Esporta i selezionati"
#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:244
-#: ../../include/conversation.php:1912 ../../include/nav.php:481
+#: ../../include/conversation.php:1915 ../../include/nav.php:481
msgid "Webpages"
msgstr "Pagine web"
@@ -6532,7 +6625,7 @@ msgstr "Importazione completata."
msgid ""
"Channel name changes are not allowed within 48 hours of changing the account"
" password."
-msgstr ""
+msgstr "Non è possibile cambiare il nome del canale entro le 48 dal cambio della password dell'account."
#: ../../Zotlabs/Module/Changeaddr.php:46 ../../include/channel.php:214
#: ../../include/channel.php:599
@@ -6547,11 +6640,11 @@ msgstr "Il nome dell'account è già in uso oppure ha dei caratteri non supporta
#: ../../Zotlabs/Module/Changeaddr.php:77
msgid "Change channel nickname/address"
-msgstr ""
+msgstr "Cambia il nome/indirizzo del canale"
#: ../../Zotlabs/Module/Changeaddr.php:78
msgid "Any/all connections on other networks will be lost!"
-msgstr ""
+msgstr "Tutti i contatti su altre reti saranno persi!"
#: ../../Zotlabs/Module/Changeaddr.php:80
msgid "New channel address"
@@ -6565,7 +6658,7 @@ msgstr ""
msgid "Item is not editable"
msgstr "L'elemento non è modificabile"
-#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:178
+#: ../../Zotlabs/Module/Editpost.php:108 ../../Zotlabs/Module/Rpost.php:144
msgid "Edit post"
msgstr "Modifica post"
@@ -6652,7 +6745,7 @@ msgid "*"
msgstr "*"
#: ../../Zotlabs/Module/Sources.php:96
-#: ../../Zotlabs/Widget/Settings_menu.php:125 ../../include/features.php:274
+#: ../../Zotlabs/Widget/Settings_menu.php:133 ../../include/features.php:292
msgid "Channel Sources"
msgstr "Sorgenti del canale"
@@ -6743,165 +6836,169 @@ msgstr "Canale non trovato."
msgid "Previous action reversed."
msgstr "Il comando precedente è stato annullato."
-#: ../../Zotlabs/Module/Like.php:436 ../../addon/diaspora/Receiver.php:1547
-#: ../../addon/pubcrawl/as.php:1394 ../../include/conversation.php:160
+#: ../../Zotlabs/Module/Like.php:438 ../../addon/diaspora/Receiver.php:1529
+#: ../../addon/pubcrawl/as.php:1423 ../../include/conversation.php:160
#, php-format
msgid "%1$s likes %2$s's %3$s"
msgstr "A %1$s piace %3$s di %2$s"
-#: ../../Zotlabs/Module/Like.php:438 ../../addon/pubcrawl/as.php:1396
+#: ../../Zotlabs/Module/Like.php:440 ../../addon/pubcrawl/as.php:1425
#: ../../include/conversation.php:163
#, php-format
msgid "%1$s doesn't like %2$s's %3$s"
msgstr "A %1$s non piace %3$s di %2$s"
-#: ../../Zotlabs/Module/Like.php:440
+#: ../../Zotlabs/Module/Like.php:442
#, php-format
msgid "%1$s agrees with %2$s's %3$s"
msgstr "%3$s di %2$s: %1$s è d'accordo"
-#: ../../Zotlabs/Module/Like.php:442
+#: ../../Zotlabs/Module/Like.php:444
#, php-format
msgid "%1$s doesn't agree with %2$s's %3$s"
msgstr "%3$s di %2$s: %1$s non è d'accordo"
-#: ../../Zotlabs/Module/Like.php:444
+#: ../../Zotlabs/Module/Like.php:446
#, php-format
msgid "%1$s abstains from a decision on %2$s's %3$s"
msgstr "%3$s di %2$s: %1$s non si esprime"
-#: ../../Zotlabs/Module/Like.php:446 ../../addon/diaspora/Receiver.php:2031
+#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2072
#, php-format
msgid "%1$s is attending %2$s's %3$s"
msgstr "%3$s di %2$s: %1$s partecipa"
-#: ../../Zotlabs/Module/Like.php:448 ../../addon/diaspora/Receiver.php:2033
+#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2074
#, php-format
msgid "%1$s is not attending %2$s's %3$s"
msgstr "%3$s di %2$s: %1$s non partecipa"
-#: ../../Zotlabs/Module/Like.php:450 ../../addon/diaspora/Receiver.php:2035
+#: ../../Zotlabs/Module/Like.php:452 ../../addon/diaspora/Receiver.php:2076
#, php-format
msgid "%1$s may attend %2$s's %3$s"
msgstr "%3$s di %2$s: %1$s forse partecipa"
-#: ../../Zotlabs/Module/Like.php:562
+#: ../../Zotlabs/Module/Like.php:564
msgid "Action completed."
msgstr "Comando completato."
-#: ../../Zotlabs/Module/Like.php:563
+#: ../../Zotlabs/Module/Like.php:565
msgid "Thank you."
msgstr "Grazie."
-#: ../../Zotlabs/Module/Directory.php:250
+#: ../../Zotlabs/Module/Directory.php:106
+msgid "No default suggestions were found."
+msgstr ""
+
+#: ../../Zotlabs/Module/Directory.php:255
#, php-format
msgid "%d rating"
msgid_plural "%d ratings"
msgstr[0] "%d valutazione"
msgstr[1] "%d valutazioni"
-#: ../../Zotlabs/Module/Directory.php:261
+#: ../../Zotlabs/Module/Directory.php:266
msgid "Gender: "
msgstr "Sesso:"
-#: ../../Zotlabs/Module/Directory.php:263
+#: ../../Zotlabs/Module/Directory.php:268
msgid "Status: "
msgstr "Stato:"
-#: ../../Zotlabs/Module/Directory.php:265
+#: ../../Zotlabs/Module/Directory.php:270
msgid "Homepage: "
msgstr "Homepage:"
-#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1565
+#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1564
msgid "Age:"
msgstr "Età:"
-#: ../../Zotlabs/Module/Directory.php:319 ../../include/channel.php:1392
+#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1391
#: ../../include/event.php:54 ../../include/event.php:86
msgid "Location:"
msgstr "Luogo:"
-#: ../../Zotlabs/Module/Directory.php:325
+#: ../../Zotlabs/Module/Directory.php:330
msgid "Description:"
msgstr "Descrizione:"
-#: ../../Zotlabs/Module/Directory.php:330 ../../include/channel.php:1581
+#: ../../Zotlabs/Module/Directory.php:335 ../../include/channel.php:1593
msgid "Hometown:"
msgstr "Città dove vivo:"
-#: ../../Zotlabs/Module/Directory.php:332 ../../include/channel.php:1589
+#: ../../Zotlabs/Module/Directory.php:337 ../../include/channel.php:1599
msgid "About:"
msgstr "Informazioni:"
-#: ../../Zotlabs/Module/Directory.php:333 ../../Zotlabs/Module/Suggest.php:56
+#: ../../Zotlabs/Module/Directory.php:338 ../../Zotlabs/Module/Suggest.php:56
#: ../../Zotlabs/Widget/Follow.php:32 ../../Zotlabs/Widget/Suggestions.php:44
-#: ../../include/conversation.php:1052 ../../include/channel.php:1377
-#: ../../include/connections.php:111
+#: ../../include/conversation.php:1052 ../../include/channel.php:1376
+#: ../../include/connections.php:110
msgid "Connect"
msgstr "Aggiungi"
-#: ../../Zotlabs/Module/Directory.php:334
+#: ../../Zotlabs/Module/Directory.php:339
msgid "Public Forum:"
msgstr "Forum pubblico:"
-#: ../../Zotlabs/Module/Directory.php:337
+#: ../../Zotlabs/Module/Directory.php:342
msgid "Keywords: "
msgstr "Parole chiave:"
-#: ../../Zotlabs/Module/Directory.php:340
+#: ../../Zotlabs/Module/Directory.php:345
msgid "Don't suggest"
msgstr "Non fornire suggerimenti"
-#: ../../Zotlabs/Module/Directory.php:342
+#: ../../Zotlabs/Module/Directory.php:347
msgid "Common connections (estimated):"
msgstr ""
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Global Directory"
msgstr "Elenchi pubblici globali"
-#: ../../Zotlabs/Module/Directory.php:391
+#: ../../Zotlabs/Module/Directory.php:396
msgid "Local Directory"
msgstr "Elenco canali su questo hub"
-#: ../../Zotlabs/Module/Directory.php:397
+#: ../../Zotlabs/Module/Directory.php:402
msgid "Finding:"
msgstr "Ricerca:"
-#: ../../Zotlabs/Module/Directory.php:400 ../../Zotlabs/Module/Suggest.php:64
+#: ../../Zotlabs/Module/Directory.php:405 ../../Zotlabs/Module/Suggest.php:64
#: ../../include/contact_widgets.php:24
msgid "Channel Suggestions"
msgstr "Canali suggeriti"
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "next page"
msgstr "pagina successiva"
-#: ../../Zotlabs/Module/Directory.php:402
+#: ../../Zotlabs/Module/Directory.php:407
msgid "previous page"
msgstr "pagina precedente"
-#: ../../Zotlabs/Module/Directory.php:403
+#: ../../Zotlabs/Module/Directory.php:408
msgid "Sort options"
msgstr "Opzioni di ordinamento"
-#: ../../Zotlabs/Module/Directory.php:404
+#: ../../Zotlabs/Module/Directory.php:409
msgid "Alphabetic"
msgstr "Alfabetico"
-#: ../../Zotlabs/Module/Directory.php:405
+#: ../../Zotlabs/Module/Directory.php:410
msgid "Reverse Alphabetic"
msgstr "Alfabetico inverso"
-#: ../../Zotlabs/Module/Directory.php:406
+#: ../../Zotlabs/Module/Directory.php:411
msgid "Newest to Oldest"
msgstr "Prima i più recenti"
-#: ../../Zotlabs/Module/Directory.php:407
+#: ../../Zotlabs/Module/Directory.php:412
msgid "Oldest to Newest"
msgstr "Prima i più vecchi"
-#: ../../Zotlabs/Module/Directory.php:424
+#: ../../Zotlabs/Module/Directory.php:429
msgid "No entries (some entries may be hidden)."
msgstr "Nessun risultato (qualche elemento potrebbe essere nascosto)."
@@ -6984,7 +7081,7 @@ msgid "Subject:"
msgstr "Oggetto:"
#: ../../Zotlabs/Module/Mail.php:287 ../../Zotlabs/Module/Mail.php:429
-#: ../../include/conversation.php:1382
+#: ../../include/conversation.php:1385
msgid "Attach file"
msgstr "Allega file"
@@ -6993,7 +7090,7 @@ msgid "Send"
msgstr "Invia"
#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:434
-#: ../../include/conversation.php:1427
+#: ../../include/conversation.php:1430
msgid "Set expiration date"
msgstr "Data di scadenza"
@@ -7215,7 +7312,7 @@ msgstr "sì"
msgid "Membership on this site is by invitation only."
msgstr "Per registrarsi su questo hub è necessario un invito."
-#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1563
+#: ../../Zotlabs/Module/Register.php:286 ../../boot.php:1570
#: ../../include/nav.php:164
msgid "Register"
msgstr "Registrati"
@@ -7231,34 +7328,34 @@ msgstr ""
msgid "Cover Photos"
msgstr "Copertine del canale"
-#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4508
+#: ../../Zotlabs/Module/Cover_photo.php:237 ../../include/items.php:4558
msgid "female"
msgstr "femmina"
-#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4509
+#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4559
#, php-format
msgid "%1$s updated her %2$s"
msgstr "Aggiornamento: %2$s di %1$s"
-#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4510
+#: ../../Zotlabs/Module/Cover_photo.php:239 ../../include/items.php:4560
msgid "male"
msgstr "maschio"
-#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4511
+#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/items.php:4561
#, php-format
msgid "%1$s updated his %2$s"
msgstr "Aggiornamento: %2$s di %1$s"
-#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4513
+#: ../../Zotlabs/Module/Cover_photo.php:242 ../../include/items.php:4563
#, php-format
msgid "%1$s updated their %2$s"
msgstr "Aggiornamento: %2$s di %1$s"
-#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2059
+#: ../../Zotlabs/Module/Cover_photo.php:244 ../../include/channel.php:2070
msgid "cover photo"
msgstr "Copertina del canale"
-#: ../../Zotlabs/Module/Cover_photo.php:360
+#: ../../Zotlabs/Module/Cover_photo.php:361
msgid "Change Cover Photo"
msgstr ""
@@ -7266,7 +7363,7 @@ msgstr ""
msgid "Documentation Search"
msgstr "Ricerca nella guida"
-#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1821
+#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1824
#: ../../include/nav.php:391
msgid "About"
msgstr "Informazioni"
@@ -7291,11 +7388,11 @@ msgstr "Guida di $Projectname"
msgid "Contents"
msgstr ""
-#: ../../Zotlabs/Module/Display.php:351
+#: ../../Zotlabs/Module/Display.php:394
msgid "Article"
msgstr ""
-#: ../../Zotlabs/Module/Display.php:403
+#: ../../Zotlabs/Module/Display.php:446
msgid "Item has been removed."
msgstr ""
@@ -7327,19 +7424,19 @@ msgstr "forum"
msgid "Search Results For:"
msgstr "Cerca risultati con:"
-#: ../../Zotlabs/Module/Network.php:230
+#: ../../Zotlabs/Module/Network.php:229
msgid "Privacy group is empty"
msgstr "Il gruppo di canali è vuoto"
-#: ../../Zotlabs/Module/Network.php:240
+#: ../../Zotlabs/Module/Network.php:238
msgid "Privacy group: "
msgstr "Gruppo di canali:"
-#: ../../Zotlabs/Module/Network.php:268
+#: ../../Zotlabs/Module/Network.php:265
msgid "Invalid connection."
msgstr "Contatto non valido."
-#: ../../Zotlabs/Module/Network.php:289 ../../addon/redred/redred.php:65
+#: ../../Zotlabs/Module/Network.php:285 ../../addon/redred/redred.php:65
msgid "Invalid channel."
msgstr ""
@@ -7437,7 +7534,7 @@ msgstr "Elenco contatti"
#: ../../Zotlabs/Module/Admin.php:97
msgid "Blocked accounts"
-msgstr ""
+msgstr "Account bloccati"
#: ../../Zotlabs/Module/Admin.php:98
msgid "Expired accounts"
@@ -7540,7 +7637,7 @@ msgid ""
"Password reset failed."
msgstr "La richiesta non può essere verificata (potresti averla già usata precedentemente). La password non sarà reimpostata."
-#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1591
+#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1598
msgid "Password Reset"
msgstr "Reimposta la password"
@@ -7638,11 +7735,11 @@ msgstr "Firefox Share"
msgid "Remote Diagnostics"
msgstr "Diagnostica remota"
-#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:390
+#: ../../Zotlabs/Lib/Apps.php:238 ../../include/features.php:417
msgid "Suggest Channels"
msgstr "Suggerisci canali"
-#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1582
+#: ../../Zotlabs/Lib/Apps.php:239 ../../boot.php:1589
#: ../../include/nav.php:126 ../../include/nav.php:130
msgid "Login"
msgstr "Accedi"
@@ -7651,8 +7748,8 @@ msgstr "Accedi"
msgid "Activity"
msgstr "Attività"
-#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1928
-#: ../../include/features.php:87 ../../include/nav.php:497
+#: ../../Zotlabs/Lib/Apps.php:245 ../../include/conversation.php:1931
+#: ../../include/features.php:96 ../../include/nav.php:497
msgid "Wiki"
msgstr "Wiki"
@@ -7660,8 +7757,8 @@ msgstr "Wiki"
msgid "Channel Home"
msgstr "Bacheca del canale"
-#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1850
-#: ../../include/conversation.php:1853
+#: ../../Zotlabs/Lib/Apps.php:249 ../../include/conversation.php:1853
+#: ../../include/conversation.php:1856
msgid "Events"
msgstr "Eventi"
@@ -7685,248 +7782,7 @@ msgstr "Diagnostica"
msgid "Suggest"
msgstr "Suggerisci"
-#: ../../Zotlabs/Lib/Apps.php:259
-msgid "Random Channel"
-msgstr "Canale casuale"
-
-#: ../../Zotlabs/Lib/Apps.php:260
-msgid "Invite"
-msgstr "Invita"
-
-#: ../../Zotlabs/Lib/Apps.php:261 ../../Zotlabs/Widget/Admin.php:26
-msgid "Features"
-msgstr "Funzionalità"
-
-#: ../../Zotlabs/Lib/Apps.php:262 ../../addon/openid/MysqlProvider.php:69
-msgid "Language"
-msgstr "Lingua"
-
-#: ../../Zotlabs/Lib/Apps.php:263
-msgid "Post"
-msgstr "Post"
-
-#: ../../Zotlabs/Lib/Apps.php:264 ../../addon/openid/MysqlProvider.php:58
-#: ../../addon/openid/MysqlProvider.php:59
-#: ../../addon/openid/MysqlProvider.php:60
-msgid "Profile Photo"
-msgstr "Foto del profilo"
-
-#: ../../Zotlabs/Lib/Apps.php:407
-msgid "Purchase"
-msgstr "Acquista"
-
-#: ../../Zotlabs/Lib/Apps.php:411
-msgid "Undelete"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Apps.php:419
-msgid "Add to app-tray"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Apps.php:420
-msgid "Remove from app-tray"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Apps.php:421
-msgid "Pin to navbar"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Apps.php:422
-msgid "Unpin from navbar"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Permcat.php:82
-msgctxt "permcat"
-msgid "default"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Permcat.php:133
-msgctxt "permcat"
-msgid "follower"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Permcat.php:137
-msgctxt "permcat"
-msgid "contributor"
-msgstr ""
-
-#: ../../Zotlabs/Lib/Permcat.php:141
-msgctxt "permcat"
-msgid "publisher"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:42
-#: ../../Zotlabs/Lib/NativeWikiPage.php:93
-msgid "(No Title)"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:107
-msgid "Wiki page create failed."
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:120
-msgid "Wiki not found."
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:131
-msgid "Destination name already exists"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:163
-#: ../../Zotlabs/Lib/NativeWikiPage.php:359
-msgid "Page not found"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:194
-msgid "Error reading page content"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:350
-#: ../../Zotlabs/Lib/NativeWikiPage.php:400
-#: ../../Zotlabs/Lib/NativeWikiPage.php:467
-#: ../../Zotlabs/Lib/NativeWikiPage.php:508
-msgid "Error reading wiki"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:388
-msgid "Page update failed."
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:422
-msgid "Nothing deleted"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:488
-msgid "Compare: object not found."
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:494
-msgid "Page updated"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:497
-msgid "Untitled"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:503
-msgid "Wiki resource_id required for git commit"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:559
-#: ../../Zotlabs/Widget/Wiki_page_history.php:23
-msgctxt "wiki_history"
-msgid "Message"
-msgstr ""
-
-#: ../../Zotlabs/Lib/NativeWikiPage.php:597
-#: ../../addon/gitwiki/gitwiki_backend.php:579 ../../include/bbcode.php:706
-#: ../../include/bbcode.php:865
-msgid "Different viewers will see this text differently"
-msgstr "Ad altri questo testo potrebbe apparire in modo differente"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:34
-#: ../../include/acl_selectors.php:33
-msgid "Visible to your default audience"
-msgstr "Visibile secondo le impostazioni predefinite"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:107
-#: ../../include/acl_selectors.php:106
-msgid "Only me"
-msgstr "Solo io"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:108
-msgid "Public"
-msgstr "Pubblico"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:109
-msgid "Anybody in the $Projectname network"
-msgstr "Tutti sulla rete $Projectname"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:110
-#, php-format
-msgid "Any account on %s"
-msgstr "Tutti gli account su %s"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:111
-msgid "Any of my connections"
-msgstr "Chiunque tra i miei contatti"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:112
-msgid "Only connections I specifically allow"
-msgstr "Solo chi riceve il mio permesso"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:113
-msgid "Anybody authenticated (could include visitors from other networks)"
-msgstr "Chiunque sia autenticato (inclusi visitatori di altre reti)"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:114
-msgid "Any connections including those who haven't yet been approved"
-msgstr "Tutti i contatti inclusi quelli non ancora approvati"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:150
-msgid ""
-"This is your default setting for the audience of your normal stream, and "
-"posts."
-msgstr "Impostazione predefinita di chi può vedere ciò che pubblichi in bacheca"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:151
-msgid ""
-"This is your default setting for who can view your default channel profile"
-msgstr "Impostazione predefinita di chi può vedere il profilo standard del tuo canale"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:152
-msgid "This is your default setting for who can view your connections"
-msgstr "Impostazione predefinita di chi può vedere i tuoi contatti/amici"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:153
-msgid ""
-"This is your default setting for who can view your file storage and photos"
-msgstr "Impostazione predefinita di chi può vedere le foto e il tuo archivio file"
-
-#: ../../Zotlabs/Lib/PermissionDescription.php:154
-msgid "This is your default setting for the audience of your webpages"
-msgstr "Impostazione predefinita di chi può vedere le tue pagine web"
-
-#: ../../Zotlabs/Lib/Chatroom.php:23
-msgid "Missing room name"
-msgstr "Chat senza nome"
-
-#: ../../Zotlabs/Lib/Chatroom.php:32
-msgid "Duplicate room name"
-msgstr "Il nome della chat è duplicato"
-
-#: ../../Zotlabs/Lib/Chatroom.php:82 ../../Zotlabs/Lib/Chatroom.php:90
-msgid "Invalid room specifier."
-msgstr "Il nome della chat non è valido."
-
-#: ../../Zotlabs/Lib/Chatroom.php:122
-msgid "Room not found."
-msgstr "Chat non trovata."
-
-#: ../../Zotlabs/Lib/Chatroom.php:143
-msgid "Room is full"
-msgstr "La chat è al completo"
-
-#: ../../Zotlabs/Lib/Enotify.php:60
-msgid "$Projectname Notification"
-msgstr "Notifica $Projectname"
-
-#: ../../Zotlabs/Lib/Enotify.php:61 ../../addon/diaspora/util.php:308
-#: ../../addon/diaspora/util.php:321 ../../addon/diaspora/p.php:48
-msgid "$projectname"
-msgstr "$projectname"
-
-#: ../../Zotlabs/Lib/Enotify.php:63
-msgid "Thank You,"
-msgstr "Grazie,"
-
-#: ../../Zotlabs/Lib/Enotify.php:65 ../../addon/hubwall/hubwall.php:33
-#, php-format
-msgid "%s Administrator"
-msgstr "L'amministratore di %s"
-
-#: ../../Zotlabs/Lib/Enotify.php:66
-#, php-format
+#: ../../Zotl
msgid "This email was sent by %1$s at %2$s."
msgstr ""
@@ -7973,7 +7829,7 @@ msgstr "Visita %s per leggere i tuoi messaggi privati e rispondere."
#: ../../Zotlabs/Lib/Enotify.php:141
msgid "commented on"
-msgstr ""
+msgstr "ha commentato"
#: ../../Zotlabs/Lib/Enotify.php:152
msgid "liked"
@@ -8028,7 +7884,7 @@ msgstr ""
#: ../../Zotlabs/Lib/Enotify.php:299
#, php-format
msgid "%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]"
-msgstr "%1$s, %2$s ma messo un mi piace al [zrl=%3$s]tuo %4$s[/zrl]"
+msgstr "%1$s, a %2$s [zrl=%3$s]tuo %4$s[/zrl]"
#: ../../Zotlabs/Lib/Enotify.php:314
#, php-format
@@ -8038,7 +7894,7 @@ msgstr "[$Projectname:Notify] Ricevuto un mi piace alla conversazione #%1$d di %
#: ../../Zotlabs/Lib/Enotify.php:315
#, php-format
msgid "%1$s, %2$s liked an item/conversation you created."
-msgstr "%1$s, %2$s ha messo un mi piace all'elemento/conversazione che hai creato"
+msgstr "%1$s, a %2$s piace l'elemento/conversazione che hai creato"
#: ../../Zotlabs/Lib/Enotify.php:326
#, php-format
@@ -9121,7 +8977,7 @@ msgstr "Raggio degli angoli stondati"
#: ../../view/theme/redbasic_c/php/config.php:112
#: ../../view/theme/redbasic/php/config.php:110
msgid "Example: 4px"
-msgstr ""
+msgstr "Esempio: 4px"
#: ../../view/theme/redbasic_c/php/config.php:113
#: ../../view/theme/redbasic/php/config.php:111
@@ -9154,12 +9010,12 @@ msgstr "Dimensione foto dei partecipanti alla conversazione"
#: ../../addon/rendezvous/rendezvous.php:57
msgid "Errors encountered deleting database table "
-msgstr ""
+msgstr "Errore nella cancellazione della tabella"
#: ../../addon/rendezvous/rendezvous.php:95
#: ../../addon/twitter/twitter.php:779
msgid "Submit Settings"
-msgstr ""
+msgstr "Invia impostazioni"
#: ../../addon/rendezvous/rendezvous.php:96
msgid "Drop tables when uninstalling?"
@@ -9205,27 +9061,27 @@ msgstr ""
#: ../../addon/rendezvous/rendezvous.php:171
msgid "Let's meet here"
-msgstr ""
+msgstr "Incontriamoci qui"
#: ../../addon/rendezvous/rendezvous.php:174
msgid "New marker"
-msgstr ""
+msgstr "Nuovo segnaposto"
#: ../../addon/rendezvous/rendezvous.php:175
msgid "Edit marker"
-msgstr ""
+msgstr "Modifica segnaposto"
#: ../../addon/rendezvous/rendezvous.php:176
msgid "New identity"
-msgstr ""
+msgstr "Nuova identità"
#: ../../addon/rendezvous/rendezvous.php:177
msgid "Delete marker"
-msgstr ""
+msgstr "Elimina segnaposto"
#: ../../addon/rendezvous/rendezvous.php:178
msgid "Delete member"
-msgstr ""
+msgstr "Elimina membro"
#: ../../addon/rendezvous/rendezvous.php:179
msgid "Edit proximity alert"
@@ -9240,7 +9096,7 @@ msgstr ""
#: ../../addon/rendezvous/rendezvous.php:180
#: ../../addon/rendezvous/rendezvous.php:185
msgid "distance"
-msgstr ""
+msgstr "distanza"
#: ../../addon/rendezvous/rendezvous.php:181
msgid "Proximity alert distance (meters)"
@@ -9259,7 +9115,7 @@ msgstr ""
#: ../../addon/rendezvous/rendezvous.php:186
msgid "Reminder note"
-msgstr ""
+msgstr "Nota per il promemoria"
#: ../../addon/rendezvous/rendezvous.php:187
msgid ""
@@ -9311,12 +9167,12 @@ msgstr ""
#: ../../addon/gnusoc/gnusoc.php:464
msgid "Follow"
-msgstr ""
+msgstr "Segui"
#: ../../addon/gnusoc/gnusoc.php:467
#, php-format
msgid "%1$s is now following %2$s"
-msgstr ""
+msgstr "%1$s sta ora seguendo %2$s"
#: ../../addon/planets/planets.php:121
msgid "Planets Settings updated."
@@ -9411,7 +9267,7 @@ msgstr ""
#: ../../addon/openclipatar/openclipatar.php:78
msgid "Uploaded by: "
-msgstr ""
+msgstr "Caricato da:"
#: ../../addon/openclipatar/openclipatar.php:78
msgid "Drawn by: "
@@ -9420,7 +9276,7 @@ msgstr ""
#: ../../addon/openclipatar/openclipatar.php:182
#: ../../addon/openclipatar/openclipatar.php:194
msgid "Use this image"
-msgstr ""
+msgstr "Usa questa immagine"
#: ../../addon/openclipatar/openclipatar.php:192
msgid "Or select from a free OpenClipart.org image:"
@@ -9428,11 +9284,11 @@ msgstr ""
#: ../../addon/openclipatar/openclipatar.php:195
msgid "Search Term"
-msgstr ""
+msgstr "Termine di ricerca"
#: ../../addon/openclipatar/openclipatar.php:232
msgid "Unknown error. Please try again later."
-msgstr ""
+msgstr "Errore sconosciuto. Per favore riprova più tardi."
#: ../../addon/openclipatar/openclipatar.php:308
msgid "Profile photo updated successfully."
@@ -10412,11 +10268,11 @@ msgstr ""
#: ../../addon/superblock/superblock.php:112
msgid "Currently blocked"
-msgstr ""
+msgstr "Attualmente bloccati"
#: ../../addon/superblock/superblock.php:114
msgid "No channels currently blocked"
-msgstr ""
+msgstr "Nessun canale attualmente bloccato"
#: ../../addon/superblock/superblock.php:120
msgid "\"Superblock\" Settings"
@@ -11133,7 +10989,7 @@ msgstr ""
#: ../../addon/tour/tour.php:87
msgid "You have received a new private message. Click here to see from who!"
-msgstr ""
+msgstr "Hai ricevuto un nuovo messaggio privato. Clicca qui per sapere da chi!"
#: ../../addon/tour/tour.php:88
msgid "There are events this week. Click here too see which!"
@@ -11141,7 +10997,7 @@ msgstr ""
#: ../../addon/tour/tour.php:89
msgid "You have received a new introduction. Click here to see who!"
-msgstr ""
+msgstr "Hai ricevuto una nuova richiesta di amicizia. Clicca qui per sapere da chi!"
#: ../../addon/tour/tour.php:90
msgid ""
@@ -13950,15 +13806,15 @@ msgstr "Attendere..."
#: ../../include/nav.php:297
msgid "Add Apps"
-msgstr ""
+msgstr "Aggiungi App"
#: ../../include/nav.php:298
msgid "Arrange Apps"
-msgstr ""
+msgstr "Ordina le App"
#: ../../include/nav.php:299
msgid "Toggle System Apps"
-msgstr ""
+msgstr "Attiva/disattiva Apps"
#: ../../include/photos.php:150
#, php-format
@@ -14045,7 +13901,7 @@ msgstr "Uscita effettuata."
#: ../../include/auth.php:263
msgid "Email validation is incomplete. Please check your email."
-msgstr ""
+msgstr "Validazione via mail non completa. Per favore controlla la tua mail."
#: ../../include/auth.php:279
msgid "Failed authentication"
diff --git a/view/it/hstrings.php b/view/it/hstrings.php
index d6ad56eda..42fc58347 100644
--- a/view/it/hstrings.php
+++ b/view/it/hstrings.php
@@ -24,6 +24,7 @@ App::$strings["Can chat with me"] = "Può aprire una chat con me";
App::$strings["Can source my public posts in derived channels"] = "Può usare i miei post pubblici per creare canali derivati";
App::$strings["Can administer my channel"] = "Può amministrare il mio canale";
App::$strings["Social Networking"] = "Social network";
+App::$strings["Social - Party"] = "Social - Party";
App::$strings["Social - Mostly Public"] = "Social - Prevalentemente pubblico";
App::$strings["Social - Restricted"] = "Social - Con restrizioni";
App::$strings["Social - Private"] = "Social - Privato";
@@ -150,8 +151,8 @@ App::$strings["You may also export your posts and conversations for a particular
App::$strings["To select all posts for a given year, such as this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Per selezionare tutti i post di un anno, come per esempio quello in corso, visita <a href=\"%1\$s\">%2\$s</a> ";
App::$strings["To select all posts for a given month, such as January of this year, visit <a href=\"%1\$s\">%2\$s</a>"] = "Per selezionare tutti post di un dato mese, come per esempio gennaio di quest'anno, visita <a href=\"%1\$s\">%2\$s</a>";
App::$strings["These content files may be imported or restored by visiting <a href=\"%1\$s\">%2\$s</a> on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Questi contenuti potranno essere importati o ripristinati visitando <a href=\"%1\$s\">%2\$s</a> su qualsiasi sito/hub dove è presente il tuo canale. Per mantenere l'ordinamento originale fai attenzione ad importare i file secondo la data (prima il più vecchio)";
-App::$strings["Welcome to Hubzilla!"] = "";
-App::$strings["You have got no unseen posts..."] = "";
+App::$strings["Welcome to Hubzilla!"] = "Benvenuto su Hubzilla!";
+App::$strings["You have got no unseen posts..."] = "Non hai post non letti...";
App::$strings["Public access denied."] = "Accesso pubblico negato.";
App::$strings["Search"] = "Cerca";
App::$strings["Items tagged with: %s"] = "Elementi taggati con: %s";
@@ -256,7 +257,7 @@ App::$strings["Location (URL) to purchase app"] = "Indirizzo (URL) per acquistar
App::$strings["Please login."] = "Effettua l'accesso.";
App::$strings["Hub not found."] = "Hub non trovato.";
App::$strings["photo"] = "la foto";
-App::$strings["status"] = "il messaggio di stato";
+App::$strings["status"] = "messaggio di stato";
App::$strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s sta seguendo %3\$s di %2\$s";
App::$strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s non segue più %3\$s di %2\$s";
App::$strings["Channel not found."] = "Canale non trovato.";
@@ -282,7 +283,7 @@ App::$strings["Read more about roles"] = "Maggiori informazioni sui ruoli";
App::$strings["Create Channel"] = "Crea un canale";
App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Un canale è la tua identità su questa rete. Può rappresentare una persona, un blog o un forum, per esempio. Il tuo canale può essere in contatto con altri canali per condividere contenuti con permessi anche molto dettagliati.";
App::$strings["or <a href=\"import\">import an existing channel</a> from another location."] = "oppure <a href=\"import\">importa un canale esistente</a> da un altro server/hub.";
-App::$strings["Validate"] = "";
+App::$strings["Validate"] = "Validazione";
App::$strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Non è possibile eliminare un canale prima di 48 ore dall'ultimo cambio password.";
App::$strings["Remove This Channel"] = "Elimina questo canale";
App::$strings["WARNING: "] = "ATTENZIONE:";
@@ -351,9 +352,9 @@ App::$strings["xml PHP module"] = "modulo xml PHP";
App::$strings["zip PHP module"] = "modulo zip del PHP";
App::$strings["Apache mod_rewrite module"] = "modulo Apache mod_rewrite";
App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Errore: il modulo mod-rewrite di Apache è richiesto ma non installato";
-App::$strings["exec"] = "";
+App::$strings["exec"] = "exec";
App::$strings["Error: exec is required but is either not installed or has been disabled in php.ini"] = "Errore: exec è richiesto ma non è installato o è stato disabilitato nel php.ini";
-App::$strings["shell_exec"] = "";
+App::$strings["shell_exec"] = "shell_exec";
App::$strings["Error: shell_exec is required but is either not installed or has been disabled in php.ini"] = "Errore: shell_exec è richiesto ma non è installato o è stato disabilitato in php.ini";
App::$strings["Error: libCURL PHP module required but not installed."] = "Errore: il modulo libCURL di PHP è richiesto ma non installato.";
App::$strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Errore: Il modulo GD graphics di PHP con supporto a JPEG è richiesto ma non installato.";
@@ -362,11 +363,10 @@ App::$strings["Error: PDO database PHP module required but not installed."] = "E
App::$strings["Error: mb_string PHP module required but not installed."] = "Errore: il modulo PHP mb_string è richiesto ma non installato.";
App::$strings["Error: xml PHP module required for DAV but not installed."] = "Errore: il modulo xml PHP è richiesto per DAV ma non è installato.";
App::$strings["Error: zip PHP module required but not installed."] = "Errore: il modulo zip del PHP necessario ma non installato.";
+App::$strings[".htconfig.php is writable"] = ".htconfig.php è scrivibile";
App::$strings["The web installer needs to be able to create a file called \".htconfig.php\" in the top folder of your web server and it is unable to do so."] = "L'installazione web deve poter creare un file chiamato \".htconfig.php\" nella cartella di Hubzilla ma non è in grado di farlo.";
App::$strings["This is most often a permission setting, as the web server may not be able to write files in your folder - even if you can."] = "Spesso ciò è dovuto ai permessi di accesso al disco: il web server potrebbe non aver diritto di scrivere il file nella cartella, anche se tu puoi.";
-App::$strings["At the end of this procedure, we will give you a text to save in a file named .htconfig.php in your Red top folder."] = "Alla fine di questa procedura ti sarà dato il testo da salvare in un file di nome .htconfig.php dentro la cartella principale di Hubzilla.";
-App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Puoi anche saltare questa procedura ed effettuare un'installazione manuale. Guarda il file 'install/INSTALL.txt' per le istruzioni.";
-App::$strings[".htconfig.php is writable"] = ".htconfig.php è scrivibile";
+App::$strings["Please see install/INSTALL.txt for additional information."] = "Leggi il file 'install/INSTALL.txt' per maggiori informazioni.";
App::$strings["This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Questo software usa lo Smarty3 template engine per visualizzare le web views. Smarty3 compila i template in PHP per accelerarne la visualizzazione.";
App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Per poter memorizzare questi template, il server web deve avere i diritti di scrittura sulla directory %s";
App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Assicurati che il tuo web server sia in esecuzione con un utente che ha diritto di scrittura su quella cartella (ad esempio www-data).";
@@ -543,7 +543,7 @@ App::$strings["Used to provide a member experience matched to technical comfort
App::$strings["Lock the technical skill level setting"] = "Il livello tecnico non potrà essere modificato";
App::$strings["Members can set their own technical comfort level by default"] = "Gli utenti possono scegliere il livello tecnico preferito";
App::$strings["Banner/Logo"] = "Banner o logo";
-App::$strings["Unfiltered HTML/CSS/JS is allowed"] = "";
+App::$strings["Unfiltered HTML/CSS/JS is allowed"] = "È permesso un contenuto HTML/CSS/JS non filtrato";
App::$strings["Administrator Information"] = "Informazioni sull'amministratore";
App::$strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Informazioni per contattare gli amministratori del sito. Saranno mostrate sulla pagina di informazioni. È consentito il BBcode";
App::$strings["Site Information"] = "Informazioni sul sito";
@@ -551,8 +551,6 @@ App::$strings["Publicly visible description of this site. Displayed on siteinfo
App::$strings["System language"] = "Lingua di sistema";
App::$strings["System theme"] = "Tema di sistema";
App::$strings["Default system theme - may be over-ridden by user profiles - <a href='#' id='cnftheme'>change theme settings</a>"] = "Il tema di sistema può essere cambiato dai profili dei singoli utenti - <a href='#' id='cnftheme'>Cambia le impostazioni del tema</a>";
-App::$strings["Mobile system theme"] = "Tema di sistema per dispositivi mobili";
-App::$strings["Theme for mobile devices"] = "Tema per i dispositivi mobili";
App::$strings["Allow Feeds as Connections"] = "Permetti di aggiungere i feed come contatti";
App::$strings["(Heavy system resource usage)"] = "(Uso intenso delle risorse di sistema!)";
App::$strings["Maximum image size"] = "Dimensione massima immagini";
@@ -560,8 +558,8 @@ App::$strings["Maximum size in bytes of uploaded images. Default is 0, which mea
App::$strings["Does this site allow new member registration?"] = "Questo sito permette a nuovi utenti di registrarsi?";
App::$strings["Invitation only"] = "Solo con invito";
App::$strings["Only allow new member registrations with an invitation code. Above register policy must be set to Yes."] = "La registrazione è permessa solo a chi possiede un codice di invito. Funziona solo se la possibilità di registrarsi è impostata a 'Sì'.";
-App::$strings["Minimum age"] = "";
-App::$strings["Minimum age (in years) for who may register on this site."] = "";
+App::$strings["Minimum age"] = "Età minima";
+App::$strings["Minimum age (in years) for who may register on this site."] = "L'età minima (in anni) richiesta per registrarsi su questo sito.";
App::$strings["Which best describes the types of account offered by this hub?"] = "Come descriveresti il tipo di servizio proposto da questo server?";
App::$strings["Register text"] = "Testo di registrazione";
App::$strings["Will be displayed prominently on the registration page."] = "Sarà mostrato ben visibile nella pagina di registrazione.";
@@ -579,10 +577,10 @@ App::$strings["Force publish"] = "Forza la publicazione del profilo";
App::$strings["Check to force all profiles on this site to be listed in the site directory."] = "Seleziona per pubblicare sui directory server <strong>tutti</strong> i profili registrati su questo sito.";
App::$strings["Import Public Streams"] = "Suggerisci contenuti pubblici della rete Hubzilla";
App::$strings["Import and allow access to public content pulled from other sites. Warning: this content is unmoderated."] = "Suggerisci e visualizza i post pubblici presenti su altri siti Hubzilla. Attenzione: i contenuti potrebbero essere inappropriati perché non sottoposti a moderazione.";
-App::$strings["Site only Public Streams"] = "";
-App::$strings["Allow access to public content originating only from this site if Imported Public Streams are disabled."] = "";
-App::$strings["Allow anybody on the internet to access the Public streams"] = "";
-App::$strings["Disable to require authentication before viewing. Warning: this content is unmoderated."] = "";
+App::$strings["Site only Public Streams"] = "Solo i flussi pubblici su questo sito";
+App::$strings["Allow access to public content originating only from this site if Imported Public Streams are disabled."] = "Consenti l'accesso a contenuti pubblici originati solo da questo sito se se è disabilitata l'importazione di flussi pubblici.";
+App::$strings["Allow anybody on the internet to access the Public streams"] = "Permetti a chiunque su internet di accedere ai flussi pubblici";
+App::$strings["Disable to require authentication before viewing. Warning: this content is unmoderated."] = "Disabilita per richiedere di autenticarsi prima di visualizzare. Attenzione: questo contenuto non è moderato.";
App::$strings["Login on Homepage"] = "Login sulla homepage";
App::$strings["Present a login box to visitors on the home page if no other content has been configured."] = "Presenta il modulo di login ai visitatori sulla homepage in mancanza di altri contenuti.";
App::$strings["Enable context help"] = "Abilita la guida contestuale";
@@ -600,7 +598,7 @@ App::$strings["Delivery interval"] = "Recapito ritardato";
App::$strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Numero di secondi di cui può essere ritardato il recapito, per ridurre il carico di sistema. Consigliati: 4-5 secondi per hosting condiviso, 2-3 per i VPS, 0-1 per grandi server dedicati.";
App::$strings["Deliveries per process"] = "Tentativi di recapito per processo";
App::$strings["Number of deliveries to attempt in a single operating system process. Adjust if necessary to tune system performance. Recommend: 1-5."] = "Numero di tentativi di recapito da tentare per ciascun processo. Può essere modificato per migliorare le performance di sistema. Raccomandato: 1-5";
-App::$strings["Queue Threshold"] = "";
+App::$strings["Queue Threshold"] = "Threshold della coda";
App::$strings["Always defer immediate delivery if queue contains more than this number of entries."] = "Rinvia la consegna immediata se la coda contiene più di questo numero di elementi.";
App::$strings["Poll interval"] = "Intervallo di polling";
App::$strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Numero di secondi di cui può essere ritardato il polling in background, per ridurre il carico del sistema. Se 0, verrà usato lo stesso valore del 'Recapito ritardato'.";
@@ -612,12 +610,13 @@ App::$strings["Maximum Load Average"] = "Carico massimo medio";
App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carico di sistema massimo perché i processi di recapito e polling siano ritardati - il valore predefinito è 50.";
App::$strings["Expiration period in days for imported (grid/network) content"] = "Scadenza dei contenuti importati da altri siti (in giorni)";
App::$strings["0 for no expiration of imported content"] = "0 per non avere scadenza";
-App::$strings["Public servers: Optional landing (marketing) webpage for new registrants"] = "";
-App::$strings["Create this page first. Default is %s/register"] = "";
-App::$strings["Page to display after creating a new channel"] = "";
+App::$strings["Do not expire any posts which have comments less than this many days ago"] = "Non far scadere nessun post che ha commenti più recenti di questo numero di giorni";
+App::$strings["Public servers: Optional landing (marketing) webpage for new registrants"] = "Server pubblici: Landing page (marketing) opzionale per utenti appena registrati";
+App::$strings["Create this page first. Default is %s/register"] = "Crea questa pagina prima. Il default è %s/register";
+App::$strings["Page to display after creating a new channel"] = "Pagina da visualizzare dopo la creazione di un nuovo canale";
App::$strings["Recommend: profiles, go, or settings"] = "";
-App::$strings["Optional: site location"] = "";
-App::$strings["Region or country"] = "";
+App::$strings["Optional: site location"] = "Opzionale: site location";
+App::$strings["Region or country"] = "Regione o Paese";
App::$strings["New Profile Field"] = "Nuovo campo del profilo";
App::$strings["Field nickname"] = "Nome breve del campo";
App::$strings["System name of field"] = "Nome di sistema del campo";
@@ -673,10 +672,11 @@ App::$strings["Visible to:"] = "Visibile a:";
App::$strings["__ctx:acl__ Profile"] = "Profilo";
App::$strings["Comment approved"] = "Commento approvato";
App::$strings["Comment deleted"] = "Commento eliminato";
-App::$strings["Permission category saved."] = "";
-App::$strings["Use this form to create permission rules for various classes of people or connections."] = "";
-App::$strings["Permission Categories"] = "";
-App::$strings["Permission Name"] = "";
+App::$strings["Permission Name is required."] = "";
+App::$strings["Permission category saved."] = "Categoria di permessi salvata";
+App::$strings["Use this form to create permission rules for various classes of people or connections."] = "Usa questo modulo per definire i permessi specifici per classi di persone o connessioni.";
+App::$strings["Permission Categories"] = "Categorie di permessi";
+App::$strings["Permission Name"] = "Nome del permesso";
App::$strings["My Settings"] = "Permessi che concedo";
App::$strings["inherited"] = "derivato";
App::$strings["Individual Permissions"] = "Permessi individuali";
@@ -695,7 +695,7 @@ App::$strings["Publish your default profile in the network directory"] = "Mostra
App::$strings["Allow us to suggest you as a potential friend to new members?"] = "Vuoi essere suggerito come amico ai nuovi membri?";
App::$strings["or"] = "o";
App::$strings["Your channel address is"] = "L'indirizzo del tuo canale è";
-App::$strings["Your files/photos are accessible via WebDAV at"] = "";
+App::$strings["Your files/photos are accessible via WebDAV at"] = "I tuoi file/foto sono accessibili via WebDAV all'indirizzo";
App::$strings["Channel Settings"] = "Impostazioni del canale";
App::$strings["Basic Settings"] = "Impostazioni di base";
App::$strings["Full Name:"] = "Nome completo:";
@@ -725,11 +725,11 @@ App::$strings["This website does not expire imported content."] = "I contenuti d
App::$strings["The website limit takes precedence if lower than your limit."] = "Il limite del server ha la precedenza, se minore di quello impostato da te.";
App::$strings["Maximum Friend Requests/Day:"] = "Numero massimo giornaliero di richieste di amicizia:";
App::$strings["May reduce spam activity"] = "Serve a ridurre lo spam";
-App::$strings["Default Privacy Group"] = "";
+App::$strings["Default Privacy Group"] = "Privacy Group predefinito";
App::$strings["Use my default audience setting for the type of object published"] = "Mostra ai contatti secondo le impostazioni standard per questo tipo di contenuto";
-App::$strings["Profile to assign new connections"] = "";
+App::$strings["Profile to assign new connections"] = "Profilo da associare ai nuovi contatti";
App::$strings["Channel permissions category:"] = "Categorie di permessi dei canali:";
-App::$strings["Default Permissions Group"] = "";
+App::$strings["Default Permissions Group"] = "Permission Group predefinito";
App::$strings["Maximum private messages per day from unknown people:"] = "Numero massimo giornaliero di messaggi privati da utenti sconosciuti:";
App::$strings["Useful to reduce spamming"] = "Serve e ridurre lo spam";
App::$strings["Notification Settings"] = "Impostazioni di notifica";
@@ -761,11 +761,12 @@ App::$strings["System info messages"] = "Notifiche di sistema";
App::$strings["System critical alerts"] = "Avvisi critici di sistema";
App::$strings["New connections"] = "Nuovi contatti";
App::$strings["System Registrations"] = "Registrazioni";
-App::$strings["Unseen shared files"] = "";
+App::$strings["Unseen shared files"] = "File condivisi non ancora visitati";
App::$strings["Unseen public activity"] = "Attività pubblica non letta";
-App::$strings["Email notification hub (hostname)"] = "";
-App::$strings["If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s"] = "";
-App::$strings["Also show new wall posts, private messages and connections under Notices"] = "Mostra negli avvisi anche i nuovi post, i messaggi privati e i nuovi contatti";
+App::$strings["Unseen likes and dislikes"] = "Mi piace e non mi piace da leggere";
+App::$strings["Email notification hub (hostname)"] = "Hub di notifica (hostname)";
+App::$strings["If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s"] = "Se il tuo canale è replicato su molti hub, scegli qui da dove saranno inviati i messaggi. Serve ad evitare di ricevere notifiche duplicate. Esempio: %s";
+App::$strings["Show new wall posts, private messages and connections under Notices"] = "Mostra i nuovi post in bacheca, i messaggi privati e le connessioni come Notifiche";
App::$strings["Notify me of events this many days in advance"] = "Giorni di anticipo per notificare gli eventi";
App::$strings["Must be greater than 0"] = "Maggiore di 0";
App::$strings["Advanced Account/Page Type Settings"] = "Impostazioni avanzate";
@@ -777,8 +778,10 @@ App::$strings["Default file upload folder"] = "Cartella predefinita per i file c
App::$strings["Personal menu to display in your channel pages"] = "Menu personale da mostrare sulle pagine del tuo canale";
App::$strings["Remove this channel."] = "Elimina questo canale.";
App::$strings["Firefox Share \$Projectname provider"] = "Attiva Firefox Share per \$Projectname";
-App::$strings["Start calendar week on Monday"] = "";
+App::$strings["Start calendar week on Monday"] = "Inizia la settimana nel calendario da lunedì";
App::$strings["Additional Features"] = "Funzionalità opzionali";
+App::$strings["Your technical skill level"] = "Il tuo livello tecnico";
+App::$strings["Used to provide a member experience and additional features consistent with your comfort level"] = "Serve ad adeguare l'interfaccia e le funzionalità mostrate alla tua dimestichezza";
App::$strings["This channel is limited to %d tokens"] = "Questo canale è limitato a %d token";
App::$strings["Name and Password are required."] = "Nome e password sono obbligatori.";
App::$strings["Token saved."] = "Token salvato.";
@@ -789,6 +792,22 @@ App::$strings["Login Name"] = "Nome utente";
App::$strings["Login Password"] = "Password";
App::$strings["Expires (yyyy-mm-dd)"] = "Con scadenza (aaaa-mm-gg)";
App::$strings["Their Settings"] = "Permessi concessi a te";
+App::$strings["Name and Secret are required"] = "Nome e Password sono obbligatori";
+App::$strings["Add OAuth2 application"] = "Aggiungi applicazione OAuth2";
+App::$strings["Name of application"] = "Nome dell'applicazione";
+App::$strings["Consumer Secret"] = "Consumer Secret";
+App::$strings["Automatically generated - change if desired. Max length 20"] = "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20";
+App::$strings["Redirect"] = "Redirect";
+App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI di riderezione - lasciare vuoto se non richiesto specificamente dall'applicazione";
+App::$strings["Grant Types"] = "";
+App::$strings["leave blank unless your application sepcifically requires this"] = "lascia bianco a meno che la applicazione non lo richieda esplicitamente";
+App::$strings["Authorization scope"] = "Ambito dell'autorizzazione";
+App::$strings["OAuth2 Application not found."] = "Applicazione OAuth2 non trovata.";
+App::$strings["Add application"] = "Aggiungi una app";
+App::$strings["Connected OAuth2 Apps"] = "Applicazioni OAuth2 connesse";
+App::$strings["Client key starts with"] = "La client key inizia con";
+App::$strings["No name"] = "Nessun nome";
+App::$strings["Remove authorization"] = "Revoca l'autorizzazione";
App::$strings["Not valid email."] = "Email non valida.";
App::$strings["Protected email address. Cannot change to that email."] = "È un indirizzo email riservato. Non puoi sceglierlo.";
App::$strings["System failure storing new email. Please try again."] = "Errore di sistema. Non è stato possibile memorizzare il tuo messaggio, riprova per favore.";
@@ -803,19 +822,17 @@ App::$strings["Current Password"] = "Password attuale";
App::$strings["Enter New Password"] = "Nuova password";
App::$strings["Confirm New Password"] = "Conferma la nuova password";
App::$strings["Leave password fields blank unless changing"] = "Lascia vuoti questi campi per non cambiare la password";
-App::$strings["Your technical skill level"] = "Il tuo livello tecnico";
-App::$strings["Used to provide a member experience and additional features consistent with your comfort level"] = "";
App::$strings["Remove Account"] = "Elimina l'account";
App::$strings["Remove this account including all its channels"] = "Elimina questo account e tutti i suoi canali";
-App::$strings["Affinity Slider settings updated."] = "";
+App::$strings["Affinity Slider settings updated."] = "Impostazioni dell'Affinity Slider salvate.";
App::$strings["No feature settings configured"] = "Non hai componenti aggiuntivi da personalizzare";
-App::$strings["Default maximum affinity level"] = "";
-App::$strings["0-99 default 99"] = "";
-App::$strings["Default minimum affinity level"] = "";
-App::$strings["0-99 - default 0"] = "";
-App::$strings["Affinity Slider Settings"] = "";
-App::$strings["Addon Settings"] = "";
-App::$strings["Please save/submit changes to any panel before opening another."] = "";
+App::$strings["Default maximum affinity level"] = "Livello di affinità predefinito massimo ";
+App::$strings["0-99 default 99"] = "0-99 predefinito 99";
+App::$strings["Default minimum affinity level"] = "Livello di affinità predefinito minimo";
+App::$strings["0-99 - default 0"] = "0-99 - predefinito 0";
+App::$strings["Affinity Slider Settings"] = "Impostazioni dell'Affinity Slider";
+App::$strings["Addon Settings"] = "Impostazioni del componente aggiuntivo";
+App::$strings["Please save/submit changes to any panel before opening another."] = "Salva/invia i cambiamenti prima di cambiare pannello.";
App::$strings["%s - (Experimental)"] = "%s - (Sperimentale)";
App::$strings["Display Settings"] = "Aspetto";
App::$strings["Theme Settings"] = "Impostazioni del tema";
@@ -831,10 +848,10 @@ App::$strings["Minimum of 10 seconds, no maximum"] = "Minimo 10 secondi, nessun
App::$strings["Maximum number of conversations to load at any time:"] = "Massimo numero di conversazioni da mostrare ogni volta:";
App::$strings["Maximum of 100 items"] = "Massimo 100";
App::$strings["Show emoticons (smilies) as images"] = "Mostra le faccine (smilies) come immagini";
-App::$strings["Provide channel menu in navigation bar"] = "";
-App::$strings["Default: channel menu located in app menu"] = "";
-App::$strings["Manual conversation updates"] = "";
-App::$strings["Default is on, turning this off may increase screen jumping"] = "";
+App::$strings["Provide channel menu in navigation bar"] = "Visualizza il menu del canale nella barra di navigazione";
+App::$strings["Default: channel menu located in app menu"] = "Predefinito: menu del canale nel menu delle app";
+App::$strings["Manual conversation updates"] = "Aggiornamenti manuali alla conversazione";
+App::$strings["Default is on, turning this off may increase screen jumping"] = "Se non è attiva può causare scorrimenti imprevisti della pagina";
App::$strings["Link post titles to source"] = "Il link del titolo di un post porta al sito originale";
App::$strings["System Page Layout Editor - (advanced)"] = "Modifica i layout di sistema (avanzato)";
App::$strings["Use blog/list mode on channel page"] = "Mostra il canale nella modalità blog";
@@ -845,20 +862,11 @@ App::$strings["click to expand content exceeding this height"] = "dovrai cliccar
App::$strings["Grid page max height of content (in pixels)"] = "Altezza massima dei contenuti della tua rete (in pixel)";
App::$strings["Name is required"] = "Il nome è obbligatorio";
App::$strings["Key and Secret are required"] = "Key e Secret sono richiesti";
-App::$strings["Add application"] = "Aggiungi una app";
-App::$strings["Name of application"] = "Nome dell'applicazione";
App::$strings["Consumer Key"] = "Consumer Key";
-App::$strings["Automatically generated - change if desired. Max length 20"] = "Generato automaticamente - è possibile cambiarlo. Lunghezza massima 20";
-App::$strings["Consumer Secret"] = "Consumer Secret";
-App::$strings["Redirect"] = "Redirect";
-App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI di riderezione - lasciare vuoto se non richiesto specificamente dall'applicazione";
App::$strings["Icon url"] = "Url icona";
App::$strings["Optional"] = "Facoltativo";
App::$strings["Application not found."] = "Applicazione non trovata.";
App::$strings["Connected Apps"] = "App connesse";
-App::$strings["Client key starts with"] = "La client key inizia con";
-App::$strings["No name"] = "Nessun nome";
-App::$strings["Remove authorization"] = "Revoca l'autorizzazione";
App::$strings["View Photo"] = "Guarda la foto";
App::$strings["Edit Album"] = "Modifica album";
App::$strings["Upload"] = "Carica";
@@ -880,7 +888,7 @@ App::$strings["Permissions"] = "Permessi";
App::$strings["Add Thing to your Profile"] = "Aggiungi l'oggetto al tuo profilo";
App::$strings["No more system notifications."] = "Non ci sono nuove notifiche di sistema.";
App::$strings["System Notifications"] = "Notifiche di sistema";
-App::$strings["Channel added."] = "Canale aggiunto.";
+App::$strings["Connection added."] = "Contatto aggiunto.";
App::$strings["Your service plan only allows %d channels."] = "Il tuo account permette di creare al massimo %d canali.";
App::$strings["No channel. Import failed."] = "Nessun canale. Import fallito.";
App::$strings["Import completed."] = "L'importazione è terminata con successo.";
@@ -893,8 +901,8 @@ App::$strings["Your old login email address"] = "L'email che usavi per accedere
App::$strings["Your old login password"] = "La password per il vecchio hub";
App::$strings["For either option, please choose whether to make this hub your new primary address, or whether your old location should continue this role. You will be able to post from either location, but only one can be marked as the primary location for files, photos, and media."] = "Scegli se vuoi spostare il tuo indirizzo primario su questo hub, oppure se preferisci che quello vecchio resti tale. Potrai pubblicare da entrambi i hub, ma solamente uno sarà indicato come la posizione su cui risiedono i tuoi file, foto, ecc.";
App::$strings["Make this hub my primary location"] = "Rendi questo hub il mio indirizzo primario";
-App::$strings["Move this channel (disable all previous locations)"] = "";
-App::$strings["Import a few months of posts if possible (limited by available memory"] = "";
+App::$strings["Move this channel (disable all previous locations)"] = "Sposta questo canale (disabilita le posizioni precedenti)";
+App::$strings["Import a few months of posts if possible (limited by available memory"] = "Importa alcune mesi di post se possibile (dipende dalla memoria disponibile";
App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Questa funzione potrebbe impiegare molto tempo a terminare. Per favore lanciala *una volta sola* e resta su questa pagina finché non avrà finito.";
App::$strings["Authentication failed."] = "Autenticazione fallita.";
App::$strings["Remote Authentication"] = "Accedi tramite il tuo hub";
@@ -908,35 +916,38 @@ App::$strings["Please login to continue."] = "Accedi al sito per continuare.";
App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Vuoi autorizzare questa app ad accedere ai messaggi e ai contatti o creare nuovi messaggi per te?";
App::$strings["Item not available."] = "Elemento non disponibile.";
App::$strings["Edit Block"] = "Modifica il block";
-App::$strings["vcard"] = "";
+App::$strings["vcard"] = "vcard";
App::$strings["Apps"] = "App";
-App::$strings["Manage apps"] = "";
-App::$strings["Create new app"] = "";
+App::$strings["Manage apps"] = "Gestisci le app";
+App::$strings["Create new app"] = "Crea nuova app";
App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s è %2\$s";
App::$strings["Mood"] = "Umore";
App::$strings["Set your current mood and tell your friends"] = "Scegli il tuo umore attuale per mostrarlo agli amici";
+App::$strings["Active"] = "Attivo";
App::$strings["Blocked"] = "Bloccati";
App::$strings["Ignored"] = "Ignorati";
App::$strings["Hidden"] = "Nascosti";
-App::$strings["Archived/Unreachable"] = "";
+App::$strings["Archived/Unreachable"] = "Archiviato/Irraggiungibile";
App::$strings["New"] = "Novità";
App::$strings["All"] = "Tutti";
+App::$strings["Active Connections"] = "Contatto Attivo";
+App::$strings["Show active connections"] = "Mostra i contatti atttivi";
App::$strings["New Connections"] = "Nuovi contatti";
App::$strings["Show pending (new) connections"] = "Richieste di contatto in attesa";
-App::$strings["Show all connections"] = "Mostra tutti i contatti";
App::$strings["Only show blocked connections"] = "Mostra solo i contatti bloccati";
App::$strings["Only show ignored connections"] = "Mostra solo i contatti ignorati";
-App::$strings["Only show archived/unreachable connections"] = "";
+App::$strings["Only show archived/unreachable connections"] = "Mostra solo i contatti archiviati/irraggiungibili";
App::$strings["Only show hidden connections"] = "Mostra solo i contatti nascosti";
+App::$strings["Show all connections"] = "Mostra tutti i contatti";
App::$strings["Pending approval"] = "In attesa di conferma";
App::$strings["Archived"] = "Archiviati";
-App::$strings["Not connected at this location"] = "";
+App::$strings["Not connected at this location"] = "Non connesso a questa location";
App::$strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]";
App::$strings["Edit connection"] = "Modifica il contatto";
App::$strings["Delete connection"] = "Elimina il contatto";
App::$strings["Channel address"] = "Indirizzo del canale";
App::$strings["Network"] = "Network";
-App::$strings["Call"] = "";
+App::$strings["Call"] = "Chiama";
App::$strings["Status"] = "Stato";
App::$strings["Connected"] = "In contatto";
App::$strings["Approve connection"] = "Approva questo contatto";
@@ -947,7 +958,7 @@ App::$strings["Connections"] = "Contatti";
App::$strings["Search your connections"] = "Cerca tra i contatti";
App::$strings["Connections search"] = "Ricerca tra i contatti";
App::$strings["Find"] = "Cerca";
-App::$strings["item"] = "";
+App::$strings["item"] = "elemento";
App::$strings["Source of Item"] = "Sorgente";
App::$strings["Bookmark added"] = "Segnalibro aggiunto";
App::$strings["My Bookmarks"] = "I miei segnalibri";
@@ -969,10 +980,10 @@ App::$strings["Upload Photos"] = "Carica foto";
App::$strings["Enter an album name"] = "Scegli il nome dell'album";
App::$strings["or select an existing album (doubleclick)"] = "o seleziona un album esistente (doppio click)";
App::$strings["Create a status post for this upload"] = "Pubblica sulla bacheca";
-App::$strings["Caption (optional):"] = "Titolo (facoltativo):";
-App::$strings["Description (optional):"] = "Descrizione (facoltativa):";
+App::$strings["Description (optional)"] = "Descrizione (opzionale)";
App::$strings["Show Newest First"] = "Prima i più recenti";
App::$strings["Show Oldest First"] = "Prima i più vecchi";
+App::$strings["Add Photos"] = "Aggiungi foto";
App::$strings["Permission denied. Access to this item may be restricted."] = "Permesso negato. L'accesso a questo elemento può essere stato limitato.";
App::$strings["Photo not available"] = "Foto non disponibile";
App::$strings["Use as profile photo"] = "Usa come foto del profilo";
@@ -985,7 +996,6 @@ App::$strings["Rotate CCW (left)"] = "Ruota (senso antiorario)";
App::$strings["Move photo to album"] = "Sposta la foto in un album";
App::$strings["Enter a new album name"] = "Inserisci il nome del nuovo album";
App::$strings["or select an existing one (doubleclick)"] = "o seleziona uno esistente (doppio click)";
-App::$strings["Caption"] = "Didascalia";
App::$strings["Add a Tag"] = "Aggiungi tag";
App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Esempio: @bob, @Barbara_Jensen, @jim@example.com";
App::$strings["Flag as adult in album view"] = "Marca come 'per adulti'";
@@ -994,8 +1004,8 @@ App::$strings["I don't like this (toggle)"] = "Attiva/disattiva Non mi piace";
App::$strings["Please wait"] = "Attendere";
App::$strings["This is you"] = "Questo sei tu";
App::$strings["Comment"] = "Commento";
-App::$strings["__ctx:title__ Likes"] = "Mi piace";
-App::$strings["__ctx:title__ Dislikes"] = "Non mi piace";
+App::$strings["__ctx:title__ Likes"] = "\"Mi piace\"";
+App::$strings["__ctx:title__ Dislikes"] = "\"Non mi piace\"";
App::$strings["__ctx:title__ Agree"] = "D'accordo";
App::$strings["__ctx:title__ Disagree"] = "Non d'accordo";
App::$strings["__ctx:title__ Abstain"] = "Astenuti";
@@ -1005,20 +1015,20 @@ App::$strings["__ctx:title__ Might attend"] = "Forse partecipano";
App::$strings["View all"] = "Vedi tutto";
App::$strings["__ctx:noun__ Like"] = array(
0 => "Mi piace",
- 1 => "Mi piace",
+ 1 => "\"Mi piace\"",
);
App::$strings["__ctx:noun__ Dislike"] = array(
0 => "Non mi piace",
- 1 => "Non mi piace",
+ 1 => "\"Non mi piace\"",
);
App::$strings["Photo Tools"] = "Gestione foto";
App::$strings["In This Photo:"] = "In questa foto:";
App::$strings["Map"] = "Mappa";
-App::$strings["__ctx:noun__ Likes"] = "Mi piace";
-App::$strings["__ctx:noun__ Dislikes"] = "Non mi piace";
+App::$strings["__ctx:noun__ Likes"] = "\"Mi piace\"";
+App::$strings["__ctx:noun__ Dislikes"] = "\"Non mi piace\"";
App::$strings["Close"] = "Chiudi";
App::$strings["Recent Photos"] = "Foto recenti";
-App::$strings["Profile Unavailable."] = "";
+App::$strings["Profile Unavailable."] = "Profilo non dispobibile";
App::$strings["Not found"] = "Non trovato";
App::$strings["Invalid channel"] = "Canale non valido";
App::$strings["Error retrieving wiki"] = "Errore caricamento wiki";
@@ -1028,57 +1038,57 @@ App::$strings["Wikis"] = "Pagine wiki";
App::$strings["Download"] = "Scarica";
App::$strings["Create New"] = "Crea nuova";
App::$strings["Wiki name"] = "Nome wiki";
-App::$strings["Content type"] = "";
-App::$strings["Markdown"] = "";
-App::$strings["BBcode"] = "";
-App::$strings["Text"] = "";
+App::$strings["Content type"] = "Tipo di contenuto";
+App::$strings["Markdown"] = "Markdown";
+App::$strings["BBcode"] = "BBCode";
+App::$strings["Text"] = "Testo";
App::$strings["Type"] = "Tipo";
-App::$strings["Any&nbsp;type"] = "";
-App::$strings["Lock content type"] = "";
-App::$strings["Create a status post for this wiki"] = "";
-App::$strings["Edit Wiki Name"] = "";
-App::$strings["Wiki not found"] = "";
-App::$strings["Rename page"] = "";
+App::$strings["Any&nbsp;type"] = "Qualsiasi&nbsp;tipo";
+App::$strings["Lock content type"] = "Blocca il tipo di contenuto";
+App::$strings["Create a status post for this wiki"] = "Crea un messaggio di stato per questo wiki";
+App::$strings["Edit Wiki Name"] = "Modifica il nome del Wiki";
+App::$strings["Wiki not found"] = "Wiki non trovato";
+App::$strings["Rename page"] = "Rinomina la pagina";
App::$strings["Error retrieving page content"] = "Errore nel caricamento del contenuto della pagina";
-App::$strings["New page"] = "";
+App::$strings["New page"] = "Nuova pagina";
App::$strings["Revision Comparison"] = "Confronto tra revisioni";
App::$strings["Revert"] = "Ripristina";
-App::$strings["Short description of your changes (optional)"] = "";
+App::$strings["Short description of your changes (optional)"] = "Breve descrizione delle tue modifiche (opzionale)";
App::$strings["Source"] = "Sorgente";
-App::$strings["New page name"] = "";
+App::$strings["New page name"] = "Nome della nuova pagina";
App::$strings["Embed image from photo albums"] = "Inserisci un'immagine dall'album foto";
App::$strings["Embed an image from your albums"] = "Inserisci un'immagine dai tuoi album";
App::$strings["OK"] = "OK";
App::$strings["Choose images to embed"] = "Scegli le immagini da inserire";
App::$strings["Choose an album"] = "Scegli un album";
-App::$strings["Choose a different album"] = "";
+App::$strings["Choose a different album"] = "Scegli un album diverso";
App::$strings["Error getting album list"] = "Errore nell'ottenere l'elenco degli album";
App::$strings["Error getting photo link"] = "Errore nell'ottenere il link alla foto";
App::$strings["Error getting album"] = "Errore nell'ottenere l'album";
App::$strings["Error creating wiki. Invalid name."] = "Errore nella creazione. Nome non valido.";
-App::$strings["A wiki with this name already exists."] = "";
-App::$strings["Wiki created, but error creating Home page."] = "";
-App::$strings["Error creating wiki"] = "";
-App::$strings["Error updating wiki. Invalid name."] = "";
-App::$strings["Error updating wiki"] = "";
-App::$strings["Wiki delete permission denied."] = "";
-App::$strings["Error deleting wiki"] = "";
-App::$strings["New page created"] = "";
-App::$strings["Cannot delete Home"] = "";
-App::$strings["Current Revision"] = "";
-App::$strings["Selected Revision"] = "";
-App::$strings["You must be authenticated."] = "";
+App::$strings["A wiki with this name already exists."] = "Un Wiki con questo nome esiste già";
+App::$strings["Wiki created, but error creating Home page."] = "Wiki creato, ma c'è stato un errore nella creazione della Home page.";
+App::$strings["Error creating wiki"] = "Errore nella creazione del Wiki";
+App::$strings["Error updating wiki. Invalid name."] = "Errore nell'aggiornamento del Wiki. Nome non valido.";
+App::$strings["Error updating wiki"] = "Errore nell'aggiornamento del Wiki";
+App::$strings["Wiki delete permission denied."] = "Permesso negato nell'eliminare del Wiki";
+App::$strings["Error deleting wiki"] = "Errore nell'eliminare il Wiki";
+App::$strings["New page created"] = "Nuova pagina creata";
+App::$strings["Cannot delete Home"] = "Non è possibile eliminare la Home";
+App::$strings["Current Revision"] = "Revisione corrente";
+App::$strings["Selected Revision"] = "Revisione selezionata";
+App::$strings["You must be authenticated."] = "Devi autenticarti.";
App::$strings["toggle full screen mode"] = "attiva/disattiva schermo intero";
App::$strings["Layout updated."] = "Layout aggiornato.";
App::$strings["Feature disabled."] = "Funzionalità disattivata.";
App::$strings["Edit System Page Description"] = "Modifica i layout di sistema";
-App::$strings["(modified)"] = "";
+App::$strings["(modified)"] = "(modificato)";
App::$strings["Reset"] = "Reimposta";
App::$strings["Layout not found."] = "Layout non trovato.";
App::$strings["Module Name:"] = "Nome del modulo:";
App::$strings["Layout Help"] = "Guida al layout";
-App::$strings["Edit another layout"] = "";
-App::$strings["System layout"] = "";
+App::$strings["Edit another layout"] = "Modifica un altro layout";
+App::$strings["System layout"] = "Layout di sistema";
App::$strings["Poke"] = "Poke";
App::$strings["Poke somebody"] = "Manda un poke";
App::$strings["Poke/Prod"] = "Poke/Prod";
@@ -1097,10 +1107,10 @@ App::$strings["Photo not available."] = "Foto non disponibile.";
App::$strings["Upload File:"] = "Carica un file:";
App::$strings["Select a profile:"] = "Seleziona un profilo:";
App::$strings["Use Photo for Profile"] = "Usa la foto per il profilo";
-App::$strings["Change Profile Photo"] = "";
+App::$strings["Change Profile Photo"] = "Cambia la foto del profilo";
App::$strings["Use"] = "Usa";
-App::$strings["Use a photo from your albums"] = "";
-App::$strings["Select existing photo"] = "";
+App::$strings["Use a photo from your albums"] = "Usa una foto presa dai tuoi album";
+App::$strings["Select existing photo"] = "Seleziona una foto esistente";
App::$strings["Crop Image"] = "Ritaglia immagine";
App::$strings["Please adjust the image cropping for optimum viewing."] = "Ritaglia l'immagine per migliorarne la visualizzazione.";
App::$strings["Done Editing"] = "Modifica terminata";
@@ -1110,17 +1120,17 @@ App::$strings["Unable to locate original post."] = "Impossibile trovare il messa
App::$strings["Empty post discarded."] = "Il post vuoto è stato ignorato.";
App::$strings["Duplicate post suppressed."] = "I post duplicati sono scartati.";
App::$strings["System error. Post not saved."] = "Errore di sistema. Post non salvato.";
-App::$strings["Your comment is awaiting approval."] = "";
+App::$strings["Your comment is awaiting approval."] = "Il tuo contenuto è in attesa di approvazione.";
App::$strings["Unable to obtain post information from database."] = "Impossibile caricare il post dal database.";
App::$strings["You have reached your limit of %1$.0f top level posts."] = "Hai raggiunto il limite massimo di %1$.0f post sulla pagina principale.";
App::$strings["You have reached your limit of %1$.0f webpages."] = "Hai raggiunto il limite massimo di %1$.0f pagine web.";
App::$strings["sent you a private message"] = "ti ha inviato un messaggio privato";
App::$strings["added your channel"] = "ha aggiunto il tuo canale";
-App::$strings["requires approval"] = "";
+App::$strings["requires approval"] = "richiede approvazione";
App::$strings["g A l F d"] = "g A l d F";
App::$strings["[today]"] = "[oggi]";
App::$strings["posted an event"] = "ha creato un evento";
-App::$strings["shared a file with you"] = "";
+App::$strings["shared a file with you"] = "ha condiviso un file con te";
App::$strings["Invalid item."] = "Elemento non valido.";
App::$strings["Page not found."] = "Pagina non trovata.";
App::$strings["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
@@ -1137,8 +1147,8 @@ App::$strings["View Profile"] = "Profilo";
App::$strings["View %s's profile"] = "Guarda il profilo di %s";
App::$strings["Refresh Permissions"] = "Modifica i permessi";
App::$strings["Fetch updated permissions"] = "Guarda e modifica i permessi assegnati";
-App::$strings["Refresh Photo"] = "";
-App::$strings["Fetch updated photo"] = "";
+App::$strings["Refresh Photo"] = "Ricarica la foto";
+App::$strings["Fetch updated photo"] = "Aggiorna la foto";
App::$strings["Recent Activity"] = "Attività recenti";
App::$strings["View recent posts and comments"] = "Leggi i post recenti e i commenti";
App::$strings["Block (or Unblock) all communications with this connection"] = "Blocca ogni interazione con questo contatto (abilita/disabilita)";
@@ -1155,36 +1165,36 @@ App::$strings["Hide"] = "Nascondi";
App::$strings["Hide or Unhide this connection from your other connections"] = "Nascondi questo contatto a tutti gli altri (abilita/disabilita)";
App::$strings["This connection is hidden!"] = "Questa connessione è tra quelle nascoste!";
App::$strings["Delete this connection"] = "Elimina questo contatto";
-App::$strings["Fetch Vcard"] = "";
-App::$strings["Fetch electronic calling card for this connection"] = "";
-App::$strings["Open Individual Permissions section by default"] = "";
-App::$strings["Affinity"] = "";
-App::$strings["Open Set Affinity section by default"] = "";
+App::$strings["Fetch Vcard"] = "Aggiorna la Vcard";
+App::$strings["Fetch electronic calling card for this connection"] = "Scarica la scheda con le informazioni di questo contatto";
+App::$strings["Open Individual Permissions section by default"] = "Apri automaticamente la sezione Permessi individuali";
+App::$strings["Affinity"] = "Affinità";
+App::$strings["Open Set Affinity section by default"] = "Apri la sezione Imposta affinità per default";
App::$strings["Me"] = "Me";
App::$strings["Family"] = "Famiglia";
App::$strings["Acquaintances"] = "Conoscenti";
-App::$strings["Filter"] = "";
-App::$strings["Open Custom Filter section by default"] = "";
+App::$strings["Filter"] = "Filtra";
+App::$strings["Open Custom Filter section by default"] = "Apri automaticamente la sezione con i Filtri personalizzati";
App::$strings["Approve this connection"] = "Approva questo contatto";
App::$strings["Accept connection to allow communication"] = "Entra in contatto per poter comunicare";
App::$strings["Set Affinity"] = "Scegli l'affinità";
App::$strings["Set Profile"] = "Scegli il profilo da mostrare";
App::$strings["Set Affinity & Profile"] = "Affinità e profilo";
-App::$strings["This connection is unreachable from this location."] = "";
-App::$strings["This connection may be unreachable from other channel locations."] = "";
-App::$strings["Location independence is not supported by their network."] = "";
-App::$strings["This connection is unreachable from this location. Location independence is not supported by their network."] = "";
+App::$strings["This connection is unreachable from this location."] = "Questo contatto non è raggiungibile dal server in uso";
+App::$strings["This connection may be unreachable from other channel locations."] = "Questo contatto potrebbe non essere raggiungibile da altri canali";
+App::$strings["Location independence is not supported by their network."] = "Nella loro rete la location independence non è supportata.";
+App::$strings["This connection is unreachable from this location. Location independence is not supported by their network."] = "Il contatto indicato non è raggiungibile. Nella loro rete la location independence non è supportata.";
App::$strings["Connection Default Permissions"] = "Permessi predefiniti dei nuovi contatti";
App::$strings["Connection: %s"] = "Contatto: %s";
App::$strings["Apply these permissions automatically"] = "Applica automaticamente questi permessi";
App::$strings["Connection requests will be approved without your interaction"] = "Le richieste di entrare in contatto saranno approvate in automatico";
-App::$strings["Permission role"] = "";
-App::$strings["Loading"] = "";
-App::$strings["Add permission role"] = "";
+App::$strings["Permission role"] = "Ruolo";
+App::$strings["Loading"] = "Sto caricando";
+App::$strings["Add permission role"] = "Aggiungi un ruolo";
App::$strings["This connection's primary address is"] = "Indirizzo primario di questo canale";
App::$strings["Available locations:"] = "Indirizzi disponibili";
App::$strings["The permissions indicated on this page will be applied to all new connections."] = "I permessi indicati su questa pagina saranno applicati a tutti i nuovi contatti da ora in poi.";
-App::$strings["Connection Tools"] = "Gestione dei contatti";
+App::$strings["Connection Tools"] = "Gestione del contatto";
App::$strings["Slide to adjust your degree of friendship"] = "Trascina per restringere il grado di amicizia da mostrare";
App::$strings["Rating"] = "Valutazioni";
App::$strings["Slide to adjust your rating"] = "Trascina per cambiare la tua valutazione";
@@ -1198,7 +1208,7 @@ App::$strings["Connection Pending Approval"] = "Contatti in attesa di approvazio
App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Seleziona il profilo che vuoi mostrare a %s dopo che ha effettuato l'accesso.";
App::$strings["Some permissions may be inherited from your channel's <a href=\"settings\"><strong>privacy settings</strong></a>, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Alcuni permessi derivano dalle <a href=\"settings\"><strong>impostazioni di privacy</strong></a> del tuo canale, che hanno priorità assoluta su qualsiasi altra impostazione scelta per i singoli contatti. Le personalizzazioni che effettuerai qui potrebbero non essere effettive a meno che tu non cambi le impostazioni generali.";
App::$strings["Last update:"] = "Ultimo aggiornamento:";
-App::$strings["Details"] = "";
+App::$strings["Details"] = "Dettagli";
App::$strings["Room not found"] = "Chat non trovata";
App::$strings["Leave Room"] = "Lascia la chat";
App::$strings["Delete Room"] = "Elimina questa chat";
@@ -1243,23 +1253,27 @@ App::$strings["Help"] = "Guida";
App::$strings["Comanche page description language help"] = "Guida di Comanche Page Description Language";
App::$strings["Layout Description"] = "Descrizione del layout";
App::$strings["Download PDL file"] = "Scarica il file PDL";
-App::$strings["Please refresh page"] = "";
-App::$strings["Unknown error"] = "";
-App::$strings["Token verification failed."] = "";
-App::$strings["Email Verification Required"] = "";
-App::$strings["A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message."] = "";
-App::$strings["Resend Email"] = "";
-App::$strings["Validation token"] = "";
-App::$strings["Post not found."] = "";
+App::$strings["Please refresh page"] = "Per favore ricarica la pagina";
+App::$strings["Unknown error"] = "Errore sconosciuto";
+App::$strings["Token verification failed."] = "Verifica del token fallita";
+App::$strings["Email Verification Required"] = "È richiesta una verifica della mail";
+App::$strings["A verification token was sent to your email address [%s]. Enter that token here to complete the account verification step. Please allow a few minutes for delivery, and check your spam folder if you do not see the message."] = "Un token di verifica è stato spedito al tuo indirizzo email [%s]. Inserisci il token qui per completare la verifica dell'account. Per favore attendi qualche minuti e controlla lo spam se non vedi il messaggio.";
+App::$strings["Resend Email"] = "Reinvia la mail";
+App::$strings["Validation token"] = "Token di validazione";
+App::$strings["Post not found."] = "Post non trovato.";
App::$strings["post"] = "il post";
App::$strings["comment"] = "il commento";
App::$strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha taggato %3\$s di %2\$s con %4\$s";
App::$strings["This setting requires special processing and editing has been blocked."] = "Questa impostazione è bloccata, richiede criteri di modifica speciali";
App::$strings["Configuration Editor"] = "Editor di configurazione";
App::$strings["Warning: Changing some settings could render your channel inoperable. Please leave this page unless you are comfortable with and knowledgeable about how to correctly use this feature."] = "Attenzione: alcune delle impostazioni, se cambiate, potrebbero rendere questo canale non funzionante. Lascia questa pagina a meno che tu non sappia con assoluta certezza quali modifiche effettuare.";
-App::$strings["If enabled, connection requests will be approved without your interaction"] = "";
-App::$strings["Automatic approval settings"] = "";
+App::$strings["If enabled, connection requests will be approved without your interaction"] = "Se abilitato, le richieste di contatto saranno approvate automaticamente";
+App::$strings["Automatic approval settings"] = "Impostazioni di approvazione automatica";
App::$strings["Some individual permissions may have been preset or locked based on your channel type and privacy settings."] = "";
+App::$strings["Unknown App"] = "Applicazione sconosciuta";
+App::$strings["Authorize"] = "Autorizza";
+App::$strings["Do you authorize the app %s to access your channel data?"] = "Autorizzi la app %s ad accedere ai dati del tuo canale?";
+App::$strings["Allow"] = "Autorizza";
App::$strings["Privacy group created."] = "Gruppo di canali creato.";
App::$strings["Could not create privacy group."] = "Impossibile creare il gruppo di canali.";
App::$strings["Privacy group not found."] = "Gruppo di canali non trovato.";
@@ -1282,8 +1296,8 @@ App::$strings["Profile unavailable to export."] = "Il profilo non è disponibile
App::$strings["Profile Name is required."] = "Il nome del profilo è obbligatorio.";
App::$strings["Marital Status"] = "Stato sentimentale";
App::$strings["Romantic Partner"] = "Partner affettivo";
-App::$strings["Likes"] = "Mi piace";
-App::$strings["Dislikes"] = "Non mi piace";
+App::$strings["Likes"] = "\"Mi piace\"";
+App::$strings["Dislikes"] = "\"Non mi piace\"";
App::$strings["Work/Employment"] = "Lavoro/impiego";
App::$strings["Religion"] = "Religione";
App::$strings["Political Views"] = "Orientamento politico";
@@ -1304,7 +1318,7 @@ App::$strings["Clone this profile"] = "Clona questo profilo";
App::$strings["Delete this profile"] = "Elimina questo profilo";
App::$strings["Add profile things"] = "Aggiungi oggetti al profilo";
App::$strings["Personal"] = "Personali";
-App::$strings["Relation"] = "Relazione";
+App::$strings["Relationship"] = "Relazione";
App::$strings["Miscellaneous"] = "Altro";
App::$strings["Import profile from file"] = "Importa il profilo da un file";
App::$strings["Export profile to file"] = "Esporta il profilo in un file";
@@ -1338,24 +1352,24 @@ App::$strings["Love/Romance"] = "Amore";
App::$strings["School/Education"] = "Scuola/educazione";
App::$strings["Contact information and social networks"] = "Contatti e social network";
App::$strings["My other channels"] = "I miei altri canali";
-App::$strings["Communications"] = "";
+App::$strings["Communications"] = "Comunicazioni";
App::$strings["Profile Image"] = "Immagine del profilo";
App::$strings["Edit Profiles"] = "Modifica i tuoi profili";
-App::$strings["This page is available only to site members"] = "";
-App::$strings["Welcome"] = "";
-App::$strings["What would you like to do?"] = "";
-App::$strings["Please bookmark this page if you would like to return to it in the future"] = "";
-App::$strings["Upload a profile photo"] = "";
-App::$strings["Upload a cover photo"] = "";
-App::$strings["Edit your default profile"] = "";
-App::$strings["View friend suggestions"] = "";
-App::$strings["View the channel directory"] = "";
-App::$strings["View/edit your channel settings"] = "";
-App::$strings["View the site or project documentation"] = "";
-App::$strings["Visit your channel homepage"] = "";
-App::$strings["View your connections and/or add somebody whose address you already know"] = "";
-App::$strings["View your personal stream (this may be empty until you add some connections)"] = "";
-App::$strings["View the public stream. Warning: this content is not moderated"] = "";
+App::$strings["This page is available only to site members"] = "Questa pagina è accessibile solo agli utenti registrati";
+App::$strings["Welcome"] = "Benvenuto";
+App::$strings["What would you like to do?"] = "Vorresti farlo?";
+App::$strings["Please bookmark this page if you would like to return to it in the future"] = "Per favore metti questa pagina nei preferiti se vuoi ritornarci in futuro";
+App::$strings["Upload a profile photo"] = "Carica una foto per il profilo";
+App::$strings["Upload a cover photo"] = "Carica una foto di copertina";
+App::$strings["Edit your default profile"] = "Modifica il tuo profilo predefinito";
+App::$strings["View friend suggestions"] = "Guarda i suggerimenti di amicizia";
+App::$strings["View the channel directory"] = "Guarda l'elenco dei canali";
+App::$strings["View/edit your channel settings"] = "Guarda/modifica le impostazioni del tuo canale";
+App::$strings["View the site or project documentation"] = "Guarda la documentazione del sito o del progetto";
+App::$strings["Visit your channel homepage"] = "Visita la pagina iniziale del tuo canale";
+App::$strings["View your connections and/or add somebody whose address you already know"] = "Guarda i tuoi contatti e/o aggiungine qualcuno di cui hai l'indirizzo";
+App::$strings["View your personal stream (this may be empty until you add some connections)"] = "Guarda il tuo flusso personale (potrebbe essere vuoto finché non aggiungi connessioni)";
+App::$strings["View the public stream. Warning: this content is not moderated"] = "Vedi il flusso pubblico. Attenzione: contenuti non moderati";
App::$strings["Page link"] = "Link alla pagina";
App::$strings["Edit Webpage"] = "Modifica la pagina web";
App::$strings["Create a new channel"] = "Crea un nuovo canale";
@@ -1368,18 +1382,18 @@ App::$strings["%d new messages"] = "%d nuovi messaggi";
App::$strings["%d new introductions"] = "%d nuove richieste di entrare in contatto";
App::$strings["Delegated Channel"] = "Canale delegato";
App::$strings["Cards"] = "Card";
-App::$strings["Add Card"] = "";
+App::$strings["Add Card"] = "Aggiungi card";
App::$strings["This directory server requires an access token"] = "Questo directory server necessita di un token di autenticazione";
-App::$strings["About this site"] = "";
-App::$strings["Site Name"] = "";
+App::$strings["About this site"] = "Informazioni su questo sito";
+App::$strings["Site Name"] = "Nome del sito";
App::$strings["Administrator"] = "Amministratore";
App::$strings["Terms of Service"] = "Condizioni d'Uso";
-App::$strings["Software and Project information"] = "";
-App::$strings["This site is powered by \$Projectname"] = "";
+App::$strings["Software and Project information"] = "Informazioni sul software e sul progetto";
+App::$strings["This site is powered by \$Projectname"] = "Questo sito è costruito con \$Projectname";
App::$strings["Federated and decentralised networking and identity services provided by Zot"] = "";
App::$strings["Version %s"] = "Versione %s";
-App::$strings["Project homepage"] = "";
-App::$strings["Developer homepage"] = "";
+App::$strings["Project homepage"] = "Homepage del progetto";
+App::$strings["Developer homepage"] = "Homepege dello sviluppatore";
App::$strings["No ratings"] = "Nessuna valutazione";
App::$strings["Ratings"] = "Valutazioni";
App::$strings["Rating: "] = "Valutazione:";
@@ -1398,11 +1412,11 @@ App::$strings["Error opening zip file"] = "Errore nell'apertura del file zip";
App::$strings["Invalid folder path."] = "La cartella indicata non è valida.";
App::$strings["No webpage elements detected."] = "Nella pagina web non sono presenti elementi.";
App::$strings["Import complete."] = "Importazione completata.";
-App::$strings["Channel name changes are not allowed within 48 hours of changing the account password."] = "";
+App::$strings["Channel name changes are not allowed within 48 hours of changing the account password."] = "Non è possibile cambiare il nome del canale entro le 48 dal cambio della password dell'account.";
App::$strings["Reserved nickname. Please choose another."] = "Nome utente riservato. Per favore scegline un altro.";
App::$strings["Nickname has unsupported characters or is already being used on this site."] = "Il nome dell'account è già in uso oppure ha dei caratteri non supportati.";
-App::$strings["Change channel nickname/address"] = "";
-App::$strings["Any/all connections on other networks will be lost!"] = "";
+App::$strings["Change channel nickname/address"] = "Cambia il nome/indirizzo del canale";
+App::$strings["Any/all connections on other networks will be lost!"] = "Tutti i contatti su altre reti saranno persi!";
App::$strings["New channel address"] = "";
App::$strings["Rename Channel"] = "";
App::$strings["Item is not editable"] = "L'elemento non è modificabile";
@@ -1458,6 +1472,7 @@ App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%3\$s di %2\$s: %1\$s n
App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%3\$s di %2\$s: %1\$s forse partecipa";
App::$strings["Action completed."] = "Comando completato.";
App::$strings["Thank you."] = "Grazie.";
+App::$strings["No default suggestions were found."] = "";
App::$strings["%d rating"] = array(
0 => "%d valutazione",
1 => "%d valutazioni",
@@ -1611,7 +1626,7 @@ App::$strings["Unable to resend email verification message."] = "";
App::$strings["No connections."] = "Nessun contatto.";
App::$strings["Visit %s's profile [%s]"] = "Visita il profilo di %s [%s]";
App::$strings["View Connections"] = "Elenco contatti";
-App::$strings["Blocked accounts"] = "";
+App::$strings["Blocked accounts"] = "Account bloccati";
App::$strings["Expired accounts"] = "";
App::$strings["Expiring accounts"] = "";
App::$strings["Clones"] = "";
@@ -1670,60 +1685,6 @@ App::$strings["Mail"] = "Messaggi";
App::$strings["Chat"] = "Chat";
App::$strings["Probe"] = "Diagnostica";
App::$strings["Suggest"] = "Suggerisci";
-App::$strings["Random Channel"] = "Canale casuale";
-App::$strings["Invite"] = "Invita";
-App::$strings["Features"] = "Funzionalità";
-App::$strings["Language"] = "Lingua";
-App::$strings["Post"] = "Post";
-App::$strings["Profile Photo"] = "Foto del profilo";
-App::$strings["Purchase"] = "Acquista";
-App::$strings["Undelete"] = "";
-App::$strings["Add to app-tray"] = "";
-App::$strings["Remove from app-tray"] = "";
-App::$strings["Pin to navbar"] = "";
-App::$strings["Unpin from navbar"] = "";
-App::$strings["__ctx:permcat__ default"] = "";
-App::$strings["__ctx:permcat__ follower"] = "";
-App::$strings["__ctx:permcat__ contributor"] = "";
-App::$strings["__ctx:permcat__ publisher"] = "";
-App::$strings["(No Title)"] = "";
-App::$strings["Wiki page create failed."] = "";
-App::$strings["Wiki not found."] = "";
-App::$strings["Destination name already exists"] = "";
-App::$strings["Page not found"] = "";
-App::$strings["Error reading page content"] = "";
-App::$strings["Error reading wiki"] = "";
-App::$strings["Page update failed."] = "";
-App::$strings["Nothing deleted"] = "";
-App::$strings["Compare: object not found."] = "";
-App::$strings["Page updated"] = "";
-App::$strings["Untitled"] = "";
-App::$strings["Wiki resource_id required for git commit"] = "";
-App::$strings["__ctx:wiki_history__ Message"] = "";
-App::$strings["Different viewers will see this text differently"] = "Ad altri questo testo potrebbe apparire in modo differente";
-App::$strings["Visible to your default audience"] = "Visibile secondo le impostazioni predefinite";
-App::$strings["Only me"] = "Solo io";
-App::$strings["Public"] = "Pubblico";
-App::$strings["Anybody in the \$Projectname network"] = "Tutti sulla rete \$Projectname";
-App::$strings["Any account on %s"] = "Tutti gli account su %s";
-App::$strings["Any of my connections"] = "Chiunque tra i miei contatti";
-App::$strings["Only connections I specifically allow"] = "Solo chi riceve il mio permesso";
-App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Chiunque sia autenticato (inclusi visitatori di altre reti)";
-App::$strings["Any connections including those who haven't yet been approved"] = "Tutti i contatti inclusi quelli non ancora approvati";
-App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Impostazione predefinita di chi può vedere ciò che pubblichi in bacheca";
-App::$strings["This is your default setting for who can view your default channel profile"] = "Impostazione predefinita di chi può vedere il profilo standard del tuo canale";
-App::$strings["This is your default setting for who can view your connections"] = "Impostazione predefinita di chi può vedere i tuoi contatti/amici";
-App::$strings["This is your default setting for who can view your file storage and photos"] = "Impostazione predefinita di chi può vedere le foto e il tuo archivio file";
-App::$strings["This is your default setting for the audience of your webpages"] = "Impostazione predefinita di chi può vedere le tue pagine web";
-App::$strings["Missing room name"] = "Chat senza nome";
-App::$strings["Duplicate room name"] = "Il nome della chat è duplicato";
-App::$strings["Invalid room specifier."] = "Il nome della chat non è valido.";
-App::$strings["Room not found."] = "Chat non trovata.";
-App::$strings["Room is full"] = "La chat è al completo";
-App::$strings["\$Projectname Notification"] = "Notifica \$Projectname";
-App::$strings["\$projectname"] = "\$projectname";
-App::$strings["Thank You,"] = "Grazie,";
-App::$strings["%s Administrator"] = "L'amministratore di %s";
App::$strings["This email was sent by %1\$s at %2\$s."] = "";
App::$strings["To stop receiving these messages, please adjust your Notification Settings at %s"] = "";
App::$strings["To stop receiving these messages, please adjust your %s."] = "";
@@ -1733,7 +1694,7 @@ App::$strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s,
App::$strings["%1\$s sent you %2\$s."] = "%1\$s ti ha mandato %2\$s.";
App::$strings["a private message"] = "un messaggio privato";
App::$strings["Please visit %s to view and/or reply to your private messages."] = "Visita %s per leggere i tuoi messaggi privati e rispondere.";
-App::$strings["commented on"] = "";
+App::$strings["commented on"] = "ha commentato";
App::$strings["liked"] = "";
App::$strings["disliked"] = "";
App::$strings["%1\$s, %2\$s %3\$s [zrl=%4\$s]a %5\$s[/zrl]"] = "";
@@ -1744,9 +1705,9 @@ App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"]
App::$strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s ha commentato un elemento che stavi seguendo.";
App::$strings["Please visit %s to view and/or reply to the conversation."] = "Visita %s per leggere o commentare la conversazione.";
App::$strings["Please visit %s to approve or reject this comment."] = "";
-App::$strings["%1\$s, %2\$s liked [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ma messo un mi piace al [zrl=%3\$s]tuo %4\$s[/zrl]";
+App::$strings["%1\$s, %2\$s liked [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, a %2\$s [zrl=%3\$s]tuo %4\$s[/zrl]";
App::$strings["[\$Projectname:Notify] Like received to conversation #%1\$d by %2\$s"] = "[\$Projectname:Notify] Ricevuto un mi piace alla conversazione #%1\$d di %2\$s";
-App::$strings["%1\$s, %2\$s liked an item/conversation you created."] = "%1\$s, %2\$s ha messo un mi piace all'elemento/conversazione che hai creato";
+App::$strings["%1\$s, %2\$s liked an item/conversation you created."] = "%1\$s, a %2\$s piace l'elemento/conversazione che hai creato";
App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Notifica] %s ha scritto sulla tua bacheca";
App::$strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha scritto sulla bacheca del tuo profilo su %3\$s";
App::$strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha scritto sulla [zrl=%3\$s]tua bacheca[/zrl]";
@@ -1999,15 +1960,15 @@ App::$strings["Set font-size for the entire application"] = "Dimensione font per
App::$strings["Examples: 1rem, 100%, 16px"] = "";
App::$strings["Set font-color for posts and comments"] = "Colore del carattere per post e commenti";
App::$strings["Set radius of corners"] = "Raggio degli angoli stondati";
-App::$strings["Example: 4px"] = "";
+App::$strings["Example: 4px"] = "Esempio: 4px";
App::$strings["Set shadow depth of photos"] = "Profondità dell'ombra delle foto";
App::$strings["Set maximum width of content region in pixel"] = "Larghezza massima dell'area dei contenuti in pixel";
App::$strings["Leave empty for default width"] = "Lascia vuoto per usare il valore predefinito";
App::$strings["Left align page content"] = "Allinea a sinistra il contenuto della pagina";
App::$strings["Set size of conversation author photo"] = "Dimensione foto dell'autore della conversazione";
App::$strings["Set size of followup author photos"] = "Dimensione foto dei partecipanti alla conversazione";
-App::$strings["Errors encountered deleting database table "] = "";
-App::$strings["Submit Settings"] = "";
+App::$strings["Errors encountered deleting database table "] = "Errore nella cancellazione della tabella";
+App::$strings["Submit Settings"] = "Invia impostazioni";
App::$strings["Drop tables when uninstalling?"] = "";
App::$strings["If checked, the Rendezvous database tables will be deleted when the plugin is uninstalled."] = "";
App::$strings["Mapbox Access Token"] = "";
@@ -2016,19 +1977,19 @@ App::$strings["Rendezvous"] = "";
App::$strings["This identity has been deleted by another member due to inactivity. Please press the \"New identity\" button or refresh the page to register a new identity. You may use the same name."] = "";
App::$strings["Welcome to Rendezvous!"] = "";
App::$strings["Enter your name to join this rendezvous. To begin sharing your location with the other members, tap the GPS control. When your location is discovered, a red dot will appear and others will be able to see you on the map."] = "";
-App::$strings["Let's meet here"] = "";
-App::$strings["New marker"] = "";
-App::$strings["Edit marker"] = "";
-App::$strings["New identity"] = "";
-App::$strings["Delete marker"] = "";
-App::$strings["Delete member"] = "";
+App::$strings["Let's meet here"] = "Incontriamoci qui";
+App::$strings["New marker"] = "Nuovo segnaposto";
+App::$strings["Edit marker"] = "Modifica segnaposto";
+App::$strings["New identity"] = "Nuova identità";
+App::$strings["Delete marker"] = "Elimina segnaposto";
+App::$strings["Delete member"] = "Elimina membro";
App::$strings["Edit proximity alert"] = "";
App::$strings["A proximity alert will be issued when this member is within a certain radius of you.<br><br>Enter a radius in meters (0 to disable):"] = "";
-App::$strings["distance"] = "";
+App::$strings["distance"] = "distanza";
App::$strings["Proximity alert distance (meters)"] = "";
App::$strings["A proximity alert will be issued when you are within a certain radius of the marker location.<br><br>Enter a radius in meters (0 to disable):"] = "";
App::$strings["Marker proximity alert"] = "";
-App::$strings["Reminder note"] = "";
+App::$strings["Reminder note"] = "Nota per il promemoria";
App::$strings["Enter a note to be displayed when you are within the specified proximity..."] = "";
App::$strings["Add new rendezvous"] = "";
App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "";
@@ -2039,8 +2000,8 @@ App::$strings["GNU-Social Protocol Settings updated."] = "";
App::$strings["The GNU-Social protocol does not support location independence. Connections you make within that network may be unreachable from alternate channel locations."] = "";
App::$strings["Enable the GNU-Social protocol for this channel"] = "";
App::$strings["GNU-Social Protocol Settings"] = "";
-App::$strings["Follow"] = "";
-App::$strings["%1\$s is now following %2\$s"] = "";
+App::$strings["Follow"] = "Segui";
+App::$strings["%1\$s is now following %2\$s"] = "%1\$s sta ora seguendo %2\$s";
App::$strings["Planets Settings updated."] = "";
App::$strings["Enable Planets Plugin"] = "";
App::$strings["Planets Settings"] = "";
@@ -2063,12 +2024,12 @@ App::$strings["Most downloaded first"] = "";
App::$strings["Most liked first"] = "";
App::$strings["Preferred IDs Message"] = "";
App::$strings["Message to display above preferred results."] = "";
-App::$strings["Uploaded by: "] = "";
+App::$strings["Uploaded by: "] = "Caricato da:";
App::$strings["Drawn by: "] = "";
-App::$strings["Use this image"] = "";
+App::$strings["Use this image"] = "Usa questa immagine";
App::$strings["Or select from a free OpenClipart.org image:"] = "";
-App::$strings["Search Term"] = "";
-App::$strings["Unknown error. Please try again later."] = "";
+App::$strings["Search Term"] = "Termine di ricerca";
+App::$strings["Unknown error. Please try again later."] = "Errore sconosciuto. Per favore riprova più tardi.";
App::$strings["Profile photo updated successfully."] = "";
App::$strings["Flag Adult Photos"] = "Marca le foto per adulti";
App::$strings["Provide photo edit option to hide inappropriate photos from default album view"] = "Permetti di nascondere le foto inappropriate nella visualizzazione degli album";
@@ -2303,8 +2264,8 @@ App::$strings["Approve subscription requests from Hubzilla contacts automaticall
App::$strings["Purge internal list of jabber addresses of contacts"] = "";
App::$strings["Configuration Help"] = "";
App::$strings["Jappix Mini Settings"] = "";
-App::$strings["Currently blocked"] = "";
-App::$strings["No channels currently blocked"] = "";
+App::$strings["Currently blocked"] = "Attualmente bloccati";
+App::$strings["No channels currently blocked"] = "Nessun canale attualmente bloccato";
App::$strings["\"Superblock\" Settings"] = "";
App::$strings["Block Completely"] = "";
App::$strings["superblock settings updated"] = "";
@@ -2463,9 +2424,9 @@ App::$strings["Browse for new contacts"] = "";
App::$strings["Launch installed apps"] = "";
App::$strings["Looking for help? Click here."] = "";
App::$strings["New events have occurred in your network. Click here to see what has happened!"] = "";
-App::$strings["You have received a new private message. Click here to see from who!"] = "";
+App::$strings["You have received a new private message. Click here to see from who!"] = "Hai ricevuto un nuovo messaggio privato. Clicca qui per sapere da chi!";
App::$strings["There are events this week. Click here too see which!"] = "";
-App::$strings["You have received a new introduction. Click here to see who!"] = "";
+App::$strings["You have received a new introduction. Click here to see who!"] = "Hai ricevuto una nuova richiesta di amicizia. Clicca qui per sapere da chi!";
App::$strings["There is a new system notification. Click here to see what has happened!"] = "";
App::$strings["Click here to share text, images, videos and sound."] = "";
App::$strings["You can write an optional title for your update (good for long posts)."] = "";
@@ -3179,9 +3140,9 @@ App::$strings["Search site @name, #tag, ?docs, content"] = "Cerca nel sito per @
App::$strings["Site Setup and Configuration"] = "Installazione e configurazione del sito";
App::$strings["@name, #tag, ?doc, content"] = "@nome, #tag, ?guida, contenuto";
App::$strings["Please wait..."] = "Attendere...";
-App::$strings["Add Apps"] = "";
-App::$strings["Arrange Apps"] = "";
-App::$strings["Toggle System Apps"] = "";
+App::$strings["Add Apps"] = "Aggiungi App";
+App::$strings["Arrange Apps"] = "Ordina le App";
+App::$strings["Toggle System Apps"] = "Attiva/disattiva Apps";
App::$strings["Image exceeds website size limit of %lu bytes"] = "L'immagine supera il limite massimo di %lu bytes";
App::$strings["Image file is empty."] = "Il file dell'immagine è vuoto.";
App::$strings["Photo storage failed."] = "Impossibile salvare la foto.";
@@ -3201,7 +3162,7 @@ App::$strings["Channels not in any privacy group"] = "Canali che non sono in nes
App::$strings["New window"] = "Nuova finestra";
App::$strings["Open the selected location in a different window or browser tab"] = "Apri l'indirizzo selezionato in una nuova scheda o finestra";
App::$strings["Logged out."] = "Uscita effettuata.";
-App::$strings["Email validation is incomplete. Please check your email."] = "";
+App::$strings["Email validation is incomplete. Please check your email."] = "Validazione via mail non completa. Per favore controlla la tua mail.";
App::$strings["Failed authentication"] = "Autenticazione fallita";
App::$strings["Help:"] = "Guida:";
App::$strings["Not Found"] = "Non disponibile";
diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js
index 01def9900..be632a07e 100644
--- a/view/js/autocomplete.js
+++ b/view/js/autocomplete.js
@@ -60,7 +60,7 @@ function contact_format(item) {
var desc = ((item.label) ? item.nick + ' ' + item.label : item.nick);
if(typeof desc === 'undefined') desc = '';
if(desc) desc = ' ('+desc+')';
- return "<div class='{0} dropdown-item dropdown-notification clearfix' title='{4}'><img class='menu-img-2' src='{1}'><span class='contactname'>{2}</span><span class='dropdown-sub-text'>{3}</span></div>".format(item.taggable, item.photo, item.name, desc, item.link);
+ return "<div class='{0} dropdown-item dropdown-notification clearfix' title='{4}'><img class='menu-img-2' src='{1}'><span class='contactname'>{2}</span><span class='dropdown-sub-text'>{3}</span></div>".format(item.taggable, item.photo, item.name, desc, typeof(item.link) !== 'undefined' ? item.link : desc.replace('(','').replace(')',''));
}
else
return "<div>" + item.text + "</div>";
@@ -74,6 +74,10 @@ function bbco_format(item) {
return "<div class='dropdown-item'>" + item + "</div>";
}
+function tag_format(item) {
+ return "<div class='dropdown-item'>" + '#' + item.text + "</div>";
+}
+
function editor_replace(item) {
if(typeof item.replace !== 'undefined') {
return '$1$2' + item.replace;
@@ -194,7 +198,7 @@ function string2bb(element) {
// Autocomplete forums
forums = {
- match: /(^|\s)(\!)([^ \n]+)$/,
+ match: /(^|\s)(\!\!*)([^ \n]+)$/,
index: 3,
search: function(term, callback) { contact_search(term, callback, backend_url, 'f', extra_channels, spinelement=false); },
replace: editor_replace,
@@ -202,6 +206,17 @@ function string2bb(element) {
};
+ // Autocomplete hashtags
+ tags = {
+ match: /(^|\s)(\#)([^ \n]{2,})$/,
+ index: 3,
+ search: function(term, callback) { $.getJSON('/hashtags/' + '$f=&t=' + term).done(function(data) { callback($.map(data, function(entry) { return entry.text.toLowerCase().indexOf(term.toLowerCase()) === 0 ? entry : null; })); }); },
+ replace: function(item) { return "$1$2" + item.text + ' '; },
+ context: function(text) { return text.toLowerCase(); },
+ template: tag_format
+ };
+
+
smilies = {
match: /(^|\s)(:[a-z_:]{2,})$/,
index: 2,
@@ -211,7 +226,7 @@ function string2bb(element) {
template: smiley_format
};
this.attr('autocomplete','off');
- this.textcomplete([contacts,forums,smilies], {className:'acpopup', zIndex:1020});
+ this.textcomplete([contacts,forums,smilies,tags], {className:'acpopup', zIndex:1020});
};
})( jQuery );
@@ -228,8 +243,28 @@ function string2bb(element) {
replace: basic_replace,
template: contact_format,
};
+
+ // Autocomplete forums
+ forums = {
+ match: /(^\!)([^\n]{3,})$/,
+ index: 2,
+ search: function(term, callback) { contact_search(term, callback, backend_url, 'f', [], spinelement='#nav-search-spinner'); },
+ replace: basic_replace,
+ template: contact_format
+ };
+
+ // Autocomplete hashtags
+ tags = {
+ match: /(^\#)([^ \n]{3,})$/,
+ index: 2,
+ search: function(term, callback) { $.getJSON('/hashtags/' + '$f=&t=' + term).done(function(data) { callback($.map(data, function(entry) { return entry.text.toLowerCase().indexOf(term.toLowerCase()) === 0 ? entry : null; })); }); },
+ replace: function(item) { return "$1" + item.text + ' '; },
+ context: function(text) { return text.toLowerCase(); },
+ template: tag_format
+ };
+
this.attr('autocomplete', 'off');
- var a = this.textcomplete([contacts], {className:'acpopup', maxCount:100, zIndex: 1020, appendTo:'nav'});
+ var a = this.textcomplete([contacts,forums,tags], {className:'acpopup', maxCount:100, zIndex: 1020, appendTo:'nav'});
a.on('textComplete:select', function(e, value, strategy) { submit_form(this); });
};
})( jQuery );
diff --git a/view/js/main.js b/view/js/main.js
index 98a756fff..acb9b462f 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -25,13 +25,14 @@ var liveRecurse = 0;
var savedTitle = '';
var initialLoad = true;
-// Clear the session storage if we switch channel or log out
+// Clear the session and local storage if we switch channel or log out
var cache_uid = '';
if(sessionStorage.getItem('uid') !== null) {
cache_uid = sessionStorage.getItem('uid');
}
if(cache_uid !== localUser.toString()) {
sessionStorage.clear();
+ localStorage.clear();
sessionStorage.setItem('uid', localUser.toString());
}
@@ -166,6 +167,7 @@ function handle_comment_form(e) {
$('#' + commentElm).addClass('expanded').removeAttr('placeholder');
$('#' + commentElm).attr('tabindex','9');
$('#' + submitElm).attr('tabindex','10');
+
form.find(':not(:visible)').show();
}
@@ -185,6 +187,37 @@ function handle_comment_form(e) {
form.find(':not(.comment-edit-text)').hide();
}
});
+
+ var commentSaveTimer = null;
+ var emptyCommentElm = form.find('.comment-edit-text').attr('id');
+ var convId = emptyCommentElm.replace('comment-edit-text-','');
+ $(document).on('focusout','#' + emptyCommentElm,function(e){
+ if(commentSaveTimer)
+ clearTimeout(commentSaveTimer);
+ commentSaveChanges(convId,true);
+ commentSaveTimer = null;
+ });
+
+ $(document).on('focusin','#' + emptyCommentElm,function(e){
+ commentSaveTimer = setTimeout(function () {
+ commentSaveChanges(convId,false);
+ },10000);
+ });
+
+ function commentSaveChanges(convId,isFinal = false) {
+ if(auto_save_draft) {
+ tmp = $('#' + emptyCommentElm).val();
+ if(tmp) {
+ localStorage.setItem("comment_body-" + convId, tmp);
+ }
+ else {
+ localStorage.removeItem("comment_body-" + convId);
+ }
+ if( !isFinal) {
+ commentSaveTimer = setTimeout(commentSaveChanges,10000,convId);
+ }
+ }
+ }
}
function commentClose(obj, id) {
@@ -436,6 +469,14 @@ function handleNotifications(data) {
$('.notifications-btn-icon').removeClass('fa-exclamation-triangle');
$('.notifications-btn-icon').addClass('fa-exclamation-circle');
}
+ if(data.all_events_today) {
+ $('.all_events-update').removeClass('badge-secondary');
+ $('.all_events-update').addClass('badge-danger');
+ }
+ else {
+ $('.all_events-update').removeClass('badge-danger');
+ $('.all_events-update').addClass('badge-secondary');
+ }
$.each(data, function(index, item) {
//do not process those
@@ -557,8 +598,10 @@ function updateConvItems(mode,data) {
$('.thread-wrapper.toplevel_item',data).each(function() {
var ident = $(this).attr('id');
-
+ var convId = ident.replace('thread-wrapper-','');
var commentWrap = $('#'+ident+' .collapsed-comments').attr('id');
+
+
var itmId = 0;
var isVisible = false;
@@ -569,6 +612,9 @@ function updateConvItems(mode,data) {
if($('#collapsed-comments-'+itmId).is(':visible'))
isVisible = true;
+
+
+
// insert the content according to the mode and first_page
// and whether or not the content exists already (overwrite it)
@@ -590,6 +636,24 @@ function updateConvItems(mode,data) {
if(isVisible)
showHideComments(itmId);
+ var commentBody = localStorage.getItem("comment_body-" + convId);
+
+ if(commentBody) {
+ var commentElm = $('#comment-edit-text-' + convId);
+ if(auto_save_draft) {
+ if($(commentElm).val() === '') {
+ $('#comment-edit-form-' + convId).show();
+ $(commentElm).addClass("expanded");
+ openMenu("comment-tools-" + convId);
+ $(commentElm).val(commentBody);
+ }
+ } else {
+ localStorage.removeItem("comment_body-" + convId);
+ }
+ }
+
+
+
// trigger the autotime function on all newly created content
$("> .wall-item-outside-wrapper .autotime, > .thread-wrapper .autotime",this).timeago();
@@ -1032,18 +1096,21 @@ function dostar(ident) {
if(data.result == 1) {
$('#starred-' + ident).addClass('starred');
$('#starred-' + ident).removeClass('unstarred');
- $('#starred-' + ident).addClass('fa-star-full');
+ $('#starred-' + ident).addClass('fa-star');
$('#starred-' + ident).removeClass('fa-star-o');
$('#star-' + ident).addClass('hidden');
$('#unstar-' + ident).removeClass('hidden');
+ var btn_tpl = '<div class="btn-group" id="star-button-' + ident + '"><button type="button" class="btn btn-outline-secondary btn-sm wall-item-like" onclick="dostar(' + ident + ');"><i class="fa fa-star"></i></button></div>'
+ $('#wall-item-tools-left-' + ident).prepend(btn_tpl);
}
else {
$('#starred-' + ident).addClass('unstarred');
$('#starred-' + ident).removeClass('starred');
$('#starred-' + ident).addClass('fa-star-o');
- $('#starred-' + ident).removeClass('fa-star-full');
+ $('#starred-' + ident).removeClass('fa-star');
$('#star-' + ident).removeClass('hidden');
$('#unstar-' + ident).addClass('hidden');
+ $('#star-button-' + ident).remove();
}
$('#like-rotator-' + ident).hide();
});
@@ -1098,6 +1165,7 @@ function post_comment(id) {
$("#comment-edit-form-" + id).serialize(),
function(data) {
if(data.success) {
+ localStorage.removeItem("comment_body-" + id);
$("#comment-edit-preview-" + id).hide();
$("#comment-edit-wrapper-" + id).hide();
$("#comment-edit-text-" + id).val('');
@@ -1422,7 +1490,6 @@ function b2h(s) {
rep(/\[img=(.*?)x(.*?)\](.*?)\[\/img\]/gi,"<img width=\"$1\" height=\"$2\" src=\"$3\" />");
rep(/\[img\](.*?)\[\/img\]/gi,"<img src=\"$1\" />");
- // FIXME - add zid()
rep(/\[zrl=([^\]]+)\](.*?)\[\/zrl\]/gi,"<a href=\"$1" + '?f=&zid=' + zid + "\">$2</a>");
rep(/\[zrl\](.*?)\[\/zrl\]/gi,"<a href=\"$1" + '?f=&zid=' + zid + "\">$1</a>");
rep(/\[zmg=(.*?)x(.*?)\](.*?)\[\/zmg\]/gi,"<img width=\"$1\" height=\"$2\" src=\"$3" + '?f=&zid=' + zid + "\" />");
diff --git a/view/js/mod_help.js b/view/js/mod_help.js
index 8ee89dd61..107845c04 100644
--- a/view/js/mod_help.js
+++ b/view/js/mod_help.js
@@ -21,7 +21,7 @@ $(document).ready(function () {
var pageName = url.href.split('/').pop().split('#').shift().split('?').shift();
var linkName = $(this).attr('href').split('/').pop();
if (pageName === linkName) {
- var tocUl = $(this).closest('a').append('<ul>').find('ul');
+ var tocUl = $(this).closest('a').after('<ul>').next('ul');
tocUl.removeClass(); // Classes are automatically added to <ul> elements by something else
tocUl.toc({content: "#doco-content", headings: "h3"});
tocUl.addClass('toc-content');
@@ -53,7 +53,7 @@ $(document).ready(function () {
.removeClass('selected-doco-nav')
.eq(i).addClass('selected-doco-nav');
if (typeof ($('#doco-side-toc li').eq(i).find('a').attr('href').split('#')[1]) !== 'undefined') {
- window.history.pushState({}, '', location.href.split('#')[0] + '#' + $('#doco-side-toc li').eq(i).find('a').attr('href').split('#')[1]);
+ window.history.replaceState({}, '', location.href.split('#')[0] + '#' + $('#doco-side-toc li').eq(i).find('a').attr('href').split('#')[1]);
}
}
});
@@ -100,7 +100,7 @@ $(document).ready(function () {
}
// Update the address bar to reflect the loaded language
- window.history.pushState({}, '', '/' + pathParts.join('/'));
+ window.history.replaceState({}, '', '/' + pathParts.join('/'));
// Highlight the language in the language selector that is currently viewed
$('.lang-selector').find('.lang-choice:contains("' + help_language + '")').addClass('active');
diff --git a/view/pdl/mod_display.pdl b/view/pdl/mod_display.pdl
index 95f069031..a5461df50 100644
--- a/view/pdl/mod_display.pdl
+++ b/view/pdl/mod_display.pdl
@@ -1,3 +1,6 @@
+[region=aside]
+[widget=vcard][/widget]
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/pdl/mod_pubstream.pdl b/view/pdl/mod_pubstream.pdl
index 95f069031..539900155 100644
--- a/view/pdl/mod_pubstream.pdl
+++ b/view/pdl/mod_pubstream.pdl
@@ -1,3 +1,6 @@
+[region=aside]
+[widget=pubtagcloud][var=trending]8[/var][var=limit]20[/var][/widget]
+[/region]
[region=right_aside]
[widget=notifications][/widget]
[widget=newmember][/widget]
diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css
index dfd03707f..0bb523457 100644
--- a/view/theme/redbasic/css/style.css
+++ b/view/theme/redbasic/css/style.css
@@ -120,7 +120,12 @@ a:focus,
input, optgroup, select, textarea {
font-size: 0.9rem !important;
+}
+
+input[type=text], textarea {
resize: vertical;
+ background-color: $comment_item_colour;
+ color: $font_colour;
}
.selected-doco-nav {
@@ -1046,12 +1051,14 @@ img.mail-conv-sender-photo {
}
#profile-jot-wrapper {
- background-color: rgba(254,254,254,1);
- border: 1px solid #ccc;
+ background-color: rgba(254, 254, 254, 1);
+ border: 1px solid rgba(0, 0, 0, .2);
border-radius: $radius;
}
+#jot-title,
+#jot-pagetitle,
#profile-jot-text {
border-radius: $radius;
}
@@ -1203,7 +1210,6 @@ img.mail-conv-sender-photo {
}
#note-text {
- border: 1px solid #ccc;
border-radius: $radius;
}
@@ -1298,8 +1304,7 @@ img.mail-conv-sender-photo {
}
.generic-content-wrapper {
- border: 1px solid #ccc;
- box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.2);
+ border: 1px solid rgba(0, 0, 0, .2);
border-radius: $radius;
margin-bottom: 1.5rem;
}
@@ -1334,7 +1339,7 @@ img.mail-conv-sender-photo {
.section-content-tools-wrapper {
padding: 7px 10px;
background-color: $comment_item_colour;
- border-bottom: 3px solid comment_item_colour;
+ border-bottom: 3px solid $comment_item_colour;
}
.section-content-info-wrapper {
@@ -1790,3 +1795,7 @@ dl.bb-dl > dd > li {
position: absolute;
text-shadow: -2px 0 1px #fff, 0 2px 1px#fff, 2px 0 1px #fff, 0 -2px 1px #fff;
}
+
+.cover-photo-review {
+ margin-bottom: 10px;
+}
diff --git a/view/theme/redbasic/schema/BS-Default.css b/view/theme/redbasic/schema/BS-Default.css
deleted file mode 100644
index 9045d3b97..000000000
--- a/view/theme/redbasic/schema/BS-Default.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.navbar-dark .navbar-toggler {
- color: rgba(0,0,0,0.7);
-}
-
-#notifications-btn.text-white {
- color: #777 !important;
-}
diff --git a/view/theme/redbasic/schema/Focus-Boxy.css b/view/theme/redbasic/schema/Focus-Boxy.css
new file mode 100644
index 000000000..b9b259796
--- /dev/null
+++ b/view/theme/redbasic/schema/Focus-Boxy.css
@@ -0,0 +1,15 @@
+.comment .wall-item-body {
+ padding-left: 42px;
+}
+
+.wall-item-content-wrapper.comment {
+ border-bottom: 1px solid #dee2e6;
+}
+
+.widget {
+ border: 1px solid #dee2e6;
+}
+
+#note-text {
+ border: 1px solid transparent;
+}
diff --git a/view/theme/redbasic/schema/boxy.php b/view/theme/redbasic/schema/Focus-Boxy.php
index f298a0def..f298a0def 100644
--- a/view/theme/redbasic/schema/boxy.php
+++ b/view/theme/redbasic/schema/Focus-Boxy.php
diff --git a/view/theme/redbasic/schema/Focus-Light.css b/view/theme/redbasic/schema/Focus-Light.css
new file mode 100644
index 000000000..d23fc0fd8
--- /dev/null
+++ b/view/theme/redbasic/schema/Focus-Light.css
@@ -0,0 +1,4 @@
+.navbar-dark .navbar-toggler,
+.navbar-dark .nav-link.active {
+ color: rgba(0,0,0,0.7) !important;
+}
diff --git a/view/theme/redbasic/schema/BS-Default.php b/view/theme/redbasic/schema/Focus-Light.php
index 14ee130d9..14ee130d9 100644
--- a/view/theme/redbasic/schema/BS-Default.php
+++ b/view/theme/redbasic/schema/Focus-Light.php
diff --git a/view/theme/redbasic/schema/boxy.css b/view/theme/redbasic/schema/boxy.css
deleted file mode 100644
index 43ef3e34e..000000000
--- a/view/theme/redbasic/schema/boxy.css
+++ /dev/null
@@ -1,7 +0,0 @@
-.comment .wall-item-body {
- padding-left: 42px;
-}
-
-.wall-item-content-wrapper.comment {
- border-bottom: 1px solid #ccc;
-}
diff --git a/view/theme/redbasic/schema/dark.css b/view/theme/redbasic/schema/dark.css
index d0154bfb1..dbee67c84 100644
--- a/view/theme/redbasic/schema/dark.css
+++ b/view/theme/redbasic/schema/dark.css
@@ -1,5 +1,4 @@
.generic-content-wrapper {
- border: 1px solid #111;
background-color: transparent;
}
@@ -148,7 +147,8 @@ option {
background-color:#111;
}
-.modal-content {
+.modal-content,
+#notifications_wrapper {
background-color: #111;
}
diff --git a/view/theme/redbasic/schema/simple_black_on_white.css b/view/theme/redbasic/schema/simple_black_on_white_(unmaintained,deprecated).css
index ab819d774..ab819d774 100644
--- a/view/theme/redbasic/schema/simple_black_on_white.css
+++ b/view/theme/redbasic/schema/simple_black_on_white_(unmaintained,deprecated).css
diff --git a/view/theme/redbasic/schema/simple_black_on_white.php b/view/theme/redbasic/schema/simple_black_on_white_(unmaintained,deprecated).php
index 554e832f0..554e832f0 100644
--- a/view/theme/redbasic/schema/simple_black_on_white.php
+++ b/view/theme/redbasic/schema/simple_black_on_white_(unmaintained,deprecated).php
diff --git a/view/theme/redbasic/schema/simple_green_on_black.css b/view/theme/redbasic/schema/simple_green_on_black_(unmaintained,deprecated).css
index c8ea87050..c8ea87050 100644
--- a/view/theme/redbasic/schema/simple_green_on_black.css
+++ b/view/theme/redbasic/schema/simple_green_on_black_(unmaintained,deprecated).css
diff --git a/view/theme/redbasic/schema/simple_green_on_black.php b/view/theme/redbasic/schema/simple_green_on_black_(unmaintained,deprecated).php
index 8192180db..8192180db 100644
--- a/view/theme/redbasic/schema/simple_green_on_black.php
+++ b/view/theme/redbasic/schema/simple_green_on_black_(unmaintained,deprecated).php
diff --git a/view/theme/redbasic/schema/simple_white_on_black.css b/view/theme/redbasic/schema/simple_white_on_black_(unmaintained,deprecated).css
index ea04d4d9e..ea04d4d9e 100644
--- a/view/theme/redbasic/schema/simple_white_on_black.css
+++ b/view/theme/redbasic/schema/simple_white_on_black_(unmaintained,deprecated).css
diff --git a/view/theme/redbasic/schema/simple_white_on_black.php b/view/theme/redbasic/schema/simple_white_on_black_(unmaintained,deprecated).php
index b64f60bbe..b64f60bbe 100644
--- a/view/theme/redbasic/schema/simple_white_on_black.php
+++ b/view/theme/redbasic/schema/simple_white_on_black_(unmaintained,deprecated).php
diff --git a/view/tpl/admin_site.tpl b/view/tpl/admin_site.tpl
index 10b367810..7e99b2c86 100755
--- a/view/tpl/admin_site.tpl
+++ b/view/tpl/admin_site.tpl
@@ -74,7 +74,7 @@
{{include file="field_select.tpl" field=$access_policy}}
{{include file="field_input.tpl" field=$location}}
{{include file="field_input.tpl" field=$sellpage}}
- {{include file="field_input.tpl" field=$firstpage}}
+ {{include file="field_input.tpl" field=$first_page}}
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
@@ -101,6 +101,7 @@
{{include file="field_input.tpl" field=$maxloadavg}}
{{include file="field_input.tpl" field=$abandon_days}}
{{include file="field_input.tpl" field=$default_expire_days}}
+ {{include file="field_input.tpl" field=$active_expire_days}}
<div class="submit"><input type="submit" name="page_site" value="{{$submit}}" /></div>
diff --git a/view/tpl/channel_import.tpl b/view/tpl/channel_import.tpl
index baffe9b06..d702a2437 100755
--- a/view/tpl/channel_import.tpl
+++ b/view/tpl/channel_import.tpl
@@ -1,43 +1,35 @@
-<h2>{{$title}}</h2>
+<div class="generic-content-wrapper">
+ <div class="section-title-wrapper">
+ <h2>{{$title}}</h2>
+ <div class="clear"></div>
+ </div>
+ <div class="section-content-wrapper">
-<form action="import" method="post" enctype="multipart/form-data" id="import-channel-form">
- <input type="hidden" name="form_security_token" value="{{$form_security_token}}">
- <div id="import-desc" class="descriptive-paragraph">{{$desc}}</div>
+ <form action="import" method="post" enctype="multipart/form-data" id="import-channel-form">
+ <input type="hidden" name="form_security_token" value="{{$form_security_token}}">
+ <div id="import-desc" class="section-content-info-wrapper">{{$desc}}</div>
- <label for="import-filename" id="label-import-filename" class="import-label" >{{$label_filename}}</label>
- <input type="file" name="filename" id="import-filename" class="import-input" value="" />
- <div id="import-filename-end" class="import-field-end"></div>
+ <label for="import-filename" id="label-import-filename" class="import-label" >{{$label_filename}}</label>
+ <input type="file" name="filename" id="import-filename" class="import-input" value="" />
+ <div id="import-filename-end" class="import-field-end"></div>
- <div id="import-choice" class="descriptive-paragraph">{{$choice}}</div>
+ <div id="import-choice" class="section-content-info-wrapper">{{$choice}}</div>
- <label for="import-old-address" id="label-import-old-address" class="import-label" >{{$label_old_address}}</label>
- <input type="text" name="old_address" id="import-old-address" class="import-input" value="" />
- <div id="import-old-address-end" class="import-field-end"></div>
+ {{include file="field_input.tpl" field=$old_address}}
+ {{include file="field_input.tpl" field=$email}}
+ {{include file="field_password.tpl" field=$password}}
+ {{include file="field_checkbox.tpl" field=$import_posts}}
- <label for="import-old-email" id="label-import-old-email" class="import-label" >{{$label_old_email}}</label>
- <input type="text" name="email" id="import-old-email" class="import-input" value="{{$email}}" />
- <div id="import-old-email-end" class="import-field-end"></div>
+ <div id="import-common-desc" class="section-content-info-wrapper">{{$common}}</div>
- <label for="import-old-pass" id="label-import-old-pass" class="import-label" >{{$label_old_pass}}</label>
- <input type="password" name="password" id="import-old-pass" class="import-input" value="{{$pass}}" />
- <div id="import-old-pass-end" class="import-field-end"></div>
+ {{include file="field_checkbox.tpl" field=$make_primary}}
+ {{include file="field_checkbox.tpl" field=$moving}}
- <input type="checkbox" name="import_posts" id="import-posts" value="1" />
- <label for="import-posts" id="label-import-posts">{{$label_import_posts}}</label>
- <div id="import-posts-end" class="import-field-end"></div>
+ <div id="import-common-desc" class="section-content-info-wrapper">{{$pleasewait}}</div>
- <div id="import-common-desc" class="descriptive-paragraph">{{$common}}</div>
+ <input type="submit" class="btn btn-primary" name="submit" id="import-submit-button" value="{{$submit}}" />
+ <div id="import-submit-end" class="import-field-end"></div>
- <input type="checkbox" name="make_primary" id="import-make-primary" value="1" />
- <label for="import-make-primary" id="label-import-make-primary">{{$label_import_primary}}</label>
- <div id="import-make-primary-end" class="import-field-end"></div>
-
- <input type="checkbox" name="moving" id="import-moving" value="1" />
- <label for="import-moving" id="label-import-moving">{{$label_import_moving}}</label>
- <div id="import-moving-end" class="import-field-end"></div>
-
- <input type="submit" name="submit" id="import-submit-button" value="{{$submit}}" />
- <div id="import-submit-end" class="import-field-end"></div>
-
- <div id="import-common-desc" class="descriptive-paragraph">{{$pleasewait}}</div>
-</form>
+ </form>
+ </div>
+</div>
diff --git a/view/tpl/cloud_directory.tpl b/view/tpl/cloud_directory.tpl
index ad3caff88..1f0addc95 100644
--- a/view/tpl/cloud_directory.tpl
+++ b/view/tpl/cloud_directory.tpl
@@ -1,5 +1,5 @@
<div id="cloud-drag-area" class="section-content-wrapper-np">
- {{if $tiles}}
+{{if $tiles}}
<table id="cloud-index">
<tr id="new-upload-progress-bar-1"></tr> {{* this is needed to append the upload files in the right order *}}
</table>
@@ -36,7 +36,7 @@
</div>
{{/foreach}}
<div class="clear"></div>
- {{else}}
+{{else}}
<table id="cloud-index">
<tr>
<th width="1%"></th>
@@ -80,5 +80,5 @@
{{/foreach}}
</table>
- {{/if}}
+{{/if}}
</div>
diff --git a/view/tpl/cloud_header.tpl b/view/tpl/cloud_header.tpl
index 307dc8956..642fb1866 100644
--- a/view/tpl/cloud_header.tpl
+++ b/view/tpl/cloud_header.tpl
@@ -6,7 +6,7 @@
<a href="/sharedwithme" class="btn btn-sm btn-outline-secondary"><i class="fa fa-cloud-download"></i>&nbsp;{{$shared}}</a>
{{/if}}
<button id="files-create-btn" class="btn btn-sm btn-primary" onclick="openClose('files-mkdir-tools'); closeMenu('files-upload-tools');"><i class="fa fa-folder-o"></i>&nbsp;{{$create}}</button>
- <button id="files-upload-btn" class="btn btn-sm btn-success" onclick="openClose('files-upload-tools'); closeMenu('files-mkdir-tools');"><i class="fa fa-arrow-circle-o-up"></i>&nbsp;{{$upload}}</button>
+ <button id="files-upload-btn" class="btn btn-sm btn-success" onclick="openClose('files-upload-tools'); closeMenu('files-mkdir-tools');"><i class="fa fa-plus-circle"></i>&nbsp;{{$upload}}</button>
{{/if}}
</div>
diff --git a/view/tpl/comment_item.tpl b/view/tpl/comment_item.tpl
index 3b51971ec..23594677c 100755
--- a/view/tpl/comment_item.tpl
+++ b/view/tpl/comment_item.tpl
@@ -1,3 +1,6 @@
+ <script>
+ var auto_save_draft = {{$auto_save_draft}};
+ </script>
{{if $threaded}}
<div class="comment-wwedit-wrapper threaded" id="comment-edit-wrapper-{{$id}}" style="display: block;">
{{else}}
diff --git a/view/tpl/connections.tpl b/view/tpl/connections.tpl
index 32973353e..0bf88b818 100755
--- a/view/tpl/connections.tpl
+++ b/view/tpl/connections.tpl
@@ -9,7 +9,7 @@
</button>
<div class="dropdown-menu dropdown-menu-right">
{{foreach $tabs as $menu}}
- <a class="dropdown-item" href="{{$menu.url}}">{{$menu.label}}</a>
+ <a class="dropdown-item {{$menu.sel}}" href="{{$menu.url}}">{{$menu.label}}</a>
{{/foreach}}
</div>
</div>
diff --git a/view/tpl/conv_item.tpl b/view/tpl/conv_item.tpl
index e9f507f1e..a408a83d2 100755
--- a/view/tpl/conv_item.tpl
+++ b/view/tpl/conv_item.tpl
@@ -27,9 +27,18 @@
{{/if}}
{{/if}}
<div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment}} wall-item-head-new rounded-top{{/if}}">
- <div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
+ <div class="wall-item-info " id="wall-item-info-{{$item.id}}" >
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}} h-card p-author" id="wall-item-photo-wrapper-{{$item.id}}">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link u-url" id="wall-item-photo-link-{{$item.id}}"><img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" /></a>
+ <img src="{{$item.thumb}}" class="fakelink wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" data-toggle="dropdown" />
+ {{if $item.thread_author_menu}}
+ <i class="fa fa-caret-down wall-item-photo-caret"></i>
+ <div class="dropdown-menu">
+ {{foreach $item.thread_author_menu as $mitem}}
+ <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a>
+ {{/foreach}}
+
+ </div>
+ {{/if}}
</div>
</div>
{{if $item.lock}}
@@ -40,7 +49,7 @@
{{/if}}
<div class="wall-item-author">
{{if $item.previewing}}<span class="preview-indicator"><i class="fa fa-eye" title="{{$item.preview_lbl}}"></i></span>&nbsp;{{/if}}
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}}&nbsp;{{$item.via}}&nbsp;<a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
+ <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link u-url"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}}&nbsp;{{$item.via}}&nbsp;<a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
</div>
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
{{if $item.verified}}<i class="fa fa-check item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="fa fa-exclamation item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location p-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="fa fa-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
@@ -58,32 +67,9 @@
{{/if}}
{{if $item.has_tags}}
<div class="p-2 wall-item-tools clearfix">
-
<div class="body-tags">
<span class="tag">{{$item.mentions}} {{$item.tags}} {{$item.categories}} {{$item.folders}}</span>
</div>
- {{**
- {{if $item.mentions}}
- <div class="body-tags" id="item-mentions">
- <span class="tag">{{$item.mentions}}</span>
- </div>
- {{/if}}
- {{if $item.tags}}
- <div class="body-tags" id="item-tags">
- <span class="tag">{{$item.tags}}</span>
- </div>
- {{/if}}
- {{if $item.categories}}
- <div class="body-tags" id="item-categories">
- <span class="tag p-category">{{$item.categories}}</span>
- </div>
- {{/if}}
- {{if $item.folders}}
- <div class="body-tags" id="item-folders">
- <span class="tag">{{$item.folders}}</span>
- </div>
- {{/if}}
- **}}
</div>
{{/if}}
<div class="p-2 clearfix wall-item-tools">
@@ -179,7 +165,7 @@
<a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-calendar" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a>
{{/if}}
{{if $item.star}}
- <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-star {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
+ <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw{{if $item.star.isstarred}} starred fa-star{{else}} unstarred fa-star-o{{/if}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
{{/if}}
{{if $item.thread_action_menu}}
{{foreach $item.thread_action_menu as $mitem}}
@@ -189,13 +175,8 @@
{{if $item.drop.dropping}}
<a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a>
{{/if}}
- {{if $item.thread_author_menu}}
- <div class="dropdown-divider"></div>
- {{foreach $item.thread_author_menu as $mitem}}
- <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a>
- {{/foreach}}
- {{/if}}
{{if $item.edpost && $item.dreport}}
+ <div class="dropdown-divider"></div>
<a class="dropdown-item" href="dreport/{{$item.mid}}">{{$item.dreport}}</a>
{{/if}}
</div>
@@ -204,7 +185,12 @@
</div>
{{if $item.responses || $item.attachments}}
- <div class="wall-item-tools-left{{if ($item.responses.count > 1) || ($item.responses.count && $item.attachments)}} btn-group{{/if}}">
+ <div class="wall-item-tools-left btn-group" id="wall-item-tools-left-{{$item.id}}">
+ {{if $item.star && $item.star.isstarred}}
+ <div class="btn-group" id="star-button-{{$item.id}}">
+ <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like" onclick="dostar({{$item.id}});"><i class="fa fa-star"></i></button>
+ </div>
+ {{/if}}
{{if $item.attachments}}
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle" data-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="fa fa-paperclip"></i></button>
diff --git a/view/tpl/conv_list.tpl b/view/tpl/conv_list.tpl
index 97fd50d01..f94a2f24f 100755
--- a/view/tpl/conv_list.tpl
+++ b/view/tpl/conv_list.tpl
@@ -29,7 +29,16 @@
<div class="p-2 clearfix wall-item-head{{if $item.is_new && !$item.title && !$item.event && !$item.is_comment}} wall-item-head-new rounded-top{{/if}}">
<div class="wall-item-info" id="wall-item-info-{{$item.id}}" >
<div class="wall-item-photo-wrapper{{if $item.owner_url}} wwfrom{{/if}} h-card p-author" id="wall-item-photo-wrapper-{{$item.id}}">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-photo-link u-url" id="wall-item-photo-link-{{$item.id}}"><img src="{{$item.thumb}}" class="wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" /></a>
+ <img src="{{$item.thumb}}" class="fakelink wall-item-photo{{$item.sparkle}} u-photo p-name" id="wall-item-photo-{{$item.id}}" alt="{{$item.name}}" data-toggle="dropdown" /></a>
+ {{if $item.thread_author_menu}}
+ <i class="fa fa-caret-down wall-item-photo-caret"></i>
+ <div class="dropdown-menu">
+ {{foreach $item.thread_author_menu as $mitem}}
+ <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a>
+ {{/foreach}}
+
+ </div>
+ {{/if}}
</div>
</div>
{{if $item.lock}}
@@ -39,7 +48,7 @@
</div>
{{/if}}
<div class="wall-item-author">
- <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}}&nbsp;{{$item.via}}&nbsp;<a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
+ <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link u-url"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}}&nbsp;{{$item.via}}&nbsp;<a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
</div>
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
{{if $item.verified}}<i class="fa fa-check item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="fa fa-exclamation item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location p-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}"><time class="dt-published" datetime="{{$item.isotime}}">{{$item.localtime}}</time>{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="fa fa-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
@@ -59,28 +68,6 @@
<div class="body-tags">
<span class="tag">{{$item.mentions}} {{$item.tags}} {{$item.categories}} {{$item.folders}}</span>
</div>
- {{**
- {{if $item.mentions}}
- <div class="body-tags" id="item-mentions">
- <span class="tag">{{$item.mentions}}</span>
- </div>
- {{/if}}
- {{if $item.tags}}
- <div class="body-tags" id="item-tags">
- <span class="tag">{{$item.tags}}</span>
- </div>
- {{/if}}
- {{if $item.categories}}
- <div class="body-tags" id="item-categories">
- <span class="tag p-category">{{$item.categories}}</span>
- </div>
- {{/if}}
- {{if $item.folders}}
- <div class="body-tags" id="item-folders">
- <span class="tag">{{$item.folders}}</span>
- </div>
- {{/if}}
- **}}
</div>
{{/if}}
<div class="p-2 clearfix wall-item-tools">
@@ -171,7 +158,7 @@
<a class="dropdown-item" href="#" onclick="itemAddToCal({{$item.id}}); return false;"><i id="addtocal-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-calendar" title="{{$item.addtocal}}"></i>{{$item.addtocal}}</a>
{{/if}}
{{if $item.star}}
- <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw fa-star {{$item.star.isstarred}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
+ <a class="dropdown-item" href="#" onclick="dostar({{$item.id}}); return false;"><i id="starred-{{$item.id}}" class="generic-icons-nav fa fa-fw{{if $item.star.isstarred}} starred fa-star{{else}} unstarred fa-star-o{{/if}}" title="{{$item.star.toggle}}"></i>{{$item.star.toggle}}</a>
{{/if}}
{{if $item.thread_action_menu}}
{{foreach $item.thread_action_menu as $mitem}}
@@ -181,12 +168,7 @@
{{if $item.drop.dropping}}
<a class="dropdown-item" href="#" onclick="dropItem('item/drop/{{$item.id}}', '#thread-wrapper-{{$item.id}}'); return false;" title="{{$item.drop.delete}}" ><i class="generic-icons-nav fa fa-fw fa-trash-o"></i>{{$item.drop.delete}}</a>
{{/if}}
- {{if $item.thread_author_menu}}
<div class="dropdown-divider"></div>
- {{foreach $item.thread_author_menu as $mitem}}
- <a class="dropdown-item" {{if $mitem.href}}href="{{$mitem.href}}"{{/if}} {{if $mitem.action}}onclick="{{$mitem.action}}"{{/if}} {{if $mitem.title}}title="{{$mitem.title}}"{{/if}} >{{$mitem.title}}</a>
- {{/foreach}}
- {{/if}}
{{if $item.edpost && $item.dreport}}
<a class="dropdown-item" href="dreport/{{$item.mid}}">{{$item.dreport}}</a>
{{/if}}
@@ -195,7 +177,12 @@
</div>
</div>
<div id="like-rotator-{{$item.id}}" class="like-rotator"></div>
- <div class="wall-item-tools-left{{if $item.unseen_comments || $item.like_count || $item.dislike_count || $item.attachments}} btn-group{{/if}}">
+ <div class="wall-item-tools-left btn-group" id="wall-item-tools-left-{{$item.id}}">
+ {{if $item.star && $item.star.isstarred}}
+ <div class="btn-group" id="star-button-{{$item.id}}">
+ <button type="button" class="btn btn-outline-secondary btn-sm wall-item-like" onclick="dostar({{$item.id}});"><i class="fa fa-star"></i></button>
+ </div>
+ {{/if}}
{{if $item.attachments}}
<div class="btn-group">
<button type="button" class="btn btn-outline-secondary btn-sm wall-item-like dropdown-toggle" data-toggle="dropdown" id="attachment-menu-{{$item.id}}"><i class="fa fa-paperclip"></i></button>
diff --git a/view/tpl/cover_photo.tpl b/view/tpl/cover_photo.tpl
index 829a3a556..5a5bf2286 100755
--- a/view/tpl/cover_photo.tpl
+++ b/view/tpl/cover_photo.tpl
@@ -86,10 +86,14 @@
<h2>{{$title}}</h2>
</div>
<div class="section-content-wrapper">
-
+ {{if $info}}
+ <div class="section-content-warning-wrapper">{{$info}}</div>
+ {{/if}}
+ {{if $existing}}
+ <img class="cover-photo-review" style="max-width: 100%;" src="{{$existing.url}}" alt="{{t('Cover Photo')}}" />
+ {{/if}}
<form enctype="multipart/form-data" action="cover_photo" method="post">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
<div id="profile-photo-upload-wrapper">
<label id="profile-photo-upload-label" class="form-label" for="profile-photo-upload">{{$lbl_upfile}}</label>
diff --git a/view/tpl/generic_addon_settings.tpl b/view/tpl/generic_addon_settings.tpl
index 57028237a..875c97feb 100644
--- a/view/tpl/generic_addon_settings.tpl
+++ b/view/tpl/generic_addon_settings.tpl
@@ -2,7 +2,11 @@
<div class="section-subtitle-wrapper" role="tab" id="{{$addon.0}}-settings">
<h3>
<a title="{{$addon.2}}" data-toggle="collapse" data-target="#{{$addon.0}}-settings-content" href="#" aria-controls="{{$addon.0}}-settings-content">
+ {{if $addon.1|substr:0:1 === '<'}}
{{$addon.1}}
+ {{else}}
+ <i class="fa fa-gear"></i> {{$addon.1}}
+ {{/if}}
</a>
</h3>
</div>
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index c1dab52d5..df67e9b2d 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -560,3 +560,96 @@ $( document ).on( "click", ".wall-item-delete-link,.page-delete-link,.layout-del
}
});
</script>
+
+
+<script>
+ var postSaveTimer = null;
+
+ function postSaveChanges(action, type) {
+ if({{$auto_save_draft}}) {
+
+ var doctype = $('#jot-webpage').val();
+ var postid = '-' + doctype + '-' + $('#jot-postid').val();
+
+ if(action != 'clean') {
+ localStorage.setItem("post_title" + postid, $("#jot-title").val());
+ localStorage.setItem("post_body" + postid, $("#profile-jot-text").val());
+ if($("#jot-category").length)
+ localStorage.setItem("post_category + postid", $("#jot-category").val());
+ }
+
+ if(action == 'start') {
+ postSaveTimer = setTimeout(function () {
+ postSaveChanges('start');
+ },10000);
+ }
+
+ if(action == 'stop') {
+ clearTimeout(postSaveTimer);
+ postSaveTimer = null;
+ }
+
+ if(action == 'clean') {
+ clearTimeout(postSaveTimer);
+ postSaveTimer = null;
+ localStorage.removeItem("post_title" + postid);
+ localStorage.removeItem("post_body" + postid);
+ localStorage.removeItem("post_category" + postid);
+ }
+ }
+
+ }
+
+ $(document).ready(function() {
+
+ var cleaned = false;
+
+ if({{$auto_save_draft}}) {
+ var doctype = $('#jot-webpage').val();
+ var postid = '-' + doctype + '-' + $('#jot-postid').val();
+ var postTitle = localStorage.getItem("post_title" + postid);
+ var postBody = localStorage.getItem("post_body" + postid);
+ var postCategory = (($("#jot-category").length) ? localStorage.getItem("post_category" + postid) : '');
+ var openEditor = false;
+
+ if(postTitle) {
+ $('#jot-title').val(postTitle);
+ openEditor = true;
+ }
+ if(postBody) {
+ $('#profile-jot-text').val(postBody);
+ openEditor = true;
+ }
+ if(postCategory) {
+ var categories = postCategory.split(',');
+ categories.forEach(function(cat) {
+ $('#jot-category').tagsinput('add', cat);
+ });
+ openEditor = true;
+ }
+ if(openEditor) {
+ initEditor();
+ }
+ } else {
+ postSaveChanges('clean');
+ }
+
+ $(document).on('submit', '#profile-jot-form', function() {
+ postSaveChanges('clean');
+ cleaned = true;
+ });
+
+ $(document).on('focusout',"#profile-jot-wrapper",function(e){
+ if(! cleaned)
+ postSaveChanges('stop');
+ });
+
+ $(document).on('focusin',"#profile-jot-wrapper",function(e){
+ postSaveTimer = setTimeout(function () {
+ postSaveChanges('start');
+ },10000);
+ });
+
+
+ });
+</script>
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index bc9339d4c..9aa330c40 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -21,8 +21,8 @@
<input type="hidden" name="media_str" id="jot-media" value="" />
<input type="hidden" name="source" id="jot-source" value="{{$source}}" />
<input type="hidden" name="coord" id="jot-coord" value="" />
- <input type="hidden" name="post_id" value="{{$post_id}}" />
- <input type="hidden" name="webpage" value="{{$webpage}}" />
+ <input type="hidden" id="jot-postid" name="post_id" value="{{$post_id}}" />
+ <input type="hidden" id="jot-webpage" name="webpage" value="{{$webpage}}" />
<input type="hidden" name="preview" id="jot-preview" value="0" />
<input type="hidden" id="jot-consensus" name="consensus" value="{{if $consensus}}{{$consensus}}{{else}}0{{/if}}" />
<input type="hidden" id="jot-nocomment" name="nocomment" value="{{if $nocomment}}{{$nocomment}}{{else}}0{{/if}}" />
diff --git a/view/tpl/navbar_default.tpl b/view/tpl/navbar_default.tpl
index 532e10f22..7bc8df8d5 100755
--- a/view/tpl/navbar_default.tpl
+++ b/view/tpl/navbar_default.tpl
@@ -164,7 +164,7 @@
{{$channel_app}}
{{/foreach}}
<div class="dropdown-divider"></div>
- <div class="dropdown-header sys-apps-toggle" onclick="$('#dropdown-menu').click(function(e) { e.stopPropagation(); }); openClose('sys_apps');">
+ <div class="dropdown-header text-black-50 sys-apps-toggle" onclick="$('#dropdown-menu').click(function(e) { e.stopPropagation(); }); openClose('sys_apps');">
{{$sysapps_toggle}}
</div>
<div id="sys_apps" style="display:none;">
@@ -190,7 +190,7 @@
{{foreach $channel_apps as $channel_app}}
{{$channel_app|replace:'dropdown-item':'nav-link'}}
{{/foreach}}
- <div class="dropdown-header sys-apps-toggle" onclick="openClose('sys-apps-collapsed');">
+ <div class="dropdown-header text-white-50 sys-apps-toggle" onclick="openClose('sys-apps-collapsed');">
{{$sysapps_toggle}}
</div>
<div id="sys-apps-collapsed" style="display:none;">
diff --git a/view/tpl/navbar_tucson.tpl b/view/tpl/navbar_tucson.tpl
index 800f863dd..362b261c5 100755
--- a/view/tpl/navbar_tucson.tpl
+++ b/view/tpl/navbar_tucson.tpl
@@ -164,7 +164,7 @@
{{$channel_app}}
{{/foreach}}
<div class="dropdown-divider"></div>
- <div class="dropdown-header sys-apps-toggle" onclick="$('#dropdown-menu').click(function(e) { e.stopPropagation(); }); openClose('sys_apps');">
+ <div class="dropdown-header text-black-50 sys-apps-toggle" onclick="$('#dropdown-menu').click(function(e) { e.stopPropagation(); }); openClose('sys_apps');">
{{$sysapps_toggle}}
</div>
<div id="sys_apps" style="display:none;">
@@ -190,7 +190,7 @@
{{foreach $channel_apps as $channel_app}}
{{$channel_app|replace:'dropdown-item':'nav-link'}}
{{/foreach}}
- <div class="dropdown-header sys-apps-toggle" onclick="openClose('sys-apps-collapsed');">
+ <div class="dropdown-header text-white-50 sys-apps-toggle" onclick="openClose('sys-apps-collapsed');">
{{$sysapps_toggle}}
</div>
<div id="sys-apps-collapsed" style="display:none;">
diff --git a/view/tpl/oauth2testvehicle.tpl b/view/tpl/oauth2testvehicle.tpl
new file mode 100644
index 000000000..ce46b58c0
--- /dev/null
+++ b/view/tpl/oauth2testvehicle.tpl
@@ -0,0 +1,21 @@
+<h1>OAuth 2.0 Test Vehicle</h1>
+
+{{foreach $endpoints as $ept}}
+<div class="oath2test-form-box">
+<form action="{{$baseurl}}/{{$ept.0}}/" method="{{$ept.4}}">
+ <h3>{{$ept.3}}</h3>
+ {{$baseurl}}/{{$ept.0}}/?{{foreach $ept.1 as $field}}{{$field.0}}={{$field.1}}&<input type="hidden" name="{{$field.0}}" value="{{$field.1}}" />{{/foreach}}
+ <br>
+ <button type="submit" name="{{$ept.2}}_submit" value="submit" class="btn btn-med" title="">Submit</button>
+ <span style="display: {{if $ept.5}}inline{{else}}none{{/if}}; font-size: 2em;">&nbsp;<i class="fa fa-check"></i></span>
+</form>
+ </div>
+{{/foreach}}
+<div>
+ <h3>API response</h3>
+ <pre style="display: inline-block; overflow-x: auto; white-space: nowrap; width: 100%;">
+ <code>
+ {{$api_response}}
+ </code>
+ </pre>
+</div> \ No newline at end of file
diff --git a/view/tpl/oauth_authorize.tpl b/view/tpl/oauth_authorize.tpl
index 2b7afa80e..72701ce52 100755
--- a/view/tpl/oauth_authorize.tpl
+++ b/view/tpl/oauth_authorize.tpl
@@ -2,9 +2,15 @@
<div class='oauthapp'>
<img src='{{$app.icon}}'>
- <h4>{{$app.name}}</h4>
-</div>
-<h3>{{$authorize}}</h3>
-<form method="POST">
-<div class="settings-submit-wrapper"><input class="settings-submit" type="submit" name="oauth_yes" value="{{$yes}}" /></div>
-</form>
+ <h3>{{$app.name}}</h3>
+ <p class="descriptive-paragraph">{{$authorize}}</p>
+ <form method="POST">
+ <div class="settings-submit-wrapper">
+ <input type="hidden" name="client_id" value="{{$client_id}}" />
+ <input type="hidden" name="redirect_uri" value="{{$redirect_uri}}" />
+ <input type="hidden" name="state" value="{{$state}}" />
+ <button class="btn btn-lg btn-danger" name="authorize" value="deny" type="submit">{{$no}}</button>
+ <button class="btn btn-lg btn-success" name="authorize" value="allow" type="submit">{{$yes}}</button>
+ </div>
+ </form>
+</div> \ No newline at end of file
diff --git a/view/tpl/photo_album.tpl b/view/tpl/photo_album.tpl
index 678e790ac..de59809f4 100755
--- a/view/tpl/photo_album.tpl
+++ b/view/tpl/photo_album.tpl
@@ -9,7 +9,7 @@
<i class="fa fa-pencil btn btn-outline-secondary btn-sm" title="{{$album_edit.0}}" onclick="openClose('photo-album-edit-wrapper'); closeMenu('photo-upload-form');"></i>
{{/if}}
{{if $can_post}}
- <button class="btn btn-sm btn-success btn-sm" title="{{$usage}}" onclick="openClose('photo-upload-form'); {{if $album_edit.1}}closeMenu('photo-album-edit-wrapper');{{/if}}"><i class="fa fa-arrow-circle-o-up"></i>&nbsp;{{$upload.0}}</button>
+ <button class="btn btn-sm btn-success btn-sm" title="{{$usage}}" onclick="openClose('photo-upload-form'); {{if $album_edit.1}}closeMenu('photo-album-edit-wrapper');{{/if}}"><i class="fa fa-plus-circle"></i>&nbsp;{{$upload.0}}</button>
{{/if}}
</div>
</div>
diff --git a/view/tpl/photos_recent.tpl b/view/tpl/photos_recent.tpl
index a9574aade..d24b362f8 100755
--- a/view/tpl/photos_recent.tpl
+++ b/view/tpl/photos_recent.tpl
@@ -2,7 +2,7 @@
<div class="section-title-wrapper">
<div class="pull-right">
{{if $can_post}}
- <button class="btn btn-sm btn-success acl-form-trigger" title="{{$usage}}" onclick="openClose('photo-upload-form');" data-form_id="photos-upload-form"><i class="fa fa-arrow-circle-o-up"></i>&nbsp;{{$upload.0}}</button>
+ <button class="btn btn-sm btn-success acl-form-trigger" title="{{$usage}}" onclick="openClose('photo-upload-form');" data-form_id="photos-upload-form"><i class="fa fa-plus-circle"></i>&nbsp;{{$upload.0}}</button>
{{/if}}
</div>
<h2>{{$title}}</h2>
diff --git a/view/tpl/profile_edit.tpl b/view/tpl/profile_edit.tpl
index 95183fdf4..c967fa02c 100755
--- a/view/tpl/profile_edit.tpl
+++ b/view/tpl/profile_edit.tpl
@@ -4,7 +4,7 @@
<button type="button" class="btn btn-outline-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-cog"></i>&nbsp;{{$tools_label}}
</button>
- <div class="dropdown-menu">
+ <div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="profile_photo" id="profile-photo_upload-link" title="{{$profpic}}"><i class="fa fa-fw fa-user"></i>&nbsp;{{$profpic}}</a>
{{if $is_default}}
<a class="dropdown-item" href="cover_photo" id="cover-photo_upload-link" title="{{$coverpic}}"><i class="fa fa-fw fa-picture-o"></i>&nbsp;{{$coverpic}}</a>
@@ -15,7 +15,7 @@
<a class="dropdown-item" href="thing" id="profile-edit-thing-link" title="{{$addthing}}"><i class="fa fa-fw fa-plus-circle"></i>&nbsp;{{$addthing}}</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="profile/{{$profile_id}}/view" id="profile-edit-view-link" title="{{$viewprof}}">{{$viewprof}}</a>
- {{if $profile_clone_link}}
+ {{if $multi_profiles}}
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{$profile_clone_link}}" id="profile-edit-clone-link" title="{{$cr_prof}}">{{$cl_prof}}</a>
{{/if}}
@@ -56,7 +56,11 @@
</div>
<div id="personal-collapse" class="panel-collapse collapse show" data-parent="#profile-edit-wrapper" role="tabpanel" aria-labelledby="personal">
<div class="section-content-tools-wrapper">
+ {{if $multi_profiles}}
{{include file="field_input.tpl" field=$profile_name}}
+ {{else}}
+ <input type="hidden" name="{{$profile_name.0}}" value="{{$profile_name.2}}">
+ {{/if}}
{{include file="field_input.tpl" field=$name}}
diff --git a/view/tpl/profile_photo.tpl b/view/tpl/profile_photo.tpl
index e48d05330..819502df5 100755
--- a/view/tpl/profile_photo.tpl
+++ b/view/tpl/profile_photo.tpl
@@ -94,7 +94,9 @@
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
<div id="profile-photo-upload-wrapper">
-
+ {{if $info}}
+ <div class="section-content-warning-wrapper">{{$info}}</div>
+ {{/if}}
{{if $importfile}}
<input type="hidden" name="importfile" value="{{$importfile}}">
{{else}}
diff --git a/view/tpl/profile_tabs.tpl b/view/tpl/profile_tabs.tpl
index 72e98ae82..e77da23f3 100644
--- a/view/tpl/profile_tabs.tpl
+++ b/view/tpl/profile_tabs.tpl
@@ -1,4 +1,5 @@
-<div class="dropdown-header"><img src="{{$thumb}}" class="menu-img-1">{{$name}}</div>
+<div class="dropdown-header text-white-50 d-lg-none" ><img src="{{$thumb}}" class="menu-img-1">{{$name}}</div>
+<div class="dropdown-header text-black-50 d-none d-lg-block"><img src="{{$thumb}}" class="menu-img-1">{{$name}}</div>
{{foreach $tabs as $tab}}
<a class="dropdown-item{{if $tab.sel}} {{$tab.sel}}{{/if}}" href="{{$tab.url}}"{{if $tab.title}} title="{{$tab.title}}"{{/if}}><i class="fa fa-fw fa-{{$tab.icon}} generic-icons-nav"></i>{{$tab.label}}</a>
{{/foreach}}
diff --git a/view/tpl/settings.tpl b/view/tpl/settings.tpl
index 130dc6918..d258f1992 100755
--- a/view/tpl/settings.tpl
+++ b/view/tpl/settings.tpl
@@ -138,11 +138,14 @@
{{include file="field_intcheckbox.tpl" field=$vnotify7}}
{{include file="field_intcheckbox.tpl" field=$vnotify8}}
{{include file="field_intcheckbox.tpl" field=$vnotify9}}
- {{include file="field_intcheckbox.tpl" field=$vnotify11}}
+ {{if $vnotify11}}
+ {{include file="field_intcheckbox.tpl" field=$vnotify11}}
+ {{/if}}
{{include file="field_intcheckbox.tpl" field=$vnotify12}}
{{if $vnotify13}}
{{include file="field_intcheckbox.tpl" field=$vnotify13}}
{{/if}}
+ {{include file="field_intcheckbox.tpl" field=$vnotify14}}
{{include file="field_intcheckbox.tpl" field=$always_show_in_notices}}
{{include file="field_input.tpl" field=$evdays}}
</div>
diff --git a/view/tpl/settings_features.tpl b/view/tpl/settings_features.tpl
index f8c162e17..998199c8e 100755
--- a/view/tpl/settings_features.tpl
+++ b/view/tpl/settings_features.tpl
@@ -1,9 +1,31 @@
+<script>
+ $(document).ready(function() {
+ $('#id_techlevel').change(function() {
+ var techlvl = $('#id_techlevel').val();
+ window.location.href='{{$baseurl}}/settings/features?f=&techlevel=' + techlvl;
+ });
+ });
+</script>
+
<div class="generic-content-wrapper">
<div class="section-title-wrapper">
<h2>{{$title}}</h2>
</div>
<form action="settings/features" method="post" autocomplete="off">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+ {{if ! $techlock}}
+ <div class="section-content-tools-wrapper">
+ {{include file="field_select.tpl" field=$techlevel}}
+ </div>
+ {{else}}
+ <input type="hidden" name="techlevel" value="{{$techlevel.2}}" />
+ {{/if}}
+
+ {{if $hiddens}}
+ {{foreach $hiddens as $k => $v}}
+ <input type="hidden" name="feature_{{$k}}" value="{{$v}}" />
+ {{/foreach}}
+ {{/if}}
<div class="panel-group" id="settings" role="tablist" aria-multiselectable="true">
{{foreach $features as $g => $f}}
<div class="panel">
diff --git a/view/tpl/settings_nick_set.tpl b/view/tpl/settings_nick_set.tpl
index 76fe7cd8d..4dbe58d82 100755
--- a/view/tpl/settings_nick_set.tpl
+++ b/view/tpl/settings_nick_set.tpl
@@ -1,5 +1,5 @@
<div id="settings-nick-wrapper" class="section-content-info-wrapper">
-<div id="settings-nickname-desc">{{$desc}} <strong>'{{$nickname}}@{{$basepath}}'</strong></div>
+<div id="settings-nickname-desc">{{$desc}} <strong>{{$nickname}}</strong></div>
{{if $davpath}}
<br>
<div id="settings-dav-desc">{{$davdesc}} <strong>'{{$davpath}}'</strong></div>
diff --git a/view/tpl/settings_oauth2.tpl b/view/tpl/settings_oauth2.tpl
new file mode 100755
index 000000000..882d34ea9
--- /dev/null
+++ b/view/tpl/settings_oauth2.tpl
@@ -0,0 +1,35 @@
+<div class="generic-content-wrapper">
+<div class="section-title-wrapper">
+ <h2>{{$title}}</h2>
+</div>
+
+<div class="section-content-tools-wrapper">
+<form action="settings/oauth2" method="post" autocomplete="off">
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+
+ <div id="profile-edit-links">
+ <ul>
+ <li>
+ <a id="profile-edit-view-link" href="{{$baseurl}}/settings/oauth2/add">{{$add}}</a>
+ </li>
+ </ul>
+ </div>
+
+ {{foreach $apps as $app}}
+ <div class='oauthapp'>
+ {{if $app.client_id}}<h4>{{$app.client_id}}</h4>{{else}}<h4>{{$noname}}</h4>{{/if}}
+ {{if $app.my}}
+ {{if $app.oauth_token}}
+ <div class="settings-submit-wrapper" ><button class="settings-submit" type="submit" name="remove" value="{{$app.oauth_token}}">{{$remove}}</button></div>
+ {{/if}}
+ {{/if}}
+ {{if $app.my}}
+ <a href="{{$baseurl}}/settings/oauth2/edit/{{$app.client_id}}" title="{{$edit}}"><i class="fa fa-pencil btn btn-outline-secondary"></i></a>
+ <a href="{{$baseurl}}/settings/oauth2/delete/{{$app.client_id}}?t={{$form_security_token}}" title="{{$delete}}"><i class="fa fa-trash-o btn btn-outline-secondary"></i></a>
+ {{/if}}
+ </div>
+ {{/foreach}}
+
+</form>
+</div>
+</div>
diff --git a/view/tpl/settings_oauth2_edit.tpl b/view/tpl/settings_oauth2_edit.tpl
new file mode 100755
index 000000000..399c64977
--- /dev/null
+++ b/view/tpl/settings_oauth2_edit.tpl
@@ -0,0 +1,21 @@
+<div class="generic-content-wrapper">
+ <div class="section-title-wrapper">
+ <h2>{{$title}}</h2>
+ </div>
+<div class="section-content-tools-wrapper">
+<form method="POST">
+<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
+{{include file="field_input.tpl" field=$name}}
+{{include file="field_input.tpl" field=$secret}}
+{{include file="field_input.tpl" field=$redirect}}
+{{include file="field_input.tpl" field=$grant}}
+{{include file="field_input.tpl" field=$scope}}
+
+<div class="settings-submit-wrapper" >
+<input type="submit" name="submit" class="settings-submit" value="{{$submit}}" />
+<input type="submit" name="cancel" class="settings-submit" value="{{$cancel}}" />
+</div>
+
+</form>
+</div>
+</div>
diff --git a/view/tpl/settings_oauth_edit.tpl b/view/tpl/settings_oauth_edit.tpl
index b94dec48a..e44b44723 100755
--- a/view/tpl/settings_oauth_edit.tpl
+++ b/view/tpl/settings_oauth_edit.tpl
@@ -5,7 +5,6 @@
<div class="section-content-tools-wrapper">
<form method="POST">
<input type='hidden' name='form_security_token' value='{{$form_security_token}}'>
-
{{include file="field_input.tpl" field=$name}}
{{include file="field_input.tpl" field=$key}}
{{include file="field_input.tpl" field=$secret}}
diff --git a/view/tpl/wiki.tpl b/view/tpl/wiki.tpl
index 2be323deb..6ca4b0c77 100644
--- a/view/tpl/wiki.tpl
+++ b/view/tpl/wiki.tpl
@@ -15,6 +15,7 @@
</div>
</div>
{{/if}}
+ <button type="button" class="btn btn-outline-secondary btn-sm" title="{{$sharePage}}" onclick="window.location.href='rpost?f=&body={{$shareLink}}';"><i class="fa fa-fw fa-share"></i></button>
<button id="fullscreen-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(); adjustFullscreenEditorHeight();"><i class="fa fa-expand"></i></button>
<button id="inline-btn" type="button" class="btn btn-outline-secondary btn-sm" onclick="makeFullScreen(false); adjustInlineEditorHeight()"><i class="fa fa-compress"></i></button>
</div>