About migrating security settings from embedded oc4j to preconfigured oc4j

Hi,
I was able to configure security in my 11g TP3 ADF application, and run it successfully against embedded oc4j.
Now, when I want to migrate this to preconfigured oc4j, I am getting ERROR:null.
Please see the steps I follow:
set CLASSPATH=C:/JDeveloper/j2ee/home/jazn.jar;C:/JDeveloper/BC4J/lib/adf-share-base.jar;C:/JDeveloper/j2ee/home/lib/security-api.jar;
After that, I run the migration tool:
java oracle.security.jazn.tools.JAZNMigrationTool -sr jazn.com -dr jazn.com -st xml -dt
xml -sf "C:\Documents and Settings\nneelaka\Application Data\JDeveloper\system11.1.1.0.22.47.96\o.j2ee\embedded-oc4j\config
\system-jazn-data.xml" -df "C:\Documents and Settings\nneelaka\Application Data\JDeveloper\oracle.adfp.seededoc4j.11.1.1.0.
0.071218.1800\j2ee\home\config\system-jazn-data.xml" -m policy
This is because, as I mentioned in the earlier mail, the webcenter preconfigured oc4j's configurations are read from the directory :
C:\Documents and Settings\nneelaka\Application Data\JDeveloper\oracle.adfp.seededoc4j.11.1.1.0.
0.071218.1800\j2ee\home\config\system-jazn-data.xml
and, the embedded oc4j's configuration is read from the directory :
C:\Documents and Settings\nneelaka\Application Data\JDeveloper\system11.1.1.0.22.47.96\o.j2ee\embedded-oc4j\config
\system-jazn-data.xml
However, when I run the migration tool, I get a message ERROR:null. Also, I dont have adfshare.jar, and instead, I have put adf-share-base.jar. Is there something I could be missing here ? Please advise.
Best Regards,
nattu

Please post JDeveloper/ADF questions to the JDeveloper/ADF forum here on OTN.
-steve-

