A C D F G H I J L M O P R S T U V W
A
- AccessDeniedHandler - cool.mtc.security.handler.deny中的类
-
- AccessDeniedHandler() - 类 的构造器cool.mtc.security.handler.deny.AccessDeniedHandler
-
- addHeader(String, String) - 类 中的方法cool.mtc.security.plugin.wrapper.RequestHeaderWrapper
-
- attemptAuthentication(HttpServletRequest, HttpServletResponse) - 类 中的方法cool.mtc.security.auth.custom.CustomAuthFilter
-
- attemptAuthentication(HttpServletRequest, HttpServletResponse) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthFilter
-
- attemptAuthentication(HttpServletRequest, HttpServletResponse) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthFilter
-
- Auth(boolean, String) - 类 的构造器cool.mtc.security.SecurityProperties.Auth
-
- AUTH_WAY_CUSTOM - 类 中的静态变量cool.mtc.security.constant.AuthConstant
-
- AUTH_WAY_JWT - 类 中的静态变量cool.mtc.security.constant.AuthConstant
-
- AUTH_WAY_PASSWORD - 类 中的静态变量cool.mtc.security.constant.AuthConstant
-
- AuthConfig - cool.mtc.security.auth中的类
-
- AuthConfig() - 类 的构造器cool.mtc.security.auth.AuthConfig
-
- AuthConstant - cool.mtc.security.constant中的类
-
- AuthConstant() - 类 的构造器cool.mtc.security.constant.AuthConstant
-
- authenticate(Authentication) - 类 中的方法cool.mtc.security.auth.AuthTemplate
-
- authenticate(Authentication) - 类 中的方法cool.mtc.security.auth.custom.CustomAuthProvider
-
- authenticate(Authentication) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthProvider
-
- authenticate(Authentication) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthProvider
-
- AuthenticationEntryPoint - cool.mtc.security.handler.deny中的类
-
- AuthenticationEntryPoint() - 类 的构造器cool.mtc.security.handler.deny.AuthenticationEntryPoint
-
- AuthException - cool.mtc.security.exception中的异常错误
-
- AuthException(Result<Object>) - 异常错误 的构造器cool.mtc.security.exception.AuthException
-
- AuthException(Result<Object>, String) - 异常错误 的构造器cool.mtc.security.exception.AuthException
-
- AuthFailureEvent - cool.mtc.security.event中的类
-
- AuthFailureEvent(Object, String, String, AuthFormSupport, String, String) - 类 的构造器cool.mtc.security.event.AuthFailureEvent
-
- AuthFailureHandler - cool.mtc.security.handler.auth中的类
-
- AuthFailureHandler() - 类 的构造器cool.mtc.security.handler.auth.AuthFailureHandler
-
- AuthFormSupport - cool.mtc.security.auth中的接口
-
- AuthHandler - cool.mtc.security.handler.auth中的类
-
- AuthHandler() - 类 的构造器cool.mtc.security.handler.auth.AuthHandler
-
- AuthResultEvent - cool.mtc.security.event中的类
-
- AuthResultEvent(Object, String, String, AuthFormSupport) - 类 的构造器cool.mtc.security.event.AuthResultEvent
-
- AuthSuccessEvent - cool.mtc.security.event中的类
-
- AuthSuccessEvent(Object, String, String, AuthFormSupport, AuthToken) - 类 的构造器cool.mtc.security.event.AuthSuccessEvent
-
- AuthSuccessHandler - cool.mtc.security.handler.auth中的类
-
- AuthSuccessHandler() - 类 的构造器cool.mtc.security.handler.auth.AuthSuccessHandler
-
- AuthTemplate - cool.mtc.security.auth中的类
-
- AuthTemplate() - 类 的构造器cool.mtc.security.auth.AuthTemplate
-
- AuthToken - cool.mtc.security.auth中的类
-
- AuthToken(Collection<? extends GrantedAuthority>, String, String) - 类 的构造器cool.mtc.security.auth.AuthToken
-
C
- commence(HttpServletRequest, HttpServletResponse, AuthenticationException) - 类 中的方法cool.mtc.security.handler.deny.AuthenticationEntryPoint
-
- configure(HttpSecurity) - 类 中的方法cool.mtc.security.auth.custom.CustomAuthAdapter
-
- configure(HttpSecurity) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthAdapter
-
- configure(HttpSecurity) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthAdapter
-
- configure(HttpSecurity) - 接口 中的方法cool.mtc.security.config.CustomSecurityFilterChain
-
- configure(HttpSecurity) - 类 中的方法cool.mtc.security.config.DefaultSecurityFilterChain
-
- cool.mtc.security - 程序包 cool.mtc.security
-
- cool.mtc.security.auth - 程序包 cool.mtc.security.auth
-
- cool.mtc.security.auth.custom - 程序包 cool.mtc.security.auth.custom
-
- cool.mtc.security.auth.jwt - 程序包 cool.mtc.security.auth.jwt
-
- cool.mtc.security.auth.password - 程序包 cool.mtc.security.auth.password
-
- cool.mtc.security.config - 程序包 cool.mtc.security.config
-
- cool.mtc.security.constant - 程序包 cool.mtc.security.constant
-
- cool.mtc.security.data.model - 程序包 cool.mtc.security.data.model
-
- cool.mtc.security.event - 程序包 cool.mtc.security.event
-
- cool.mtc.security.exception - 程序包 cool.mtc.security.exception
-
- cool.mtc.security.handler - 程序包 cool.mtc.security.handler
-
- cool.mtc.security.handler.auth - 程序包 cool.mtc.security.handler.auth
-
- cool.mtc.security.handler.auth.jwt - 程序包 cool.mtc.security.handler.auth.jwt
-
- cool.mtc.security.handler.deny - 程序包 cool.mtc.security.handler.deny
-
- cool.mtc.security.handler.logout - 程序包 cool.mtc.security.handler.logout
-
- cool.mtc.security.logout - 程序包 cool.mtc.security.logout
-
- cool.mtc.security.plugin.jwt - 程序包 cool.mtc.security.plugin.jwt
-
- cool.mtc.security.plugin.wrapper - 程序包 cool.mtc.security.plugin.wrapper
-
- cool.mtc.security.service - 程序包 cool.mtc.security.service
-
- cool.mtc.security.service.impl - 程序包 cool.mtc.security.service.impl
-
- cool.mtc.security.util - 程序包 cool.mtc.security.util
-
- CustomAuthAdapter - cool.mtc.security.auth.custom中的类
-
- CustomAuthAdapter() - 类 的构造器cool.mtc.security.auth.custom.CustomAuthAdapter
-
- CustomAuthFilter - cool.mtc.security.auth.custom中的类
-
- CustomAuthFilter(SecurityProperties) - 类 的构造器cool.mtc.security.auth.custom.CustomAuthFilter
-
- CustomAuthFormSupport - cool.mtc.security.auth.custom中的接口
-
- CustomAuthProvider - cool.mtc.security.auth.custom中的类
-
- CustomAuthProvider() - 类 的构造器cool.mtc.security.auth.custom.CustomAuthProvider
-
- customAuthTemplate() - 类 中的方法cool.mtc.security.auth.AuthConfig
-
- CustomAuthTemplate - cool.mtc.security.auth.custom中的类
-
- CustomAuthTemplate() - 类 的构造器cool.mtc.security.auth.custom.CustomAuthTemplate
-
- CustomAuthToken - cool.mtc.security.auth.custom中的类
-
- CustomAuthToken(CustomAuthFormSupport) - 类 的构造器cool.mtc.security.auth.custom.CustomAuthToken
-
- CustomAuthToken(CustomAuthFormSupport, String, Collection<? extends GrantedAuthority>) - 类 的构造器cool.mtc.security.auth.custom.CustomAuthToken
-
- CustomSecurityFilterChain - cool.mtc.security.config中的接口
-
- customSecurityFilterChain() - 类 中的方法cool.mtc.security.SecurityAutoConfiguration
-
D
- DefaultAuthFailureHandler - cool.mtc.security.handler.auth中的类
-
- DefaultAuthFailureHandler() - 类 的构造器cool.mtc.security.handler.auth.DefaultAuthFailureHandler
-
- DefaultAuthSuccessHandler - cool.mtc.security.handler.auth中的类
-
- DefaultAuthSuccessHandler() - 类 的构造器cool.mtc.security.handler.auth.DefaultAuthSuccessHandler
-
- DefaultSecurityFilterChain - cool.mtc.security.config中的类
-
- DefaultSecurityFilterChain() - 类 的构造器cool.mtc.security.config.DefaultSecurityFilterChain
-
- doFilter(ServletRequest, ServletResponse, FilterChain) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthFilter
-
F
- fail(AuthenticationException) - 类 中的方法cool.mtc.security.handler.auth.AuthFailureHandler
-
G
- generate(Map<String, Object>) - 类 中的方法cool.mtc.security.plugin.jwt.JwtTemplate
-
- generate(Map<String, Object>, Duration) - 类 中的方法cool.mtc.security.plugin.jwt.JwtTemplate
-
- generate(String, Map<String, Object>) - 类 中的方法cool.mtc.security.plugin.jwt.JwtTemplate
-
- generate(String, Map<String, Object>, Duration) - 类 中的方法cool.mtc.security.plugin.jwt.JwtTemplate
-
- generate(String, Claims) - 类 中的方法cool.mtc.security.plugin.jwt.JwtTemplate
-
- generateToken(String, UserDetailsSupport) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthTemplate
-
- generateToken(UserDetailsSupport) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthTemplate
-
- getAuthorities() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- getCredentials() - 类 中的方法cool.mtc.security.auth.AuthToken
-
- getForm() - 类 中的方法cool.mtc.security.auth.AuthToken
-
- getHeader(String) - 类 中的方法cool.mtc.security.plugin.wrapper.RequestHeaderWrapper
-
- getHeaderNames() - 类 中的方法cool.mtc.security.plugin.wrapper.RequestHeaderWrapper
-
- getHeaders(String) - 类 中的方法cool.mtc.security.plugin.wrapper.RequestHeaderWrapper
-
- getOrgId() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- getPermissionList() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- getPrincipal() - 类 中的方法cool.mtc.security.auth.AuthToken
-
- getRoleList() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- getTokenFromRequest(HttpServletRequest) - 类 中的静态方法cool.mtc.security.util.SecurityUtil
-
从请求中获取token
- getUserId() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- getUsername() - 接口 中的方法cool.mtc.security.auth.AuthFormSupport
-
认证时的用户名
记录登录日志的时候可能会用到
如登录名、邮箱、手机号等,
H
- handle(HttpServletRequest, HttpServletResponse, AccessDeniedException) - 类 中的方法cool.mtc.security.handler.deny.AccessDeniedHandler
-
- handleCheckUserStatus(UserDetailsSupport) - 类 中的方法cool.mtc.security.auth.AuthTemplate
-
检查用户状态
- handleCheckUserStatus() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
检查账号状态
- handlePostCheck(AuthFormSupport, UserDetailsSupport) - 类 中的方法cool.mtc.security.auth.AuthTemplate
-
后置检查
获取用户信息后执行,可用来检查密码是否正确
- handlePostCheck(AuthFormSupport, UserDetailsSupport) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthTemplate
-
- handlePreCheck(AuthFormSupport) - 类 中的方法cool.mtc.security.auth.AuthTemplate
-
前置检查
获取用户信息前执行,可用来检查token是否正确
- handlePreCheck(AuthFormSupport) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthTemplate
-
- handlePreCheck(AuthFormSupport) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthTemplate
-
- HandlerConfig - cool.mtc.security.handler中的类
-
- HandlerConfig() - 类 的构造器cool.mtc.security.handler.HandlerConfig
-
- handleResult(AuthFormSupport, UserDetailsSupport) - 类 中的方法cool.mtc.security.auth.AuthTemplate
-
- handleResult(AuthFormSupport, UserDetailsSupport) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthTemplate
-
- handleResult(AuthFormSupport, UserDetailsSupport) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthTemplate
-
- HandleSupport - cool.mtc.security.handler中的接口
-
- hasPermission(String) - 类 中的方法cool.mtc.security.service.impl.PermissionServiceImpl
-
- hasPermission(String) - 接口 中的方法cool.mtc.security.service.PermissionService
-
- hasRole(String...) - 类 中的方法cool.mtc.security.service.impl.PermissionServiceImpl
-
- hasRole(String...) - 接口 中的方法cool.mtc.security.service.PermissionService
-
I
- isAccountNonExpired() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- isAccountNonLocked() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- isCredentialsNonExpired() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- isEnabled() - 接口 中的方法cool.mtc.security.data.model.UserDetailsSupport
-
- isTokenInAllowList(String) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthTemplate
-
- isVerifyCodeError(Object) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthTemplate
-
验证码是否错误
J
- JwtAuthAdapter - cool.mtc.security.auth.jwt中的类
-
- JwtAuthAdapter() - 类 的构造器cool.mtc.security.auth.jwt.JwtAuthAdapter
-
- JwtAuthFailureHandler - cool.mtc.security.handler.auth.jwt中的类
-
- JwtAuthFailureHandler() - 类 的构造器cool.mtc.security.handler.auth.jwt.JwtAuthFailureHandler
-
- JwtAuthFilter - cool.mtc.security.auth.jwt中的类
-
- JwtAuthFilter(SecurityProperties) - 类 的构造器cool.mtc.security.auth.jwt.JwtAuthFilter
-
- JwtAuthForm - cool.mtc.security.auth.jwt中的类
-
- JwtAuthForm() - 类 的构造器cool.mtc.security.auth.jwt.JwtAuthForm
-
- JwtAuthProvider - cool.mtc.security.auth.jwt中的类
-
- JwtAuthProvider() - 类 的构造器cool.mtc.security.auth.jwt.JwtAuthProvider
-
- JwtAuthSuccessHandler - cool.mtc.security.handler.auth.jwt中的类
-
- JwtAuthSuccessHandler() - 类 的构造器cool.mtc.security.handler.auth.jwt.JwtAuthSuccessHandler
-
- jwtAuthTemplate() - 类 中的方法cool.mtc.security.auth.AuthConfig
-
- JwtAuthTemplate - cool.mtc.security.auth.jwt中的类
-
- JwtAuthTemplate() - 类 的构造器cool.mtc.security.auth.jwt.JwtAuthTemplate
-
- JwtAuthToken - cool.mtc.security.auth.jwt中的类
-
- JwtAuthToken(JwtAuthForm) - 类 的构造器cool.mtc.security.auth.jwt.JwtAuthToken
-
- JwtAuthToken(JwtAuthForm, String, Collection<? extends GrantedAuthority>) - 类 的构造器cool.mtc.security.auth.jwt.JwtAuthToken
-
- JwtConfig - cool.mtc.security.plugin.jwt中的类
-
- JwtConfig() - 类 的构造器cool.mtc.security.plugin.jwt.JwtConfig
-
- JwtInfo - cool.mtc.security.plugin.jwt中的类
-
- JwtInfo() - 类 的构造器cool.mtc.security.plugin.jwt.JwtInfo
-
- JwtProperties - cool.mtc.security.plugin.jwt中的类
-
- JwtProperties() - 类 的构造器cool.mtc.security.plugin.jwt.JwtProperties
-
- jwtTemplate - 类 中的变量cool.mtc.security.auth.jwt.JwtAuthTemplate
-
- jwtTemplate() - 类 中的方法cool.mtc.security.plugin.jwt.JwtConfig
-
- JwtTemplate - cool.mtc.security.plugin.jwt中的类
-
- JwtTemplate() - 类 的构造器cool.mtc.security.plugin.jwt.JwtTemplate
-
L
- loadUserDetails(AuthFormSupport) - 类 中的方法cool.mtc.security.auth.AuthTemplate
-
获取用户信息
- LOGGER - 接口 中的静态变量cool.mtc.security.handler.HandleSupport
-
- logout(HttpServletRequest, HttpServletResponse, Authentication) - 类 中的方法cool.mtc.security.handler.logout.LogoutHandler
-
- logout(HttpServletRequest, HttpServletResponse, Authentication) - 类 中的方法cool.mtc.security.logout.LogoutTemplate
-
- LogoutHandler - cool.mtc.security.handler.logout中的类
-
- LogoutHandler() - 类 的构造器cool.mtc.security.handler.logout.LogoutHandler
-
- LogoutSuccessHandler - cool.mtc.security.handler.logout中的类
-
- LogoutSuccessHandler() - 类 的构造器cool.mtc.security.handler.logout.LogoutSuccessHandler
-
- LogoutTemplate - cool.mtc.security.logout中的类
-
- LogoutTemplate() - 类 的构造器cool.mtc.security.logout.LogoutTemplate
-
M
- MAPPER - 接口 中的静态变量cool.mtc.security.handler.HandleSupport
-
O
- onAuthenticationFailure(HttpServletRequest, HttpServletResponse, AuthenticationException) - 类 中的方法cool.mtc.security.handler.auth.DefaultAuthFailureHandler
-
- onAuthenticationFailure(HttpServletRequest, HttpServletResponse, AuthenticationException) - 类 中的方法cool.mtc.security.handler.auth.jwt.JwtAuthFailureHandler
-
- onAuthenticationSuccess(HttpServletRequest, HttpServletResponse, Authentication) - 类 中的方法cool.mtc.security.handler.auth.DefaultAuthSuccessHandler
-
- onAuthenticationSuccess(HttpServletRequest, HttpServletResponse, Authentication) - 类 中的方法cool.mtc.security.handler.auth.jwt.JwtAuthSuccessHandler
-
- onLogoutSuccess(HttpServletRequest, HttpServletResponse, Authentication) - 类 中的方法cool.mtc.security.handler.logout.LogoutSuccessHandler
-
P
- PARAM_TOKEN_KEY - 类 中的静态变量cool.mtc.security.constant.SecurityConstant
-
token在请求头中的key
- PARAM_TOKEN_PREFIX - 类 中的静态变量cool.mtc.security.constant.SecurityConstant
-
token在请求头中值的前缀
- parse(String) - 类 中的方法cool.mtc.security.plugin.jwt.JwtTemplate
-
- PASSWORD_ENCODER - 类 中的静态变量cool.mtc.security.auth.password.PasswordAuthTemplate
-
- PasswordAuthAdapter - cool.mtc.security.auth.password中的类
-
- PasswordAuthAdapter() - 类 的构造器cool.mtc.security.auth.password.PasswordAuthAdapter
-
- PasswordAuthFilter - cool.mtc.security.auth.password中的类
-
- PasswordAuthFilter(SecurityProperties) - 类 的构造器cool.mtc.security.auth.password.PasswordAuthFilter
-
- PasswordAuthForm - cool.mtc.security.auth.password中的类
-
- PasswordAuthForm() - 类 的构造器cool.mtc.security.auth.password.PasswordAuthForm
-
- PasswordAuthProvider - cool.mtc.security.auth.password中的类
-
- PasswordAuthProvider() - 类 的构造器cool.mtc.security.auth.password.PasswordAuthProvider
-
- passwordAuthTemplate() - 类 中的方法cool.mtc.security.auth.AuthConfig
-
- PasswordAuthTemplate - cool.mtc.security.auth.password中的类
-
- PasswordAuthTemplate() - 类 的构造器cool.mtc.security.auth.password.PasswordAuthTemplate
-
- PasswordAuthToken - cool.mtc.security.auth.password中的类
-
- PasswordAuthToken(PasswordAuthForm) - 类 的构造器cool.mtc.security.auth.password.PasswordAuthToken
-
- PasswordAuthToken(PasswordAuthForm, String, Collection<? extends GrantedAuthority>) - 类 的构造器cool.mtc.security.auth.password.PasswordAuthToken
-
- permissionService() - 类 中的方法cool.mtc.security.SecurityAutoConfiguration
-
- PermissionService - cool.mtc.security.service中的接口
-
- PermissionServiceImpl - cool.mtc.security.service.impl中的类
-
- PermissionServiceImpl() - 类 的构造器cool.mtc.security.service.impl.PermissionServiceImpl
-
- publishAuthFailureEvent(HttpServletRequest, AuthFormSupport, String, String) - 类 中的方法cool.mtc.security.handler.auth.AuthHandler
-
- publishAuthSuccessEvent(HttpServletRequest, AuthFormSupport, AuthToken) - 类 中的方法cool.mtc.security.handler.auth.AuthHandler
-
R
- REQUEST_ATTRIBUTE_KEY_AUTH_FORM - 类 中的静态变量cool.mtc.security.constant.SecurityConstant
-
请求对象中存储请求认证表单的key
- REQUEST_ATTRIBUTE_KEY_AUTH_WAY - 类 中的静态变量cool.mtc.security.constant.SecurityConstant
-
- RequestHeaderWrapper - cool.mtc.security.plugin.wrapper中的类
-
- RequestHeaderWrapper(HttpServletRequest) - 类 的构造器cool.mtc.security.plugin.wrapper.RequestHeaderWrapper
-
- response(Result<T>) - 接口 中的方法cool.mtc.security.handler.HandleSupport
-
- responseData(T) - 接口 中的方法cool.mtc.security.handler.HandleSupport
-
S
- SecurityAutoConfiguration - cool.mtc.security中的类
-
- SecurityAutoConfiguration() - 类 的构造器cool.mtc.security.SecurityAutoConfiguration
-
- SecurityConstant - cool.mtc.security.constant中的类
-
- SecurityConstant() - 类 的构造器cool.mtc.security.constant.SecurityConstant
-
- SecurityException - cool.mtc.security.exception中的异常错误
-
- SecurityException(String) - 异常错误 的构造器cool.mtc.security.exception.SecurityException
-
- securityFilterChain(HttpSecurity) - 类 中的方法cool.mtc.security.SecurityAutoConfiguration
-
- SecurityProperties - cool.mtc.security中的类
-
- SecurityProperties() - 类 的构造器cool.mtc.security.SecurityProperties
-
- SecurityProperties.Auth - cool.mtc.security中的类
-
- SecurityUtil - cool.mtc.security.util中的类
-
- SecurityUtil() - 类 的构造器cool.mtc.security.util.SecurityUtil
-
- setTokenToResponseHeader(String) - 类 中的方法cool.mtc.security.handler.auth.AuthSuccessHandler
-
- success(Authentication) - 类 中的方法cool.mtc.security.handler.auth.AuthSuccessHandler
-
- supports(Class<?>) - 类 中的方法cool.mtc.security.auth.custom.CustomAuthProvider
-
- supports(Class<?>) - 类 中的方法cool.mtc.security.auth.jwt.JwtAuthProvider
-
- supports(Class<?>) - 类 中的方法cool.mtc.security.auth.password.PasswordAuthProvider
-
T
- transForm(HttpServletRequest, Class<T>) - 接口 中的静态方法cool.mtc.security.auth.AuthFormSupport
-
- transForm(HttpServletRequest) - 类 中的静态方法cool.mtc.security.auth.jwt.JwtAuthForm
-
U
- UserDetailsSupport - cool.mtc.security.data.model中的接口
-
V
- verifyCode - 类 中的变量cool.mtc.security.auth.password.PasswordAuthForm
-
验证码
W
- webSecurityCustomizer() - 类 中的方法cool.mtc.security.SecurityAutoConfiguration
-
A C D F G H I J L M O P R S T U V W
Copyright © 2024. All rights reserved.