Similar Messages

  • Migrating security settings from embedded oc4j to preconfigured oc4j

    Hi,
    I was able to configure security in my 11g TP3 ADF application, and run it successfully against embedded oc4j.
    Now, when I want to migrate this to preconfigured oc4j, I am getting ERROR:null.
    Please see the steps I follow:
    set CLASSPATH=C:/JDeveloper/j2ee/home/jazn.jar;C:/JDeveloper/BC4J/lib/adf-share-base.jar;C:/JDeveloper/j2ee/home/lib/security-api.jar;
    After that, I run the migration tool:
    java oracle.security.jazn.tools.JAZNMigrationTool -sr jazn.com -dr jazn.com -st xml -dt
    xml -sf "C:\Documents and Settings\nneelaka\Application Data\JDeveloper\system11.1.1.0.22.47.96\o.j2ee\embedded-oc4j\config
    \system-jazn-data.xml" -df "C:\Documents and Settings\nneelaka\Application Data\JDeveloper\oracle.adfp.seededoc4j.11.1.1.0.
    0.071218.1800\j2ee\home\config\system-jazn-data.xml" -m policy
    This is because, as I mentioned in the earlier mail, the webcenter preconfigured oc4j's configurations are read from the directory :
    C:\Documents and Settings\nneelaka\Application Data\JDeveloper\oracle.adfp.seededoc4j.11.1.1.0.
    0.071218.1800\j2ee\home\config\system-jazn-data.xml
    and, the embedded oc4j's configuration is read from the directory :
    C:\Documents and Settings\nneelaka\Application Data\JDeveloper\system11.1.1.0.22.47.96\o.j2ee\embedded-oc4j\config
    \system-jazn-data.xml
    However, when I run the migration tool, I get a message ERROR:null. Also, I dont have adfshare.jar, and instead, I have put adf-share-base.jar. Is there something I could be missing here ? Please advise.
    Best Regards,
    nattu

    Hi,
    Try enabling java logging to see what the exact error is. That might give you an idea of what the error could be..
    When I tried, I got the below error though I added jps-common.jar, which contains CredStoreResources, into the classpath
    java.util.MissingResourceException: Can't find oracle.security.jps.internal.common.resources.credstore.CredStoreResources bundle
         at java.util.logging.Logger.setupResourceInfo(Logger.java:1293)
         at java.util.logging.Logger.<init>(Logger.java:203)
         at java.util.logging.Logger.getLogger(Logger.java:274)
         at oracle.security.jps.util.JpsLogger.getLogger(JpsLogger.java:108)
         at oracle.security.jps.service.credstore.CredentialAccessPermission.<clinit>(CredentialAccessPermission.java:60)
    ~ Bijesh
    P.S:check the destination file path. Are you sure that's correct. I believe It should be something like ""C:\Documents and Settings\nneelaka\Application Data\JDeveloper\system11.1.1.0.22.47.96\o.adfp.seededoc4j.11.1.1.0.
    0.071218.1800\j2ee\home\config\system-jazn-data.xml"

  • I changed my WRT54G security settings from WPA to WEP

    I changed my WRT54G security settings from WPA to WEP and now one of my latops (Dell 5100) will not connect wirelessly. It is using a linksys wireless-B notebook adapter. I am at a loss at how to reconnect this to my wireless network.

    Go to the setup page of the router on the wired computer and click on the Wireless tab,check the network name(SSID),change the Wireless Channel to 11-2.462 GHz,Keep the SSID broadcast enable and click on save settings...Click on the subtab Wireless Security and change the Security mode to WEP or WPA as per your requirement.If you are using WEP then,note down the KEY1 as the network key(case sensitive)...
    Now,on the laptops,delete the preferred network and then,try to connect the Wireless Network.

  • How to export security settings from Acrobat Pro

    I'm transferring my Acrobat Pro to a new computer.  Is there a way to export the security settings (passwords) that I have stored and then import them into Acrobat Pro on my new computer?
    Thanks,
    Steve

    Hi Steve,
    The paths you are looking for are:
    Win XP
    C:\Documents and Settings\<user name¹>\Application Data\Adobe\Acrobat\<ver²>\Security
    Vista \ Win7
    C:\Users\<user name¹>\AppData\Roaming\Adobe\Acrobat\<ver²>\Security
    ¹The user name is the same as the login name
    ²ver is the major version (e.g. 8.0, 9.0)
    Note, if you don't see the folders in the Windows Explorer try the following:
    Start Windows Explorer
    Select the Tools > Folder Options menu item
    Select the View tab
    Select the Show hidden files and folders radio button
    Click the OK button on the Folder Option dialog
    Good hunting,
    Steve

  • Migrating User Settings from one local user to another

    I have an iMac running 10.5.4 with some issues (Parallels hanging at random moments). One of the tests I did to troubleshoot it was create a new user profile, and run the same (shared) Parallels machine as that new user, which seemed to fix the problem.
    I would like to being gradually copying over user preferences & data from the old account to the new one, bit by bit, so that if one of those items is causing the problem with Parallels, we can catch it.
    Is there a preferred way to copy or move over user settings from one local account to another on the same Mac? Basic files like Documents, etc. I know I can just drop into the Shared folder, but I am more concerned with Preferences, apps that use databases to point to files (like iTunes), and permissions.
    Thank you!

    V.K. (and anyone else who cares) - I finally figured out the problem: the mount point for the volume containing my Home directory ("Data") was changed by the system, but only on my primary startup volume ("System")... so when I booted from SystemClone everything was okay... but when I booted from System I had no account, no preferences, no nothing. Because the visible label on the volume containing Home was correct (even though the actual name - the mount point - was different), regardless of whether I booted from System or SystemClone, I assumed everything here was in order.
    Bottom line: when booting from System, my Data volume's visible label read "Data" .. the path to Home directory under the account's advanced settings read "/volumes/data/directoryName" ... but my Data volume's mount point read "Data 1" .. when booting from SystemClone, my Data volume's visible label read "Data" .. the path to Home directory under the account's advanced settings read "/volumes/data/directoryName" ... and my Data volume's mount point read "Data" (so everything worked).
    Lesson learned: don't assume.. check the mount point reference using Disk Utility.
    Approach validated: if I didn't have a bootable SystemClone, I would have never been able to figure this out, and repair everything without rebuilding.

  • Cannot access security settings from firefox dropdown box in Windows 7 home premium (laptop)

    This is a new HP laptop with Windows 7 Home premium
    There is not a firefox world in upper left corner, there is a box that says firefox with a drop down which does not include security settings.

    You have version 4.0.1. The Options dialog can be accessed either way --
    orange Firefox button > Options > Security tab
    Tools menu > Options > Security tab
    To display the classic menu bar temporarily, tap the Alt key or press F10. To make that permanent (and replace the orange Firefox button), use View > Toolbars > Menu Bar.
    Does that help?

  • Question about migrating my stuff from iMac to a new one

    Hi I must be on my fourth consecutive iMac now, and it is late 2007 model I think. I am considering about getting a new one soon. It is very tempting to use Migration Assistant to haul everything to the new one from the old one but:
    After 4 previous migrations, will I have a slower system than a clean, new one with just the files, not migrated settings and other stuff?
    Are there some negative effects of migrating vs installing everything from scratch?
    Thanks for any input!
    BR
    Timo

    When using Migration Assistant in my opinion it's best to connect to either a Time Machine Backup via USB or Firewire to the new machine. DO NOT use Wi-Fi to migrate. Also remember if you should prepare the old machine to ensure all of it's apps are up-to-date and it is running well otherwise.
    I would also recommend using Setup Assistant to migrate rather than Migration Assistant. Both are almost the same,however SA is what starts up when you turn on any new Mac for the first time. It will come to a point where it asks if you are migrating from an older Mac. Select yes, select your TM backup EHD and connect it (USB or Firewire remember??) to the new machine and select the options and let it do the migration. This method normally results in a smooth migration and will not create a new user account like Migration Assistant will.

  • How migrate all settings from CC to CC2014

    In InDesign sync works, in Illustrator and Photoshop sync don't works.

    "CC 2014 is a new version of Photoshop, and when you first launch it, you are offered the opportunity to migrate your old settings if you wish."
    That pretty much says it's automated. Were talking about Adobe settings & presets (this includes personal presets made with your software).
    And syncing settings is not the same thing as migrating them from one version to another.
    Where was this explained to your customers? (Without them having to search for it)
    This isn't just an issue with PS it's pretty much all your CC Apps. Check your message boards.
    https://helpx.adobe.com/creative-cloud/how-to/creative-cloud-sync-settings.html
    Nothing happened when I first opened PS or Illustrator. I was not given the option to sync. Are you trying to tell me that my presets & settings (including Workspaces) from
    the previous version will not work with this new version? Nonsense. So why didn't they sync?

  • How do I migrate firefox settings from a 4.0 FF install on my old main drive, now connected as an external drive, to my new main hard drive's 4.0 FF installation?

    My old computer's motherboard cooked, but the hard drive was undamaged. I removed it, and converted it to an external hard drive using cables, and now want to migrate the bookmarks, passwords, and settings to my new computer's main hard drive installation of Firefox.

    See [[Managing Profiles]] which explains how to recover data from your profile on the old drive.

  • Can I migrate server settings from 10.5 to 10.9

    I just got a Mac-mini server running OSX 10.9.3 and Server 3.1.1 and want to migrate share points, users and permissions from an Intel Xserve running OSX Server 10.5.8.

    Yes.  If you are only moving users, groups, and data from one server to the next, this is relatively easy.
    If you want to run the risk of migrating your entire Open Directory domain, you can export it from the 10.5 server and import it into the 10.9 server.  This will get everything, including passwords.  But the everything also means you will get all the junk from 10.5, including MCX, the separate password server auth authorities, etc.
    I tend to go for user attributes and then enforce a new password policy.  Most of us were not thinking security and password policy back in the 10.5 days, so rethinking it is a good thing.  In this case, use Workgroup Manager to export your users and groups to flat files or use dsexport to do the trick.  You can use something like:
    dsexport ~/Desktop/exportedUsers /LDAPv3/127.0.0.1 dsRecTypeStandard:Users -e "dsAttrTypeStandard:AuthenticationAuthority" -e "dsAttrTypeStandard:Expire" -e "dsAttrTypeStandard:Change" -e "dsAttrTypeStandard:Password" -e "dsAttrTypeStandard:AltSecurityIdentities" -e "dsAttrTypeStandard:JPEGPhoto" -e "dsAttrTypeStandard:MCXFlags"
    This will create a flat file containing user attributes that can then be imported into 10.9.  Make sure you remove the root, diradmin, and VPN Key user accounts.  This method will not give passwords, but it will trim much of the unwanted attributes.  Inspect the file and add more exclusions if you are getting more stuff like MCX.
    Alternatively, if you only have a handful of users, you might simply opt to recreate them on the new server.  Then recreate your shares and move the data, allowing permissions to be set on the move of the data.
    Don't forget DNS.  Don't forget to implement a backup.  Test.  Trust by verify.  Plan your access model.
    Reid
    Apple Consultants Network
    Apple Professional Services
    Author "Mavericks Server – Foundation Services" :: Exclusively available in Apple's iBooks Store

  • Can a procedure have different security settings from the person running it

    I've seen on many occasions that people advocate updates to the database are performed through database procedures, and I'd like to do this. However, my understanding is that the procedure 'inherits' the security permissions of the user running it? If so, then how is it possible to 'expose' a procedure call to a user which allows them to perform inserts/updates/deletes etc, and yet at the same time, only allow the user to perform selects on the base table?
    I simply want to ensure that the database is protected from changes that do not go through 'proper channels'...
    Many thanks in advance.
    Carl.

    my understanding is that the procedure 'inherits' the security permissions of the user running it?This is not true, as it depends on the way the procedure has been defined. Which can be in two ways as Justin just explained.
    It's true when the procedure has been defined with 'invoker rights'.
    Default would however be that the procedure inherits the security permissions of the user that created the stored procedure (definer rights).

  • Migrate the EJBs from JVM to OC4J...?

    We are plan to migrate the EJBs modules from Oracle8i JServer to OC4J.
    From now we have developed the EJBs by using JDeveloper as the following
    conditions;
    - JVM: Oracle8i JServer (8.1.6.3.0)
    - EJBs: Session Beans only
    - IDE tool: JDeveloper 3.2
    And now we wanna migrate or re-deploy to the OC4J. Is there any good
    suggestions or idea to do it? Also I wanna know sth to considerate...
    Thanks in advance for any advice
    Phyllis
    null

    It would be good for you to migrate to OC4J as performance in OC4J is a lot better. Here is a little migration writeup I had done sometime back. It is work in progress. Hope this helps.
    Migrating EJB components from Database EJB container to OC4J
    Author: Ashok Banerjee [[email protected]]
    Oracle recommends the new J2EE containers in Oracle9iAS (OC4J) for deploying J2EE components. The goal of this paper is to recommend ways to migrate existing EJB applications, from database EJB container, to OC4J.
    The database EJB container runs on the aurora session based Java Virtual Machine, whereas the new container runs on standard JDK (version 1.2.2 onward) .
    The database EJB container runs in a database session. The database is itself the middle tier, in such a configuration. Users therefore have a logically three tiered architecture, that runs physically on two tiers. The database serves as both the middle tier and the backend. In such situations users would use the "kprb" driver (used for requests made from within the database). No further authentication is needed if the backend database is the same as the middle tier. Users can also use one database as the middle tier and another database as the backend.
    In OC4J the middle tier does not require a database installation on the middle tier. This helps make the middle tier lightweight. OC4J is also seen to significantly faster than the EJB container inside the database. Since OC4J runs on regular JDK the user can run OC4J on the Java Virtual Machine which is best for his/her specific needs. OC4J however has a limitation in that does not support pure CORBA clients. Currently OC4J does not support RMI over IIOP either.
    To migrate existing EJB applications from inside the database to OC4J the set of changes is minimal.
    Code changes
    1. Change all references in the code and any configuration files using JDBC URLs from kprb driver to either thin or oci. "kprb" driver is only for applications running inside the database. The new OC4J runs outside the database and therefore it must use thin or oci driver.
    2. The database EJB container clientside JNDI lookups were like:
    env.put (Context.URL_PKG_PREFIXES, "oracle.aurora.jndi");
    env.put (Context.SECURITY_PRINCIPAL, user);
    env.put (Context.SECURITY_CREDENTIALS, password);
    env.put (Context.SECURITY_AUTHENTICATION, ServiceCtx.NON_SSL_LOGIN);
    Context ic = new InitialContext (env);
    while in OC4J container the lookup code should read:
    env.setProperty("java.naming.factory.initial","com.evermind.server.ApplicationClientInitialContextFactory");
    env.setProperty("java.naming.provider.url","ormi://localhost");
    env.setProperty("java.naming.security.principal","username");
    env.setProperty("java.naming.security.credentials","password");
    Context ic = new InitialContext (env);
    3) Remove all references to oracle.aurora.* classes - they will not work with OC4J. These classes are specific to the container in the database.
    4) Check for client demarcation of Bean Managed Transactions and remember that transaction in OC4J cannot be propagated across tiers. In other words client demarcated transaction will work provided the client is another EJB or a servlet in the same OC4J instance. This is also listed in the "Current Limitations" section.
    Build changes
    1. For EJB in the database we use loadjava to load classes into the database - this step is not necessary any longer for middle tier EJBs. The user merely needs to ensure that the classes are in the classpath.
    2. Similarly the concept of resolver specification in the database EJB container ceases to be useful in OC4J. To make classes "findable" the user sets the classpath. In OC4J any jars in the $OC4J_HOME/lib directory are on the server side classpath of the application classloader. The user can also include classes in their own ear files before they deploy the ear. [If you do not know about the resolver specification, then you have not used it and do not need to know about it].
    3. The database J2EE container did not have support for .ear files. The OC4J container supports J2EE standard .ear files. Both makefiles and ANT files are available in the code samples on OTN which show how to build ear files and also provides samples for the structure of the EAR files.
    EAR File contains META-INF/application.xml
    META-INF/orion-application.xml [optional]
    applicationEjb.jar
    applicationweb.war
    applicationEjb.jar contains
    META-INF/ejb-jar.xml
    META-INF/orion-ejb-jar.xml
    EJB classes
    applicationWeb.war contains
    WEB-INF/web.xml
    WEB-INF/orion-web.xml
    WEB-INF/lib/jar files needed
    WEB-INF/classes class files needed for JSP servlets
    For further information on how to write the xml files etc. please refer to their respective DTDs.
    Both web.xml and ejb-jar.xml should be unaffected by the migration.
    4. The deployejb tool used to deploy EJB to the database has been deprecated. In OC4J EJBs are deployed as shown below:
    % java -jar admin.jar ormi://localhost:<rmi-port> userName password -deploy -file ejbdemo.ear -deploymentName jndiName
    5. The ApplicationClientContainer does not need aurora_client.jar in the classpath instead it needs oc4j.jar in the classpath.
    Configuration Changes:
    1. In the database EJB container the configurations exist in database tables but in OC4J the configuration exists in industry standard XML files. By default these files are located at $OC4J_HOME/config directory. Users can start their OC4J instance with a different configuration using the -config switch to specify a different server.xml file.
    %java -jar oc4j.jar -config config1/server1.xml
    2. In the database EJB container scalability was achieved using the MTS architecture and session based Java Virtual Machine. In OC4J scalability is achieved by clustering and using the loadbalancer. For more details on loadbalancer please read <link to loadbalancer.doc>
    3. The bindds tool used to bind data-sources to the JNDI namespace of the database EJB container is deprecated. In OC4J datasources are bound to the the namespace using the data-sources.xml in $OC4J_HOME/config. Non oracle data-sources can also be bound to the namespace. A typical entry in data-sources.xml could look like:
    <data-source
    class="com.evermind.sql.DriverManagerDataSource"
    name="OracleDS"
    location="jdbc/OracleCoreDS"
    xa-location="jdbc/xa/OracleXADS"
    ejb-location="jdbc/OracleDS"
    connection-driver="oracle.jdbc.driver.OracleDriver"
    username="scott"
    password="tiger"
    url="jdbc:oracle:thin:@dlsun1688:5521:jis2"
    inactivity-timeout="30"
    />
    4. Database EJB container used database authentication (database roles and database users) to authenticate users to the middle tier. OC4J uses principals.xml file to list groups and users and perform authentication. One can also implement UserManagers for OC4J to perform more complex authentication.
    5. The ports used by OC4J for RMI, JMS and HTTP are all specified in rmi.xml, jms.xml, web-site.xml.
    6. Both OC4J and the database container SSL (client authentication as well as server authentication).
    7. The database EJB container could only be remotely debugged using a jdb like interface by starting a debugagent on the server, and a debugproxy on the client. OC4J containers on the other hand run on JDK and can be debugged with any debugger. This is very useful for debugging EJB/Servlet application running in the server.
    8. The database EJB container comes with a database and hence has AQ (Advanced Queue) available for JMS. With OC4J there is a default in memory JMS implementation. OC4J server program can also connect to other JMS implementations(including AQ) using jms.xml. However a JNDI context may need to be implemented for AQ.
    Current Limitations
    1. The OC4J container at present does not support 2 phase commit.
    2. The OC4J container at present does not support transaction context propagation across tiers. Hence client demarcated transactions are not supported in OC4J except where the client demarcating the transaction is in the same container, for example an EJB having its transaction demarcated by another EJB or servlet, in the same container.
    3. In the classic container Oracle did not support RMI-IIOP tunneling through HTTP however in OC4J RMI over HTTP is supported.
    null

  • How can I easiest migrate my settings when upgrading from CC - CC 2014

    Have upgraded several times before (CS5 -> CS6 for example) where settings such as workspace, keyboard shortcuts, actions etc. were easily migrated.
    Now, with Creative Cloud, I would assume an even more seamless upgrade. I was a bit disappointed by the whole concept of installing a *new* app ("Photoshop CC 2014", alongside "Photoshop CC"). But even more disappointed when I saw none of my app settings were migrated.
    Is this a "feature" or me doing something wrong?
    (I would hope the latter, but afraid this is a feature after I talked to a guy on support chat)

    There was a lot of discussion on this one. Adobe wrote sync of settings only work between dot releases, see: Photoshop Help | Sync settings using Adobe Creative Cloud
    Considerations: Migration and Sync Settings
    Sync Settings synchronizes settings between installations of the same major version of Photoshop. For example, settings are synchronized between a Photoshop CC version 15.0 installation and a Photoshop CC version 15.1 installation.
    Sync Settings does not synchronize settings across installations of different Photoshop major versions. For example, Photoshop CC version 14.1 settings are not synchronized with an installation of the 2014 release of Photoshop CC (15.0).
    Migrate settings from one major version to another
    You can migrate presets/settings from one major version of Photoshop to another in one of the following two ways:
    When you first launch the newer version of Photoshop, you are prompted to migrate the presets/settings. Choose Yes.
    At any point in time, select Edit > Presets > Migrate Presets to migrate settings.
    For more information, see Preset migration. 
       Note:
    The main preference file is not migrated as part of presets migration.
    This was discussed for example by other users in the topic: Syncing settings from CC to CC2014

  • Library/StartupItems folder lost security settings

    After running DiskWarrior I re-started my computer and up jumped a dialog box with a message about the security settings not being set on the Library/StartupItems folder being set. Here is the System Log message:
    Dec 15 12:17:20 Bubbas-Computer /System/Library/CoreServices/SecurityFixer.app/Contents/MacOS/SecurityFixer: "/Library/StartupItems" failed security check: permissions
    Dec 15 12:17:20 Bubbas-Computer /System/Library/CoreServices/SecurityFixer.app/Contents/MacOS/SecurityFixer: "/Library/StartupItems" failed security check: not owned by GID 0
    It gave me the opportunity to fix it, but I don't understand how this happened. I have never seen this message before and I didn't do anything unusual.
    Thanks, Bill
    PowerMac MDD FW800 Dual 1.25Ghz   Mac OS X (10.4.3)  

    Tiger's startupItems folder requires permissions that are different from Panther.
    Is your computer maintained by anyone other than you? people at work? Something like FileWave, which we use, or Rsync could be changing files in there on you. If it's your own personal computer then it's probably not that.
    It's also possible that an installed program may change permissions on an item in that folder to be something other than what Tiger uses. What items are in your /Library/StartupItems/ folder?

  • How do I move settings from one Airport unit to another?

    I am considering buying one of those new Airport Expresses, the one with dual band. I have a few questions about importing the settings (from my existing Extreme unit):
    - Is it true that it's better to start from scratch when setting up the new unit (vs. importing the settings from the old), because the performance will be better?
    - Assuming I do import: Won't there be a problem where, even for a short time (that is, until I deactivate my old unit), I'll have two Airport units with the same settings running simultaneously? What should I do about that?
    - How do I reset my old unit to its factory settings so I don't have my network name and password still stored in it?

    I always prefer to factory reset. Never bother with importing, and when I do it didn't always work right for me anyway.
    To reset the router to factory defaults, hold in the reset button as you plug it into the outlet. Keep holding the pin down until it flashes amber rapidly.

Maybe you are looking for